This commit is contained in:
Carol 2021-11-15 10:48:12 +08:00
commit 5c9b0a3a2f
69 changed files with 695 additions and 2385 deletions

25
.gitignore vendored
View File

@ -1,23 +1,2 @@
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.idea
target

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4" />

View File

@ -1,5 +0,0 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
</state>
</component>

View File

@ -1,19 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile default="true" name="Default" enabled="true" />
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="CommonUtil" />
</profile>
</annotationProcessing>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
<module name="CommonUtil" options="-parameters" />
</option>
</component>
</project>

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" native2AsciiForPropertiesFiles="true" defaultCharsetForPropertiesFiles="UTF-8">
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

View File

@ -1,204 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaDocConfiguration">
<GENERAL>
<MODE>UPDATE</MODE>
<OVERRIDDEN_METHODS>false</OVERRIDDEN_METHODS>
<SPLITTED_CLASS_NAME>true</SPLITTED_CLASS_NAME>
<LEVELS>
<LEVEL>METHOD</LEVEL>
<LEVEL>FIELD</LEVEL>
<LEVEL>TYPE</LEVEL>
</LEVELS>
<VISIBILITIES>
<VISIBILITY>PROTECTED</VISIBILITY>
<VISIBILITY>DEFAULT</VISIBILITY>
<VISIBILITY>PUBLIC</VISIBILITY>
</VISIBILITIES>
</GENERAL>
<TEMPLATES>
<CLASSES>
<CLASS>
<KEY>^.*(public|protected|private)*.+interface\s+\w+.*</KEY>
<VALUE>/**\n
* The interface ${name}.\n
&lt;#if element.typeParameters?has_content&gt; * \n
&lt;/#if&gt;
&lt;#list element.typeParameters as typeParameter&gt;
* @param &lt;${typeParameter.name}&gt; the type parameter\n
&lt;/#list&gt;
*/</VALUE>
</CLASS>
<CLASS>
<KEY>^.*(public|protected|private)*.+enum\s+\w+.*</KEY>
<VALUE>/**\n
* The enum ${name}.\n
*/</VALUE>
</CLASS>
<CLASS>
<KEY>^.*(public|protected|private)*.+class\s+\w+.*</KEY>
<VALUE>/**\n
* The type ${name}.\n
&lt;#if element.typeParameters?has_content&gt; * \n
&lt;/#if&gt;
&lt;#list element.typeParameters as typeParameter&gt;
* @param &lt;${typeParameter.name}&gt; the type parameter\n
&lt;/#list&gt;
*/</VALUE>
</CLASS>
<CLASS>
<KEY>.+</KEY>
<VALUE>/**\n
* The type ${name}.\n
*/</VALUE>
</CLASS>
</CLASSES>
<CONSTRUCTORS>
<CONSTRUCTOR>
<KEY>.+</KEY>
<VALUE>/**\n
* Instantiates a new ${name}.\n
&lt;#if element.parameterList.parameters?has_content&gt;
*\n
&lt;/#if&gt;
&lt;#list element.parameterList.parameters as parameter&gt;
* @param ${parameter.name} the ${paramNames[parameter.name]}\n
&lt;/#list&gt;
&lt;#if element.throwsList.referenceElements?has_content&gt;
*\n
&lt;/#if&gt;
&lt;#list element.throwsList.referenceElements as exception&gt;
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
&lt;/#list&gt;
*/</VALUE>
</CONSTRUCTOR>
</CONSTRUCTORS>
<METHODS>
<METHOD>
<KEY>^.*(public|protected|private)*\s*.*(\w(\s*&lt;.+&gt;)*)+\s+get\w+\s*\(.*\).+</KEY>
<VALUE>/**\n
* Gets ${partName}.\n
&lt;#if element.typeParameters?has_content&gt; * \n
&lt;/#if&gt;
&lt;#list element.typeParameters as typeParameter&gt;
* @param &lt;${typeParameter.name}&gt; the type parameter\n
&lt;/#list&gt;
&lt;#if element.parameterList.parameters?has_content&gt;
*\n
&lt;/#if&gt;
&lt;#list element.parameterList.parameters as parameter&gt;
* @param ${parameter.name} the ${paramNames[parameter.name]}\n
&lt;/#list&gt;
&lt;#if isNotVoid&gt;
*\n
* @return the ${partName}\n
&lt;/#if&gt;
&lt;#if element.throwsList.referenceElements?has_content&gt;
*\n
&lt;/#if&gt;
&lt;#list element.throwsList.referenceElements as exception&gt;
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
&lt;/#list&gt;
*/</VALUE>
</METHOD>
<METHOD>
<KEY>^.*(public|protected|private)*\s*.*(void|\w(\s*&lt;.+&gt;)*)+\s+set\w+\s*\(.*\).+</KEY>
<VALUE>/**\n
* Sets ${partName}.\n
&lt;#if element.typeParameters?has_content&gt; * \n
&lt;/#if&gt;
&lt;#list element.typeParameters as typeParameter&gt;
* @param &lt;${typeParameter.name}&gt; the type parameter\n
&lt;/#list&gt;
&lt;#if element.parameterList.parameters?has_content&gt;
*\n
&lt;/#if&gt;
&lt;#list element.parameterList.parameters as parameter&gt;
* @param ${parameter.name} the ${paramNames[parameter.name]}\n
&lt;/#list&gt;
&lt;#if isNotVoid&gt;
*\n
* @return the ${partName}\n
&lt;/#if&gt;
&lt;#if element.throwsList.referenceElements?has_content&gt;
*\n
&lt;/#if&gt;
&lt;#list element.throwsList.referenceElements as exception&gt;
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
&lt;/#list&gt;
*/</VALUE>
</METHOD>
<METHOD>
<KEY>^.*((public\s+static)|(static\s+public))\s+void\s+main\s*\(\s*String\s*(\[\s*\]|\.\.\.)\s+\w+\s*\).+</KEY>
<VALUE>/**\n
* The entry point of application.\n
&lt;#if element.parameterList.parameters?has_content&gt;
*\n
&lt;/#if&gt;
* @param ${element.parameterList.parameters[0].name} the input arguments\n
&lt;#if element.throwsList.referenceElements?has_content&gt;
*\n
&lt;/#if&gt;
&lt;#list element.throwsList.referenceElements as exception&gt;
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
&lt;/#list&gt;
*/</VALUE>
</METHOD>
<METHOD>
<KEY>.+</KEY>
<VALUE>/**\n
* ${name}&lt;#if isNotVoid&gt; ${return}&lt;/#if&gt;.\n
&lt;#if element.typeParameters?has_content&gt; * \n
&lt;/#if&gt;
&lt;#list element.typeParameters as typeParameter&gt;
* @param &lt;${typeParameter.name}&gt; the type parameter\n
&lt;/#list&gt;
&lt;#if element.parameterList.parameters?has_content&gt;
*\n
&lt;/#if&gt;
&lt;#list element.parameterList.parameters as parameter&gt;
* @param ${parameter.name} the ${paramNames[parameter.name]}\n
&lt;/#list&gt;
&lt;#if isNotVoid&gt;
*\n
* @return the ${return}\n
&lt;/#if&gt;
&lt;#if element.throwsList.referenceElements?has_content&gt;
*\n
&lt;/#if&gt;
&lt;#list element.throwsList.referenceElements as exception&gt;
* @throws ${exception.referenceName} the ${exceptionNames[exception.referenceName]}\n
&lt;/#list&gt;
*/</VALUE>
</METHOD>
</METHODS>
<FIELDS>
<FIELD>
<KEY>^.*(public|protected|private)*.+static.*(\w\s\w)+.+</KEY>
<VALUE>/**\n
* The constant ${element.getName()}.\n
*/</VALUE>
</FIELD>
<FIELD>
<KEY>^.*(public|protected|private)*.*(\w\s\w)+.+</KEY>
<VALUE>/**\n
&lt;#if element.parent.isInterface()&gt;
* The constant ${element.getName()}.\n
&lt;#else&gt;
* The ${name}.\n
&lt;/#if&gt; */</VALUE>
</FIELD>
<FIELD>
<KEY>.+</KEY>
<VALUE>/**\n
&lt;#if element.parent.isEnum()&gt;
*${name} ${typeName}.\n
&lt;#else&gt;
* The ${name}.\n
&lt;/#if&gt;*/</VALUE>
</FIELD>
</FIELDS>
</TEMPLATES>
</component>
</project>

View File

@ -1,50 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="spring" />
<option name="name" value="spring" />
<option name="url" value="http://10.1.15.172:8080/nexus/content/groups/public" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="http://10.1.15.172:8080/nexus/content/groups/public" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="central" />
<option name="url" value="http://10.1.15.172:8080/nexus/content/groups/public" />
</remote-repository>
<remote-repository>
<option name="id" value="apache" />
<option name="name" value="apache" />
<option name="url" value="http://10.1.15.172:8080/nexus/content/groups/public" />
</remote-repository>
<remote-repository>
<option name="id" value="LocalMirrorId" />
<option name="name" value="LocalMirrorId" />
<option name="url" value="http://10.1.15.172:8080/nexus/content/groups/public" />
</remote-repository>
<remote-repository>
<option name="id" value="central-repos" />
<option name="name" value="Central Repository" />
<option name="url" value="http://10.1.15.172:8080/nexus/content/groups/public" />
</remote-repository>
<remote-repository>
<option name="id" value="alimaven" />
<option name="name" value="aliyun maven" />
<option name="url" value="http://10.1.15.172:8080/nexus/content/groups/public" />
</remote-repository>
</component>
</project>

View File

@ -1,14 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

View File

@ -1,12 +0,0 @@
N
java:S2864"4Iterate over the "entrySet" instead of the "keySet".(<28><><EFBFBD>q8<71><38><EFBFBD>Ɏ/
<EFBFBD>
java:S1319"mThe return type of this method should be an interface such as "Map" rather than the implementation "HashMap".(<28>ةH8<48><38><EFBFBD>Ɏ/
e java:S112"FDefine and throw a dedicated exception instead of using a generic one.(<28><>Ş<EFBFBD><C59E><EFBFBD><EFBFBD><EFBFBD>8<><38><EFBFBD>Ɏ/
<EFBFBD>
java:S1319"kThe type of the "uri" object should be an interface such as "Map" rather than the implementation "HashMap".(إ<><D8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<><38><EFBFBD>Ɏ/
<EFBFBD>
java:S1130"lRemove the declaration of thrown exception 'java.lang.Exception', as it cannot be thrown from method's body.(<28><>Ş<EFBFBD><C59E><EFBFBD><EFBFBD><EFBFBD>8<><38><EFBFBD>Ɏ/
i
java:S2095"IUse try-with-resources or close this "MongoClient" in a "finally" clause.(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<><38><EFBFBD>Ɏ/

View File

