adding missing files
This commit is contained in:
		
							
								
								
									
										13
									
								
								.idea/libraries/Maven__net_logstash_logback_logstash_logback_encoder_6_4.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.idea/libraries/Maven__net_logstash_logback_logstash_logback_encoder_6_4.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | |||||||
|  | <component name="libraryTable"> | ||||||
|  |   <library name="Maven: net.logstash.logback:logstash-logback-encoder:6.4"> | ||||||
|  |     <CLASSES> | ||||||
|  |       <root url="jar://$MAVEN_REPOSITORY$/net/logstash/logback/logstash-logback-encoder/6.4/logstash-logback-encoder-6.4.jar!/" /> | ||||||
|  |     </CLASSES> | ||||||
|  |     <JAVADOC> | ||||||
|  |       <root url="jar://$MAVEN_REPOSITORY$/net/logstash/logback/logstash-logback-encoder/6.4/logstash-logback-encoder-6.4-javadoc.jar!/" /> | ||||||
|  |     </JAVADOC> | ||||||
|  |     <SOURCES> | ||||||
|  |       <root url="jar://$MAVEN_REPOSITORY$/net/logstash/logback/logstash-logback-encoder/6.4/logstash-logback-encoder-6.4-sources.jar!/" /> | ||||||
|  |     </SOURCES> | ||||||
|  |   </library> | ||||||
|  | </component> | ||||||
| @@ -1,180 +0,0 @@ | |||||||
| Index: src/main/resources/data-access.properties |  | ||||||
| IDEA additional info: |  | ||||||
| Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |  | ||||||
| <+>redis.host = redis-server\r\nredis.port = 6379 |  | ||||||
| Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |  | ||||||
| <+>windows-1252 |  | ||||||
| =================================================================== |  | ||||||
| --- src/main/resources/data-access.properties	(revision 37db249a69977824a4908292c11c4e1324adb132) |  | ||||||
| +++ src/main/resources/data-access.properties	(date 1597659599864) |  | ||||||
| @@ -1,2 +1,3 @@ |  | ||||||
| -redis.host = redis-server |  | ||||||
| +//redis.host = redis-server |  | ||||||
| +redis.host = localhost |  | ||||||
|  redis.port = 6379 |  | ||||||
| \ No newline at end of file |  | ||||||
| Index: .idea/inspectionProfiles/Project_Default.xml |  | ||||||
| IDEA additional info: |  | ||||||
| Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |  | ||||||
| <+>UTF-8 |  | ||||||
| =================================================================== |  | ||||||
| --- .idea/inspectionProfiles/Project_Default.xml	(date 1598274178652) |  | ||||||
| +++ .idea/inspectionProfiles/Project_Default.xml	(date 1598274178652) |  | ||||||
| @@ -0,0 +1,23 @@ |  | ||||||
| +<component name="InspectionProjectProfileManager"> |  | ||||||
| +  <profile version="1.0"> |  | ||||||
| +    <option name="myName" value="Project Default" /> |  | ||||||
| +    <inspection_tool class="HtmlUnknownAttribute" enabled="true" level="WARNING" enabled_by_default="true"> |  | ||||||
| +      <option name="myValues"> |  | ||||||
| +        <value> |  | ||||||
| +          <list size="9"> |  | ||||||
| +            <item index="0" class="java.lang.String" itemvalue="th:field" /> |  | ||||||
| +            <item index="1" class="java.lang.String" itemvalue="th:action" /> |  | ||||||
| +            <item index="2" class="java.lang.String" itemvalue="th:object" /> |  | ||||||
| +            <item index="3" class="java.lang.String" itemvalue="th:placeholder" /> |  | ||||||
| +            <item index="4" class="java.lang.String" itemvalue="th:value" /> |  | ||||||
| +            <item index="5" class="java.lang.String" itemvalue="th:name" /> |  | ||||||
| +            <item index="6" class="java.lang.String" itemvalue="rows" /> |  | ||||||
| +            <item index="7" class="java.lang.String" itemvalue="cols" /> |  | ||||||
| +            <item index="8" class="java.lang.String" itemvalue="th:hidden" /> |  | ||||||
| +          </list> |  | ||||||
| +        </value> |  | ||||||
| +      </option> |  | ||||||
| +      <option name="myCustomValuesEnabled" value="true" /> |  | ||||||
| +    </inspection_tool> |  | ||||||
| +  </profile> |  | ||||||
| +</component> |  | ||||||
| \ No newline at end of file |  | ||||||
| Index: .idea/uiDesigner.xml |  | ||||||
| IDEA additional info: |  | ||||||
| Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |  | ||||||
| <+>UTF-8 |  | ||||||
| =================================================================== |  | ||||||
| --- .idea/uiDesigner.xml	(date 1598257920551) |  | ||||||
| +++ .idea/uiDesigner.xml	(date 1598257920551) |  | ||||||
| @@ -0,0 +1,124 @@ |  | ||||||
| +<?xml version="1.0" encoding="UTF-8"?> |  | ||||||
| +<project version="4"> |  | ||||||
| +  <component name="Palette2"> |  | ||||||
| +    <group name="Swing"> |  | ||||||
| +      <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" /> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" /> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" /> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true"> |  | ||||||
| +        <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" /> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" /> |  | ||||||
| +        <initial-values> |  | ||||||
| +          <property name="text" value="Button" /> |  | ||||||
| +        </initial-values> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> |  | ||||||
| +        <initial-values> |  | ||||||
| +          <property name="text" value="RadioButton" /> |  | ||||||
| +        </initial-values> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" /> |  | ||||||
| +        <initial-values> |  | ||||||
| +          <property name="text" value="CheckBox" /> |  | ||||||
| +        </initial-values> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" /> |  | ||||||
| +        <initial-values> |  | ||||||
| +          <property name="text" value="Label" /> |  | ||||||
| +        </initial-values> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> |  | ||||||
| +          <preferred-size width="150" height="-1" /> |  | ||||||
| +        </default-constraints> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> |  | ||||||
| +          <preferred-size width="150" height="-1" /> |  | ||||||
| +        </default-constraints> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1"> |  | ||||||
| +          <preferred-size width="150" height="-1" /> |  | ||||||
| +        </default-constraints> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true"> |  | ||||||
| +        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> |  | ||||||
| +          <preferred-size width="150" height="50" /> |  | ||||||
| +        </default-constraints> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true"> |  | ||||||
| +        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> |  | ||||||
| +          <preferred-size width="150" height="50" /> |  | ||||||
| +        </default-constraints> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true"> |  | ||||||
| +        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> |  | ||||||
| +          <preferred-size width="150" height="50" /> |  | ||||||
| +        </default-constraints> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" /> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> |  | ||||||
| +          <preferred-size width="150" height="50" /> |  | ||||||
| +        </default-constraints> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3"> |  | ||||||
| +          <preferred-size width="150" height="50" /> |  | ||||||
| +        </default-constraints> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3"> |  | ||||||
| +          <preferred-size width="150" height="50" /> |  | ||||||
| +        </default-constraints> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> |  | ||||||
| +          <preferred-size width="200" height="200" /> |  | ||||||
| +        </default-constraints> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3"> |  | ||||||
| +          <preferred-size width="200" height="200" /> |  | ||||||
| +        </default-constraints> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" /> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" /> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" /> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1"> |  | ||||||
| +          <preferred-size width="-1" height="20" /> |  | ||||||
| +        </default-constraints> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" /> |  | ||||||
| +      </item> |  | ||||||
| +      <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false"> |  | ||||||
| +        <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" /> |  | ||||||
| +      </item> |  | ||||||
| +    </group> |  | ||||||
| +  </component> |  | ||||||
| +</project> |  | ||||||
| \ No newline at end of file |  | ||||||
							
								
								
									
										28
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										28
									
								
								.idea/workspace.xml
									
									
									
										generated
									
									
									
								
							| @@ -19,10 +19,7 @@ | |||||||