@ -1,9 +0,0 @@
z java:S116"[Rename this field "sniffer_interval" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(<28>ԋ<EFBFBD><D48B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<>ѪɎ/
` java:S112"FDefine and throw a dedicated exception instead of using a generic one.(Ʋ<><C6B2>8<>ѪɎ/
w java:S116"XRename this field "failure_delay" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<>ѪɎ/
C
java:S1604"(Make this anonymous inner class a lambda(<28>8<>ѪɎ/
v java:S116"\Rename this field "max_retry_timeout" to match the regular expression '^[a-z][a-zA-Z0-9]*$'.(<28><><EFBFBD><EFBFBD>8<>ѪɎ/
<EFBFBD>
java:S1130"lRemove the declaration of thrown exception 'java.lang.Exception', as it cannot be thrown from method's body.(Ʋ<><C6B2>8<>ѪɎ/

View File

@ -1,2 +0,0 @@
<EFBFBD> squid:S1697<18>"~Either reverse the equality operator in the "propertiesPathPrefix" null test, or reverse the logical operator that follows it.(̚<><CC9A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<>ۅ<EFBFBD><DB85>.

View File

@ -1,76 +0,0 @@
Y
)src/main/resources/application.properties,0\6\06f65155ec73600b9fc5c4dc2883d4bb84d8e284
i
9src/test/java/site/cnkj/utils/CommonApplicationTests.java,6\f\6f823bd3fbefd4cf49e9d51ea41235329137be8c
7
LICENSE,0\3\0398ccd0f49298b10a3d76a47800d2ebecd49859
:
.gitignore,a\5\a5cc2925ca8258af241be7e5b0381edf30266302
>
.gitattributes,2\4\24139dae656713ba861751fb2c2ac38839349a7a
9
README.md,8/e/8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d
k
;src/main/java/site/cnkj/common/config/AsyncExecutePool.java,4\1\416390ba57649e9f4e6365934e9a6827cca3ffed
p
@src/main/java/site/cnkj/common/config/AsyncThreadPoolConfig.java,8\0\80bf55a45d89443866509f377d2b4f56db7fda1b
t
Dsrc/main/java/site/cnkj/common/config/ElasticsearchClientConfig.java,c/1/c131e8dffaaace66f248f9071023b60be7b277a4
f
6src/main/java/site/cnkj/common/config/RedisConfig.java,2\b\2b5e0787fcb106c7e2c215b9201949810fe97d18
m
=src/main/java/site/cnkj/common/config/RestTemplateConfig.java,f\c\fc37a8cb3cd4e86789b6dcadf3271e6894269266
i
9src/main/java/site/cnkj/common/object/redis/Receiver.java,4\a\4a24c23f6158d7abc5657040e232691adcee44ac
m
=src/main/java/site/cnkj/common/object/servlet/BaseResult.java,1\9\19affac2f7e5749f37c36532ef281eec1befbd05
m
=src/main/java/site/cnkj/common/object/servlet/CommonInfo.java,6\b\6b5bb34dca0a1a09968bad0dc5ab4ad5434df80e
m
=src/main/java/site/cnkj/common/object/servlet/DataResult.java,1\c\1c4b500508bae883bea47d0637c267e8c57d7580
s
Csrc/main/java/site/cnkj/common/object/servlet/ResponseBodyCode.java,b\c\bc46480ac8ea27c54208391c0607483f70591f52
l
<src/main/java/site/cnkj/common/object/ReasonEnumeration.java,6\5\65fb0f3f093182fd2ca42f4eb1116d36adc8a868
h
8src/main/java/site/cnkj/common/service/ActuatorInfo.java,e\7\e7ba402f75a71f1f452cbf16986ed26aa0c6f1b5
h
8src/main/java/site/cnkj/common/utils/data/KafkaUtil.java,7\4\74438aca9f4a48488fe204b00a7429cabb247abb
o
?src/main/java/site/cnkj/common/utils/data/MongoClientsInit.java,4/9/490c965ee8a02ce158895987485283bb4b666ab6
g
7src/main/java/site/cnkj/common/utils/date/DateUtil.java,1\5\157e0e9285b69e300624f35e79300c0ed6098936
g
7src/main/java/site/cnkj/common/utils/file/FileUtil.java,d\f\df021943680d67b4f49e98599f4bb0e86803c590
m
=src/main/java/site/cnkj/common/utils/http/HttpCommonUtil.java,2\1\21fd7f9a07ee140f9ce9ae11bbe161bdd456cbc8
o
?src/main/java/site/cnkj/common/utils/http/RestTemplateUtil.java,7\7\776a6d7b367518db3108c641270f9c6311fa1150
e
5src/main/java/site/cnkj/common/utils/io/CopyUtil.java,1\1\1195786afcb95315b3ec156ea91e7166c2c2cf10
`
0src/main/java/site/cnkj/common/utils/io/DES.java,6\4\644b718a1d63acca44c411c399624e16ce98e11c
g
7src/main/java/site/cnkj/common/utils/io/StringUtil.java,a\4\a43b6e3feeba3336586237a758acfa97b791be5b
k
;src/main/java/site/cnkj/common/utils/logger/LoggerUtil.java,4\f\4ffd3a6de814df96de78c74e6c16f964b4fe9a03
o
?src/main/java/site/cnkj/common/utils/serialize/JacksonUtil.java,8\9\899c5b5653c6a42950622470eb34ab3cd5851009
u
Esrc/main/java/site/cnkj/common/utils/serialize/SoapXmlFormatUtil.java,1\7\1759e0760a24aae1fd0b2b5d7d8622112c621b0e
q
Asrc/main/java/site/cnkj/common/utils/serialize/UrlDecodeUtil.java,1\4\14399913ca07717830f9b08ee87644884fc2959a
q
Asrc/main/java/site/cnkj/common/utils/system/GracefulShutdown.java,f\d\fdadf7a612307c5bb8e90739949b439a1891d886
h
8src/main/java/site/cnkj/common/utils/data/RedisUtil.java,e\0\e00232faab93cb27b9940f780c75123903d70b1c
_
/src/main/java/site/cnkj/data/ProtobufOuter.java,9\f\9f5f569cdcb2cd35235adfef521ccd334b295f84
h
8src/main/java/site/cnkj/data/ProtobufOuterOperation.java,b\2\b28def072d697c755d8047d7c4fc36e92d284e43
;
_config.yml,c\d\cd089ae45ce870c45e434019e8f1ed4f066cd425
l
<src/main/java/site/cnkj/common/config/MongoClientConfig.java,a/7/a7482e3aea73010d528b7d36a1714c752a72fa1d

View File

@ -1,124 +0,0 @@
<?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>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GitSharedSettings">
<option name="FORCE_PUSH_PROHIBITED_PATTERNS">
<list />
</option>
</component>
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@ -1,1180 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AutoImportSettings">
<option name="autoReloadType" value="ALL" />
</component>
<component name="ChangeListManager">
<list default="true" id="8ab3ef3f-5475-495f-a0ee-8551c01ff741" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/.idea/jarRepositories.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/jarRepositories.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/sonarlint/issuestore/4/4/442292b8a7efeabbe4cc176709b833b1792140ec" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/sonarlint/issuestore/8/2/82864735cd8af377e6ad061ae189505a1e3e9d7c" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/sonarlint/issuestore/e/a/eaa75651d9d6785c2bd75843529d61a722450af5" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/sonarlint/issuestore/index.pb" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/sonarlint/issuestore/index.pb" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/io/RSAEncrypt.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/io/RSAEncrypt.java" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Class" />
</list>
</option>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>range</find>
<find>size</find>
<find>redisTemplate.delete</find>
<find>listRemove</find>
<find>public long rightPush</find>
<find>MongoClient</find>
<find>group</find>
<find>get</find>
<find>BOOTSTRAP_SERVERS_CONFIG</find>
<find>----------------------------------------------------</find>
</findStrings>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/config/AsyncExecutePool.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/FileEncryptDecrypt.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/FileUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/HttpCommonUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/RedisUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/config/RedisConfig.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/config/MongodbConfig.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/service/ActuatorInfo.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/SSH2Util.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/KafkaUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/cnkj/site/data/ProtobufOuter.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/StringUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/cnkj/site/data/ProtobufOuterOperation.java" />
<option value="$PROJECT_DIR$/repository/site/cnkj/CommonUtil/maven-metadata-local.xml" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/MongoClientsInit.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/utils/MongodbUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/common/utils/http/HttpCommonUtil.java" />
<option value="$PROJECT_DIR$/src/test/java/site/cnkj/utils/CommonApplicationTests.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/http/RestTemplateUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/file/FileEncryptDecrypt.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/file/FileUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/data/KafkaUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/common/config/RestTemplateConfig.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/common/config/RedisConfig.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/common/service/ActuatorInfo.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/io/CopyUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/io/StringUtil.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/logger/LoggerUtil.java" />
<option value="$PROJECT_DIR$/pom.xml" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/data/MongoClientsInit.java" />
<option value="$PROJECT_DIR$/src/main/java/site/cnkj/common/config/MongoClientConfig.java" />
<option value="$PROJECT_DIR$/README.md" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="MavenProjectNavigator">
<treeState>
<expand>
<path>
<item name="" type="16c1761:MavenProjectsStructure$RootNode" />
<item name="CommonUtil" type="9519ce18:MavenProjectsStructure$ProjectNode" />
</path>
<path>
<item name="" type="16c1761:MavenProjectsStructure$RootNode" />
<item name="CommonUtil" type="9519ce18:MavenProjectsStructure$ProjectNode" />
<item name="Lifecycle" type="58874e2:MavenProjectsStructure$LifecycleNode" />
</path>
</expand>
<select />
</treeState>
</component>
<component name="NodePackageJsonFileManager">
<packageJsonPaths />
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="-8" />
<option name="y" value="-8" />
<option name="width" value="1936" />
<option name="height" value="1056" />
</component>
<component name="ProjectId" id="1rNQooSf82LfOOK4SAsyZj0gAtA" />
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="PackagesPane" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="config" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="object" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="object" type="462c0819:PsiDirectoryNode" />
<item name="redis" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="object" type="462c0819:PsiDirectoryNode" />
<item name="servlet" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="service" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="utils" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="utils" type="462c0819:PsiDirectoryNode" />
<item name="data" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="utils" type="462c0819:PsiDirectoryNode" />
<item name="date" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="utils" type="462c0819:PsiDirectoryNode" />
<item name="file" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="utils" type="462c0819:PsiDirectoryNode" />
<item name="http" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="utils" type="462c0819:PsiDirectoryNode" />
<item name="io" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="utils" type="462c0819:PsiDirectoryNode" />
<item name="logger" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="utils" type="462c0819:PsiDirectoryNode" />
<item name="serialize" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="common" type="462c0819:PsiDirectoryNode" />
<item name="utils" type="462c0819:PsiDirectoryNode" />
<item name="system" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="cnkj" type="462c0819:PsiDirectoryNode" />
<item name="data" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="utils" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="CommonUtil" type="b2602c69:ProjectViewProjectNode" />
<item name="CommonUtil" type="462c0819:PsiDirectoryNode" />
<item name="target" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="AndroidView" />
</panes>
</component>
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent">
<property name="LombokPluginEnabledInProject" value="true" />
<property name="LombokPluginIS_ANNOTATION_PROCESSING_CHECK_Enabled" value="true" />
<property name="LombokPluginIS_BUILDER_Enabled" value="true" />
<property name="LombokPluginIS_CONSTRUCTOR_Enabled" value="true" />
<property name="LombokPluginIS_DELEGATE_Enabled" value="true" />
<property name="LombokPluginIS_LOG_Enabled" value="true" />
<property name="LombokPluginIS_LOMBOK_VERSION_CHECK_Enabled" value="false" />
<property name="LombokPluginIS_MISSING_LOMBOK_CHECK_Enabled" value="true" />
<property name="LombokPluginIS_VAL_Enabled" value="true" />
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="SONARLINT_PRECOMMIT_ANALYSIS" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/../../csgl/hettrmsservice" />
<property name="node.js.detected.package.eslint" value="true" />
<property name="node.js.detected.package.standard" value="true" />
<property name="node.js.path.for.package.eslint" value="project" />
<property name="node.js.path.for.package.standard" value="project" />
<property name="node.js.selected.package.eslint" value="C:\Users\Carol\AppData\Roaming\npm\node_modules\eslint" />
<property name="node.js.selected.package.standard" value="" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="project.structure.last.edited" value="Project" />
<property name="project.structure.proportion" value="0.0" />
<property name="project.structure.side.proportion" value="0.2" />
<property name="settings.editor.selected.configurable" value="reference.settingsdialog.IDE.editor.colors" />
</component>
<component name="RecentsManager">
<key name="CopyFile.RECENT_KEYS">
<recent name="F:\mine\CommonUtil\src\main\java\site\cnkj\common" />
<recent name="F:\mine\CommonUtil\src\main\java" />
<recent name="F:\CommonUtil\repository\site\cnkj\CommonUtil" />
<recent name="F:\CommonUtil\maven" />
</key>
<key name="CopyClassDialog.RECENTS_KEY">
<recent name="site.cnkj.common.config" />
</key>
<key name="MoveFile.RECENT_KEYS">
<recent name="F:\CommonUtil\repository\site\cnkj\CommonUtil\1.1.0" />
<recent name="F:\CommonUtil\repository\site\cnkj\CommonUtil" />
</key>
</component>
<component name="RunManager" selected="Application.CommonApplicationTests">
<configuration name="CommonApplicationTests" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="site.cnkj.utils.CommonApplicationTests" />
<module name="CommonUtil" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="site.cnkj.utils.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="HttpCommonUtil" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="site.cnkj.utils.HttpCommonUtil" />
<module name="CommonUtil" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="site.cnkj.common.utils.data.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="KafkaUtil" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="site.cnkj.utils.KafkaUtil" />
<module name="CommonUtil" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="site.cnkj.common.utils.data.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="SSH2Util" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="site.cnkj.common.utils.http.SSH2Util" />
<module name="CommonUtil" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="site.cnkj.common.utils.data.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<option name="TEST_OBJECT" value="class" />
<option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration default="true" type="TestNG">
<option name="TEST_OBJECT" value="CLASS" />
<option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" />
<properties />
<listeners />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
<list>
<item itemvalue="Application.CommonApplicationTests" />
<item itemvalue="Application.HttpCommonUtil" />
<item itemvalue="Application.KafkaUtil" />
<item itemvalue="Application.SSH2Util" />
</list>
<recent_temporary>
<list>
<item itemvalue="Application.SSH2Util" />
<item itemvalue="Application.KafkaUtil" />
<item itemvalue="Application.HttpCommonUtil" />
<item itemvalue="Application.CommonApplicationTests" />
</list>
</recent_temporary>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="52b7c556-aac6-402c-b840-5f2564f1f5d7" name="Default" comment="" />
<created>1574318981558</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1574318981558</updated>
<workItem from="1574318985781" duration="20983000" />
<workItem from="1574645677739" duration="20147000" />
<workItem from="1574752879588" duration="2458000" />
<workItem from="1574835832018" duration="761000" />
<workItem from="1575510784503" duration="16722000" />
<workItem from="1575597300473" duration="4388000" />
<workItem from="1576052386425" duration="1344000" />
<workItem from="1577177015630" duration="4911000" />
<workItem from="1577415273846" duration="2628000" />
<workItem from="1577437512143" duration="1157000" />
<workItem from="1578970199029" duration="617000" />
<workItem from="1579241019347" duration="2236000" />
<workItem from="1579419449173" duration="2484000" />
<workItem from="1597628550773" duration="1330000" />
<workItem from="1612775343578" duration="692000" />
<workItem from="1612838922198" duration="1250000" />
<workItem from="1615280802811" duration="2696000" />
<workItem from="1615862401748" duration="5071000" />
<workItem from="1616492699296" duration="2945000" />
<workItem from="1616556037817" duration="4640000" />
</task>
<task id="LOCAL-00001" summary="repair some lombok questions">
<created>1574320188766</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1574320188766</updated>
</task>
<task id="LOCAL-00002" summary="SonarLint">
<created>1574321436529</created>
<option name="number" value="00002" />
<option name="presentableId" value="LOCAL-00002" />
<option name="project" value="LOCAL" />
<updated>1574321436529</updated>
</task>
<task id="LOCAL-00003" summary="new info for use it">
<created>1574323845093</created>
<option name="number" value="00003" />
<option name="presentableId" value="LOCAL-00003" />
<option name="project" value="LOCAL" />
<updated>1574323845093</updated>
</task>
<task id="LOCAL-00004" summary="download">
<created>1574324452589</created>
<option name="number" value="00004" />
<option name="presentableId" value="LOCAL-00004" />
<option name="project" value="LOCAL" />
<updated>1574324452589</updated>
</task>
<task id="LOCAL-00005" summary="note">
<created>1574324574660</created>
<option name="number" value="00005" />
<option name="presentableId" value="LOCAL-00005" />
<option name="project" value="LOCAL" />
<updated>1574324574660</updated>
</task>
<task id="LOCAL-00006" summary="Merge branch 'master' of https://github.com/carolcoral/CommonUtil&#10;&#10;# Conflicts:&#10;#&#9;README.md">
<created>1574325130810</created>
<option name="number" value="00006" />
<option name="presentableId" value="LOCAL-00006" />
<option name="project" value="LOCAL" />
<updated>1574325130810</updated>
</task>
<task id="LOCAL-00007" summary="Merge branch 'master' of https://github.com/carolcoral/CommonUtil&#10;&#10;# Conflicts:&#10;#&#9;README.md">
<created>1574325149223</created>
<option name="number" value="00007" />
<option name="presentableId" value="LOCAL-00007" />
<option name="project" value="LOCAL" />
<updated>1574325149223</updated>
</task>
<task id="LOCAL-00008" summary="repair methods`name and result of return in RedisUtil.class">
<created>1574407956134</created>
<option name="number" value="00008" />
<option name="presentableId" value="LOCAL-00008" />
<option name="project" value="LOCAL" />
<updated>1574407956134</updated>
</task>
<task id="LOCAL-00009" summary="pom.xml had change">
<created>1574411837384</created>
<option name="number" value="00009" />
<option name="presentableId" value="LOCAL-00009" />
<option name="project" value="LOCAL" />
<updated>1574411837384</updated>
</task>
<task id="LOCAL-00010" summary="change README">
<created>1574411942406</created>
<option name="number" value="00010" />
<option name="presentableId" value="LOCAL-00010" />
<option name="project" value="LOCAL" />
<updated>1574411942406</updated>
</task>
<task id="LOCAL-00011" summary="new MongoDBUtil">
<created>1574672317445</created>
<option name="number" value="00011" />
<option name="presentableId" value="LOCAL-00011" />
<option name="project" value="LOCAL" />
<updated>1574672317445</updated>
</task>
<task id="LOCAL-00012" summary="1.0.2">
<created>1574672730578</created>
<option name="number" value="00012" />
<option name="presentableId" value="LOCAL-00012" />
<option name="project" value="LOCAL" />
<updated>1574672730578</updated>
</task>
<task id="LOCAL-00013" summary="1.0.2">
<created>1574819212177</created>
<option name="number" value="00013" />
<option name="presentableId" value="LOCAL-00013" />
<option name="project" value="LOCAL" />
<updated>1574819212177</updated>
</task>
<task id="LOCAL-00014" summary="change result for KafkaUtil from &quot;TopicPartition&quot; to &quot;String&quot;">
<created>1574835930667</created>
<option name="number" value="00014" />
<option name="presentableId" value="LOCAL-00014" />
<option name="project" value="LOCAL" />
<updated>1574835930667</updated>
</task>
<task id="LOCAL-00015" summary="add new method to get offset from kafka">
<created>1575513135743</created>
<option name="number" value="00015" />
<option name="presentableId" value="LOCAL-00015" />
<option name="project" value="LOCAL" />
<updated>1575513135743</updated>
</task>
<task id="LOCAL-00016" summary="readme.md">
<created>1576052500071</created>
<option name="number" value="00016" />
<option name="presentableId" value="LOCAL-00016" />
<option name="project" value="LOCAL" />
<updated>1576052500071</updated>
</task>
<task id="LOCAL-00017" summary="readme.md">
<created>1576053081227</created>
<option name="number" value="00017" />
<option name="presentableId" value="LOCAL-00017" />
<option name="project" value="LOCAL" />
<updated>1576053081227</updated>
</task>
<task id="LOCAL-00018" summary="readme.md">
<created>1576053595567</created>
<option name="number" value="00018" />
<option name="presentableId" value="LOCAL-00018" />
<option name="project" value="LOCAL" />
<updated>1576053595567</updated>
</task>
<task id="LOCAL-00019" summary="get offset from kafka by timestamp">
<created>1577179466914</created>
<option name="number" value="00019" />
<option name="presentableId" value="LOCAL-00019" />
<option name="project" value="LOCAL" />
<updated>1577179466914</updated>
</task>
<task id="LOCAL-00020" summary="demo for protobuf operation">
<created>1577438196875</created>
<option name="number" value="00020" />
<option name="presentableId" value="LOCAL-00020" />
<option name="project" value="LOCAL" />
<updated>1577438196875</updated>
</task>
<task id="LOCAL-00021" summary="maven">
<created>1579420465866</created>
<option name="number" value="00021" />
<option name="presentableId" value="LOCAL-00021" />
<option name="project" value="LOCAL" />
<updated>1579420465866</updated>
</task>
<task id="LOCAL-00022" summary="new class for multi mongo-client">
<created>1597628792278</created>
<option name="number" value="00022" />
<option name="presentableId" value="LOCAL-00022" />
<option name="project" value="LOCAL" />
<updated>1597628792278</updated>
</task>
<task id="LOCAL-00023" summary="new class for multi mongo-client">
<created>1597629876924</created>
<option name="number" value="00023" />
<option name="presentableId" value="LOCAL-00023" />
<option name="project" value="LOCAL" />
<updated>1597629876924</updated>
</task>
<task id="LOCAL-00024" summary="change folder and fix some bug">
<created>1612840009845</created>
<option name="number" value="00024" />
<option name="presentableId" value="LOCAL-00024" />
<option name="project" value="LOCAL" />
<updated>1612840009845</updated>
</task>
<task id="LOCAL-00025" summary="change folder and fix some bug">
<created>1612840186807</created>
<option name="number" value="00025" />
<option name="presentableId" value="LOCAL-00025" />
<option name="project" value="LOCAL" />
<updated>1612840186807</updated>
</task>
<task id="LOCAL-00026" summary="change data folder">
<created>1615280926031</created>
<option name="number" value="00026" />
<option name="presentableId" value="LOCAL-00026" />
<option name="project" value="LOCAL" />
<updated>1615280926031</updated>
</task>
<task id="LOCAL-00027" summary="change data folder">
<created>1616493647106</created>
<option name="number" value="00027" />
<option name="presentableId" value="LOCAL-00027" />
<option name="project" value="LOCAL" />
<updated>1616493647106</updated>
</task>
<task id="LOCAL-00028" summary="change MongoClientInit and fix some bug.">
<created>1616568687426</created>
<option name="number" value="00028" />
<option name="presentableId" value="LOCAL-00028" />
<option name="project" value="LOCAL" />
<updated>1616568687426</updated>
</task>
<option name="localTasksCounter" value="29" />
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="99460000" />
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="1936" height="1056" extended-state="6" />
<editor active="true" />
<layout>
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="right" id="RestServices" order="4" />
<window_info anchor="bottom" id="Event Log" order="7" side_tool="true" />
<window_info anchor="right" id="Maven Projects" order="3" weight="0.32995737" />
<window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
<window_info id="Capture Tool" order="2" />
<window_info id="Designer" order="2" />
<window_info anchor="bottom" id="Statistic" order="7" />
<window_info anchor="right" id="Database" order="3" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info id="UI Designer" order="2" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.3991276" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Messages" order="7" weight="0.3293348" />
<window_info anchor="right" id="Palette&#9;" order="3" />
<window_info id="Image Layers" order="2" />
<window_info anchor="bottom" id="Java Enterprise" order="7" />
<window_info anchor="right" id="Capture Analysis" order="3" />
<window_info active="true" anchor="bottom" id="Version Control" order="7" visible="true" weight="0.32606325" />
<window_info anchor="bottom" id="Run" order="2" weight="0.3642312" />
<window_info anchor="bottom" id="Spring" order="7" />
<window_info anchor="bottom" id="Terminal" order="7" weight="0.3293348" />
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.20842217" />
<window_info id="Web" order="2" side_tool="true" />
<window_info anchor="bottom" id="SonarLint" order="7" weight="0.3293348" />
<window_info anchor="right" id="Theme Preview" order="3" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="right" id="Bean Validation" order="3" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="bottom" id="Find" order="1" />
</layout>
<layout-to-restore>
<window_info id="Designer" order="0" />
<window_info anchor="right" id="Palette" order="0" />
<window_info anchor="bottom" id="Spring" order="0" />
<window_info id="Image Layers" order="1" />
<window_info anchor="bottom" id="Run" order="11" weight="0.519084" />
<window_info anchor="bottom" id="Cvs" order="13" weight="0.25" />
<window_info anchor="right" id="Ant Build" order="8" weight="0.25" />
<window_info id="UI Designer" order="2" />
<window_info id="Favorites" order="3" side_tool="true" />
<window_info anchor="bottom" id="Terminal" order="1" />
<window_info id="Capture Tool" order="4" />
<window_info anchor="right" id="Capture Analysis" order="1" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="7" type="SLIDING" weight="0.4" />
<window_info anchor="bottom" id="Event Log" order="2" side_tool="true" />
<window_info anchor="bottom" id="Statistic" order="3" />
<window_info anchor="bottom" id="TODO" order="15" />
<window_info anchor="bottom" id="SonarLint" order="4" weight="0.3293348" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="9" weight="0.25" />
<window_info anchor="bottom" id="Java Enterprise" order="5" />
<window_info anchor="bottom" id="Database Changes" order="6" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="7" visible="true" weight="0.3293348" />
<window_info anchor="right" id="Maven Projects" order="2" weight="0.32995737" />
<window_info active="true" content_ui="combo" id="Project" order="6" visible="true" weight="0.20415778" />
<window_info anchor="bottom" id="Messages" order="8" weight="0.3293348" />
<window_info anchor="right" id="Database" order="3" />
<window_info anchor="bottom" id="Message" order="9" />
<window_info id="Web" order="5" side_tool="true" />
<window_info anchor="right" id="Palette&#9;" order="4" />
<window_info anchor="right" id="Theme Preview" order="5" />
<window_info id="Structure" order="7" side_tool="true" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="14" weight="0.4" />
<window_info anchor="bottom" id="Find" order="10" />
<window_info anchor="right" id="Bean Validation" order="6" />
<window_info anchor="bottom" id="Debug" order="12" weight="0.4" />
</layout-to-restore>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
<option name="oldMeFiltersMigrated" value="true" />
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="repair some lombok questions" />
<MESSAGE value="SonarLint" />
<MESSAGE value="new info for use it" />
<MESSAGE value="download" />
<MESSAGE value="note" />
<MESSAGE value="Merge branch 'master' of https://github.com/carolcoral/CommonUtil&#10;&#10;# Conflicts:&#10;#&#9;README.md" />
<MESSAGE value="repair methods`name and result of return in RedisUtil.class" />
<MESSAGE value="pom.xml had change" />
<MESSAGE value="change README" />
<MESSAGE value="new MongoDBUtil" />
<MESSAGE value="1.0.2" />
<MESSAGE value="change result for KafkaUtil from &quot;TopicPartition&quot; to &quot;String&quot;" />
<MESSAGE value="add new method to get offset from kafka" />
<MESSAGE value="readme.md" />
<MESSAGE value="get offset from kafka by timestamp" />
<MESSAGE value="demo for protobuf operation" />
<MESSAGE value="maven" />
<MESSAGE value="new class for multi mongo-client" />
<MESSAGE value="change folder and fix some bug" />
<MESSAGE value="change data folder" />
<MESSAGE value="change MongoClientInit and fix some bug." />
<option name="LAST_COMMIT_MESSAGE" value="change MongoClientInit and fix some bug." />
<option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/http/SSH2Util.java</url>
<line>153</line>
<option name="timeStamp" value="6" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
<component name="XSLT-Support.FileAssociations.UIState">
<expand />
<select />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/utils/KafkaUtil.java" />
<entry file="jar://C:/Program Files/Java/jdk1.8.0_171/src.zip!/java/util/Map.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="245">
<caret line="295" column="9" selection-start-line="295" selection-start-column="9" selection-end-line="295" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/utils/RedisUtil.java" />
<entry file="file://$PROJECT_DIR$/repository/site/cnkj/CommonUtil/1.1.0/_remote.repositories" />
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/kafka/kafka-clients/1.1.1/kafka-clients-1.1.1-sources.jar!/org/apache/kafka/common/TopicPartition.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="280">
<caret line="29" column="49" selection-start-line="29" selection-start-column="49" selection-end-line="29" selection-end-column="49" />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/apache/kafka/kafka-clients/1.1.1/kafka-clients-1.1.1-sources.jar!/org/apache/kafka/clients/consumer/KafkaConsumer.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="20">
<caret line="1608" column="99" selection-start-line="1608" selection-start-column="99" selection-end-line="1608" selection-end-column="99" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/repository/site/cnkj/CommonUtil/1.1.0/CommonUtil-1.1.0.pom" />
<entry file="file://$PROJECT_DIR$/repository/site/cnkj/CommonUtil/maven-metadata-local.xml" />
<entry file="file://$PROJECT_DIR$/.gitignore">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/utils/MongoClientsInit.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/object/servlet/BaseResult.java">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/serialize/UrlDecodeUtil.java">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/utils/StringUtil.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/utils/config/ElasticsearchConfig.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/utils/LoggerUtil.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/object/redis/Receiver.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="100">
<caret line="5" column="17" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/config/ElasticsearchClientConfig.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1620">
<caret line="105" column="50" selection-start-line="105" selection-start-column="50" selection-end-line="105" selection-end-column="50" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/object/servlet/DataResult.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="140">
<caret line="8" selection-start-line="8" selection-end-line="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/data/RedisUtil.java">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-beans/5.2.8.RELEASE/spring-beans-5.2.8.RELEASE.jar!/org/springframework/beans/factory/xml/XmlBeanFactory.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="140">
<caret line="13" column="11" selection-start-line="13" selection-start-column="11" selection-end-line="13" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/5.2.8.RELEASE/spring-context-5.2.8.RELEASE.jar!/org/springframework/context/support/FileSystemXmlApplicationContext.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="120">
<caret line="13" column="13" selection-start-line="13" selection-start-column="13" selection-end-line="13" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-core/5.2.8.RELEASE/spring-core-5.2.8.RELEASE.jar!/org/springframework/core/io/DefaultResourceLoader.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="720">
<caret line="64" column="20" selection-start-line="64" selection-start-column="20" selection-end-line="64" selection-end-column="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/http/SSH2Util.java" />
<entry file="jar://$MAVEN_REPOSITORY$/org/springframework/spring-context/5.2.8.RELEASE/spring-context-5.2.8.RELEASE-sources.jar!/org/springframework/context/support/FileSystemXmlApplicationContext.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="660">
<caret line="51" column="17" selection-start-line="51" selection-start-column="17" selection-end-line="51" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/mongodb/mongodb-driver/3.8.2/mongodb-driver-3.8.2-sources.jar!/com/mongodb/MongoClientURI.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="235">
<caret line="329" column="39" selection-start-line="329" selection-start-column="39" selection-end-line="329" selection-end-column="39" />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/mongodb/mongodb-driver-legacy/4.0.5/mongodb-driver-legacy-4.0.5-sources.jar!/com/mongodb/MongoClientURI.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-1373">
<caret line="246" column="11" selection-start-line="246" selection-start-column="11" selection-end-line="246" selection-end-column="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/data/ProtobufOuter.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="851">
<caret line="66" column="19" selection-start-line="66" selection-start-column="19" selection-end-line="66" selection-end-column="19" />
<folding>
<element signature="e#2522#2523#0" expanded="true" />
<element signature="e#2560#2561#0" expanded="true" />
<element signature="e#2595#2596#0" expanded="true" />
<element signature="e#2663#2664#0" expanded="true" />
<element signature="e#2778#2779#0" expanded="true" />
<element signature="e#2827#2828#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/data/ProtobufOuterOperation.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-593">
<caret line="16" column="13" selection-start-line="16" selection-start-column="13" selection-end-line="16" selection-end-column="13" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/config/MongodbConfig.java" />
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/data/MongodbUtil.java" />
<entry file="file://$PROJECT_DIR$/src/test/java/site/cnkj/utils/CommonApplicationTests.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="467">
<caret line="139" column="99" lean-forward="true" selection-start-line="132" selection-start-column="12" selection-end-line="139" selection-end-column="99" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/io/DES.java">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/io/RSAEncrypt.java">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/serialize/SoapXmlFormatUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1560">
<caret line="86" column="8" selection-start-line="86" selection-start-column="8" selection-end-line="86" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/http/HttpCommonUtil.java">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/config/AsyncExecutePool.java">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/config/AsyncThreadPoolConfig.java">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/http/RestTemplateUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="140">
<caret line="14" column="12" selection-start-line="14" selection-start-column="12" selection-end-line="14" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/file/FileEncryptDecrypt.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="820">
<caret line="62" column="17" selection-start-line="62" selection-start-column="17" selection-end-line="62" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/file/FileUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1740">
<caret line="100" column="52" selection-start-line="100" selection-start-column="52" selection-end-line="100" selection-end-column="52" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/data/KafkaUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="40">
<caret line="2" column="39" selection-start-line="2" selection-start-column="39" selection-end-line="2" selection-end-column="39" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/config/RestTemplateConfig.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="320">
<caret line="16" selection-start-line="16" selection-end-line="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/config/RedisConfig.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1500">
<caret line="90" selection-start-line="90" selection-end-line="90" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/service/ActuatorInfo.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="120">
<caret line="17" column="10" selection-start-line="17" selection-start-column="10" selection-end-line="17" selection-end-column="10" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/io/CopyUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="34" selection-start-column="34" selection-end-column="34" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/io/StringUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="220">
<caret line="11" column="35" selection-start-line="11" selection-start-column="35" selection-end-line="11" selection-end-column="35" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/logger/LoggerUtil.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="31" column="5" selection-start-line="31" selection-start-column="5" selection-end-line="31" selection-end-column="5" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pom.xml">
<provider editor-type-id="MavenHelperPluginDependencyAnalyzer" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="180">
<caret line="9" column="18" selection-start-line="9" selection-start-column="18" selection-end-line="9" selection-end-column="18" />
<folding>
<element signature="n#build#0;n#project#0;n#!!top" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/utils/data/MongoClientsInit.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="551">
<caret line="37" column="42" lean-forward="true" selection-start-line="37" selection-start-column="42" selection-end-line="37" selection-end-column="42" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/site/cnkj/common/config/MongoClientConfig.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="506">
<caret line="48" column="38" lean-forward="true" selection-start-line="48" selection-start-column="38" selection-end-line="48" selection-end-column="38" />
<folding>
<element signature="imports" expanded="true" />
<element signature="e#985#986#0" expanded="true" />
<element signature="e#1082#1083#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/README.md">
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
<state split_layout="FIRST">
<first_editor relative-caret-position="460">
<caret line="23" column="43" lean-forward="true" selection-start-line="23" selection-start-column="43" selection-end-line="23" selection-end-column="43" />
</first_editor>
<second_editor />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
<component name="mavenExecuteGoalHistory">
<option value="" />
</component>
</project>