|     <select /> |     <select /> | ||||||
|   </component> |   </component> | ||||||
|   <component name="ChangeListManager"> |   <component name="ChangeListManager"> | ||||||
|     <list default="true" id="458cde88-df3d-44bc-9d57-a33823e2f1a6" name="Default Changelist" comment=""> |     <list default="true" id="458cde88-df3d-44bc-9d57-a33823e2f1a6" name="Default Changelist" comment="" /> | ||||||
|       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> |  | ||||||
|       <change beforePath="$PROJECT_DIR$/Klaus.iml" beforeDir="false" afterPath="$PROJECT_DIR$/Klaus.iml" afterDir="false" /> |  | ||||||
|     </list> |  | ||||||
|     <option name="SHOW_DIALOG" value="false" /> |     <option name="SHOW_DIALOG" value="false" /> | ||||||
|     <option name="HIGHLIGHT_CONFLICTS" value="true" /> |     <option name="HIGHLIGHT_CONFLICTS" value="true" /> | ||||||
|     <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> |     <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> | ||||||
| @@ -252,7 +249,21 @@ | |||||||
|       <option name="project" value="LOCAL" /> |       <option name="project" value="LOCAL" /> | ||||||
|       <updated>1599228274986</updated> |       <updated>1599228274986</updated> | ||||||
|     </task> |     </task> | ||||||
|     <option name="localTasksCounter" value="12" /> |     <task id="LOCAL-00012" summary="iml fix"> | ||||||
|  |       <created>1599228665178</created> | ||||||
|  |       <option name="number" value="00012" /> | ||||||
|  |       <option name="presentableId" value="LOCAL-00012" /> | ||||||
|  |       <option name="project" value="LOCAL" /> | ||||||
|  |       <updated>1599228665178</updated> | ||||||
|  |     </task> | ||||||
|  |     <task id="LOCAL-00013" summary="iml fix"> | ||||||
|  |       <created>1599228713444</created> | ||||||
|  |       <option name="number" value="00013" /> | ||||||
|  |       <option name="presentableId" value="LOCAL-00013" /> | ||||||
|  |       <option name="project" value="LOCAL" /> | ||||||
|  |       <updated>1599228713444</updated> | ||||||
|  |     </task> | ||||||
|  |     <option name="localTasksCounter" value="14" /> | ||||||
|     <servers /> |     <servers /> | ||||||
|   </component> |   </component> | ||||||
|   <component name="Vcs.Log.Tabs.Properties"> |   <component name="Vcs.Log.Tabs.Properties"> | ||||||
| @@ -279,7 +290,8 @@ | |||||||
|     <MESSAGE value="updating html pages" /> |     <MESSAGE value="updating html pages" /> | ||||||
|     <MESSAGE value="MvcExceptionHandler" /> |     <MESSAGE value="MvcExceptionHandler" /> | ||||||
|     <MESSAGE value="Etrack works!!!" /> |     <MESSAGE value="Etrack works!!!" /> | ||||||
|     <option name="LAST_COMMIT_MESSAGE" value="Etrack works!!!" /> |     <MESSAGE value="iml fix" /> | ||||||
|  |     <option name="LAST_COMMIT_MESSAGE" value="iml fix" /> | ||||||
|   </component> |   </component> | ||||||
|   <component name="WindowStateProjectService"> |   <component name="WindowStateProjectService"> | ||||||
|     <state x="574" y="128" key="#com.intellij.ide.util.MemberChooser" timestamp="1599035277816"> |     <state x="574" y="128" key="#com.intellij.ide.util.MemberChooser" timestamp="1599035277816"> | ||||||
| @@ -338,10 +350,10 @@ | |||||||
|       <screen x="0" y="0" width="1536" height="824" /> |       <screen x="0" y="0" width="1536" height="824" /> | ||||||
|     </state> |     </state> | ||||||
|     <state x="299" y="67" key="Maven.ArtifactSearchDialog/0.0.1536.824@0.0.1536.824" timestamp="1598862685882" /> |     <state x="299" y="67" key="Maven.ArtifactSearchDialog/0.0.1536.824@0.0.1536.824" timestamp="1598862685882" /> | ||||||
|     <state x="361" y="145" key="Vcs.Push.Dialog.v2" timestamp="1599228369824"> |     <state x="361" y="145" key="Vcs.Push.Dialog.v2" timestamp="1599228717329"> | ||||||
|       <screen x="0" y="0" width="1536" height="824" /> |       <screen x="0" y="0" width="1536" height="824" /> | ||||||
|     </state> |     </state> | ||||||
|     <state x="361" y="145" key="Vcs.Push.Dialog.v2/0.0.1536.824@0.0.1536.824" timestamp="1599228369824" /> |     <state x="361" y="145" key="Vcs.Push.Dialog.v2/0.0.1536.824@0.0.1536.824" timestamp="1599228717329" /> | ||||||
|     <state x="209" y="33" key="new project wizard" timestamp="1598955672188"> |     <state x="209" y="33" key="new project wizard" timestamp="1598955672188"> | ||||||
|       <screen x="0" y="0" width="1536" height="824" /> |       <screen x="0" y="0" width="1536" height="824" /> | ||||||
|     </state> |     </state> | ||||||
|   | |||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | package com.release11.klaus.controller; | ||||||
|  |  | ||||||
|  | import com.release11.klaus.model.EventRequestDto; | ||||||
|  | import com.release11.klaus.service.EtrackService; | ||||||
|  | import lombok.AllArgsConstructor; | ||||||
|  | import lombok.extern.slf4j.Slf4j; | ||||||
|  | import org.springframework.stereotype.Controller; | ||||||
|  | import org.springframework.validation.BindingResult; | ||||||
|  | import org.springframework.web.bind.annotation.PostMapping; | ||||||
|  | import org.springframework.web.bind.annotation.RequestMapping; | ||||||
|  | import org.springframework.web.bind.annotation.ResponseBody; | ||||||
|  |  | ||||||
|  | import javax.validation.Valid; | ||||||
|  |  | ||||||
|  | @Slf4j | ||||||
|  | @Controller | ||||||
|  | @RequestMapping | ||||||
|  | @AllArgsConstructor | ||||||
|  | public class EventController { | ||||||
|  |  | ||||||
|  |     private final EtrackService etrackService; | ||||||
|  |      | ||||||
|  |     @PostMapping("/eventsForm") | ||||||
|  |     @ResponseBody | ||||||
|  |     public String getLogs(@Valid EventRequestDto eventsDto, BindingResult bindingResult){ | ||||||
|  |         return String.valueOf(etrackService.getEventsByDateTimeAndBusinessKeys(eventsDto)); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
| @@ -0,0 +1,33 @@ | |||||||
|  | package com.release11.klaus.controller; | ||||||
|  |  | ||||||
|  | import org.springframework.http.HttpStatus; | ||||||
|  | import org.springframework.http.ResponseEntity; | ||||||
|  | import org.springframework.validation.BindException; | ||||||
|  | import org.springframework.web.bind.annotation.ControllerAdvice; | ||||||
|  | import org.springframework.web.bind.annotation.ExceptionHandler; | ||||||
|  |  | ||||||
|  | import javax.validation.ConstraintViolationException; | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  | @ControllerAdvice | ||||||
|  | public class MvcExceptionHandler { | ||||||
|  |  | ||||||
|  |     @ExceptionHandler(ConstraintViolationException.class) | ||||||
|  |     public ResponseEntity<List> validationErrorHandler(ConstraintViolationException e){ | ||||||
|  |         List<String> errors = new ArrayList<>(e.getConstraintViolations().size()); | ||||||
|  |  | ||||||
|  |         e.getConstraintViolations().forEach(constraintViolation -> { | ||||||
|  |             errors.add(constraintViolation.getPropertyPath() + " : " + constraintViolation.getMessage()); | ||||||
|  |         }); | ||||||
|  |         return new ResponseEntity<>(errors, HttpStatus.BAD_REQUEST); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @ExceptionHandler(BindException.class) | ||||||
|  |     public ResponseEntity<List> handleBindException(BindException ex){ | ||||||
|  |         return new ResponseEntity(ex.getAllErrors(), HttpStatus.BAD_REQUEST); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
							
								
								
									
										35
									
								
								src/main/java/com/release11/klaus/model/Event.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								src/main/java/com/release11/klaus/model/Event.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | |||||||
|  | package com.release11.klaus.model; | ||||||
|  |  | ||||||
|  | import com.release11.klaus.utilis.BusinessKey; | ||||||
|  | import lombok.*; | ||||||
|  | import org.springframework.format.annotation.DateTimeFormat; | ||||||
|  | import org.springframework.lang.Nullable; | ||||||
|  |  | ||||||
|  | import javax.persistence.Entity; | ||||||
|  | import java.time.LocalDate; | ||||||
|  | import java.time.LocalDateTime; | ||||||
|  | import java.time.LocalTime; | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  | import java.util.UUID; | ||||||
|  |  | ||||||
|  | @Data | ||||||
|  | @Entity | ||||||
|  | @Builder | ||||||
|  | @ToString | ||||||
|  | @NoArgsConstructor | ||||||
|  | @AllArgsConstructor | ||||||
|  | public class Event { | ||||||
|  |  | ||||||
|  |     @DateTimeFormat(pattern = "yyyy-MM-ddTHH:mm:ss") | ||||||
|  |     private LocalDateTime dateTimeStamp; | ||||||
|  |     @Nullable | ||||||
|  |     private String[] businessKeys; | ||||||
|  |     private String thread; | ||||||
|  |     private String level; | ||||||
|  |     @Nullable | ||||||
|  |     private String message; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | //{"date" : "%d{yyyy-MM-dd}", "timestamp":"%d{HH:mm:ss}", "businessKeys": {"interfaceName": "%X{interfaceName}", | ||||||
|  | // "clientUUID": "%X{clientUUID}", "messageId": "%X{messageId}"},"thread":"%t","level":"%-5level", "message":"%msg"}%n | ||||||
							
								
								
									
										25
									
								
								src/main/java/com/release11/klaus/model/EventRequestDto.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								src/main/java/com/release11/klaus/model/EventRequestDto.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | |||||||
|  | package com.release11.klaus.model; | ||||||
|  |  | ||||||
|  | import lombok.AllArgsConstructor; | ||||||
|  | import lombok.Builder; | ||||||
|  | import lombok.Data; | ||||||
|  | import lombok.NoArgsConstructor; | ||||||
|  | import org.springframework.format.annotation.DateTimeFormat; | ||||||
|  |  | ||||||
|  | import java.time.LocalDateTime; | ||||||
|  | import java.util.UUID; | ||||||
|  |  | ||||||
|  | @Data | ||||||
|  | @Builder | ||||||
|  | @NoArgsConstructor | ||||||
|  | @AllArgsConstructor | ||||||
|  | public class EventRequestDto { | ||||||
|  |  | ||||||
|  |     private UUID clientUUID; | ||||||
|  |     @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) | ||||||
|  |     private LocalDateTime localDateTimeFrom; | ||||||
|  |     @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) | ||||||
|  |     private LocalDateTime localDateTimeTo; | ||||||
|  |     private int mockedResponseId; | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -0,0 +1,17 @@ | |||||||
|  | package com.release11.klaus.repository; | ||||||
|  |  | ||||||
|  | import com.release11.klaus.model.Event; | ||||||
|  | import com.release11.klaus.utilis.BusinessKey; | ||||||
|  | import org.springframework.stereotype.Repository; | ||||||
|  | import org.springframework.transaction.annotation.Transactional; | ||||||
|  |  | ||||||
|  | import java.time.LocalDateTime; | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  |  | ||||||
|  | @Repository | ||||||
|  | @Transactional | ||||||
|  | public interface EventRepository { | ||||||
|  |     List<Event> findEvents(LocalDateTime localDateTimeFrom, LocalDateTime localDateTimeTo, | ||||||
|  |                            Map<BusinessKey, String> businessKeys); | ||||||
|  | } | ||||||
| @@ -0,0 +1,72 @@ | |||||||
|  | package com.release11.klaus.repository; | ||||||
|  |  | ||||||
|  | import com.fasterxml.jackson.core.JsonProcessingException; | ||||||
|  | import com.fasterxml.jackson.databind.ObjectMapper; | ||||||
|  | import com.release11.klaus.model.Event; | ||||||
|  | import com.release11.klaus.utilis.BusinessKey; | ||||||
|  | import lombok.AllArgsConstructor; | ||||||
|  | import org.springframework.boot.configurationprocessor.json.JSONException; | ||||||
|  | import org.springframework.boot.configurationprocessor.json.JSONObject; | ||||||
|  | import org.springframework.stereotype.Repository; | ||||||
|  | import redis.clients.jedis.Jedis; | ||||||
|  | import redis.clients.jedis.JedisPool; | ||||||
|  |  | ||||||
|  | import java.time.LocalDate; | ||||||
|  | import java.time.LocalDateTime; | ||||||
|  | import java.time.LocalTime; | ||||||
|  | import java.util.*; | ||||||
|  | import java.util.stream.Collectors; | ||||||
|  |  | ||||||
|  | @Repository | ||||||
|  | @AllArgsConstructor | ||||||
|  | public class EventRepositoryImpl implements EventRepository { | ||||||
|  |  | ||||||
|  |     private final String LOG_PREFIX = "logstash_"; | ||||||
|  |     private final JedisPool jedisPool; | ||||||
|  |     private final ObjectMapper objectMapper; | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public List<Event> findEvents(LocalDateTime localDateTimeFrom, LocalDateTime localDateTimeTo, | ||||||
|  |                                    Map<BusinessKey, String> businessKeys) { | ||||||
|  |         List<String> eventStrings = findEventsBetweenDates(localDateTimeFrom.toLocalDate(), localDateTimeTo.toLocalDate()); | ||||||
|  |         if (businessKeys.size() > 0) { | ||||||
|  |             eventStrings = businessKeysFilter(eventStrings, businessKeys); | ||||||
|  |         } | ||||||
|  |         List<Event> events = parseEvents(eventStrings); | ||||||
|  |         if (localDateTimeFrom.toLocalTime() != LocalTime.MIN) { | ||||||
|  |             events = events.stream().filter(event -> event.getDateTimeStamp().compareTo(localDateTimeFrom) >= 0) | ||||||
|  |                     .collect(Collectors.toList()); | ||||||
|  |         } | ||||||
|  |         return events.stream().filter(event -> event.getDateTimeStamp().compareTo(localDateTimeTo) <= 0) | ||||||
|  |                 .collect(Collectors.toList()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private List<String> findEventsBetweenDates(LocalDate localDateFrom, LocalDate localDateTo) { | ||||||
|  |         try (Jedis jedis = jedisPool.getResource()) { | ||||||
|  |             return localDateFrom.datesUntil(localDateTo.plusDays(1)).map(day -> LOG_PREFIX + day.toString()) | ||||||
|  |                     .map(key -> jedis.lrange(key, 0, -1)).flatMap(Collection::stream).collect(Collectors.toList()); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private List<String> businessKeysFilter(List<String> events, Map<BusinessKey, String> businessKeys) { | ||||||
|  |         List<String> resultList = new ArrayList<>(); | ||||||
|  |         for (Map.Entry<BusinessKey, String> entry : businessKeys.entrySet()) { | ||||||
|  |             String stringPattern = "\"" + entry.getKey() + ":" + entry.getValue() + "\""; | ||||||
|  |             resultList = events.stream().filter(s -> s.contains(stringPattern)).collect(Collectors.toList()); | ||||||
|  |         } | ||||||
|  |         return resultList; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     private List<Event> parseEvents(List<String> eventStrings) { | ||||||
|  |         List<Event> events = new ArrayList<>(); | ||||||
|  |         for (String eventString : eventStrings) { | ||||||
|  |             try { | ||||||
|  |                 events.add(objectMapper.readValue(eventString, Event.class)); | ||||||
|  |             } catch (JsonProcessingException e) { | ||||||
|  |                 System.out.println(e); | ||||||
|  |                 e.printStackTrace(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         return events; | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										12
									
								
								src/main/java/com/release11/klaus/service/EtrackService.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								src/main/java/com/release11/klaus/service/EtrackService.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | package com.release11.klaus.service; | ||||||
|  |  | ||||||
|  | import com.release11.klaus.model.Event; | ||||||
|  | import com.release11.klaus.model.EventRequestDto; | ||||||
|  | import org.springframework.stereotype.Service; | ||||||
|  |  | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
|  | @Service | ||||||
|  | public interface EtrackService { | ||||||
|  |     List<Event> getEventsByDateTimeAndBusinessKeys(EventRequestDto eventsDto); | ||||||
|  | } | ||||||
| @@ -0,0 +1,29 @@ | |||||||
|  | package com.release11.klaus.service; | ||||||
|  |  | ||||||
|  | import com.release11.klaus.model.Event; | ||||||
|  | import com.release11.klaus.model.EventRequestDto; | ||||||
|  | import com.release11.klaus.repository.EventRepository; | ||||||
|  | import com.release11.klaus.utilis.BusinessKey; | ||||||
|  | import lombok.AllArgsConstructor; | ||||||
|  | import lombok.extern.slf4j.Slf4j; | ||||||
|  | import org.springframework.stereotype.Service; | ||||||
|  |  | ||||||
|  | import java.util.HashMap; | ||||||
|  | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  |  | ||||||
|  | @Slf4j | ||||||
|  | @Service | ||||||
|  | @AllArgsConstructor | ||||||
|  | public class EtrackServiceImpl implements EtrackService { | ||||||
|  |  | ||||||
|  |     private final EventRepository eventRepository; | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public List<Event> getEventsByDateTimeAndBusinessKeys(EventRequestDto eventsDto) { | ||||||
|  |         Map<BusinessKey, String> businessKeys = new HashMap<>(); | ||||||
|  |         businessKeys.put(BusinessKey.CLIENT_UUID, eventsDto.getClientUUID().toString()); | ||||||
|  |         return eventRepository.findEvents(eventsDto.getLocalDateTimeFrom(), eventsDto.getLocalDateTimeTo(), | ||||||
|  |                 businessKeys); | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										224
									
								
								src/main/java/com/release11/klaus/utilis/RedisAppender.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										224
									
								
								src/main/java/com/release11/klaus/utilis/RedisAppender.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,224 @@ | |||||||
|  | package com.release11.klaus.utilis; | ||||||
|  |  | ||||||
|  | import java.time.LocalDate; | ||||||
|  | import java.util.Arrays; | ||||||
|  | import java.util.Iterator; | ||||||
|  |  | ||||||
|  | import com.cwbase.logback.AdditionalField; | ||||||
|  | import com.cwbase.logback.JSONEventLayout; | ||||||
|  | import org.apache.commons.pool2.impl.GenericObjectPoolConfig; | ||||||
|  |  | ||||||
|  | import ch.qos.logback.classic.spi.ILoggingEvent; | ||||||
|  | import ch.qos.logback.core.Layout; | ||||||
|  | import ch.qos.logback.core.UnsynchronizedAppenderBase; | ||||||
|  | import redis.clients.jedis.Jedis; | ||||||
|  | import redis.clients.jedis.JedisPool; | ||||||
|  | import redis.clients.jedis.Protocol; | ||||||
|  |  | ||||||
|  | public class RedisAppender extends UnsynchronizedAppenderBase<ILoggingEvent> { | ||||||
|  |  | ||||||
|  |     JedisPool pool; | ||||||
|  |  | ||||||
|  |     // keep this for config compatibility for now | ||||||
|  |     JSONEventLayout jsonlayout; | ||||||
|  |  | ||||||
|  |     Layout<ILoggingEvent> layout; | ||||||
|  |  | ||||||
|  |     // logger configurable options | ||||||
|  |     String host = "localhost"; | ||||||
|  |     int port = Protocol.DEFAULT_PORT; | ||||||
|  |     String key = null; | ||||||
|  |     int timeout = Protocol.DEFAULT_TIMEOUT; | ||||||
|  |     String password = null; | ||||||
|  |     int database = Protocol.DEFAULT_DATABASE; | ||||||
|  |  | ||||||
|  |     public RedisAppender() { | ||||||
|  |         jsonlayout = new JSONEventLayout(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     protected void append(ILoggingEvent event) { | ||||||
|  |         Jedis client = pool.getResource(); | ||||||
|  |         try { | ||||||
|  |             String json = layout == null ? jsonlayout.doLayout(event) : layout.doLayout(event); | ||||||
|  |             key = "logstash_" + LocalDate.now(); | ||||||
|  |             client.rpush(key, json); | ||||||
|  |         } catch (Exception e) { | ||||||
|  |             e.printStackTrace(); | ||||||
|  |         } finally { | ||||||
|  |             if (client != null) { | ||||||
|  |                 client.close(); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public String getSource() { | ||||||
|  |         return jsonlayout.getSource(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public void setSource(String source) { | ||||||
|  |         jsonlayout.setSource(source); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public String getSourceHost() { | ||||||
|  |         return jsonlayout.getSourceHost(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public void setSourceHost(String sourceHost) { | ||||||
|  |         jsonlayout.setSourceHost(sourceHost); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public String getSourcePath() { | ||||||
|  |         return jsonlayout.getSourcePath(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public void setSourcePath(String sourcePath) { | ||||||
|  |         jsonlayout.setSourcePath(sourcePath); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public String getTags() { | ||||||
|  |         if (jsonlayout.getTags() != null) { | ||||||
|  |             Iterator<String> i = jsonlayout.getTags().iterator(); | ||||||
|  |             StringBuilder sb = new StringBuilder(); | ||||||
|  |             while (i.hasNext()) { | ||||||
|  |                 sb.append(i.next()); | ||||||
|  |                 if (i.hasNext()) { | ||||||
|  |                     sb.append(','); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |             return sb.toString(); | ||||||
|  |         } | ||||||
|  |         return null; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public void setTags(String tags) { | ||||||
|  |         if (tags != null) { | ||||||
|  |             String[] atags = tags.split(","); | ||||||
|  |             jsonlayout.setTags(Arrays.asList(atags)); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public String getType() { | ||||||
|  |         return jsonlayout.getType(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public void setType(String type) { | ||||||
|  |         jsonlayout.setType(type); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public String getHost() { | ||||||
|  |         return host; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setHost(String host) { | ||||||
|  |         this.host = host; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public int getPort() { | ||||||
|  |         return port; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setPort(int port) { | ||||||
|  |         this.port = port; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public String getKey() { | ||||||
|  |         return key; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setKey(String key) { | ||||||
|  |         this.key = key; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public int getTimeout() { | ||||||
|  |         return timeout; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setTimeout(int timeout) { | ||||||
|  |         this.timeout = timeout; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public String getPassword() { | ||||||
|  |         return password; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setPassword(String password) { | ||||||
|  |         this.password = password; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public int getDatabase() { | ||||||
|  |         return database; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setDatabase(int database) { | ||||||
|  |         this.database = database; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public void setMdc(boolean flag) { | ||||||
|  |         jsonlayout.setProperties(flag); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public boolean getMdc() { | ||||||
|  |         return jsonlayout.getProperties(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public void setLocation(boolean flag) { | ||||||
|  |         jsonlayout.setLocationInfo(flag); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public boolean getLocation() { | ||||||
|  |         return jsonlayout.getLocationInfo(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public void setCallerStackIndex(int index) { | ||||||
|  |         jsonlayout.setCallerStackIdx(index); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public int getCallerStackIndex() { | ||||||
|  |         return jsonlayout.getCallerStackIdx(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Deprecated | ||||||
|  |     public void addAdditionalField(AdditionalField p) { | ||||||
|  |         jsonlayout.addAdditionalField(p); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public Layout<ILoggingEvent> getLayout() { | ||||||
|  |         return layout; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setLayout(Layout<ILoggingEvent> layout) { | ||||||
|  |         this.layout = layout; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void start() { | ||||||
|  |         super.start(); | ||||||
|  |         GenericObjectPoolConfig config = new GenericObjectPoolConfig(); | ||||||
|  |         config.setTestOnBorrow(true); | ||||||
|  |         pool = new JedisPool(config, host, port, timeout, password, database); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void stop() { | ||||||
|  |         super.stop(); | ||||||
|  |         pool.destroy(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								src/main/resources/static/css/styles.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/main/resources/static/css/styles.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | .page-section{ | ||||||
|  |   padding: 2rem 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .page-section .column{ | ||||||
|  |     float: left; | ||||||
|  |     width: 50%; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .page-section .row:after { | ||||||
|  |   content: ""; | ||||||
|  |   display: table; | ||||||
|  |   clear: both; | ||||||
|  | } | ||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								target/classes/com/release11/klaus/model/Event.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								target/classes/com/release11/klaus/model/Event.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								target/classes/com/release11/klaus/model/EventRequestDto.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								target/classes/com/release11/klaus/model/EventRequestDto.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								target/classes/com/release11/klaus/service/EtrackService.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								target/classes/com/release11/klaus/service/EtrackService.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								target/classes/com/release11/klaus/utilis/RedisAppender.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								target/classes/com/release11/klaus/utilis/RedisAppender.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										14
									
								
								target/classes/static/css/styles.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								target/classes/static/css/styles.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | |||||||
|  | .page-section{ | ||||||
|  |   padding: 2rem 0; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .page-section .column{ | ||||||
|  |     float: left; | ||||||
|  |     width: 50%; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | .page-section .row:after { | ||||||
|  |   content: ""; | ||||||
|  |   display: table; | ||||||
|  |   clear: both; | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 Szakalakamaka
					Szakalakamaka