View File

@ -9,15 +9,17 @@
* [CommonUtil-sources.jar](https://github.com/carolcoral/CommonUtil/releases/download/2.0.2/CommonUtil-2.0.2-sources.jar)
## Log
> `2021年3月24日 11:24:53` fix some bugs and change mongoClient init. [Use MongoClientInit](https://github.com/carolcoral/CommonUtil/wiki/MongoClientInit).
> `2021-10-29 13:51:03` add and fix some methods.Update version to 2.1.0.
> `2021年2月9日 11:09:13` change folder and fix some bug.
> `2021-3-24 11:24:53` fix some bugs and change mongoClient init. [Use MongoClientInit](https://github.com/carolcoral/CommonUtil/wiki/MongoClientInit).
> `2020年8月20日 16:49:23` new class [MongoClientsInit](https://github.com/carolcoral/CommonUtil/blob/master/src/main/java/site/cnkj/utils/MongoClientsInit.java) for create muti mongoClient.More info to see [How to use MongoClientsInit](https://carolcoral.github.io/Article/JAVA/Java%E6%9E%84%E5%BB%BA%E5%A4%9Amongo%E6%95%B0%E6%8D%AE%E6%BA%90%E5%AE%A2%E6%88%B7%E7%AB%AF)
> `2021-2-9 11:09:13` change folder and fix some bug.
> `2020年7月21日 11:20:14` fix some expire bug from [RedisUtil](https://github.com/carolcoral/CommonUtil/blob/master/src/main/java/site/cnkj/utils/RedisUtil.java).
> `2020-8-20 16:49:23` new class [MongoClientsInit](https://github.com/carolcoral/CommonUtil/blob/master/src/main/java/site/cnkj/utils/MongoClientsInit.java) for create muti mongoClient.More info to see [How to use MongoClientsInit](https://carolcoral.github.io/Article/JAVA/Java%E6%9E%84%E5%BB%BA%E5%A4%9Amongo%E6%95%B0%E6%8D%AE%E6%BA%90%E5%AE%A2%E6%88%B7%E7%AB%AF)
> `2020年7月20日 14:17:00` New date function `String formatDateByReg(String date_format, int parseInt)` for format date by The date-format [DateUtil](https://github.com/carolcoral/CommonUtil/blob/master/src/main/java/site/cnkj/utils/DateUtil.java).For example like this:
> `2020-7-21 11:20:14` fix some expire bug from [RedisUtil](https://github.com/carolcoral/CommonUtil/blob/master/src/main/java/site/cnkj/utils/RedisUtil.java).
> `2020-7-20 14:17:00` New date function `String formatDateByReg(String date_format, int parseInt)` for format date by The date-format [DateUtil](https://github.com/carolcoral/CommonUtil/blob/master/src/main/java/site/cnkj/utils/DateUtil.java).For example like this:
```java
public static void main(String[] args) {
@ -50,7 +52,7 @@ current date_format is: YYYY-MM-dd HH:mm:ss
current format result is:2020-07-20 14:15:08
```
> `2019年12月27日 17:20:34` Demo to show how to operation Protobuf in java.[Java中使用ProtoBuf数据](https://github.com/carolcoral/CommonUtil/wiki/Java中使用ProtoBuf数据)
> `2019-12-27 17:20:34` Demo to show how to operation Protobuf in java.[Java中使用ProtoBuf数据](https://github.com/carolcoral/CommonUtil/wiki/Java中使用ProtoBuf数据)
> `2019-12-05 14:33:23` New class for remotely connect to the server and execute the script.[SSH2Util](https://github.com/carolcoral/CommonUtil/blob/master/src/main/java/site/cnkj/utils/SSH2Util.java)

View File

@ -7,7 +7,7 @@
<groupId>site.cnkj</groupId>
<artifactId>CommonUtil</artifactId>
<packaging>jar</packaging>
<version>2.0.2</version>
<version>2.1.0</version>
<parent>
<groupId>org.springframework.boot</groupId>

View File

@ -12,7 +12,7 @@ import org.springframework.data.redis.listener.PatternTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.data.redis.listener.adapter.MessageListenerAdapter;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import site.cnkj.common.object.redis.Receiver;
import site.cnkj.common.object.Receiver;
import site.cnkj.common.utils.data.RedisUtil;
/**

View File

@ -0,0 +1,16 @@
package site.cnkj.common.object;
import lombok.Data;
import java.io.Serializable;
/**
* Created by rx on 2018/9/17.
*/
@Data
public class BaseResult implements Serializable {
private int code;
private String desc;
}

View File

@ -1,87 +0,0 @@
package site.cnkj.common.object;
import java.util.HashMap;
/*
* @author LXW
* @create 2020/4/21 11:16
* @Description 异常原因枚举值
*/
public class ReasonEnumeration {
public static HashMap<String, String> reasonEnumeration = new HashMap<>();
public static final class CODE{
public static final class Header{
public static final String IMEI = "100001";
public static final String IMSI = "100002";
public static final String IDFA = "100003";
public static final String OAID = "100004";
public static final String HWID = "100005";
public static final String UID = "100006";
}
/**
* params
*/
public static final class Params{
public static final String contentId = "200001";
public static final String marketingId = "200002";
public static final String songListId = "200003";
public static final String songId = "200004";
public static final String songName = "200005";
public static final String contentIdRange = "200006";
public static final String rateLevelRange = "200007";
public static final String isOnlineRange = "200008";
public static final String beginTime = "200009";
public static final String logId = "200010";
public static final String videoIdMvIdConcertId = "200011";
public static final String rateLevel = "200012";
public static final String vmsParamsE = "200013";
public static final String vmsParamsERange = "200014";
public static final String codeRange = "200015";
public static final String requestTimeRange = "200016";
public static final String requestTime = "200017";
public static final String resourceTypeRange = "200018";
}
/**
* RequestParams
*/
public static final class RequestParams{}
/**
* ResponseBody
*/
public static final class ResponseBody{}
}
static {
reasonEnumeration.put(CODE.Header.IMEI, "IMEI的值不符合规范数据丢弃");
reasonEnumeration.put(CODE.Header.IMSI, "IMSI的值不符合规范数据丢弃");
reasonEnumeration.put(CODE.Header.IDFA, "IDFA的值长度不符合规范数据丢弃");
reasonEnumeration.put(CODE.Header.OAID, "OAID的值不符合规范数据丢弃");
reasonEnumeration.put(CODE.Header.HWID, "HWID的值不符合规范数据丢弃");
reasonEnumeration.put(CODE.Header.UID, "UID的值等于15586008224920247234882,UID被强制转换成空值");
reasonEnumeration.put(CODE.Params.contentId, "params.contentId字段不存在或值为空数据丢弃");
reasonEnumeration.put(CODE.Params.marketingId, "params.marketingId字段不存在数据丢弃");
reasonEnumeration.put(CODE.Params.songListId, "params.songListId字段不存在设置默认值为空值");
reasonEnumeration.put(CODE.Params.songId, "params.songId字段不存在设置默认值为空值");
reasonEnumeration.put(CODE.Params.songName, "params.songName字段不存在数据丢弃");
reasonEnumeration.put(CODE.Params.contentIdRange, "params.contentId字段值不在范围内数据丢弃");
reasonEnumeration.put(CODE.Params.rateLevel, "params.rateLevel字段不存在或值为空");
reasonEnumeration.put(CODE.Params.rateLevelRange, "params.rateLevel字段不在范围内");
reasonEnumeration.put(CODE.Params.isOnlineRange, "params.isOnline字段不存在或不在范围内params.isOnline设置默认值");
reasonEnumeration.put(CODE.Params.beginTime, "params.beginTime字段不存在或值为空数据丢弃");
reasonEnumeration.put(CODE.Params.logId, "params.logId字段不存在或值为空数据丢弃");
reasonEnumeration.put(CODE.Params.videoIdMvIdConcertId, "params中不存在videoId、mvId、concertId或对应的值为空数据丢弃");
reasonEnumeration.put(CODE.Params.vmsParamsE, "params.E字段参位值数量不正确");
reasonEnumeration.put(CODE.Params.vmsParamsERange, "params.E字段参位值不在范围内");
reasonEnumeration.put(CODE.Params.codeRange, "params.code字段不存在或值为空");
reasonEnumeration.put(CODE.Params.requestTimeRange, "params.requestTime字段不符合时间戳格式");
reasonEnumeration.put(CODE.Params.requestTime, "params.requestTime字段不存在或值为空");
reasonEnumeration.put(CODE.Params.resourceTypeRange, "params.resourceType字段值不在范围内");
}
}

View File

@ -1,4 +1,4 @@
package site.cnkj.common.object.redis;
package site.cnkj.common.object;
/*
* @version 1.0 created by LXW on 2019/1/9 16:17

View File

@ -0,0 +1,27 @@
package site.cnkj.common.object;
import lombok.Data;
import lombok.EqualsAndHashCode;
import site.cnkj.common.enumeration.ResponseStatusEnum;
/*
* @version 1.0 created by LXW on 2019/7/22 11:04
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class ResponseDataResult<T> extends BaseResult {
private T data;
public ResponseDataResult(ResponseStatusEnum responseStatusEnum) {
this.setCode(responseStatusEnum.getCode());
this.setDesc(responseStatusEnum.getDesc());
}
public ResponseDataResult(T data) {
this.data = data;
}
public ResponseDataResult() {
}
}

View File

@ -1,14 +0,0 @@
package site.cnkj.common.object.servlet;
import lombok.Data;
/**
* Created by rx on 2018/9/17.
*/
@Data
public class BaseResult {
private String code;
private String desc;
}

View File

@ -1,45 +0,0 @@
package site.cnkj.common.object.servlet;
/*
* @version 1.0 created by LXW on 2019/3/12 14:17
*/
@Deprecated
public class CommonInfo {
/**
* @Desc ResponseCode for servlet request callback
* @Version delete from 0.3.5 version and replace by <url>cn.migu.log.common.object.servlet.ResponseBodyCode</url>
*/
@Deprecated
public static class ResponseCode{
public static final String SUCCESS = "000000";//成功
public static final String FAILED = "100000";//结果异常
public static final String WARNING = "200000";//警告
public static final String ERROR = "300000";//程序故障
public static final String TIMEOUT = "999999"; //登录过期
public class Desc{
public static final String SUCCESS = "SUCCESS";//成功
public static final String FAILED = "FAILED";//结果异常
public static final String WARNING = "WARNING";//警告
public static final String ERROR = "ERROR";//程序故障
public static final String NULL_URL = "请求URL不存在";
public static final String EXIST_ERROR = "该条目已存在";
public static final String NOT_EXIST_ERROR = "该条目不存在";
public static final String NOT_NUMERIC = "分隔符数量不是正整数";
public static final String OUT_RANGE_ERROR = "分隔符数量过长";
public static final String NOT_EQUAL_ERROR = "分隔符数量不一致";
public static final String NULL_PARAM = "必填字段不存在";
public static final String PARAM_ERROR = "字段值错误";
public static final String ITEM_REFERENCE = "该条目已被引用";
public static final String NOT_REFRESH_ITEM = "存在未刷新的条目";
public static final String OFFLINE_MACHINE = "机器已下线";
public static final String NOT_OFFLINE_ITEM = "该条目未下线";
public static final String RUNNING_REFRESH = "上次刷新未完成";
public static final String REFRESH_TIMEOUT = "刷新超时";
public static final String SCRIPT_ERROR = "请求脚本执行失败";
public static final String ERROR_CRON = "cron表达式错误";
}
}
}

View File

@ -1,18 +0,0 @@
package site.cnkj.common.object.servlet;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
/*
* @version 1.0 created by LXW on 2019/7/22 11:04
*/
@Data
public class DataResult extends BaseResult {
private Object data;
@Override
public String toString() {
return JSONObject.toJSONString(this);
}
}

View File

@ -1,23 +0,0 @@
package site.cnkj.common.object.servlet;
/*
* @author LXW
* @create 2021/2/8 15:04
* @Description
*/
public enum ResponseBodyCode {
SUCCESS("000000"), FAILED("100000"), WARNING("200000"), ERROR("300000");
private String code;
ResponseBodyCode(String code){
this.code = code;
}
public String getCode(){
return this.code;
}
}

View File

@ -0,0 +1,137 @@
package site.cnkj.common.utils.bean;
import org.springframework.util.ReflectionUtils;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class ReflectionUtil extends ReflectionUtils {
/**
* 类上是否包含注解
*
* @date 2021-08-10 15:30:34
* @author liuzhengyang
* @param clazz 类Class
* @param aClazz 注解Class
* @return boolean
*/
public static boolean containsAnnotation(Class<?> clazz, Class<? extends Annotation> aClazz) {
Annotation[] annotations = clazz.getAnnotations();
for (Annotation annotation : annotations) {
if (annotation.annotationType() == aClazz) {
return true;
}
}
return false;
}
public static Type getGenericParameter(Class<?> clazz) {
while(clazz != null && !(clazz.getGenericSuperclass() instanceof ParameterizedType)) {
clazz = clazz.getSuperclass();
}
if (clazz != null) {
return ((ParameterizedType)clazz.getGenericSuperclass()).getActualTypeArguments()[0];
} else {
throw new IllegalArgumentException("Invalid argument, argument's super class must specify type parameters");
}
}
public static Class getSuperClassGenericType(final Class clazz, final int index) {
Type genType = clazz.getGenericSuperclass();
for(Class superClass = clazz; !(genType instanceof ParameterizedType); genType = superClass.getGenericSuperclass()) {
if (superClass == Object.class) {
return Object.class;
}
superClass = superClass.getSuperclass();
}
Type[] params = ((ParameterizedType)genType).getActualTypeArguments();
if (index < params.length && index >= 0) {
if (!(params[index] instanceof Class) && params[index] instanceof ParameterizedType) {
ParameterizedType pType = (ParameterizedType)params[index];
return (Class)pType.getRawType();
} else {
return (Class)params[index];
}
} else {
return Object.class;
}
}
public static Class getSuperClassGenericTypeCollectionGenType(final Class clazz, final int index, final int collectionGenindex) {
Type genType = clazz.getGenericSuperclass();
if (!(genType instanceof ParameterizedType)) {
return Object.class;
} else {
Type[] params = ((ParameterizedType)genType).getActualTypeArguments();
if (index < params.length && index >= 0) {
if (!(params[index] instanceof Class) && params[index] instanceof ParameterizedType) {
ParameterizedType pType = (ParameterizedType)params[index];
return (Class)pType.getActualTypeArguments()[collectionGenindex];
} else {
return (Class)params[index];
}
} else {
return Object.class;
}
}
}
public static Object newInstance(final Class clazz, final int index) {
try {
return getSuperClassGenericType(clazz, index).newInstance();
} catch (IllegalAccessException | InstantiationException var3) {
var3.printStackTrace();
}
return null;
}
public static List<Field> getAllField(Object obj) {
List<Field> fieldList = new ArrayList();
for(Class tempClass = obj.getClass(); tempClass != null; tempClass = tempClass.getSuperclass()) {
fieldList.addAll(Arrays.asList(tempClass.getDeclaredFields()));
}
return fieldList;
}
public static List<Field> getAllFieldByClazz(Class clazz) {
List<Field> fieldList = new ArrayList();
for(Class tempClass = clazz; tempClass != null; tempClass = tempClass.getSuperclass()) {
fieldList.addAll(Arrays.asList(tempClass.getDeclaredFields()));
}
return fieldList;
}
public static Field findFieldForAll(Object obj, String name) {
List<Field> fieldList = getAllField(obj);
Iterator var3 = fieldList.iterator();
Field f;
do {
if (!var3.hasNext()) {
return null;
}
f = (Field)var3.next();
} while(!f.getName().equals(name));
return f;
}
public static Object getFieldValueForAll(Object obj, String name) {
Field f = findFieldForAll(obj, name);
f.setAccessible(true);
try {
return f.get(obj);
} catch (Exception var4) {
var4.printStackTrace();
}
return null;
}
}

View File

@ -0,0 +1,167 @@
package site.cnkj.common.utils.data;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.StringJoiner;
public class GlobalId {
private static final Logger log = LoggerFactory.getLogger(GlobalId.class);
private long twepoch = 1420041600000L;
private static long workerIdBits = 5L;
private static long datacenterIdBits = 5L;
private static long maxWorkerId;
private static long maxDatacenterId;
private long sequenceBits = 12L;
private long workerIdShift;
private long datacenterIdShift;
private long timestampLeftShift;
private long sequenceMask;
private long workerId;
private long datacenterId;
private long sequence;
private long lastTimestamp;
private static GlobalId defaultGlobalId;
public GlobalId() {
this.workerIdShift = this.sequenceBits;
this.sequenceMask = ~(-1L << (int)this.sequenceBits);
this.sequence = 0L;
this.lastTimestamp = -1L;
this.workerId = 0L;
this.datacenterId = 0L;
this.build();
}
public static long getDatacenterIdByIp(String ipAddr) {
byte[] mac = (ipAddr + UUIDUtil.longUuid()).getBytes();
long id = (255L & (long)mac[mac.length - 2] | 65280L & (long)mac[mac.length - 1] << 8) >> 6;
id %= maxDatacenterId + 1L;
return id;
}
public static long getDatacenterIdByIp() {
return getDatacenterIdByIp(getIpAddress());
}
public static String getIpAddress() {
String ipAddr = "0.0.0.0";
try {
InetAddress ip = InetAddress.getLocalHost();
ipAddr = ip.getHostAddress();
} catch (Exception var2) {
log.warn("获取ip错误");
}
return ipAddr;
}
public static long getMaxWorkerId(long datacenterId) {
StringBuilder mpid = new StringBuilder();
mpid.append(datacenterId);
String mac = getMac();
mpid.append(StringUtils.isEmpty(mac) ? UUIDUtil.longUuid() : mac);
mpid.append(UUIDUtil.longUuid());
return (long)(mpid.toString().hashCode() & '\uffff') % (maxWorkerId + 1L);
}
public static String getMac() {
try {
InetAddress ip = InetAddress.getLocalHost();
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
if (network == null) {
return "";
}
byte[] mac = network.getHardwareAddress();
if (null != mac) {
StringJoiner j = new StringJoiner("-");
for(int i = 0; i < mac.length; ++i) {
j.add(String.format("%02X", mac[i]));
}
return j.toString();
}
} catch (Exception var5) {
log.warn(" get Mac: " + var5.getMessage());
}
return "";
}
public GlobalId(long workerId, long datacenterId) {
this.workerIdShift = this.sequenceBits;
this.sequenceMask = ~(-1L << (int)this.sequenceBits);
this.sequence = 0L;
this.lastTimestamp = -1L;
this.build();
if (workerId <= maxWorkerId && workerId >= 0L) {
if (datacenterId <= maxDatacenterId && datacenterId >= 0L) {
this.workerId = workerId;
this.datacenterId = datacenterId;
} else {
throw new IllegalArgumentException(String.format("datacenter Id can't be greater than %d or less than 0", maxDatacenterId));
}
} else {
throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", maxWorkerId));
}
}
private void build() {
this.datacenterIdShift = this.sequenceBits + workerIdBits;
this.timestampLeftShift = this.sequenceBits + workerIdBits + datacenterIdBits;
}
public synchronized long nextId() {
long timestamp = this.timeGen();
if (timestamp < this.lastTimestamp) {
throw new RuntimeException(String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", this.lastTimestamp - timestamp));
} else {
if (this.lastTimestamp == timestamp) {
this.sequence = this.sequence + 1L & this.sequenceMask;
if (this.sequence == 0L) {
timestamp = this.tilNextMillis(this.lastTimestamp);
}
} else {
this.sequence = 0L;
}
this.lastTimestamp = timestamp;
return timestamp - this.twepoch << (int)this.timestampLeftShift | this.datacenterId << (int)this.datacenterIdShift | this.workerId << (int)this.workerIdShift | this.sequence;
}
}
protected long tilNextMillis(long lastTimestamp) {
long timestamp;
for(timestamp = this.timeGen(); timestamp <= lastTimestamp; timestamp = this.timeGen()) {
}
return timestamp;
}
protected long timeGen() {
return System.currentTimeMillis();
}
public static GlobalId initialDefault(long datacenterId, long workerId) {
defaultGlobalId = new GlobalId(workerId, datacenterId);
return defaultGlobalId;
}
public static long generateNextId() {
return defaultGlobalId.nextId();
}
static {
maxWorkerId = ~(-1L << (int)workerIdBits);
maxDatacenterId = ~(-1L << (int)datacenterIdBits);
defaultGlobalId = new GlobalId(getMaxWorkerId(getDatacenterIdByIp()), getDatacenterIdByIp());
}
}

View File

@ -1,13 +1,26 @@
package site.cnkj.common.utils.data;
import com.alibaba.fastjson.JSONObject;
import com.sun.corba.se.spi.orbutil.threadpool.NoSuchWorkQueueException;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.apache.kafka.clients.consumer.ConsumerRecords;
import org.apache.kafka.clients.consumer.KafkaConsumer;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.kafka.common.KafkaException;
import org.apache.kafka.common.PartitionInfo;
import org.apache.kafka.common.TopicPartition;
import org.apache.kafka.common.errors.AuthorizationException;
import org.apache.kafka.common.errors.IllegalSaslStateException;
import org.apache.kafka.common.errors.OutOfOrderSequenceException;
import org.apache.kafka.common.errors.ProducerFencedException;
import site.cnkj.common.utils.http.HttpCommonUtil;
import site.cnkj.common.utils.logger.LoggerUtil;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.BlockingQueue;
import java.util.stream.Collectors;
/*
* @version 1.0 created by LXW on 2019/11/20 10:20
@ -20,6 +33,52 @@ public class KafkaUtil {
private static final String VALUE_DESERIALIZER = "value.deserializer";
private static final String STRING_DESERIALIZER = "org.apache.kafka.common.serialization.StringDeserializer";
public static boolean producer(Map<String, Object> properties, Object source, String... topics){
KafkaProducer<Object, Object> producer = new KafkaProducer<>(properties);
try {
producer.beginTransaction();
for (String topic : topics) {
ProducerRecord record = new ProducerRecord(topic, source);
producer.send(record);
}
producer.commitTransaction();
} catch (ProducerFencedException | OutOfOrderSequenceException | AuthorizationException e) {
// We can't recover from these exceptions, so our only option is to close the producer and exit.
producer.close();
} catch (KafkaException e) {
// For all other exceptions, just abort the transaction and try again.
producer.abortTransaction();
}
producer.close();
return true;
}
public static void consumer(Map<String, Object> properties, Map<String, ? extends Queue<Object>> sources, long timeout, String... topics) {
List<String> collect = Arrays.stream(topics).collect(Collectors.toList());
for (String topic : collect) {
if (!sources.containsKey(topic)){
throw new NullPointerException("current topic is not exists.topic is: " + topic);
}
}
//构建消费者客户端
KafkaConsumer<String, Object> consumer = new KafkaConsumer<>(properties);
//填充消费监听topic
consumer.subscribe(collect);
while (true){
//消费数据
ConsumerRecords<String, Object> records = consumer.poll(Duration.ofMillis(timeout));
//数据放入队列中
for (ConsumerRecord<String, Object> record : records) {
String topic = record.topic();
Object value = record.value();
boolean offer = sources.get(topic).offer(value);
if (Boolean.FALSE.equals(offer)){
throw new IllegalSaslStateException("current queue size is max.");
}
}
}
}
/**
* 获取当前topic下的全部分区的偏移量信息

View File

@ -0,0 +1,64 @@
package site.cnkj.common.utils.data;
import org.apache.commons.codec.binary.Base64;
public class UUIDUtil {
public UUIDUtil() {
}
public static String longUuid() {
java.util.UUID uuid = java.util.UUID.randomUUID();
return uuid.toString().replace("-", "");
}
public static String shortUuid() {
java.util.UUID uuid = java.util.UUID.randomUUID();
return compressedUUID(uuid);
}
private static String compressedUUID(java.util.UUID uuid) {
byte[] byUuid = new byte[16];
long least = uuid.getLeastSignificantBits();
long most = uuid.getMostSignificantBits();
long2bytes(most, byUuid, 0);
long2bytes(least, byUuid, 8);
String compressUUID = Base64.encodeBase64URLSafeString(byUuid);
return compressUUID;
}
private static void long2bytes(long value, byte[] bytes, int offset) {
for(int i = 7; i > -1; --i) {
bytes[offset++] = (byte)((int)(value >> 8 * i & 255L));
}
}
public static String longUuid2short(String longUuid) {
java.util.UUID uuid = java.util.UUID.fromString(longUuid);
return compressedUUID(uuid);
}
public static String shortUuid2long(String shortUuid) {
if (shortUuid.length() != 22) {
throw new IllegalArgumentException("Invalid uuid!");
} else {
byte[] byUuid = Base64.decodeBase64(shortUuid + "==");
long most = bytes2long(byUuid, 0);
long least = bytes2long(byUuid, 8);
java.util.UUID uuid = new java.util.UUID(most, least);
return uuid.toString();
}
}
private static long bytes2long(byte[] bytes, int offset) {
long value = 0L;
for(int i = 7; i > -1; --i) {
value |= (long)((bytes[offset++] & 255) << 8 * i);
}
return value;
}
}

View File

@ -5,12 +5,18 @@ import org.apache.commons.lang.StringUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.TimeZone;
/*
* @version 1.0 created by LXW on 2018/11/8 16:11
*/
public final class DateUtil {
public class DateUtil {
public static enum FORMAT_ENUM{
BASETIME_yyyy("yyyy"),
@ -631,41 +637,39 @@ public final class DateUtil {
* @param inputFormat 输入日期格式
* @param outputFormat 输出日期格式
* @return 月份区间集合
* @throws Exception e
*/
public static List<String> computerMonth(String startMonth, String endMonth, String inputFormat, String outputFormat) {
List<String> months = new ArrayList<>();
try {
Long startTimestamp = translateDateToTimestamp(startMonth, inputFormat);
Calendar startDate = Calendar.getInstance();
startDate.setTimeInMillis(startTimestamp);
int year = startDate.get(Calendar.YEAR);
int month = startDate.get(Calendar.MONTH) + 1;
Long endTimestamp = translateDateToTimestamp(endMonth, inputFormat);
long currentTimestamp = 0L;
Calendar calendar = Calendar.getInstance();
calendar.clear();
while (true){
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1);
currentTimestamp = calendar.getTimeInMillis();
if (currentTimestamp > endTimestamp){
break;
}
months.add(translateTimeToDate(currentTimestamp, outputFormat));
month = month + 1;
if (month > 12){
year = year + 1;
month = 1;
}
Long startTimestamp = translateDateToTimestamp(startMonth, inputFormat);
Long endTimestamp = translateDateToTimestamp(endMonth, inputFormat);
if (null == startTimestamp || null == endTimestamp){
throw new NullPointerException("one of startMonth or endMonth parsed resulr is null.");
}
Calendar startDate = Calendar.getInstance();
startDate.setTimeInMillis(startTimestamp);
int year = startDate.get(Calendar.YEAR);
int month = startDate.get(Calendar.MONTH) + 1;
long currentTimestamp;
Calendar calendar = Calendar.getInstance();
calendar.clear();
while (true){
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1);
currentTimestamp = calendar.getTimeInMillis();
if (currentTimestamp > endTimestamp){
break;
}
months.add(translateTimeToDate(currentTimestamp, outputFormat));
month = month + 1;
if (month > 12){
year = year + 1;
month = 1;
}
}catch (NullPointerException e){
e.printStackTrace();
}
return months;
}
/**
/**
* 计算两个日期之间的天数不包含结束日期当天.
* 如果结束日期小于开始日期则返回负数天数.
*
@ -762,4 +766,5 @@ public final class DateUtil {
return checkDateInRange(format, rangeDate, judgeDate, checkDate);
}
}
}

View File

@ -1,400 +1,255 @@
package site.cnkj.common.utils.logger;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import lombok.Data;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.slf4j.MDC;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Component;
import site.cnkj.common.object.ReasonEnumeration;
import site.cnkj.common.utils.bean.ReflectionUtil;
import site.cnkj.common.utils.data.GlobalId;
import site.cnkj.common.utils.date.DateUtil;
import site.cnkj.common.utils.http.HttpCommonUtil;
import site.cnkj.common.utils.io.StringUtil;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.reflect.Field;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.Map;
/*
* @version 1.0 created by LXW on 2019/4/1 9:13
*/
@Deprecated
@Component
public class LoggerUtil {
@Value("${spring.application.name}")
private String serviceName;//服务名
private static final Logger log = LoggerFactory.getLogger(LoggerUtil.class);
private static final Logger LOGGER = LoggerFactory.getLogger(LoggerUtil.class);
enum Level{
INFO("INFO"),
WARN("WARN"),
ERROR("ERROR"),
DEBUG("DEBUG");
public static class Level{
public static final String INFO = "INFO";
public static final String WARN = "WARN";
public static final String ERROR = "ERROR";
public static final String DEBUG = "DEBUG";
private final String value;
Level(String value){
this.value = value;
}
}
public static class Status{
public static final String SUCCESS = "000000";//成功
private static final String HOST_NAME = getHostName();
public static final String FAILED = "100000";//执行失败
public static final String FAILED_INSERTMD5 = "100001";//插入流水号失败
public static final String FAILED_VERIFYSEPARATOR = "100002";//校验分隔符数量失败
public static final String FAILED_INCLUDDIRTYDATA = "100003";//校验脏数据失败
public static final String FAILED_ANALYZESOURCE = "100004";//校验数据失败
public static final String ERROR = "200000";//错误
public static final String DEBUG = "300000";//调试开发
public static final String WARN = "400000";//警告
public static final String WARN_SOURCE = "400001";//警告,针对异常数据情况
}
public static class Type{
public static final String ERROR_MESSAGE = "error_message";
public static final String SCHEDULE = "schedule";
public static final String BUSINESS = "business";
private static String getHostName(){
InetAddress address = null;
try {
address = InetAddress.getLocalHost();
return address.getHostName();
} catch (UnknownHostException e) {
e.printStackTrace();
}
return null;
}
/**
* 数据处理方式枚举值
* 格式化Exception为String
* @param e Exception
* @return e.toString
*/
public static class HandleEnumeration{
public static final String discard = "0";//丢弃
public static final String replicate = "1";//复制
private static String formatException(Exception e){
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw, true));
String str = sw.toString();
return StringEscapeUtils.escapeJava(str);
}
@Data
public static class MonitorEntity {
private String hostName = HttpCommonUtil.getLocalHostName();//机器名
private String timestamp = DateUtil.translateTimeToDate(DateUtil.getCurrentTime(), DateUtil.FORMAT_ENUM.FULLTIMEBY_yMdHmsS.getValue());//时间
private String time = DateUtil.translateTimeToDate(DateUtil.getCurrentTime(), DateUtil.FORMAT_ENUM.FULLTIMEBY_yMdHmsS.getValue());//时间
private static class LoggerEntity {
private String traceId = getMDC();
private String requestId = MDC.get("requestId");
private String hostName = HOST_NAME;//机器名
private String time = DateUtil.translateDateToString(new Date(), DateUtil.FORMAT_ENUM.FULLTIMEBY_yMdHmsS.getValue());//时间
private Long timestamp = new Date().getTime();
private String className = new Throwable().getStackTrace()[4].getClassName();
private String methodName = new Throwable().getStackTrace()[4].getMethodName();
private String level;//级别
@Nullable private String status;//状态枚举值
@Nullable private String type;//类型
@Nullable private String info;//信息
@Nullable private String logName;//标识
@Nullable private String topicName;//topic名
@Nullable private String stackTrace;//异常信息如果没有则为NULL
@Nullable private String filterName;//数据特殊处理条件名称
@Nullable private String prefix;//数据模版前缀
@Nullable private String source;//原始数据
@Nullable private String message;//解析处理后的数据
@Nullable private String templateName;//模版名称
@Nullable private String serviceName;//服务名
@Nullable private String handleEnumeration;//枚举值0 剪切/1 复制
@Nullable private String reasonEnumeration;//异常原因枚举值
@Nullable private String separatorNum;//分隔符数量
@Nullable private String exceptionKeyWordName;//异常字段名字
@Nullable private String exceptionKeyWordValue;//异常字段值
@Nullable private String exceptionKeyWordTemplateArea;//异常字段在模版中的位数
private void setReasonEnumeration(String reasonEnumeration) {
this.reasonEnumeration = reasonEnumeration;
this.info = ReasonEnumeration.reasonEnumeration.get(getReasonEnumeration());
}
@Override
public String toString() {
return JSONObject.toJSONString(this);
return JSON.toJSONString(this);
}
}
private static final String TRACE_ID = "TraceID";
/**
* 处理异常数据情况的告警
* @param logName id或uri标识
* @param topic topic名字
* @param filterName 过滤条件名字
* @param prefix 模版前缀
* @param source 原始数据
* @param message 解析后数据
* @param templateName 模版名称
* @param handleEnumeration 数据处理枚举值
* @param reasonEnumeration 异常原因枚举值
* @param exceptionKeyWordName 异常字段名字 同一个字段上可能存在多个名字"|"拼接 params.videoId|params.mvId|params.concertId
* @param exceptionKeyWordValue 异常字段名字 同一个字段上可能存在多个名字"|"拼接 params.videoId|params.mvId|params.concertId
* @param exceptionKeyWordTemplateArea 异常字段在模版中的位数
*/
public static void monitor(String logName,
String topic,
String filterName,
String prefix,
String source,
String message,
String templateName,
String handleEnumeration,
String reasonEnumeration,
String separatorNum,
String exceptionKeyWordName,
String exceptionKeyWordValue,
String exceptionKeyWordTemplateArea){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.WARN);
monitorEntity.setStatus(Status.WARN_SOURCE);
monitorEntity.setType(Type.BUSINESS);
monitorEntity.setLogName(logName);
monitorEntity.setTopicName(topic);
monitorEntity.setFilterName(filterName);
monitorEntity.setPrefix(prefix);
monitorEntity.setSource(source);
monitorEntity.setMessage(message);
monitorEntity.setTemplateName(templateName);
monitorEntity.setHandleEnumeration(handleEnumeration);
monitorEntity.setReasonEnumeration(reasonEnumeration);
monitorEntity.setSeparatorNum(separatorNum);
monitorEntity.setExceptionKeyWordName(exceptionKeyWordName);
monitorEntity.setExceptionKeyWordValue(exceptionKeyWordValue);
monitorEntity.setExceptionKeyWordTemplateArea(exceptionKeyWordTemplateArea);
LOGGER.warn(monitorEntity.toString());
static String getMDC(){
if (StringUtils.isEmpty(MDC.get(TRACE_ID))){
String traceID = "TraceID: " + GlobalId.generateNextId();
MDC.put(TRACE_ID, traceID);
}
return MDC.get(TRACE_ID).split(":")[1].trim();
}
public static void message(String level, String info, String status, String type, String logName, String topicName, Exception e, String id, String uri, String filterName, String prefix, String source, String message, String templateName){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(level);
monitorEntity.setInfo(info);
monitorEntity.setStatus(status);
monitorEntity.setType(type);
monitorEntity.setLogName(logName);
monitorEntity.setTopicName(topicName);
monitorEntity.setStackTrace(StringUtil.formatException(e));
monitorEntity.setFilterName(filterName);
monitorEntity.setPrefix(prefix);
monitorEntity.setSource(source);
monitorEntity.setMessage(message);
monitorEntity.setTemplateName(templateName);
if ((Level.ERROR).equals(level)){
LOGGER.error(monitorEntity.toString());
}else if ((Level.INFO).equals(level)){
LOGGER.info(monitorEntity.toString());
}else if ((Level.WARN).equals(level)){
LOGGER.warn(monitorEntity.toString());
}else if ((Level.DEBUG).equals(level)){
LOGGER.debug(monitorEntity.toString());
static void checkFields(Map<String, Object> fields){
for (Field field : ReflectionUtil.getAllFieldByClazz(LoggerEntity.class)) {
if (field.isSynthetic()){
continue;
}
if (fields.containsKey(field.getName())){
throw new IllegalArgumentException("current field can not be use as key: " + field.getName());
}
}
}
public static void message(MonitorEntity monitorEntity){
String level = monitorEntity.getLevel();
switch(level){
case Level.DEBUG:
LOGGER.debug(monitorEntity.toString());
case Level.ERROR:
LOGGER.error(monitorEntity.toString());
case Level.WARN:
LOGGER.warn(monitorEntity.toString());
default:
LOGGER.info(monitorEntity.toString());
private static void logger(Level level, String source){
if (Level.INFO.value.equals(level.value)){
log.info(source);
}else if (Level.WARN.value.equals(level.value)){
log.warn(source);
}else if (Level.ERROR.value.equals(level.value)){
log.error(source);
}else if (Level.DEBUG.value.equals(level.value)){
log.debug(source);
}
}
public static void warn(MonitorEntity monitorEntity){
monitorEntity.setLevel(Level.WARN);
monitorEntity.setStatus(Status.WARN);
LOGGER.warn(monitorEntity.toString());
private static void message(Level level, String message){
LoggerEntity loggerEntity = new LoggerEntity();
loggerEntity.setLevel(level.value);
loggerEntity.setInfo(message);
logger(level, loggerEntity.toString());
}
public static void warn(String info, String type, String logName, String topicName){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.WARN);
monitorEntity.setInfo(info);
monitorEntity.setStatus(Status.WARN);
monitorEntity.setType(type);
monitorEntity.setLogName(logName);
monitorEntity.setTopicName(topicName);
LOGGER.warn(monitorEntity.toString());
private static void map(Level level, String message, Map<String, Object> fields){
checkFields(fields);
LoggerEntity loggerEntity = new LoggerEntity();
loggerEntity.setLevel(level.value);
loggerEntity.setInfo(message);
JSONObject jsonSource = JSON.parseObject(loggerEntity.toString());
for (Map.Entry<String, Object> entry : fields.entrySet()) {
jsonSource.put(entry.getKey(), entry.getValue());
}
logger(level, JSON.toJSONString(jsonSource));
}
public static void warn(String info, String type, String logName){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.WARN);
monitorEntity.setInfo(info);
monitorEntity.setStatus(Status.WARN);
monitorEntity.setType(type);
monitorEntity.setLogName(logName);
LOGGER.warn(monitorEntity.toString());
private static void throwable(Level level, String message, Throwable throwable){
LoggerEntity loggerEntity = new LoggerEntity();
loggerEntity.setLevel(level.value);
loggerEntity.setInfo(message);
loggerEntity.setStackTrace(throwable.getMessage());
logger(level, loggerEntity.toString());
}
public static void warn(String info, String type){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.WARN);
monitorEntity.setInfo(info);
monitorEntity.setStatus(Status.WARN);
monitorEntity.setType(type);
LOGGER.warn(monitorEntity.toString());
private static void exception(Level level, String message, Exception e){
LoggerEntity loggerEntity = new LoggerEntity();
loggerEntity.setLevel(level.value);
loggerEntity.setInfo(message);
loggerEntity.setStackTrace(formatException(e));
logger(level, loggerEntity.toString());
}
public static void warn(String info){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.WARN);
monitorEntity.setInfo(info);
monitorEntity.setStatus(Status.WARN);
monitorEntity.setType(Type.BUSINESS);
LOGGER.warn(monitorEntity.toString());
private static void mapThrowable(Level level, String message, Map<String, Object> fields, Throwable throwable){
checkFields(fields);
LoggerEntity loggerEntity = new LoggerEntity();
loggerEntity.setLevel(level.value);
loggerEntity.setInfo(message);
loggerEntity.setStackTrace(throwable.getMessage());
JSONObject jsonSource = JSON.parseObject(loggerEntity.toString());
for (Map.Entry<String, Object> entry : fields.entrySet()) {
jsonSource.put(entry.getKey(), entry.getValue());
}
logger(level, JSON.toJSONString(jsonSource));
}
public static void error(MonitorEntity monitorEntity){
monitorEntity.setLevel(Level.ERROR);
monitorEntity.setType(Type.ERROR_MESSAGE);
LOGGER.error(monitorEntity.toString());
private static void mapException(Level level, String message, Map<String, Object> fields, Exception e){
checkFields(fields);
LoggerEntity loggerEntity = new LoggerEntity();
loggerEntity.setLevel(level.value);
loggerEntity.setInfo(message);
loggerEntity.setStackTrace(formatException(e));
JSONObject jsonSource = JSON.parseObject(loggerEntity.toString());
for (Map.Entry<String, Object> entry : fields.entrySet()) {
jsonSource.put(entry.getKey(), entry.getValue());
}
logger(level, JSON.toJSONString(jsonSource));
}
public static void error(String info, String status, String logName, String topicName){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.ERROR);
monitorEntity.setInfo(info);
monitorEntity.setStatus(status);
monitorEntity.setType(Type.ERROR_MESSAGE);
monitorEntity.setLogName(logName);
monitorEntity.setTopicName(topicName);
LOGGER.error(monitorEntity.toString());
public static void info(String message){
message(Level.INFO, message);
}
public static void error(String info){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.ERROR);
monitorEntity.setInfo(info);
monitorEntity.setStatus(Status.ERROR);
monitorEntity.setType(Type.ERROR_MESSAGE);
LOGGER.error(monitorEntity.toString());
public static void info(String message, Map<String, Object> fields){
map(Level.INFO, message, fields);
}
public static void error(String info, Exception e, String status, String logName, String topicName){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.ERROR);
monitorEntity.setInfo(info);
monitorEntity.setStatus(status);
monitorEntity.setType(Type.ERROR_MESSAGE);
monitorEntity.setLogName(logName);
monitorEntity.setTopicName(topicName);
monitorEntity.setStackTrace(StringUtil.formatException(e));
LOGGER.error(monitorEntity.toString());
public static void info(String message, Throwable throwable){
throwable(Level.INFO, message, throwable);
}
public static void error(String info, Exception e, String logName, String topicName){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.ERROR);
monitorEntity.setInfo(info);
monitorEntity.setStatus(Status.ERROR);
monitorEntity.setType(Type.ERROR_MESSAGE);
monitorEntity.setLogName(logName);
monitorEntity.setTopicName(topicName);
monitorEntity.setStackTrace(StringUtil.formatException(e));
LOGGER.error(monitorEntity.toString());
public static void info(String message, Exception e){
exception(Level.INFO, message, e);
}
public static void error(String info, Exception e, String status){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.ERROR);
monitorEntity.setInfo(info);
monitorEntity.setStatus(status);
monitorEntity.setType(Type.ERROR_MESSAGE);
monitorEntity.setStackTrace(StringUtil.formatException(e));
LOGGER.error(monitorEntity.toString());
public static void info(String message, Map<String, Object> fields, Throwable throwable){
mapThrowable(Level.INFO, message, fields, throwable);
}
public static void error(String info, Exception e){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.ERROR);
monitorEntity.setInfo(info);
monitorEntity.setStatus(Status.ERROR);
monitorEntity.setType(Type.ERROR_MESSAGE);
monitorEntity.setStackTrace(StringUtil.formatException(e));
LOGGER.error(monitorEntity.toString());
public static void info(String message, Map<String, Object> fields, Exception e){
mapException(Level.INFO, message, fields, e);
}
public static void error(String info, Exception e, String source, String result, String topic, String logName){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.ERROR);
monitorEntity.setInfo(info);
monitorEntity.setStatus(Status.ERROR);
monitorEntity.setType(Type.ERROR_MESSAGE);
monitorEntity.setStackTrace(StringUtil.formatException(e));
monitorEntity.setLogName(logName);
monitorEntity.setMessage(result);
monitorEntity.setSource(source);
monitorEntity.setTopicName(topic);
LOGGER.error(monitorEntity.toString());
public static void warn(String message){
message(Level.WARN, message);
}
public static void error(String info, String status){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.ERROR);
monitorEntity.setInfo(info);
monitorEntity.setStatus(status);
monitorEntity.setType(Type.ERROR_MESSAGE);
LOGGER.error(monitorEntity.toString());
public static void warn(String message, Map<String, Object> fields){
fields.remove("data");
map(Level.WARN, message, fields);
}
public static void info(MonitorEntity monitorEntity){
monitorEntity.setLevel(Level.INFO);
monitorEntity.setStatus(Status.SUCCESS);
monitorEntity.setType(Type.BUSINESS);
LOGGER.info(monitorEntity.toString());
public static void warn(String message, Throwable throwable){
throwable(Level.WARN, message, throwable);
}
public static void info(String info, String logName, String topicName){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.INFO);
monitorEntity.setInfo(info);
monitorEntity.setStatus(Status.SUCCESS);
monitorEntity.setType(Type.BUSINESS);
monitorEntity.setLogName(logName);
monitorEntity.setTopicName(topicName);
LOGGER.info(monitorEntity.toString());
public static void warn(String message, Exception e){
exception(Level.WARN, message, e);
}
public static void info(String info, String logName){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.INFO);
monitorEntity.setInfo(info);
monitorEntity.setStatus(Status.SUCCESS);
monitorEntity.setType(Type.BUSINESS);
monitorEntity.setLogName(logName);
LOGGER.info(monitorEntity.toString());
public static void warn(String message, Map<String, Object> fields, Throwable throwable){
mapThrowable(Level.WARN, message, fields, throwable);
}
public static void info(String info){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.INFO);
monitorEntity.setInfo(info);
monitorEntity.setStatus(Status.SUCCESS);
monitorEntity.setType(Type.BUSINESS);
LOGGER.info(monitorEntity.toString());
public static void warn(String message, Map<String, Object> fields, Exception e){
mapException(Level.WARN, message, fields, e);
}
public static void debug(String info, String status, String logName, String topicName){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.DEBUG);
monitorEntity.setInfo(info);
monitorEntity.setStatus(status);
monitorEntity.setType(Type.BUSINESS);
monitorEntity.setLogName(logName);
monitorEntity.setTopicName(topicName);
LOGGER.debug(monitorEntity.toString());
public static void error(String message){
message(Level.ERROR, message);
}
public static void debug(String info, String status, String logName){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.DEBUG);
monitorEntity.setInfo(info);
monitorEntity.setStatus(status);
monitorEntity.setType(Type.BUSINESS);
monitorEntity.setLogName(logName);
LOGGER.debug(monitorEntity.toString());
public static void error(String message, Map<String, Object> fields){
map(Level.ERROR, message, fields);
}
public static void debug(String info, String status){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.DEBUG);
monitorEntity.setInfo(info);
monitorEntity.setStatus(status);
monitorEntity.setType(Type.BUSINESS);
LOGGER.debug(monitorEntity.toString());
public static void error(String message, Throwable throwable){
throwable(Level.ERROR, message, throwable);
}
public static void debug(String info){
MonitorEntity monitorEntity = new MonitorEntity();
monitorEntity.setLevel(Level.DEBUG);
monitorEntity.setInfo(info);
monitorEntity.setType(Type.BUSINESS);
LOGGER.debug(monitorEntity.toString());
public static void error(String message, Exception e){
exception(Level.ERROR, message, e);
}
public static void error(String message, Map<String, Object> fields, Throwable throwable){
mapThrowable(Level.ERROR, message, fields, throwable);
}
public static void error(String message, Map<String, Object> fields, Exception e){
mapException(Level.ERROR, message, fields, e);
}
}

View File

@ -33,7 +33,7 @@ public class GracefulShutdown implements TomcatConnectorCustomizer, ApplicationL
// 指定执行的方法
shutdown();
//手动清理内存
System.gc();
Runtime.getRuntime().gc();
LOGGER.warn("清理内存完毕,正在退出服务......");
if (this.connector == null){
return;
@ -42,20 +42,18 @@ public class GracefulShutdown implements TomcatConnectorCustomizer, ApplicationL
LOGGER.warn("关闭全部连接......");
Executor executor = this.connector.getProtocolHandler().getExecutor();
if (executor instanceof ThreadPoolExecutor) {
try {
ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor;
threadPoolExecutor.shutdown();
LOGGER.warn("当前服务线程池被关闭");
if (!threadPoolExecutor.awaitTermination(30, TimeUnit.SECONDS)) {
LOGGER.warn("Tomcat thread pool did not shut down gracefully within 30 seconds. Proceeding with forceful shutdown");
}
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor;
threadPoolExecutor.shutdown();
LOGGER.warn("当前服务线程池被关闭");
if (!threadPoolExecutor.awaitTermination(30, TimeUnit.SECONDS)) {
LOGGER.warn("Tomcat thread pool did not shut down gracefully within 30 seconds. Proceeding with forceful shutdown");
}
}
this.connector.stop();
} catch (LifecycleException e) {
e.printStackTrace();
} catch (InterruptedException ex) {
Thread.currentThread().interrupt();
}
}
@ -78,5 +76,7 @@ public class GracefulShutdown implements TomcatConnectorCustomizer, ApplicationL
* 2.flush内存中全部的未处理数据
* 3.清理服务中全部待处理的数据
*/
public void shutdown(){}
public void shutdown(){
//do something
}
}

View File

@ -1,97 +0,0 @@
{
"groups": [
{
"name": "spring.async.pool",
"type": "site.cnkj.common.config.AsyncThreadPoolConfig",
"sourceType": "site.cnkj.common.config.AsyncThreadPoolConfig"
},
{
"name": "spring.customize.elasticsearch",
"type": "site.cnkj.common.config.ElasticsearchClientConfig",
"sourceType": "site.cnkj.common.config.ElasticsearchClientConfig"
},
{
"name": "spring.data.mongodb",
"type": "site.cnkj.common.config.MongoClientConfig",
"sourceType": "site.cnkj.common.config.MongoClientConfig"
}
],
"properties": [
{
"name": "spring.async.pool.core-pool-size",
"type": "java.lang.Integer",
"sourceType": "site.cnkj.common.config.AsyncThreadPoolConfig",
"defaultValue": 0
},
{
"name": "spring.async.pool.keep-alive-seconds",
"type": "java.lang.Integer",
"sourceType": "site.cnkj.common.config.AsyncThreadPoolConfig",
"defaultValue": 0
},
{
"name": "spring.async.pool.max-pool-size",
"type": "java.lang.Integer",
"sourceType": "site.cnkj.common.config.AsyncThreadPoolConfig",
"defaultValue": 0
},
{
"name": "spring.async.pool.queue-capacity",
"type": "java.lang.Integer",
"sourceType": "site.cnkj.common.config.AsyncThreadPoolConfig",
"defaultValue": 0
},
{
"name": "spring.customize.elasticsearch.cluster-nodes",
"type": "java.lang.String[]",
"sourceType": "site.cnkj.common.config.ElasticsearchClientConfig"
},
{
"name": "spring.customize.elasticsearch.connect-timeout",
"type": "java.lang.Integer",
"sourceType": "site.cnkj.common.config.ElasticsearchClientConfig",
"defaultValue": 5000
},
{
"name": "spring.customize.elasticsearch.failure-delay",
"type": "java.lang.Integer",
"sourceType": "site.cnkj.common.config.ElasticsearchClientConfig",
"defaultValue": 3000
},
{
"name": "spring.customize.elasticsearch.max-retry-timeout",
"type": "java.lang.Integer",
"sourceType": "site.cnkj.common.config.ElasticsearchClientConfig",
"defaultValue": 30000
},
{
"name": "spring.customize.elasticsearch.max-retry-timeout-millis",
"type": "java.lang.Integer",
"sourceType": "site.cnkj.common.config.ElasticsearchClientConfig",
"defaultValue": 60000
},
{
"name": "spring.customize.elasticsearch.password",
"type": "java.lang.String",
"sourceType": "site.cnkj.common.config.ElasticsearchClientConfig"
},
{
"name": "spring.customize.elasticsearch.sniffer-interval",
"type": "java.lang.Integer",
"sourceType": "site.cnkj.common.config.ElasticsearchClientConfig",
"defaultValue": 60000
},
{
"name": "spring.customize.elasticsearch.socket-timeout",
"type": "java.lang.Integer",
"sourceType": "site.cnkj.common.config.ElasticsearchClientConfig",
"defaultValue": 60000
},
{
"name": "spring.customize.elasticsearch.username",
"type": "java.lang.String",
"sourceType": "site.cnkj.common.config.ElasticsearchClientConfig"
}
],
"hints": []
}