diff --git a/.gitignore b/.gitignore index 6143e53f9e36d08e4da5d743017e2c04ca91d86d..7aa14f56bc4cc5d63f5a4e879495ead796fdf48d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,22 +1,30 @@ -# Compiled class file -*.class +target/ +!.mvn/wrapper/maven-wrapper.jar -# Log file -*.log - -# BlueJ files -*.ctxt +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans -# Mobile Tools for Java (J2ME) -.mtj.tmp/ +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr -# Package Files # -*.jar -*.war -*.ear -*.zip -*.tar.gz -*.rar +### NetBeans ### +nbproject/private/ +build/ +nbbuild/ +dist/ +nbdist/ +.nb-gradle/ +LOG_PATH_IS_UNDEFINED/ -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* +### customer ### +*.log +*.gitignore +/.idea/* diff --git a/.idea/compiler.xml b/.idea/compiler.xml index d3942e855ddb2fc30b2303714926da8d143a9ccb..077b5c2f2f22344ff9e21ca5a022906b8c10c04c 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -10,6 +10,8 @@ + + @@ -27,6 +29,8 @@ + + diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 89083e8d1527f8cd98b533d051566c4aa533966d..0d517910cfae863cb6a1c540c41fd28c6890e6a2 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -5,6 +5,8 @@ + + diff --git a/.idea/libraries/Maven__antlr_antlr_2_7_7.xml b/.idea/libraries/Maven__antlr_antlr_2_7_7.xml index 2d3d1fbd0cff9a12216300093e71ca337309463d..7ee868b29a0b4d3eaf19b5f5273f56cc109937b6 100644 --- a/.idea/libraries/Maven__antlr_antlr_2_7_7.xml +++ b/.idea/libraries/Maven__antlr_antlr_2_7_7.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml b/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml index d0b496fb32a0dd49f2260896b46412c04912173e..af041bc83e96023dcafad147041bcc799754f45e 100644 --- a/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml +++ b/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_11.xml b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_11.xml index 67d0182209f1a4e2b3b1ea1e456c01168fc31ef1..1ab5674a1ddf97620ee87a26153a9f04253c76be 100644 --- a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_11.xml +++ b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_11.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml index d716bf1e51ce98be1b3e7c96b446c2f50143aa31..d857a0ad1a438419de74c7e7871f6c06f0c05527 100644 --- a/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml +++ b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_2_3.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_11.xml b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_11.xml index f19cb80b1a4ffcd98fae5a39ef61677a29b9ec6d..9a27920844d272bafb638ea61dc66cc0c842d4d0 100644 --- a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_11.xml +++ b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_11.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml index 24fe9a56d347f8b1a0690a6964f1d356e58fe025..4284a24004cfb3544a6e9db25d0c5e0d3a8e2c94 100644 --- a/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml +++ b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_2_3.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_druid_1_0_29.xml b/.idea/libraries/Maven__com_alibaba_druid_1_0_29.xml index 41d7a64ec6b28257c7f9823836a556e973870c1d..28eda8774e4c4890d946103d18cc4aa16fba653c 100644 --- a/.idea/libraries/Maven__com_alibaba_druid_1_0_29.xml +++ b/.idea/libraries/Maven__com_alibaba_druid_1_0_29.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_alibaba_fastjson_1_2_15.xml b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_15.xml index 90c28ec3cd866c5952704c1b149a2691d3c31ef6..133fb5858003ead31eef837b8e71260c63950130 100644 --- a/.idea/libraries/Maven__com_alibaba_fastjson_1_2_15.xml +++ b/.idea/libraries/Maven__com_alibaba_fastjson_1_2_15.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml b/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml index e0d1a8769806f7c8ce1765c7556591141037e507..b8f7ba02734a6864acaabbdb631759ddd6ef8ed3 100644 --- a/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml +++ b/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_0.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_0.xml index e4c930ecff1b2dee9e4a07a2007bf0094d031d60..b47d537d6dce73dd8766d588ae11d8f774547ecb 100644 --- a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_0.xml +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml index 10916fc82161cc70e16b5378b01b61f704265968..8063b7b05d9864475dadc9b7dab73b7b646ce528 100644 --- a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_8_10.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_8_10.xml index a69de1f935daae638ab220247ee541e3a7d695c7..781fc531d5523efddc8226b9eb43178da0500378 100644 --- a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_8_10.xml +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_8_10.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_5.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_5.xml index 78db75f95341b4f7193bdee0e18d6d4381682433..a94c8621e38516f6fe2fbefacd6a6521249f0059 100644 --- a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_5.xml +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_9_5.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_8_10.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_8_10.xml index eac9e19abe2b6c48b3d94cf70117a639ae230c11..3c983085f8ba1f038ed426b56ca8a1689c897c73 100644 --- a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_8_10.xml +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_8_10.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_5.xml b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_5.xml index 1e6e9b0b95e1acefa279c2df0e7e6847cecb45b8..67a6ecc5e766de72fa09321ebd24dd9d1809611a 100644 --- a/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_5.xml +++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_9_5.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_5.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_5.xml index a4c9c440b62d7abed54d7a67d94a757855e83f75..f85d4cce89c78cd3b9bc0740dc8a37c5085e516d 100644 --- a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_5.xml +++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_5.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_5.xml b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_5.xml index 98d83a6c2e6538d5a99a56ba989a9fcb86e6b63f..64be1b67a3ee7d5f441580ae620dc509abaa3196 100644 --- a/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_5.xml +++ b/.idea/libraries/Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_5.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_5.xml b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_5.xml index 71ccf997a024fd78884ab1e862fae785cf9b84ec..837fc70325f26c8f8641721e280abfc164eef597 100644 --- a/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_5.xml +++ b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_5.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_2_0.xml b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_2_0.xml index 4a5191949fe7062c3a1543f97711b5d483ae8c8d..9782da548b66a8efe8d2acbd9a7ba3d0eeec6a6d 100644 --- a/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_2_0.xml +++ b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_2_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml index 16b1d2c3ffa73ea42d95dc2a9176a2527b3f181e..d3b6947ca51acbc0eef423801ea210924f92d7f9 100644 --- a/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml +++ b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_4_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml b/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml index 47f18e69a60f0421e43955d8268fd40483571248..da06b5f97b46c7e18993fb47007f9611f508d443 100644 --- a/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml +++ b/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__commons_codec_commons_codec_1_10.xml b/.idea/libraries/Maven__commons_codec_commons_codec_1_10.xml index f454eff6365391cfd69519fa80c400a390e97cb0..29af6b5b7408cd5bd55e5f26eea36b98d32fb59a 100644 --- a/.idea/libraries/Maven__commons_codec_commons_codec_1_10.xml +++ b/.idea/libraries/Maven__commons_codec_commons_codec_1_10.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml b/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml index 8bd856053ade03f3c32c34d9ea4b355fd15cb4ad..ecdf40f58edaca5b0b18f4b839dcf124a319b25c 100644 --- a/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml +++ b/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_7_0.xml b/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_7_0.xml index 73eb5f4ed1545cbead16a6de394e9aca7a23e824..182fe997696a75cbf34caf91e7437a8fbe59dbeb 100644 --- a/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_7_0.xml +++ b/.idea/libraries/Maven__io_jsonwebtoken_jjwt_0_7_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_undertow_undertow_core_1_4_22_Final.xml b/.idea/libraries/Maven__io_undertow_undertow_core_1_4_22_Final.xml index 8fd69762ab0c35771c461ce2fa450c3472c406b6..16b973eedb9d1e407d2b5cfbb71603676c6faca0 100644 --- a/.idea/libraries/Maven__io_undertow_undertow_core_1_4_22_Final.xml +++ b/.idea/libraries/Maven__io_undertow_undertow_core_1_4_22_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_undertow_undertow_servlet_1_4_22_Final.xml b/.idea/libraries/Maven__io_undertow_undertow_servlet_1_4_22_Final.xml index 790fc79d44d25eec4f0e85cea3f0588b6a12575c..ab88273647fab9e543681f8f865f7ecbbcfe62e6 100644 --- a/.idea/libraries/Maven__io_undertow_undertow_servlet_1_4_22_Final.xml +++ b/.idea/libraries/Maven__io_undertow_undertow_servlet_1_4_22_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__io_undertow_undertow_websockets_jsr_1_4_22_Final.xml b/.idea/libraries/Maven__io_undertow_undertow_websockets_jsr_1_4_22_Final.xml index e2ebf03802a1e08122680d3552d8322ea8d83bc4..c9c2c3e1719e54f650465a22758d11668976018a 100644 --- a/.idea/libraries/Maven__io_undertow_undertow_websockets_jsr_1_4_22_Final.xml +++ b/.idea/libraries/Maven__io_undertow_undertow_websockets_jsr_1_4_22_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml b/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml index d4763e59fa8fe7356865a8265b7ab34423311580..c705addf1defc145d4f262af49a109bbf50d6d42 100644 --- a/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml +++ b/.idea/libraries/Maven__javax_annotation_javax_annotation_api_1_3_2.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml b/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml index a34a002c86a0b1a207275c58070a72b966bb40ec..7e5704e1eb55eae3ddd232d27de1cb1f8d3c056f 100644 --- a/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml +++ b/.idea/libraries/Maven__javax_servlet_javax_servlet_api_3_1_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_servlet_jstl_1_2.xml b/.idea/libraries/Maven__javax_servlet_jstl_1_2.xml index 69b911bb12222d1e0dd88e948b53c9b041a42ab0..5b6a533447df736de0aaea6985e4059900b81a44 100644 --- a/.idea/libraries/Maven__javax_servlet_jstl_1_2.xml +++ b/.idea/libraries/Maven__javax_servlet_jstl_1_2.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_transaction_javax_transaction_api_1_2.xml b/.idea/libraries/Maven__javax_transaction_javax_transaction_api_1_2.xml index 249890199fd6e68516a00c78e5fd9b2b2d7fc016..f1a39938fdc0b2a21a41d524264d9f68a445cc5c 100644 --- a/.idea/libraries/Maven__javax_transaction_javax_transaction_api_1_2.xml +++ b/.idea/libraries/Maven__javax_transaction_javax_transaction_api_1_2.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_validation_validation_api_1_1_0_Final.xml b/.idea/libraries/Maven__javax_validation_validation_api_1_1_0_Final.xml index f276feac2e368bdcac1db9ea4561010337f005e5..ecaf6815dd87758a82c1aa0bc8aaa690114f637d 100644 --- a/.idea/libraries/Maven__javax_validation_validation_api_1_1_0_Final.xml +++ b/.idea/libraries/Maven__javax_validation_validation_api_1_1_0_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml b/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml index 21c2a6e2e874a9de9734dfd9b8193698fffd60e2..5890302c47d04d606ad7afd3eac78b631f37d990 100644 --- a/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml +++ b/.idea/libraries/Maven__javax_validation_validation_api_2_0_1_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__junit_junit_4_12.xml b/.idea/libraries/Maven__junit_junit_4_12.xml index c722d66ff1dca0998ee54907f859b6da407609d4..4d72f8aef6af19e1ece5e79c527b818146ff849e 100644 --- a/.idea/libraries/Maven__junit_junit_4_12.xml +++ b/.idea/libraries/Maven__junit_junit_4_12.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_45.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_45.xml index c4645c054b660ecabce26006d8e3c22f19417d42..738b23399670be5ef359a678834fae002d15ab10 100644 --- a/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_45.xml +++ b/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_45.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_7_11.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_7_11.xml index c8c6a495ee3a9db12131846f840e7b714fdb71d7..6b45884c4a3bf84fe24a9e090d83ee70608bb98d 100644 --- a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_7_11.xml +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_1_7_11.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_7_11.xml b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_7_11.xml index dce55693c4d0b65b0058ae10870aee5f2dcfde75..af2a77d65640479e38897d39994cd8eeaf3dc864 100644 --- a/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_7_11.xml +++ b/.idea/libraries/Maven__net_bytebuddy_byte_buddy_agent_1_7_11.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_minidev_accessors_smart_1_1.xml b/.idea/libraries/Maven__net_minidev_accessors_smart_1_1.xml index ba16640aac2a5acf4744d4754833f2e12939b683..4a8787bcc67e03013e1cffc10073bc5565702017 100644 --- a/.idea/libraries/Maven__net_minidev_accessors_smart_1_1.xml +++ b/.idea/libraries/Maven__net_minidev_accessors_smart_1_1.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml b/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml index bc382c3bfe1f7a57a8d9d22ef10e7b851e216fec..735d6ddd4ec445d698135b2b34ed4ccd8ee29a97 100644 --- a/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml +++ b/.idea/libraries/Maven__net_minidev_accessors_smart_1_2.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_minidev_json_smart_2_2_1.xml b/.idea/libraries/Maven__net_minidev_json_smart_2_2_1.xml index cef0433aac07ca6dc812a6d90dd19b778fd43c4a..a915e69f1e5fe9fdaba5e89057ff67b42d55e8e0 100644 --- a/.idea/libraries/Maven__net_minidev_json_smart_2_2_1.xml +++ b/.idea/libraries/Maven__net_minidev_json_smart_2_2_1.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml b/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml index fd0c340f7ffa0f84a584219233b96df0d1d797ec..b523331771c09f5329a4067b42d6f8aa44041650 100644 --- a/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml +++ b/.idea/libraries/Maven__net_minidev_json_smart_2_3.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__net_oschina_zcx7878_fastdfs_client_java_1_27_0_0.xml b/.idea/libraries/Maven__net_oschina_zcx7878_fastdfs_client_java_1_27_0_0.xml index c90664e15ef5cb868a478f7743ebd2e6249c1430..9b4591321331309f9ba11ea983972c4e65aa5cf2 100644 --- a/.idea/libraries/Maven__net_oschina_zcx7878_fastdfs_client_java_1_27_0_0.xml +++ b/.idea/libraries/Maven__net_oschina_zcx7878_fastdfs_client_java_1_27_0_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_4_2.xml b/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_4_2.xml index d1eff7458b68ca4a5c7955d17204a14b3e431d85..626a96291ef14cdfa7b8d43a301f28b756f4856d 100644 --- a/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_4_2.xml +++ b/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_4_2.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_4_3.xml b/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_4_3.xml index 1199a84c2a1a8827f882389cabcb01f54f70427b..0b001118a1360680ba8218e2bf65d0ff0bf4af10 100644 --- a/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_4_3.xml +++ b/.idea/libraries/Maven__org_apache_commons_commons_pool2_2_4_3.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml index c97f8e7c1be008fc8f1ea8b2cf9d5f8116d53313..fd533d50f34e98850c7cbfcdea8e8bef61508bec 100644 --- a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_api_2_10_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml index be27365156c1145adddd07105afa0f52a4787918..e3939c670ba18b8251eaf4fb8796afc7688be66d 100644 --- a/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml +++ b/.idea/libraries/Maven__org_apache_logging_log4j_log4j_to_slf4j_2_10_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_27.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_27.xml index abf036f5f825d0dbaa3a246a7bc85fa0446919b9..67d3b62e8e6d3ab83eca2da7f5a14b9f07e0647b 100644 --- a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_27.xml +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_27.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_31.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_31.xml index cb194fa588ce91ee2f7c5964276ec0fbe3fe574e..5ee5ea64358cd6e4ea53d811a5d8ad56306fcee2 100644 --- a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_31.xml +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_31.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_27.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_27.xml index b9d34391137da4c76ca68b0d1de1fa2845314c7f..054553651dddad1a2d454546742bb991b322faf3 100644 --- a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_27.xml +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_27.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_31.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_31.xml index 39eaa8252516f54a2af9915c3c88e137fc21f6f4..249ce1452ce2c58c1a7161f5477469489f8b21ba 100644 --- a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_31.xml +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_31.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_jasper_8_5_27.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_jasper_8_5_27.xml index fe14166df2cd67b43825ad758adabbef9a88b437..cf443157119a32a521745b6784c6c28769ecd388 100644 --- a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_jasper_8_5_27.xml +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_jasper_8_5_27.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_jasper_8_5_31.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_jasper_8_5_31.xml index 80a4e2f357b5ee6c20bd9bdd81cee0a6e2e7c712..d5835dc4f0d620301daee42eed1d4b1b770f3677 100644 --- a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_jasper_8_5_31.xml +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_jasper_8_5_31.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_27.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_27.xml index 03c1a372c3070d02541311888548d55cd6f27344..9b623c266743ff7c9d12e9e8078632b2a1c65286 100644 --- a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_27.xml +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_27.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_31.xml b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_31.xml index b00302351fd5452696adf2fee972b7058e824524..74eb3d65ada6b4b8a5867f4ade81e7bae218e4cf 100644 --- a/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_31.xml +++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_31.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_tomcat_annotations_api_8_5_27.xml b/.idea/libraries/Maven__org_apache_tomcat_tomcat_annotations_api_8_5_27.xml index 3691bd40f2db9b1f4ea254b5746fbb8f70556a25..c3fb55507cacf9c2bc083479f42c3af9aee5a39a 100644 --- a/.idea/libraries/Maven__org_apache_tomcat_tomcat_annotations_api_8_5_27.xml +++ b/.idea/libraries/Maven__org_apache_tomcat_tomcat_annotations_api_8_5_27.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_tomcat_annotations_api_8_5_31.xml b/.idea/libraries/Maven__org_apache_tomcat_tomcat_annotations_api_8_5_31.xml index a154168ea658c299d3015667f7b1dfd3e03bb31b..3f5952641f621e3dda0759d193d16b093359cf77 100644 --- a/.idea/libraries/Maven__org_apache_tomcat_tomcat_annotations_api_8_5_31.xml +++ b/.idea/libraries/Maven__org_apache_tomcat_tomcat_annotations_api_8_5_31.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_tomcat_jdbc_8_5_27.xml b/.idea/libraries/Maven__org_apache_tomcat_tomcat_jdbc_8_5_27.xml index ee2541e71674c376c1d1b8d1cbc14d14201aa132..5fa1b99665c25b5c2613e684f80b3dd39239beba 100644 --- a/.idea/libraries/Maven__org_apache_tomcat_tomcat_jdbc_8_5_27.xml +++ b/.idea/libraries/Maven__org_apache_tomcat_tomcat_jdbc_8_5_27.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apache_tomcat_tomcat_juli_8_5_27.xml b/.idea/libraries/Maven__org_apache_tomcat_tomcat_juli_8_5_27.xml index f9d95fa460eb9e84c90e4b6341ed8f6e1252ca61..1aa9c5d93b158540d0a75133c0910b93f83c7643 100644 --- a/.idea/libraries/Maven__org_apache_tomcat_tomcat_juli_8_5_27.xml +++ b/.idea/libraries/Maven__org_apache_tomcat_tomcat_juli_8_5_27.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_13.xml b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_13.xml index 88aede32cf77fdbdcaad97f29fa26deeab66cedb..5c403bd59261cef9d4270b325688647e8f5b9156 100644 --- a/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_13.xml +++ b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_13.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_assertj_assertj_core_2_6_0.xml b/.idea/libraries/Maven__org_assertj_assertj_core_2_6_0.xml index 04bab7df15d1873f42b124e38be2eb4771908541..e4e5ea26ae279cc8cbf668d2d35b8e119acabdfe 100644 --- a/.idea/libraries/Maven__org_assertj_assertj_core_2_6_0.xml +++ b/.idea/libraries/Maven__org_assertj_assertj_core_2_6_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_assertj_assertj_core_3_9_1.xml b/.idea/libraries/Maven__org_assertj_assertj_core_3_9_1.xml index 5eb907dde7e1583f53a9e79709e7131a44b681f2..443d739ed8407d4529f3a3c1449c5380becab74b 100644 --- a/.idea/libraries/Maven__org_assertj_assertj_core_3_9_1.xml +++ b/.idea/libraries/Maven__org_assertj_assertj_core_3_9_1.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml b/.idea/libraries/Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml index 37f3705d76d630a6c671234db6c44661ca2ca6bc..d243e17ac800f2ec99b93881006fb3d41d06863f 100644 --- a/.idea/libraries/Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml +++ b/.idea/libraries/Maven__org_codehaus_jackson_jackson_core_asl_1_9_13.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml b/.idea/libraries/Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml index e936c9521367f675368350b426450d8129a53bc6..c37cb730546626e1fd549705a911b9beba9eb37d 100644 --- a/.idea/libraries/Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml +++ b/.idea/libraries/Maven__org_codehaus_jackson_jackson_mapper_asl_1_9_13.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_eclipse_jdt_ecj_3_12_3.xml b/.idea/libraries/Maven__org_eclipse_jdt_ecj_3_12_3.xml index 29ecd395387cee9dc31db9abe512ef8c204661dd..d2405e4bd8c125d6a12714588d5d4ecbc74490ed 100644 --- a/.idea/libraries/Maven__org_eclipse_jdt_ecj_3_12_3.xml +++ b/.idea/libraries/Maven__org_eclipse_jdt_ecj_3_12_3.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_glassfish_javax_el_3_0_0.xml b/.idea/libraries/Maven__org_glassfish_javax_el_3_0_0.xml index a691350f7d53bd11929dfeb5587f3ca4492bee25..a64201f8ffa5817e22c563428af9022363ef4e91 100644 --- a/.idea/libraries/Maven__org_glassfish_javax_el_3_0_0.xml +++ b/.idea/libraries/Maven__org_glassfish_javax_el_3_0_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml index 1633e4bd5b45608c5dc5edf54a55c1df7fee0957..1364f4a00932baa883775e8f0936b87e383ec656 100644 --- a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_library_1_3.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_library_1_3.xml index 9b0f74be153cbccf427638b661ea0a74bcadd1f2..dfe7f99aee39e4eef2ab9530c10531fd7ece4523 100644 --- a/.idea/libraries/Maven__org_hamcrest_hamcrest_library_1_3.xml +++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_library_1_3.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_1_Final.xml b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_1_Final.xml index 5f8affe21022bca1a1dc58566124327afe4cba18..af4fc2184b70ce92627851bd655de609e4107286 100644 --- a/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_1_Final.xml +++ b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_1_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_hibernate_core_5_0_12_Final.xml b/.idea/libraries/Maven__org_hibernate_hibernate_core_5_0_12_Final.xml index 81ac38ee5b8905ebb4d213919e99879698fe9049..90c1ce68c9b44f7eaf446e52acf93a4db20be051 100644 --- a/.idea/libraries/Maven__org_hibernate_hibernate_core_5_0_12_Final.xml +++ b/.idea/libraries/Maven__org_hibernate_hibernate_core_5_0_12_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_hibernate_entitymanager_5_0_12_Final.xml b/.idea/libraries/Maven__org_hibernate_hibernate_entitymanager_5_0_12_Final.xml index 265d1056d0910c476ad4fe298349ad6dc76fd407..198ce739b6325dd83c789a1d5a30be3056b52582 100644 --- a/.idea/libraries/Maven__org_hibernate_hibernate_entitymanager_5_0_12_Final.xml +++ b/.idea/libraries/Maven__org_hibernate_hibernate_entitymanager_5_0_12_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_hibernate_validator_5_3_6_Final.xml b/.idea/libraries/Maven__org_hibernate_hibernate_validator_5_3_6_Final.xml index 0524b3eb7ce66780a84340966fb40daecf4dab06..2f27b7ee6ed9898f1aad72a6312a9f52ea7fad84 100644 --- a/.idea/libraries/Maven__org_hibernate_hibernate_validator_5_3_6_Final.xml +++ b/.idea/libraries/Maven__org_hibernate_hibernate_validator_5_3_6_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_0_Final.xml b/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_0_Final.xml index f636e13b2378a8191135623d279a27e6e8d01d0a..78518716ef88ad4d7b51983eaf691029044f7e3a 100644 --- a/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_0_Final.xml +++ b/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_0_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_9_Final.xml b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_9_Final.xml index 46dec34a428543db60411f32d47fe716b4ffd36e..bd11dc7e77eb28bcb54ed08e6ac60a5f8513f670 100644 --- a/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_9_Final.xml +++ b/.idea/libraries/Maven__org_hibernate_validator_hibernate_validator_6_0_9_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_javassist_javassist_3_21_0_GA.xml b/.idea/libraries/Maven__org_javassist_javassist_3_21_0_GA.xml index 477a8050dd41f87525a3bffc17029fbfc6869c12..5e2cd55969b21eab4190afc280a27c04b8ad2eba 100644 --- a/.idea/libraries/Maven__org_javassist_javassist_3_21_0_GA.xml +++ b/.idea/libraries/Maven__org_javassist_javassist_3_21_0_GA.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_jandex_2_0_0_Final.xml b/.idea/libraries/Maven__org_jboss_jandex_2_0_0_Final.xml index d82c9c7e20f30b337f6bbda27b8bcecdc3b02ac7..d0ebe145a29c0190e6611e83ef364f232459cd11 100644 --- a/.idea/libraries/Maven__org_jboss_jandex_2_0_0_Final.xml +++ b/.idea/libraries/Maven__org_jboss_jandex_2_0_0_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_1_Final.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_1_Final.xml index a0bd468118ebec8f06b1c75692accc76b6c05991..2aef18cc3e49ce70687212bd5d6859c18281a6b7 100644 --- a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_1_Final.xml +++ b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_1_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml index 432bc158e4c57f8a40c7baf29134ec9181bf75e4..5fbd53749e7b02a75533dcf1366ff5dcd4e29e12 100644 --- a/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml +++ b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_annotation_jboss_annotations_api_1_2_spec_1_0_0_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_annotation_jboss_annotations_api_1_2_spec_1_0_0_Final.xml index ac6446fb7f5fdcd15d11a22f0e8f0a33338d636d..2e670090a006d3c0a249a67395b45004bebe99af 100644 --- a/.idea/libraries/Maven__org_jboss_spec_javax_annotation_jboss_annotations_api_1_2_spec_1_0_0_Final.xml +++ b/.idea/libraries/Maven__org_jboss_spec_javax_annotation_jboss_annotations_api_1_2_spec_1_0_0_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_spec_javax_websocket_jboss_websocket_api_1_1_spec_1_1_0_Final.xml b/.idea/libraries/Maven__org_jboss_spec_javax_websocket_jboss_websocket_api_1_1_spec_1_1_0_Final.xml index 627e9646445f58321774f88d8d87260678a58e02..f4b40915c649a2a94fe10fa0c61ef1b16b0b8ec9 100644 --- a/.idea/libraries/Maven__org_jboss_spec_javax_websocket_jboss_websocket_api_1_1_spec_1_1_0_Final.xml +++ b/.idea/libraries/Maven__org_jboss_spec_javax_websocket_jboss_websocket_api_1_1_spec_1_1_0_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_xnio_xnio_api_3_3_8_Final.xml b/.idea/libraries/Maven__org_jboss_xnio_xnio_api_3_3_8_Final.xml index bfe89dd759865fe93f46476bec2ed43c2ae7f5a5..8ea0da737aae1b778b0a3bcf2d6f33530579fa38 100644 --- a/.idea/libraries/Maven__org_jboss_xnio_xnio_api_3_3_8_Final.xml +++ b/.idea/libraries/Maven__org_jboss_xnio_xnio_api_3_3_8_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_jboss_xnio_xnio_nio_3_3_8_Final.xml b/.idea/libraries/Maven__org_jboss_xnio_xnio_nio_3_3_8_Final.xml index 8ba3633bc643b37ecb33af690ef61302917cd36c..286939d95bee5badae3e5c52edc8bcac356141db 100644 --- a/.idea/libraries/Maven__org_jboss_xnio_xnio_nio_3_3_8_Final.xml +++ b/.idea/libraries/Maven__org_jboss_xnio_xnio_nio_3_3_8_Final.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mockito_mockito_core_1_10_19.xml b/.idea/libraries/Maven__org_mockito_mockito_core_1_10_19.xml index 87f451a0cd5e89b1843e3afcd30ed8fc1481dca9..f5c03e5365b695fd11dda62ceddfad468f52a386 100644 --- a/.idea/libraries/Maven__org_mockito_mockito_core_1_10_19.xml +++ b/.idea/libraries/Maven__org_mockito_mockito_core_1_10_19.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_mockito_mockito_core_2_15_0.xml b/.idea/libraries/Maven__org_mockito_mockito_core_2_15_0.xml index e2dbca0b3a6b524827f5f018b4836f5fbe31f37f..ccdfadc4eeb8a6b672afd6aa9621c5396de839c8 100644 --- a/.idea/libraries/Maven__org_mockito_mockito_core_2_15_0.xml +++ b/.idea/libraries/Maven__org_mockito_mockito_core_2_15_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_objenesis_objenesis_2_1.xml b/.idea/libraries/Maven__org_objenesis_objenesis_2_1.xml index 326df5fd86d6975527b7c2bb7923edf34695dfcf..0b48550d1fce918c239d4144a6a8d8c893854828 100644 --- a/.idea/libraries/Maven__org_objenesis_objenesis_2_1.xml +++ b/.idea/libraries/Maven__org_objenesis_objenesis_2_1.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml b/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml index 824027d7e68e3ce05f9639ea3dc5c76b66b3b150..1758c1dba8e7030ed9d1246b5dd938c25c58a607 100644 --- a/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml +++ b/.idea/libraries/Maven__org_objenesis_objenesis_2_6.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_ow2_asm_asm_5_0_3.xml b/.idea/libraries/Maven__org_ow2_asm_asm_5_0_3.xml index eb7f5a2c088262e125e8419e9594aad980a8f5c8..27945340f8c7502706bd3c3e5c25a719fa93af61 100644 --- a/.idea/libraries/Maven__org_ow2_asm_asm_5_0_3.xml +++ b/.idea/libraries/Maven__org_ow2_asm_asm_5_0_3.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml b/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml index 90be6d1904a5f66e5a7f5a98c74746ded4e580a2..02126214845b555527b67237235ab966665615cc 100644 --- a/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml +++ b/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_4_0.xml b/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_4_0.xml index e3ad2fd8186559a0afb5be89e262574020274f8b..e9b43d0a28e26fc3cdfbfe91ddd72fb644698e2d 100644 --- a/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_4_0.xml +++ b/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_4_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml b/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml index 93bb39391702e71c2ceae27e02541d5b92bc6979..96fe96dd3217a3de11915a3b7a2500cdb9587712 100644 --- a/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml +++ b/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_5_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_25.xml b/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_25.xml index 470798ac034af417422bee4c8d29ab70830c3fbb..c4120939711f5eb82002b8d16ee1a54d1c61bfc3 100644 --- a/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_25.xml +++ b/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_25.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml index 03e23a6645ce8c889d55058515e6fe55606d4243..f32ce01c0d784022703e801a5fb29f125b004c62 100644 --- a/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml +++ b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_log4j_over_slf4j_1_7_25.xml b/.idea/libraries/Maven__org_slf4j_log4j_over_slf4j_1_7_25.xml index 765db5afa125cad3d876be5c4dfd8b0623b9adcb..c377983de81d85538969f21339064189770f09be 100644 --- a/.idea/libraries/Maven__org_slf4j_log4j_over_slf4j_1_7_25.xml +++ b/.idea/libraries/Maven__org_slf4j_log4j_over_slf4j_1_7_25.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml index 162f57adaab7d5d3c28ec8334852348ce3bb644d..74212aa28ca037a57338ca66edb609abe4cef50a 100644 --- a/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml +++ b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_1_5_10_RELEASE.xml index d85604a1cd9234c9364049832292b43608f1a80b..c1c2c3eb49a0d1cdd522f7720c62319b2a19167c 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_2_RELEASE.xml index 0280ba2efe746daee5d33ed97464a787e0f26e95..66fa889921ed1a263e67f15e63e8b44d55eb569e 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_2_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_2_0_2_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_1_5_10_RELEASE.xml index a793d51b615a5a27aade1b0ba1777d51d3229154..af86d82dd66e7701903a85af1d0712a964e5e775 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_2_RELEASE.xml index 4d3e81282995e4186cc5f44d0ac5fd35e3fdec43..33f4b7e9e0cb1e95bbd7da50f664ea07576149ca 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_2_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_2_0_2_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_1_5_10_RELEASE.xml index e74481bb6673c371cf62120b035b1f9e7d8a80fa..5ea1d2da85cef46084efd84bd1ad7241bc8d8887 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_2_RELEASE.xml index 42ccd2734966fa30bf694096ec5c584da9876a76..be9f1bdb6ff237e22067120521fdaf492c174b1a 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_2_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_2_0_2_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_1_5_10_RELEASE.xml index 437a41754229eee53280741559cc2482535fbac6..2c765ab2d56a03c25ae4a4ad0a0c87d6e21cda14 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_1_5_10_RELEASE.xml index 6469e1c793d15dc8f6fb35bcfe558f3d26bf2735..2339aef57b832467993a6503392f9390774298b0 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_1_5_10_RELEASE.xml index df672effccbc5d43cc144268e4e0e9e34dd91568..d41329e3677016aa8d4e7f85aee2a323be203bae 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_redis_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_1_5_10_RELEASE.xml index 3795cb4f8177452caac9bdc47123c8cd40f29264..630732038227a5e165e3bd2143359ba414183c6b 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_0_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_0_2_RELEASE.xml index 5607597ea5d050e7aa627c83c0519da1e018f799..330b015c6e2db8d7f6b067c5761c684c97fccfa8 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_0_2_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_json_2_0_2_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_1_5_10_RELEASE.xml index e89f0ee2d415205889c03cd10511be7f4fa5c53d..53b7ddefb3e3d4066e9122b1a08b54229b309f08 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_0_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_0_2_RELEASE.xml index facc76511dddad1907fd7f9520bc6037e41b8a72..3363a96fa6d039991507ef881a29c0a2925f26d7 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_0_2_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_2_0_2_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_security_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_security_1_5_10_RELEASE.xml index c533e3c5066748b1df2f442e7a01747a44caf533..144c865f3194d5053e058ce57f8573d17049a673 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_security_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_security_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_1_5_10_RELEASE.xml index f70cd2d5a3eeeff6664db1aa2f2f82d715a3f2ba..1b30ec80294df0d12fcc7a9e53201b3621748943 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_0_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_0_2_RELEASE.xml index afbacef6dd61d0f30ade514a29f8225453fc0f5d..38f53c129453356affb9c622537efeed2253bae2 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_0_2_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_2_0_2_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_1_5_10_RELEASE.xml index 38214ad934353b01f4c8d377314fe7208514dd6c..bf896739ff02d09393039f03f477b35e5c80a6c7 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_2_RELEASE.xml index bde27ebfeadccbf3b4d1d7ccd644a8169af7f670..fd789ec5117aaaf8a6d634845103272b91882626 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_2_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_2_0_2_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_undertow_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_undertow_1_5_10_RELEASE.xml index 0aaf3b1e87f5f56b9c795fac7c136ca9ec87926c..ed6ef4abcd07501fff40717a5edacf1059548d96 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_undertow_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_undertow_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_1_5_10_RELEASE.xml index 2531401d08cdaec6dcc572a40ed40a69a31df7aa..982db621f985672e09c3ab35c31864b05b237ad4 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_0_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_0_2_RELEASE.xml index cb9a51b0715674a4698433f02a49020a0b47d18d..94351003d731139a07c4e85b8ba71460fea29c76 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_0_2_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_2_0_2_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_websocket_2_0_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_websocket_2_0_2_RELEASE.xml index f21a278d7fe84d05a39833601adb6c66e06de723..3648bd8fd98f37947e5bd4c66f3664dd219bb27c 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_websocket_2_0_2_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_websocket_2_0_2_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_1_5_10_RELEASE.xml index 0cbee00fd90d87d296a9c75f98515ca269c3fb9f..5726fac54d4f81dbc7e43b308cf45224442dc485 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_0_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_0_2_RELEASE.xml index feb79c468b2a6d9d36dbedbe494b1413c9638f32..bb4fedda9d864bdab54345a07ffc56cfd4f3982d 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_0_2_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_2_0_2_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_1_5_10_RELEASE.xml index a166460a451d627544d4a898082d26077f2386a4..156966d1dd251a44a64d5dddbcfb5237cde6b0c3 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_1_5_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_1_5_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_0_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_0_2_RELEASE.xml index ef7152d9d6382ca5cf5ede1e2ad6d9e2bed8c38b..92bc780e869cc757b022edff6f1f847b51bbf2c2 100644 --- a/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_0_2_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_0_2_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_commons_1_13_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_commons_1_13_10_RELEASE.xml index 2104e7d109441a06c33a98af79e0405183b23cd8..9314774abf7fd1bbffcf64f2112532519ffe2c05 100644 --- a/.idea/libraries/Maven__org_springframework_data_spring_data_commons_1_13_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_commons_1_13_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_1_11_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_1_11_10_RELEASE.xml index b393add7fca357026d26ee075c626adafc59ee3d..23d1c9e1fdf49233491cbe333bce802ad2a46bdf 100644 --- a/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_1_11_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_1_11_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_1_2_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_1_2_10_RELEASE.xml index be92183bed3870c72bdb91a529008d59a6f1ca53..ff608471decbe8344f9d54c348f9c6ab1b0a1c13 100644 --- a/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_1_2_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_keyvalue_1_2_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_data_spring_data_redis_1_8_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_data_spring_data_redis_1_8_10_RELEASE.xml index 420b6ebd2cc9bdc205e2cd7b909bad78340b5f81..b09691587b695d97f921fd56f47a6b4a2745d8fd 100644 --- a/.idea/libraries/Maven__org_springframework_data_spring_data_redis_1_8_10_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_data_spring_data_redis_1_8_10_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_security_oauth_spring_security_oauth2_2_0_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_security_oauth_spring_security_oauth2_2_0_14_RELEASE.xml index dcb10011b780706dca99a9d4f13ee5023a48c6d7..4908a3c788b7ec4b9e3aecde98a59a604455ec70 100644 --- a/.idea/libraries/Maven__org_springframework_security_oauth_spring_security_oauth2_2_0_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_security_oauth_spring_security_oauth2_2_0_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_config_4_2_4_RELEASE.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_config_4_2_4_RELEASE.xml index 23805f7a619509f91736bbd915830a49fc268c3e..747d588a7a607242590f19a728885365b044b412 100644 --- a/.idea/libraries/Maven__org_springframework_security_spring_security_config_4_2_4_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_security_spring_security_config_4_2_4_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_core_4_2_4_RELEASE.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_core_4_2_4_RELEASE.xml index a6b5f8dbbc7ce5d7cbc9187fca68f97e98045ad3..cce102644b3771c10d99e745cca718d6126df8fd 100644 --- a/.idea/libraries/Maven__org_springframework_security_spring_security_core_4_2_4_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_security_spring_security_core_4_2_4_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_web_4_2_4_RELEASE.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_web_4_2_4_RELEASE.xml index b6d15b0fb6802c14d4b62965c1c344b4027fb6db..6e7c0335c514a81f79534df79f57516f02507902 100644 --- a/.idea/libraries/Maven__org_springframework_security_spring_security_web_4_2_4_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_security_spring_security_web_4_2_4_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_aop_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_aop_4_3_14_RELEASE.xml index 33d02d051321d82b1e7c1d0d641fe6fefeb877d7..27f88362e27732a2bca6be3fa921470a334a6c58 100644 --- a/.idea/libraries/Maven__org_springframework_spring_aop_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_aop_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_aop_5_0_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_aop_5_0_6_RELEASE.xml index 2e5e0cd2958e39e1a9d07d50e0b2b76bbc5f1ac6..cf6d6a3aa5751ec717d12f2c240d3778b4850d6d 100644 --- a/.idea/libraries/Maven__org_springframework_spring_aop_5_0_6_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_aop_5_0_6_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_aspects_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_aspects_4_3_14_RELEASE.xml index 9038a9d84a567fa03ea899f23ee845dc06a208e3..74d6c82a9af50bbaf289bf5270b0357dc6454a72 100644 --- a/.idea/libraries/Maven__org_springframework_spring_aspects_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_aspects_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_beans_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_beans_4_3_14_RELEASE.xml index cc32c79e2feb12c381b33894739e1a867a84020b..1e22c2467456681aeee918efa25731d4824bf05b 100644 --- a/.idea/libraries/Maven__org_springframework_spring_beans_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_beans_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_beans_5_0_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_beans_5_0_6_RELEASE.xml index 60c94f91c099de2ef8c4e78e15f70b9cb18dfc42..c465436b892f508544ff6fcb93833fd21da78927 100644 --- a/.idea/libraries/Maven__org_springframework_spring_beans_5_0_6_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_beans_5_0_6_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_context_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_context_4_3_14_RELEASE.xml index 2615ead755c2de363b6dfee2fe8276a2281db158..a9d03a504f283f1224009e560fd4c29bbea4f082 100644 --- a/.idea/libraries/Maven__org_springframework_spring_context_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_context_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_context_5_0_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_context_5_0_6_RELEASE.xml index 02289872d12c65c3ee4ebdba41d1f5a063e3b6ac..bf3892b91031d96da67489c55b8ab39b4e77d6b2 100644 --- a/.idea/libraries/Maven__org_springframework_spring_context_5_0_6_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_context_5_0_6_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_context_support_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_context_support_4_3_14_RELEASE.xml index a8bfca043c8acf70b8cc427e25305b6602b941e5..37097db0763f85ad0b9faa8ba2c1f3d31d1afa0d 100644 --- a/.idea/libraries/Maven__org_springframework_spring_context_support_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_context_support_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_core_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_core_4_3_14_RELEASE.xml index 767a379dab1f0406d92dd2648f69a2f84d2a5e45..3a3838e7db80b85506b238c61cd66a28dae20a6b 100644 --- a/.idea/libraries/Maven__org_springframework_spring_core_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_core_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_core_5_0_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_core_5_0_6_RELEASE.xml index 5aa46abbbf755560eb035e3bba734036c98dd41b..57b6ca3359f40036a76436564dee84137fed490a 100644 --- a/.idea/libraries/Maven__org_springframework_spring_core_5_0_6_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_core_5_0_6_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_expression_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_expression_4_3_14_RELEASE.xml index 0c84763a3ec8b1e1e398ed2a84a475e07e5df1b0..283861fcca9eb51ba73585819c4625c302c2bdcb 100644 --- a/.idea/libraries/Maven__org_springframework_spring_expression_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_expression_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_expression_5_0_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_expression_5_0_6_RELEASE.xml index be16e9008622b842acdbc78d555d30460d9072bc..d3a4a22c422569b631edc841134c2abd5aaea59b 100644 --- a/.idea/libraries/Maven__org_springframework_spring_expression_5_0_6_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_expression_5_0_6_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jcl_5_0_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_jcl_5_0_6_RELEASE.xml index 1af17f4db38d5fd897d37d86d22599c358991d23..8435f3ad97bd0341635b6cea72139ea2c03a1b0a 100644 --- a/.idea/libraries/Maven__org_springframework_spring_jcl_5_0_6_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_jcl_5_0_6_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_jdbc_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_jdbc_4_3_14_RELEASE.xml index d1bf0141d8aee422e564aac62ab2196064dddbeb..d20124b9ceb0fb08ef5137d662f0c84be3f3a9ca 100644 --- a/.idea/libraries/Maven__org_springframework_spring_jdbc_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_jdbc_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_messaging_5_0_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_messaging_5_0_6_RELEASE.xml index 40f6802838694d52c90e49229a2eda5d584cb318..812a221c7e406af75a058ab28197fbefdc4b7e49 100644 --- a/.idea/libraries/Maven__org_springframework_spring_messaging_5_0_6_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_messaging_5_0_6_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_orm_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_orm_4_3_14_RELEASE.xml index 994e9391dcbfe4b2d5326dd5d90b39b75ddfbeb9..cefc72ad2f16b59ef6a2f320cdbbd029a414298a 100644 --- a/.idea/libraries/Maven__org_springframework_spring_orm_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_orm_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_oxm_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_oxm_4_3_14_RELEASE.xml index dc2d6f7e72b2cd2d9973a6b56bbb35c907e00df0..db84aecd5019b2d3db05975b41b8e7f53b069ee2 100644 --- a/.idea/libraries/Maven__org_springframework_spring_oxm_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_oxm_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_test_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_test_4_3_14_RELEASE.xml index ddb787b6ced899452872d36add29741d5ac05d54..0f7b68d8b1f1eb816f1205d9b17fba3fc5df92c8 100644 --- a/.idea/libraries/Maven__org_springframework_spring_test_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_test_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_test_5_0_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_test_5_0_6_RELEASE.xml index 92f31f2b5dc6d53e92ad336ce68fa4dfdb722557..8c4db1094a5f2fb32bc6c82fe306db33b417162e 100644 --- a/.idea/libraries/Maven__org_springframework_spring_test_5_0_6_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_test_5_0_6_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_tx_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_tx_4_3_14_RELEASE.xml index 62076ed982ecc39dbe1d20b2d47b6b86a0fff9b5..a48087a05443181073bbcb9267a31e23506c26ea 100644 --- a/.idea/libraries/Maven__org_springframework_spring_tx_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_tx_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_web_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_web_4_3_14_RELEASE.xml index bddfa8073f1e31645b32b43a9ed1d6437a3b6d01..837ecd473b60e571a548d61148eecd14e188fc68 100644 --- a/.idea/libraries/Maven__org_springframework_spring_web_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_web_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_web_5_0_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_web_5_0_6_RELEASE.xml index 8303a6b03cc834870a2e2783887069dc922bc924..e904f06b4e5185bd5839f52c7e6ada6f2b40f5e7 100644 --- a/.idea/libraries/Maven__org_springframework_spring_web_5_0_6_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_web_5_0_6_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_webmvc_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_webmvc_4_3_14_RELEASE.xml index cfc5d990fc838455042dff8348efbeee2927c8c2..e02367df1635f26faf2b074d135580bb8a5e339c 100644 --- a/.idea/libraries/Maven__org_springframework_spring_webmvc_4_3_14_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_webmvc_4_3_14_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_6_RELEASE.xml index c1a58a7b381a57220a718c2c2735787c751a8aa0..5c711457f533772318735a9e4612ff18a7202def 100644 --- a/.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_6_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_webmvc_5_0_6_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_springframework_spring_websocket_5_0_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_websocket_5_0_6_RELEASE.xml index d2c643a5d828ef0c4adb5e9d8b664f32b9cbdeb7..f2e89b773ca7239620fe2cf12dd67e6f81e7c400 100644 --- a/.idea/libraries/Maven__org_springframework_spring_websocket_5_0_6_RELEASE.xml +++ b/.idea/libraries/Maven__org_springframework_spring_websocket_5_0_6_RELEASE.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_5_1.xml b/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_5_1.xml index a346198f37d778727ea72bfdbe6f42253e965358..fec8bf811b76e5f844656b0399613464dd03cd49 100644 --- a/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_5_1.xml +++ b/.idea/libraries/Maven__org_xmlunit_xmlunit_core_2_5_1.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_17.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_17.xml index bf072add403c30783e073df4bd35ac86462b3ab2..8e1f138abb999f7622ecf175142b80b6f608f826 100644 --- a/.idea/libraries/Maven__org_yaml_snakeyaml_1_17.xml +++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_17.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml b/.idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml index 8a53e93ddd133bf751edb425072524c60f5f469c..07b5aa90219c16e4b66dba402258818331bc7bee 100644 --- a/.idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml +++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_19.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/libraries/Maven__redis_clients_jedis_2_9_0.xml b/.idea/libraries/Maven__redis_clients_jedis_2_9_0.xml index e5d7e694d814eea5bbc2ca384385a8b971e50b7c..7916a1a55bcdb2444241028d642139f1d065d8de 100644 --- a/.idea/libraries/Maven__redis_clients_jedis_2_9_0.xml +++ b/.idea/libraries/Maven__redis_clients_jedis_2_9_0.xml @@ -1,13 +1,13 @@ - + - + - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 65e4fe937ce49cb2c1bd16c25486d0b792acebbf..3b90ffee960de1b39b6be74a832e5c822ac8879b 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -16,6 +16,8 @@ diff --git a/.idea/modules.xml b/.idea/modules.xml index 5ccbaa3ed978004bbd667dea3585c7e1eb7e9e56..e15153a4de9d22d178f2726810d79e82ca03b5e2 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -6,6 +6,8 @@ + + diff --git a/springboot-hibernate-interceptoer/pom.xml b/springboot-hibernate-interceptoer/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..a67fd6e7dba06e4a917abbaf0753e344a7b12e54 --- /dev/null +++ b/springboot-hibernate-interceptoer/pom.xml @@ -0,0 +1,73 @@ + + + + spring-boot-demo + com.vesus + 0.0.1-SNAPSHOT + + 4.0.0 + + springboot-hibernate-interceptoer + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + mysql + mysql-connector-java + + + + com.alibaba + druid + 1.0.29 + + + org.springframework.boot + spring-boot-starter-test + + + org.springframework.boot + spring-boot-devtools + + + org.springframework.boot + spring-boot-actuator + + + org.hibernate + hibernate-envers + 5.0.12.Final + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 1.4.2.RELEASE + + + true + + + + org.springframework.boot + spring-boot-maven-plugin + + + + \ No newline at end of file diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/SpringBootHibernateAditInterceptorApplication.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/SpringBootHibernateAditInterceptorApplication.java new file mode 100644 index 0000000000000000000000000000000000000000..e816720d44223c8e7e17ffa69f8e17c5c7f92e95 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/SpringBootHibernateAditInterceptorApplication.java @@ -0,0 +1,63 @@ +package com.vesus; + +import com.vesus.audit.AuditOperationRecordAware; +import com.vesus.audit.AuditOperationRecordAwareImpl; +import com.vesus.listener.CustomAuditor; +import com.vesus.listener.CustomInterceptor; +import org.hibernate.SessionFactory; +import org.hibernate.jpa.HibernateEntityManagerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Bean; +import org.springframework.data.domain.AuditorAware; +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +@SpringBootApplication +@EnableTransactionManagement +@EnableJpaRepositories +@EnableJpaAuditing +public class SpringBootHibernateAditInterceptorApplication { + + public static void main(String[] args) { + SpringApplication.run(SpringBootHibernateAditInterceptorApplication.class, args); + } + + @Bean + public SessionFactory sessionFactory(HibernateEntityManagerFactory hemf) { + return hemf.getSessionFactory(); + } + + @Bean + AuditOperationRecordAware auditOperationRecordAware() { + return new AuditOperationRecordAwareImpl(); + } + + + @Bean + AuditorAware auditorProvider() { + return new CustomAuditor(); + } + + + @Resource + private SessionFactory sessionFactory; + //@Autowired + //AuditOperationRecord auditOperationRecord; + + @Autowired + CustomInterceptor interceptor; + + @PostConstruct + public void registerInterceptor() { + //CustomInterceptor interceptor = new CustomInterceptor(); + //interceptor.setAuditOperationRecord(auditOperationRecord); + sessionFactory.withOptions().interceptor(interceptor); + } + +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditEntityAlias.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditEntityAlias.java new file mode 100644 index 0000000000000000000000000000000000000000..e1b46ff2368bcb2d47fe3cd711debbc9d70fef95 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditEntityAlias.java @@ -0,0 +1,12 @@ +package com.vesus.audit; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface AuditEntityAlias { + String value(); +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditFieldAlias.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditFieldAlias.java new file mode 100644 index 0000000000000000000000000000000000000000..dcb8cbe7f740e97f83a334bc4a5e3b53b1098652 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditFieldAlias.java @@ -0,0 +1,12 @@ +package com.vesus.audit; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface AuditFieldAlias { + String value() default ""; +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditModifyFieldObject.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditModifyFieldObject.java new file mode 100644 index 0000000000000000000000000000000000000000..e2940f83ec405b6dd0b05c5ff4b86a72686badd3 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditModifyFieldObject.java @@ -0,0 +1,61 @@ +package com.vesus.audit; + +public class AuditModifyFieldObject { + + private Object oldValue; + private Object newValue; + private Object property; + private Object type; + private String alias; + private boolean isAudit; + + + public String getAlias() { + return alias; + } + + public void setAlias(String alias) { + this.alias = alias; + } + + public Object getOldValue() { + return oldValue; + } + + + public void setOldValue(Object oldValue) { + this.oldValue = oldValue; + } + + public Object getNewValue() { + return newValue; + } + + public void setNewValue(Object newValue) { + this.newValue = newValue; + } + + public Object getProperty() { + return property; + } + + public void setProperty(Object property) { + this.property = property; + } + + public Object getType() { + return type; + } + + public void setType(Object type) { + this.type = type; + } + + public boolean isAudit() { + return isAudit; + } + + public void setAudit(boolean audit) { + isAudit = audit; + } +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditOperationRecord.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditOperationRecord.java new file mode 100644 index 0000000000000000000000000000000000000000..f646d79359129e0dcff72e5ecea0aceab06c8f41 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditOperationRecord.java @@ -0,0 +1,174 @@ +package com.vesus.audit; + +import org.hibernate.type.Type; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.Serializable; +import java.lang.reflect.Field; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class AuditOperationRecord { + + private AuditOperationRecordAware auditOperationRecordAware; + + @Autowired(required = false) + public void setAuditOperationRecordAware(AuditOperationRecordAware auditOperationRecordAware) { + this.auditOperationRecordAware = auditOperationRecordAware; + } + + public boolean onSaveRecord(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { + System.out.println("=========添加============》"); + boolean result = processor(entity, id, state, null, propertyNames, types); + return result; + } + + + public boolean onUpdateRecord(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) { + System.out.println("=========更新============》"); + boolean result = processor(entity, id, currentState, previousState, propertyNames, types); + return result; + } + + + public void onDelete(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { + System.out.println("=========删除============》"); + processor(entity, id, null, state, propertyNames, types); + } + + /** + * 处理相同变更实体信息的公共类 + * + * @param entity + * 操作实体对象 + * @param id + * 操作实体主键编号 + * @param currentState + * 当前更改字段对象数组 + * @param previousState + * 变更前字段信息对象数组 + * @param propertyNames + * 英文属性名数组 + * @param types + * 属性类型数组hibernate封装 + * @return + */ + private boolean processor(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) { + Class entityClass = entity.getClass(); + if (auditOperationRecordAware == null) { + return true; + } + if (!entityClass.isAnnotationPresent(AuditEntityAlias.class)) { + return true; + } + AuditEntityAlias entityAlias = entityClass.getAnnotation(AuditEntityAlias.class); + String tableName = entityAlias.value(); + + //设置别名和审计字段长度 + boolean[] isAudits = new boolean[propertyNames.length]; + String[] alias = new String[propertyNames.length]; + try { + for (int i = 0; i < propertyNames.length; i++) { + //Field field = entityClass.getField(propertyNames[i]); + Field field = entityClass.getDeclaredField(propertyNames[i]); + field.setAccessible(true); + if (field.isAnnotationPresent(AuditFieldAlias.class)) { + AuditFieldAlias auditFieldAlias = field.getAnnotation(AuditFieldAlias.class); + isAudits[i] = true; + alias[i] = auditFieldAlias.value(); + } else { + isAudits[i] = false; + alias[i] = ""; + } + } + } catch (NoSuchFieldException e) { + System.err.println(e.getMessage()); + } + + //生成改变字段信息列表 + List auditModifyFieldObject = getAuditModifyFieldObject(currentState, previousState, propertyNames, types, alias, isAudits); + long timestamp = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant()).getTime(); + AuditOperationType operationType = AuditOperationType.UPDATE; + //根据变更对象是否为空判断操作类型 + if (previousState != null && currentState != null) { + operationType = AuditOperationType.UPDATE; + } + if (previousState == null && currentState != null) { + operationType = AuditOperationType.INSERT; + } + if (previousState != null && currentState == null) { + operationType = AuditOperationType.DELETE; + } + if (auditOperationRecordAware != null) { + auditOperationRecordAware.saveAuditOperationLog(tableName, id, auditModifyFieldObject, timestamp, operationType); + } + return true; + + } + + /** + * 获取自定义封装的字段修改对象类,用来保存更改前后的字段变化信息 + * + * @param currentState + * 操作后对象,也是当前对象 + * @param previousState + * 变更前对象 + * @param propertyNames + * 属性英文变量名称 + * @param types + * 属性类型,这里是hibernate帮忙生成的一个类型 + * @param alias + * 中文别名,这个属性需要结合 AuditFieldAlias 注解使用才能获取别名 + * @param isAudits + * 是否审计,如果为true表示此字段需要保存更改变更,false相反 + * @return + */ + private List getAuditModifyFieldObject(Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types, String[] alias, boolean[] isAudits) { + List list = new ArrayList<>(10); + int fieldCount = 0; + //获取字段总个数 + if (currentState != null && currentState.length > 0 && fieldCount == 0) { + fieldCount = currentState.length; + } + if (previousState != null && previousState.length > 0 && fieldCount == 0) { + fieldCount = previousState.length; + } + for (int i = 0; i < fieldCount; i++) { + AuditModifyFieldObject auditModifyObject = new AuditModifyFieldObject(); + //设置更改前的值 + if (previousState != null && previousState[i] != null) { + auditModifyObject.setOldValue(previousState[i]); + } + // 设置更改后的当前值 + if (currentState != null && currentState[i] != null) { + auditModifyObject.setNewValue(currentState[i]); + } + //设置属性名 + if (propertyNames != null && propertyNames[i] != null) { + auditModifyObject.setProperty(propertyNames[i]); + } + //设置类型 + if (types != null && types[i] != null) { + auditModifyObject.setType(types[i]); + } + // 设置别名 + if (alias != null && alias[i] != null) { + auditModifyObject.setAlias(alias[i]); + } + // 是否审计 + if (isAudits != null && isAudits[i]) { + auditModifyObject.setAudit(true); + } else { + auditModifyObject.setAudit(false); + } + list.add(auditModifyObject); + } + return list; + } + +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditOperationRecordAware.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditOperationRecordAware.java new file mode 100644 index 0000000000000000000000000000000000000000..676fff1bc0b18ab184d418eab91303dcae6aa569 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditOperationRecordAware.java @@ -0,0 +1,8 @@ +package com.vesus.audit; + +import java.io.Serializable; +import java.util.List; + +public interface AuditOperationRecordAware { + void saveAuditOperationLog(String tableName, Serializable id, List auditModifyFieldObject, long timestamp, AuditOperationType operationType); +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditOperationRecordAwareImpl.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditOperationRecordAwareImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..92723fc7a033d81d5145c414f3681f3ba36b46bb --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditOperationRecordAwareImpl.java @@ -0,0 +1,82 @@ +package com.vesus.audit; + +import com.vesus.domain.AuditRecordLog; +import com.vesus.service.AuditRecordLogService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.io.Serializable; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +public class AuditOperationRecordAwareImpl implements AuditOperationRecordAware { + + @Autowired + private AuditRecordLogService auditRecordLogService; + + @Override + public void saveAuditOperationLog(String tableName, Serializable id, List auditModifyFieldObject, long timestamp, AuditOperationType operation) { + + + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String date = df.format(new Date(timestamp)); + System.out.println("更改的表名=========》" + tableName); + System.out.println("主键=========》" + id); + System.out.println("更改时间=========》" + date); + + + // todo 保存到数据库 + int i = 0; + for (AuditModifyFieldObject modifyFieldObject : auditModifyFieldObject) { + Object oldValue = modifyFieldObject.getOldValue(); + Object newValue = modifyFieldObject.getNewValue(); + if (modifyFieldObject.isAudit() && !(oldValue == null && newValue == null) && !("".equals(oldValue) && "".equals(newValue))) { + AuditRecordLog auditRecordLog = new AuditRecordLog(); + // 判断值不全是空或者前后值是否相等 + if (oldValue == null || newValue == null) { + auditRecordLog.setOldValue(oldValue + ""); + auditRecordLog.setNewValue(newValue + ""); + } else { + if (!oldValue.equals(newValue)) { + auditRecordLog.setOldValue(oldValue + ""); + auditRecordLog.setNewValue(newValue + ""); + } else { + continue; + } + } + auditRecordLog.setPropertyName(modifyFieldObject.getProperty() + ""); + auditRecordLog.setAlias(modifyFieldObject.getAlias()); + auditRecordLog.setEntityName(tableName); + auditRecordLog.setModifiedDate(date); + String username = "特斯特" + i++; //todo 获取用户名等信息 + auditRecordLog.setUserName(username); + String description = ""; + //如果是添加 + if (AuditOperationType.INSERT.equals(operation)) { + description = getOperationDescription(username, date, operation, newValue + ""); + + } + //如果是更新 + if (AuditOperationType.UPDATE.equals(operation)) { + description = getOperationDescription(username, date, operation, oldValue + "为" + newValue + ""); + } + //如果是删除 + if (AuditOperationType.DELETE.equals(operation)) { + description = getOperationDescription(username, date, operation, oldValue + ""); + + } + auditRecordLog.setDescription(description); + System.out.println("============描述========》" + description); + auditRecordLogService.save(auditRecordLog); + } + } + + } + + private String getOperationDescription(String userName, String datetime, AuditOperationType operation, String obj) { + return new StringBuffer().append(userName).append("在").append(datetime).append(operation.getValue()).append("了").append(obj).toString(); + + } + + +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditOperationType.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditOperationType.java new file mode 100644 index 0000000000000000000000000000000000000000..cdbe7ea80b97b66585e7f3d052f74cf5b0afd0fd --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditOperationType.java @@ -0,0 +1,74 @@ +package com.vesus.audit; + +/** + * 审计操作对象类别枚举 + */ +public enum AuditOperationType { + INSERT((byte) 0) { + @Override + public String getValue() { + return "新增"; + } + }, UPDATE((byte) 1) { + @Override + public String getValue() { + return "修改"; + } + }, DELETE((byte) 2) { + @Override + public String getValue() { + return "删除"; + } + }; + + private String value; + private Byte representation; + + AuditOperationType(byte representation) { + this.representation = representation; + } + + AuditOperationType() { + value = toString(); + } + + public static AuditOperationType parse(final String value) { + AuditOperationType operation = null; + for (final AuditOperationType op : AuditOperationType.values()) { + if (op.getValue().equals(value)) { + operation = op; + break; + } + } + return operation; + } + + public static AuditOperationType parseNumber(final Object representation) { + System.out.println(representation.getClass().getName()); + if (representation == null || !(representation instanceof Byte)) { + return null; + } + switch ((Byte) representation) { + case 0: { + return INSERT; + } + case 1: { + return UPDATE; + } + case 2: { + return DELETE; + } + default: { + throw new IllegalArgumentException("Unknown representation: " + representation); + } + } + } + + public String getValue() { + return value; + } + + public Byte getRepresentation() { + return representation; + } +} \ No newline at end of file diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditPrimaryID.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditPrimaryID.java new file mode 100644 index 0000000000000000000000000000000000000000..2abd7d6e26339c616522c16f6100dc5de0c20e71 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/audit/AuditPrimaryID.java @@ -0,0 +1,11 @@ +package com.vesus.audit; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface AuditPrimaryID { +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/controller/TUserController.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/controller/TUserController.java new file mode 100644 index 0000000000000000000000000000000000000000..184ad6174681308458b0ad79a218fab226d3f791 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/controller/TUserController.java @@ -0,0 +1,64 @@ +package com.vesus.controller; + + +import com.vesus.domain.TUser; +import com.vesus.service.TUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Optional; + +@RestController +@RequestMapping("/tUserController") +public class TUserController { + + @Autowired + private TUserService tUserService; + + @RequestMapping("/save") + public TUser save(TUser tUser) { + return tUserService.save(tUser); + } + + @RequestMapping("/findOneById") + public TUser findOneById(Integer id) { + return tUserService.findOne(id); + } + + @RequestMapping("/findOptionalOneById") + public Optional findOptionOneById(Integer id) { + return tUserService.findById(id); + } + + @RequestMapping("/existsById") + public boolean existsById(Integer id) { + return tUserService.existsById(id); + } + + @RequestMapping("/findAll") + public List findAll() { + return tUserService.findAll(); + } + + @RequestMapping("/findAllByEntityManager") + public List findAllByEntityManager() { + return tUserService.findAllByEntityManager("select * from t_user", TUser.class); + } + + @RequestMapping("/count") + public Long count() { + return tUserService.count(); + } + + @RequestMapping("/deleteById") + public void deleteById(Integer id) { + tUserService.deleteById(id); + } + + @RequestMapping("/deleteByEntity") + public void delete(TUser tUser) { + tUserService.delete(tUser); + } +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/domain/AuditRecordLog.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/domain/AuditRecordLog.java new file mode 100644 index 0000000000000000000000000000000000000000..896f66cef9398fd01fabaebaf63e3a192a3be38b --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/domain/AuditRecordLog.java @@ -0,0 +1,120 @@ +package com.vesus.domain; + + +@Entity +@Table(name = "t_audit_record_log") +public class AuditRecordLog { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private int id; + + @Column(name = "t_entity_name") + private String entityName; + + @Column(name = "t_property_name") + private String propertyName; + + @Column(name = "t_alias") + private String alias; + + @Column(name = "t_old_value") + private String oldValue; + + @Column(name = "t_new_value") + private String newValue; + + @Column(name = "t_user_id") + private int userId; + + @Column(name = "t_user_name") + private String userName; + + @Column(name = "t_modified_date") + private String modifiedDate; + + @Column(name = "t_description") + private String description; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getPropertyName() { + return propertyName; + } + + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + } + + public String getEntityName() { + return entityName; + } + + public void setEntityName(String entityName) { + this.entityName = entityName; + } + + + public String getAlias() { + return alias; + } + + public void setAlias(String alias) { + this.alias = alias; + } + + public String getOldValue() { + return oldValue; + } + + public void setOldValue(String oldValue) { + this.oldValue = oldValue; + } + + public String getNewValue() { + return newValue; + } + + public void setNewValue(String newValue) { + this.newValue = newValue; + } + + public int getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getModifiedDate() { + return modifiedDate; + } + + public void setModifiedDate(String modifiedDate) { + this.modifiedDate = modifiedDate; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/domain/CustomerRevisionEntity.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/domain/CustomerRevisionEntity.java new file mode 100644 index 0000000000000000000000000000000000000000..7b27c14714099de248da70f11c7e8670c497e6fe --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/domain/CustomerRevisionEntity.java @@ -0,0 +1,50 @@ +package com.vesus.domain; + + +import com.vesus.listener.CustomRevisionListener; +import org.hibernate.envers.RevisionEntity; +import org.hibernate.envers.RevisionNumber; +import org.hibernate.envers.RevisionTimestamp; + + +@Entity +@Table(name = "t_revisions_info") +@RevisionEntity(CustomRevisionListener.class) +public class CustomerRevisionEntity { + @Id + @GeneratedValue + @RevisionNumber + @Column(name = "id") + private int id; + + @RevisionTimestamp + @Column(name = "timestamp") + private long timestamp; + + @Column(name = "user_name") + private String userName; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public long getTimestamp() { + return timestamp; + } + + public void setTimestamp(long timestamp) { + this.timestamp = timestamp; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/domain/TUser.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/domain/TUser.java new file mode 100644 index 0000000000000000000000000000000000000000..379ffb30119660c82aa40bdbf72dafecb13f3e05 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/domain/TUser.java @@ -0,0 +1,137 @@ +package com.vesus.domain; + +import com.vesus.audit.AuditEntityAlias; +import com.vesus.audit.AuditFieldAlias; +import com.vesus.audit.AuditPrimaryID; +import com.vesus.listener.CustomAuditListener; +import org.hibernate.envers.Audited; +import org.springframework.data.annotation.CreatedBy; +import org.springframework.data.annotation.LastModifiedBy; +import org.springframework.data.annotation.LastModifiedDate; + +import java.io.Serializable; + + +/** + * @author wx11055@163.com + * @date 2018-06-27 23:19:28 + * Created by wuxia . + */ +@Entity +@Table(name = "t_user") +@Audited +@EntityListeners(CustomAuditListener.class) +@AuditEntityAlias("用户信息表") +//@AuditTable(value = "_revisions_info") +public class TUser implements Serializable { + + /** + * 编号 + */ + @Id + @GeneratedValue + @Column(name = "t_id") + @AuditPrimaryID + private Integer id; + + @Column(name = "t_address") + @AuditFieldAlias("联系地址") + private String tAddress; + + @Column(name = "t_age") + @AuditFieldAlias("年龄") + private Integer tAge; + + @Column(name = "t_name") + @AuditFieldAlias("姓名") + private String tName; + + @Column(name = "t_pwd") + @AuditFieldAlias("密码") + private String tPwd; + + @Column(name = "t_creator") + @CreatedBy + @LastModifiedBy + private String tCreator; + + + @Column(name = "t_modified_date") + @LastModifiedDate + private String tModifiedDate; + + public String gettCreator() { + return tCreator; + } + + public void settCreator(String tCreator) { + this.tCreator = tCreator; + } + + public String gettModifiedDate() { + return tModifiedDate; + } + + public void settModifiedDate(String tModifiedDate) { + this.tModifiedDate = tModifiedDate; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + + public String gettAddress() { + return tAddress; + } + + public void settAddress(String tAddress) { + this.tAddress = tAddress; + } + + public Integer gettAge() { + return tAge; + } + + public void settAge(Integer tAge) { + this.tAge = tAge; + } + + public String gettName() { + return tName; + } + + public void settName(String tName) { + this.tName = tName; + } + + public String gettPwd() { + return tPwd; + } + + public void settPwd(String tPwd) { + this.tPwd = tPwd; + } + + + //@PrePersist + //public void onPrePersist() { + // + // System.out.println("============>>>>>>>持久化保存之前"); + //} + // + //@PreUpdate + //public void onPreUpdate() { + // System.out.println("=============>>>>>>>更新之前"); + //} + // + //@PreRemove + //public void onPreRemove() { + // System.out.println("=================>>>>>删除前"); + //} + +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/listener/CustomAuditListener.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/listener/CustomAuditListener.java new file mode 100644 index 0000000000000000000000000000000000000000..2603843dd65b5a87b405c5fcc1de23d29ffc80ce --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/listener/CustomAuditListener.java @@ -0,0 +1,18 @@ +package com.vesus.listener; + + +import javax.persistence.PrePersist; +import javax.persistence.PreRemove; +import javax.persistence.PreUpdate; + +public class CustomAuditListener { + + + @PrePersist + @PreUpdate + @PreRemove + private void beforeAnyOperation(Object object) { + } + + +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/listener/CustomAuditor.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/listener/CustomAuditor.java new file mode 100644 index 0000000000000000000000000000000000000000..462b5fc40a5c1eb96ef71d9df876e3e0aa7e96b0 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/listener/CustomAuditor.java @@ -0,0 +1,27 @@ +package com.vesus.listener; + + +import org.springframework.data.domain.AuditorAware; + +public class CustomAuditor implements AuditorAware { + private String username; + private String userId; + + @Override + public String getCurrentAuditor() { + return this.username; + } + + public CustomAuditor() { + super(); + } + + public CustomAuditor(String username) { + this.username = username; + } + + public CustomAuditor(String username, String userId) { + this.username = username; + this.userId = userId; + } +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/listener/CustomInterceptor.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/listener/CustomInterceptor.java new file mode 100644 index 0000000000000000000000000000000000000000..70caa6b71af66dc9a8d6c44054e57f0cd17cde30 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/listener/CustomInterceptor.java @@ -0,0 +1,42 @@ +package com.vesus.listener; + + +import com.vesus.audit.AuditOperationRecord; +import org.hibernate.EmptyInterceptor; +import org.hibernate.type.Type; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.Serializable; +@Component +public class CustomInterceptor extends EmptyInterceptor { + + @Autowired(required = false) + AuditOperationRecord auditOperationRecord; + + + public void setAuditOperationRecord(AuditOperationRecord auditOperationRecord) { + this.auditOperationRecord = auditOperationRecord; + } + + @Override + public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { + auditOperationRecord.onSaveRecord(entity, id, state, propertyNames, types); + return super.onSave(entity, id, state, propertyNames, types); + } + + @Override + public boolean onFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) { + auditOperationRecord.onUpdateRecord(entity, id, currentState, previousState, propertyNames, types); + + return super.onFlushDirty(entity, id, currentState, previousState, propertyNames, types); + + } + + @Override + public void onDelete(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { + auditOperationRecord.onDelete(entity, id, state, propertyNames, types); + super.onDelete(entity, id, state, propertyNames, types); + + } +} \ No newline at end of file diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/listener/CustomRevisionListener.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/listener/CustomRevisionListener.java new file mode 100644 index 0000000000000000000000000000000000000000..b1295aa10a00b6effef25c658cc40a0e9c38fabe --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/listener/CustomRevisionListener.java @@ -0,0 +1,16 @@ +package com.vesus.listener; + + +import com.vesus.domain.CustomerRevisionEntity; +import org.hibernate.envers.RevisionListener; + +/** + * 修订监听器 + */ +public class CustomRevisionListener implements RevisionListener { + + public void newRevision(Object revisionEntity) { + CustomerRevisionEntity exampleRevEntity = (CustomerRevisionEntity) revisionEntity; + exampleRevEntity.setUserName("matosiki"); + } +} \ No newline at end of file diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/repository/AuditRecordLogRepository.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/repository/AuditRecordLogRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..6557320726de98256768defdf5ff167c1ea73d5d --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/repository/AuditRecordLogRepository.java @@ -0,0 +1,11 @@ +package com.vesus.repository; + + +import com.vesus.domain.AuditRecordLog; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository("operationRevisionLogRepository") +public interface AuditRecordLogRepository extends CrudRepository { + +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/repository/TUserRepository.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/repository/TUserRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..af300c686b826cff8f80508a989935f7cc246f34 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/repository/TUserRepository.java @@ -0,0 +1,30 @@ +package com.vesus.repository; + + +import com.vesus.domain.TUser; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.stream.Stream; + +/** + * @author wx11055@163.com + * @date 2018-06-27 23:19:28 + * Created by CodeGen . + */ +@Repository("tUserRepository") +public interface TUserRepository extends CrudRepository { + @Query("select l from TUser l") + Page findAllPaged(Pageable pageable); + + //Page findAllAndSortPaged(Pageable pageable, Sort sort); + + @Query("select l from TUser l") + Stream findAllAndStreamPaged(Pageable pageable); + + //Page queryFirst10ByName(String name, Pageable pageable); + +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/service/AuditRecordLogService.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/service/AuditRecordLogService.java new file mode 100644 index 0000000000000000000000000000000000000000..7ad6b652516561debd79dd369533c17b8b261a1a --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/service/AuditRecordLogService.java @@ -0,0 +1,19 @@ +package com.vesus.service; + + +import com.vesus.domain.AuditRecordLog; + +import java.util.List; + +public interface AuditRecordLogService { + + List findAll(); + + AuditRecordLog save(AuditRecordLog businessChangeLog); + + AuditRecordLog findOne(long id); + + void delete(long id); + + List findByName(String name); +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/service/TUserService.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/service/TUserService.java new file mode 100644 index 0000000000000000000000000000000000000000..7a388763c9e61b09b28bbca6931f258ff2b7476b --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/service/TUserService.java @@ -0,0 +1,40 @@ +package com.vesus.service; + + +import com.vesus.domain.TUser; +import org.springframework.data.domain.Page; + +import java.util.List; +import java.util.Optional; + +/** + * @author wx11055@163.com + * @date 2018-06-27 23:19:28 + * Created by wuxia . + */ +public interface TUserService { + + TUser save(TUser tUser); + + Iterable saveAll(Iterable list); + + TUser findOne(Integer id); + + Optional findById(Integer id); + + boolean existsById(Integer id); + + List findAll(); + + Long count(); + + void deleteById(Integer id); + + void delete(TUser tUser); + + void deleteAll(Iterable iter); + + Page findAllPaged(Integer pageNum, Integer pageSize); + + List findAllByEntityManager(String excuteSql, Class returnType); +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/service/imp/AuditRecordLogServiceImpl.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/service/imp/AuditRecordLogServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..66bdf7694c69b53071c81226752b4b5b6d49c841 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/service/imp/AuditRecordLogServiceImpl.java @@ -0,0 +1,42 @@ +package com.vesus.service.imp; + + +import com.vesus.domain.AuditRecordLog; +import com.vesus.repository.AuditRecordLogRepository; +import com.vesus.service.AuditRecordLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class AuditRecordLogServiceImpl implements AuditRecordLogService { + + @Autowired + private AuditRecordLogRepository auditRecordLogRepository; + + @Override + public List findAll() { + return null; + } + + @Override + public AuditRecordLog save(AuditRecordLog auditRecordLog) { + return auditRecordLogRepository.save(auditRecordLog); + } + + @Override + public AuditRecordLog findOne(long id) { + return null; + } + + @Override + public void delete(long id) { + + } + + @Override + public List findByName(String name) { + return null; + } +} diff --git a/springboot-hibernate-interceptoer/src/main/java/com/vesus/service/imp/TUserServiceImpl.java b/springboot-hibernate-interceptoer/src/main/java/com/vesus/service/imp/TUserServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..7efe1748af741bf921f1235f2ee1c2f5e9ba2489 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/java/com/vesus/service/imp/TUserServiceImpl.java @@ -0,0 +1,101 @@ +package com.vesus.service.imp; + + +import com.vesus.domain.TUser; +import com.vesus.repository.TUserRepository; +import com.vesus.service.TUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Optional; + +@Service("tUserService") +@Transactional(propagation = Propagation.REQUIRED) +public class TUserServiceImpl implements TUserService { + + @Autowired + private TUserRepository tUserRepository; + + // + //@PersistenceContext + //private EntityManager em; + + @Override + public TUser save(TUser tUser) { + return tUserRepository.save(tUser); + } + + @Override + public Iterable saveAll(Iterable list) { + // return tUserRepository.saveAll(list); + return null; + } + + + @Override + public TUser findOne(Integer id) { + // return tUserRepository.findById(id).get(); + + return tUserRepository.findOne(id); + } + + @Override + public Optional findById(Integer id) { + //return tUserRepository.findById(id); + return null; + } + + + @Override + public boolean existsById(Integer id) { + //return tUserRepository.existsById(id); + + return tUserRepository.exists(id); + } + + @Override + public List findAll() { + return (List) tUserRepository.findAll(); + } + + @Override + public Long count() { + return tUserRepository.count(); + } + + @Override + public void deleteById(Integer id) { + // tUserRepository.deleteById(id); + tUserRepository.delete(id); + } + + @Override + public void delete(TUser tUser) { + tUserRepository.delete(tUser); + } + + + @Override + public void deleteAll(Iterable iter) { + // tUserRepository.deleteAll(iter); + } + + @Override + public Page findAllPaged(Integer pageNum, Integer pageSize) { + Pageable pageable = new PageRequest(pageNum, pageSize); + return tUserRepository.findAllPaged(pageable); + } + + public List findAllByEntityManager(String excuteSql, Class returnType) { + //Query query = em.createNativeQuery(excuteSql, returnType); + //List list = query.getResultList(); + return null; + } + +} diff --git a/springboot-hibernate-interceptoer/src/main/resources/application.properties b/springboot-hibernate-interceptoer/src/main/resources/application.properties new file mode 100644 index 0000000000000000000000000000000000000000..83672eba5b3bdfc28d4e886c296b187d27578a26 --- /dev/null +++ b/springboot-hibernate-interceptoer/src/main/resources/application.properties @@ -0,0 +1,34 @@ +spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8 +spring.datasource.driver-class-name=com.mysql.jdbc.Driver +spring.datasource.username=root +spring.datasource.password=root +spring.jpa.show-sql=true +spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy +spring.jpa.database=mysql +server.port=8080 +spring.jpa.hibernate.ddl-auto=update +hibernate.hbm2ddl.auto=true + +########################################################### +#Ʊĺ׺ĬΪ +org.hibernate.envers.audit_table_suffix=_AUD +#Ʊǰ׺ĬΪ_AUD +org.hibernate.envers.audit_table_prefix=V_ +#Ʊм¼汾ŵֶ +org.hibernate.envers.revision_field_name=VER +#Ʊݲ͵ֶƣ0 1޸ 2ɾ +org.hibernate.envers.revision_type_field_name=REVTYPE +#Ƿֹ֧޸ʱ¼޸ļ¼,ĬΪtrue +org.hibernate.envers.revision_on_collection_change=true +#Ƿ񲻶ֶֹ޸ʱ¼޸ļ¼ʹVersionֶΣĬֵΪtrue +org.hibernate.envers.do_not_audit_optimistic_locking_field=true +#Ƿɾʱ¼ֶλֻ¼idֵĬΪfalse falseֻ¼id true¼ȫֶ +org.hibernate.envers.store_data_at_delete=true +#ƱschemaĬΪnull +org.hibernate.envers.default_schema=DateBaseName +#ƱcatalogĬΪnull +#org.hibernate.envers.default_catalog +########################################################### + +##############hierbate################### +spring.jpa.properties.hibernate.ejb.interceptor=com.vesus.listener.CustomInterceptor diff --git a/springboot-hibernate-listener-audit/pom.xml b/springboot-hibernate-listener-audit/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..922b4cd0f684c0ddb5774e124aa3226aa5c6ddf6 --- /dev/null +++ b/springboot-hibernate-listener-audit/pom.xml @@ -0,0 +1,73 @@ + + + + spring-boot-demo + com.vesus + 0.0.1-SNAPSHOT + + 4.0.0 + + springboot-hibernate-listener-audit + + + + + org.springframework.boot + spring-boot-starter-web + + + + org.springframework.boot + spring-boot-starter-data-jpa + + + + mysql + mysql-connector-java + + + + com.alibaba + druid + 1.0.29 + + + org.springframework.boot + spring-boot-starter-test + + + org.springframework.boot + spring-boot-devtools + + + org.springframework.boot + spring-boot-actuator + + + org.hibernate + hibernate-envers + 5.0.12.Final + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 1.4.2.RELEASE + + + true + + + + org.springframework.boot + spring-boot-maven-plugin + + + + \ No newline at end of file diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/SpringBootHibernateListenerAuditApplication.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/SpringBootHibernateListenerAuditApplication.java new file mode 100644 index 0000000000000000000000000000000000000000..2e7ee349f862a37a1db3566bdfcb331ed5e7ddab --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/SpringBootHibernateListenerAuditApplication.java @@ -0,0 +1,59 @@ +package com.vesus; + +import com.vesus.audit.AuditOperationRecordAware; +import com.vesus.listener.AuditOperationEventListener; +import com.vesus.listener.AuditOperationRecordAwareImpl; +import org.hibernate.SessionFactory; +import org.hibernate.event.service.spi.EventListenerRegistry; +import org.hibernate.event.spi.EventType; +import org.hibernate.internal.SessionFactoryImpl; +import org.hibernate.jpa.HibernateEntityManagerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +@SpringBootApplication +@EnableTransactionManagement +@EnableJpaRepositories +public class SpringBootHibernateListenerAuditApplication { + public static void main(String[] args) { + SpringApplication.run(SpringBootHibernateListenerAuditApplication.class, args); + } + + + @Bean + AuditOperationRecordAware auditOperationRecordAware() { + return new AuditOperationRecordAwareImpl(); + } + + + @Bean + public SessionFactory sessionFactory(HibernateEntityManagerFactory hemf) { + return hemf.getSessionFactory(); + } + + @Autowired + private AuditOperationEventListener auditOperationEventListener; + + @Resource + private SessionFactory sessionFactory; + + @PostConstruct + public void registerListeners() { + EventListenerRegistry registry = ((SessionFactoryImpl) sessionFactory).getServiceRegistry().getService( + EventListenerRegistry.class); + registry.getEventListenerGroup(EventType.POST_INSERT).appendListener(auditOperationEventListener); + registry.getEventListenerGroup(EventType.POST_UPDATE).appendListener(auditOperationEventListener); + registry.getEventListenerGroup(EventType.POST_DELETE).appendListener(auditOperationEventListener); + } + + +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditEntityAlias.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditEntityAlias.java new file mode 100644 index 0000000000000000000000000000000000000000..e1b46ff2368bcb2d47fe3cd711debbc9d70fef95 --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditEntityAlias.java @@ -0,0 +1,12 @@ +package com.vesus.audit; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +public @interface AuditEntityAlias { + String value(); +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditFieldAlias.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditFieldAlias.java new file mode 100644 index 0000000000000000000000000000000000000000..dcb8cbe7f740e97f83a334bc4a5e3b53b1098652 --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditFieldAlias.java @@ -0,0 +1,12 @@ +package com.vesus.audit; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface AuditFieldAlias { + String value() default ""; +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditModifyFieldObject.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditModifyFieldObject.java new file mode 100644 index 0000000000000000000000000000000000000000..e2940f83ec405b6dd0b05c5ff4b86a72686badd3 --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditModifyFieldObject.java @@ -0,0 +1,61 @@ +package com.vesus.audit; + +public class AuditModifyFieldObject { + + private Object oldValue; + private Object newValue; + private Object property; + private Object type; + private String alias; + private boolean isAudit; + + + public String getAlias() { + return alias; + } + + public void setAlias(String alias) { + this.alias = alias; + } + + public Object getOldValue() { + return oldValue; + } + + + public void setOldValue(Object oldValue) { + this.oldValue = oldValue; + } + + public Object getNewValue() { + return newValue; + } + + public void setNewValue(Object newValue) { + this.newValue = newValue; + } + + public Object getProperty() { + return property; + } + + public void setProperty(Object property) { + this.property = property; + } + + public Object getType() { + return type; + } + + public void setType(Object type) { + this.type = type; + } + + public boolean isAudit() { + return isAudit; + } + + public void setAudit(boolean audit) { + isAudit = audit; + } +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditOperationRecord.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditOperationRecord.java new file mode 100644 index 0000000000000000000000000000000000000000..f646d79359129e0dcff72e5ecea0aceab06c8f41 --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditOperationRecord.java @@ -0,0 +1,174 @@ +package com.vesus.audit; + +import org.hibernate.type.Type; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.Serializable; +import java.lang.reflect.Field; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Component +public class AuditOperationRecord { + + private AuditOperationRecordAware auditOperationRecordAware; + + @Autowired(required = false) + public void setAuditOperationRecordAware(AuditOperationRecordAware auditOperationRecordAware) { + this.auditOperationRecordAware = auditOperationRecordAware; + } + + public boolean onSaveRecord(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { + System.out.println("=========添加============》"); + boolean result = processor(entity, id, state, null, propertyNames, types); + return result; + } + + + public boolean onUpdateRecord(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) { + System.out.println("=========更新============》"); + boolean result = processor(entity, id, currentState, previousState, propertyNames, types); + return result; + } + + + public void onDelete(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) { + System.out.println("=========删除============》"); + processor(entity, id, null, state, propertyNames, types); + } + + /** + * 处理相同变更实体信息的公共类 + * + * @param entity + * 操作实体对象 + * @param id + * 操作实体主键编号 + * @param currentState + * 当前更改字段对象数组 + * @param previousState + * 变更前字段信息对象数组 + * @param propertyNames + * 英文属性名数组 + * @param types + * 属性类型数组hibernate封装 + * @return + */ + private boolean processor(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) { + Class entityClass = entity.getClass(); + if (auditOperationRecordAware == null) { + return true; + } + if (!entityClass.isAnnotationPresent(AuditEntityAlias.class)) { + return true; + } + AuditEntityAlias entityAlias = entityClass.getAnnotation(AuditEntityAlias.class); + String tableName = entityAlias.value(); + + //设置别名和审计字段长度 + boolean[] isAudits = new boolean[propertyNames.length]; + String[] alias = new String[propertyNames.length]; + try { + for (int i = 0; i < propertyNames.length; i++) { + //Field field = entityClass.getField(propertyNames[i]); + Field field = entityClass.getDeclaredField(propertyNames[i]); + field.setAccessible(true); + if (field.isAnnotationPresent(AuditFieldAlias.class)) { + AuditFieldAlias auditFieldAlias = field.getAnnotation(AuditFieldAlias.class); + isAudits[i] = true; + alias[i] = auditFieldAlias.value(); + } else { + isAudits[i] = false; + alias[i] = ""; + } + } + } catch (NoSuchFieldException e) { + System.err.println(e.getMessage()); + } + + //生成改变字段信息列表 + List auditModifyFieldObject = getAuditModifyFieldObject(currentState, previousState, propertyNames, types, alias, isAudits); + long timestamp = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant()).getTime(); + AuditOperationType operationType = AuditOperationType.UPDATE; + //根据变更对象是否为空判断操作类型 + if (previousState != null && currentState != null) { + operationType = AuditOperationType.UPDATE; + } + if (previousState == null && currentState != null) { + operationType = AuditOperationType.INSERT; + } + if (previousState != null && currentState == null) { + operationType = AuditOperationType.DELETE; + } + if (auditOperationRecordAware != null) { + auditOperationRecordAware.saveAuditOperationLog(tableName, id, auditModifyFieldObject, timestamp, operationType); + } + return true; + + } + + /** + * 获取自定义封装的字段修改对象类,用来保存更改前后的字段变化信息 + * + * @param currentState + * 操作后对象,也是当前对象 + * @param previousState + * 变更前对象 + * @param propertyNames + * 属性英文变量名称 + * @param types + * 属性类型,这里是hibernate帮忙生成的一个类型 + * @param alias + * 中文别名,这个属性需要结合 AuditFieldAlias 注解使用才能获取别名 + * @param isAudits + * 是否审计,如果为true表示此字段需要保存更改变更,false相反 + * @return + */ + private List getAuditModifyFieldObject(Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types, String[] alias, boolean[] isAudits) { + List list = new ArrayList<>(10); + int fieldCount = 0; + //获取字段总个数 + if (currentState != null && currentState.length > 0 && fieldCount == 0) { + fieldCount = currentState.length; + } + if (previousState != null && previousState.length > 0 && fieldCount == 0) { + fieldCount = previousState.length; + } + for (int i = 0; i < fieldCount; i++) { + AuditModifyFieldObject auditModifyObject = new AuditModifyFieldObject(); + //设置更改前的值 + if (previousState != null && previousState[i] != null) { + auditModifyObject.setOldValue(previousState[i]); + } + // 设置更改后的当前值 + if (currentState != null && currentState[i] != null) { + auditModifyObject.setNewValue(currentState[i]); + } + //设置属性名 + if (propertyNames != null && propertyNames[i] != null) { + auditModifyObject.setProperty(propertyNames[i]); + } + //设置类型 + if (types != null && types[i] != null) { + auditModifyObject.setType(types[i]); + } + // 设置别名 + if (alias != null && alias[i] != null) { + auditModifyObject.setAlias(alias[i]); + } + // 是否审计 + if (isAudits != null && isAudits[i]) { + auditModifyObject.setAudit(true); + } else { + auditModifyObject.setAudit(false); + } + list.add(auditModifyObject); + } + return list; + } + +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditOperationRecordAware.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditOperationRecordAware.java new file mode 100644 index 0000000000000000000000000000000000000000..676fff1bc0b18ab184d418eab91303dcae6aa569 --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditOperationRecordAware.java @@ -0,0 +1,8 @@ +package com.vesus.audit; + +import java.io.Serializable; +import java.util.List; + +public interface AuditOperationRecordAware { + void saveAuditOperationLog(String tableName, Serializable id, List auditModifyFieldObject, long timestamp, AuditOperationType operationType); +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditOperationType.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditOperationType.java new file mode 100644 index 0000000000000000000000000000000000000000..cdbe7ea80b97b66585e7f3d052f74cf5b0afd0fd --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditOperationType.java @@ -0,0 +1,74 @@ +package com.vesus.audit; + +/** + * 审计操作对象类别枚举 + */ +public enum AuditOperationType { + INSERT((byte) 0) { + @Override + public String getValue() { + return "新增"; + } + }, UPDATE((byte) 1) { + @Override + public String getValue() { + return "修改"; + } + }, DELETE((byte) 2) { + @Override + public String getValue() { + return "删除"; + } + }; + + private String value; + private Byte representation; + + AuditOperationType(byte representation) { + this.representation = representation; + } + + AuditOperationType() { + value = toString(); + } + + public static AuditOperationType parse(final String value) { + AuditOperationType operation = null; + for (final AuditOperationType op : AuditOperationType.values()) { + if (op.getValue().equals(value)) { + operation = op; + break; + } + } + return operation; + } + + public static AuditOperationType parseNumber(final Object representation) { + System.out.println(representation.getClass().getName()); + if (representation == null || !(representation instanceof Byte)) { + return null; + } + switch ((Byte) representation) { + case 0: { + return INSERT; + } + case 1: { + return UPDATE; + } + case 2: { + return DELETE; + } + default: { + throw new IllegalArgumentException("Unknown representation: " + representation); + } + } + } + + public String getValue() { + return value; + } + + public Byte getRepresentation() { + return representation; + } +} \ No newline at end of file diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditPrimaryID.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditPrimaryID.java new file mode 100644 index 0000000000000000000000000000000000000000..2abd7d6e26339c616522c16f6100dc5de0c20e71 --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/audit/AuditPrimaryID.java @@ -0,0 +1,11 @@ +package com.vesus.audit; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.FIELD) +public @interface AuditPrimaryID { +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/controller/TUserController.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/controller/TUserController.java new file mode 100644 index 0000000000000000000000000000000000000000..586f394d48844a2601a496f7bf54e83673ee6795 --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/controller/TUserController.java @@ -0,0 +1,63 @@ +package com.vesus.controller; + +import com.vesus.domain.TUser; +import com.vesus.service.TUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Optional; + +@RestController +@RequestMapping("/tUserController") +public class TUserController { + + @Autowired + private TUserService tUserService; + + @RequestMapping("/save") + public TUser save(TUser tUser) { + return tUserService.save(tUser); + } + + @RequestMapping("/findOneById") + public TUser findOneById(Integer id) { + return tUserService.findOne(id); + } + + @RequestMapping("/findOptionalOneById") + public Optional findOptionOneById(Integer id) { + return tUserService.findById(id); + } + + @RequestMapping("/existsById") + public boolean existsById(Integer id) { + return tUserService.existsById(id); + } + + @RequestMapping("/findAll") + public List findAll() { + return tUserService.findAll(); + } + + @RequestMapping("/findAllByEntityManager") + public List findAllByEntityManager() { + return tUserService.findAllByEntityManager("select * from t_user", TUser.class); + } + + @RequestMapping("/count") + public Long count() { + return tUserService.count(); + } + + @RequestMapping("/deleteById") + public void deleteById(Integer id) { + tUserService.deleteById(id); + } + + @RequestMapping("/deleteByEntity") + public void delete(TUser tUser) { + tUserService.delete(tUser); + } +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/domain/AuditRecordLog.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/domain/AuditRecordLog.java new file mode 100644 index 0000000000000000000000000000000000000000..00c8476bc834248cadd3611feda18155f050c59e --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/domain/AuditRecordLog.java @@ -0,0 +1,122 @@ +package com.vesus.domain; + + +import javax.persistence.*; + +@Entity +@Table(name = "t_audit_record_log") +public class AuditRecordLog { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id") + private int id; + + @Column(name = "t_entity_name") + private String entityName; + + @Column(name = "t_property_name") + private String propertyName; + + @Column(name = "t_alias") + private String alias; + + @Column(name = "t_old_value") + private String oldValue; + + @Column(name = "t_new_value") + private String newValue; + + @Column(name = "t_user_id") + private int userId; + + @Column(name = "t_user_name") + private String userName; + + @Column(name = "t_modified_date") + private String modifiedDate; + + @Column(name = "t_description") + private String description; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getPropertyName() { + return propertyName; + } + + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + } + + public String getEntityName() { + return entityName; + } + + public void setEntityName(String entityName) { + this.entityName = entityName; + } + + + public String getAlias() { + return alias; + } + + public void setAlias(String alias) { + this.alias = alias; + } + + public String getOldValue() { + return oldValue; + } + + public void setOldValue(String oldValue) { + this.oldValue = oldValue; + } + + public String getNewValue() { + return newValue; + } + + public void setNewValue(String newValue) { + this.newValue = newValue; + } + + public int getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getModifiedDate() { + return modifiedDate; + } + + public void setModifiedDate(String modifiedDate) { + this.modifiedDate = modifiedDate; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/domain/TUser.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/domain/TUser.java new file mode 100644 index 0000000000000000000000000000000000000000..feff4319efcbb2cb308c5129ea8c49dfdd6180eb --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/domain/TUser.java @@ -0,0 +1,88 @@ +package com.vesus.domain; + +import com.vesus.audit.AuditEntityAlias; +import com.vesus.audit.AuditFieldAlias; +import com.vesus.audit.AuditPrimaryID; + +import javax.persistence.*; +import java.io.Serializable; + +/** + * @author wx11055@163.com + * @date 2018-06-27 23:19:28 + * Created by wuxia . + */ +@Entity +@Table(name = "t_user") +@AuditEntityAlias("用户信息表") +public class TUser implements Serializable { + + /** + * 编号 + */ + @Id + @GeneratedValue + @Column(name = "t_id") + @AuditPrimaryID + private Integer id; + + @Column(name = "t_address") + @AuditFieldAlias("联系地址") + private String tAddress; + + @Column(name = "t_age") + @AuditFieldAlias("年龄") + private Integer tAge; + + @Column(name = "t_name") + @AuditFieldAlias("姓名") + private String tName; + + @Column(name = "t_pwd") + @AuditFieldAlias("密码") + private String tPwd; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + + public String gettAddress() { + return tAddress; + } + + public void settAddress(String tAddress) { + this.tAddress = tAddress; + } + + public Integer gettAge() { + return tAge; + } + + public void settAge(Integer tAge) { + this.tAge = tAge; + } + + public String gettName() { + return tName; + } + + public void settName(String tName) { + this.tName = tName; + } + + public String gettPwd() { + return tPwd; + } + + public void settPwd(String tPwd) { + this.tPwd = tPwd; + } + + +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/listener/AuditOperationEventListener.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/listener/AuditOperationEventListener.java new file mode 100644 index 0000000000000000000000000000000000000000..83f5c274b97d69981348e76a6547afdcd92b686a --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/listener/AuditOperationEventListener.java @@ -0,0 +1,60 @@ +package com.vesus.listener; + + +import com.vesus.audit.AuditOperationRecord; +import org.hibernate.event.internal.DefaultLoadEventListener; +import org.hibernate.event.spi.*; +import org.hibernate.persister.entity.EntityPersister; +import org.hibernate.type.Type; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.io.Serializable; + +@Component +public class AuditOperationEventListener extends DefaultLoadEventListener implements PostInsertEventListener, PostUpdateEventListener, PostDeleteEventListener { + + @Autowired + AuditOperationRecord auditOperationRecord; + + public void onPostUpdate(PostUpdateEvent event) { + Object entity = event.getEntity(); + Object[] oldState = event.getOldState(); + Object[] state = event.getState(); + Serializable id = event.getId(); + EntityPersister persister = event.getPersister(); + String[] propertyNames = persister.getPropertyNames(); + Type[] types = persister.getPropertyTypes(); + auditOperationRecord.onUpdateRecord(entity, id, state, oldState, propertyNames, types); + } + + @Override + public void onPostDelete(PostDeleteEvent event) { + Object entity = event.getEntity(); + Object[] state = event.getDeletedState(); + Serializable id = event.getId(); + EntityPersister persister = event.getPersister(); + String[] propertyNames = persister.getPropertyNames(); + Type[] types = persister.getPropertyTypes(); + auditOperationRecord.onDelete(entity, id, state, propertyNames, types); + } + + @Override + public void onPostInsert(PostInsertEvent event) { + Object entity = event.getEntity(); + Object[] state = event.getState(); + Serializable id = event.getId(); + EntityPersister persister = event.getPersister(); + String[] propertyNames = persister.getPropertyNames(); + Type[] types = persister.getPropertyTypes(); + auditOperationRecord.onSaveRecord(entity, id, state, propertyNames, types); + + } + + @Override + public boolean requiresPostCommitHanding(EntityPersister persister) { + System.out.println("=================requiresPostCommitHanding===================="); + return false; + } + +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/listener/AuditOperationRecordAwareImpl.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/listener/AuditOperationRecordAwareImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4e25abf4d479b5076de214d6646fdb2684671946 --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/listener/AuditOperationRecordAwareImpl.java @@ -0,0 +1,85 @@ +package com.vesus.listener; + +import com.vesus.audit.AuditModifyFieldObject; +import com.vesus.audit.AuditOperationRecordAware; +import com.vesus.audit.AuditOperationType; +import com.vesus.domain.AuditRecordLog; +import com.vesus.service.AuditRecordLogService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.io.Serializable; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +public class AuditOperationRecordAwareImpl implements AuditOperationRecordAware { + + @Autowired + private AuditRecordLogService auditRecordLogService; + + @Override + public void saveAuditOperationLog(String tableName, Serializable id, List auditModifyFieldObject, long timestamp, AuditOperationType operation) { + + + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String date = df.format(new Date(timestamp)); + System.out.println("更改的表名=========》" + tableName); + System.out.println("主键=========》" + id); + System.out.println("更改时间=========》" + date); + + + // todo 保存到数据库 + int i = 0; + for (AuditModifyFieldObject modifyFieldObject : auditModifyFieldObject) { + Object oldValue = modifyFieldObject.getOldValue(); + Object newValue = modifyFieldObject.getNewValue(); + if (modifyFieldObject.isAudit() && !(oldValue == null && newValue == null) && !("".equals(oldValue) && "".equals(newValue))) { + AuditRecordLog auditRecordLog = new AuditRecordLog(); + // 判断值不全是空或者前后值是否相等 + if (oldValue == null || newValue == null) { + auditRecordLog.setOldValue(oldValue + ""); + auditRecordLog.setNewValue(newValue + ""); + } else { + if (!oldValue.equals(newValue)) { + auditRecordLog.setOldValue(oldValue + ""); + auditRecordLog.setNewValue(newValue + ""); + } else { + continue; + } + } + auditRecordLog.setPropertyName(modifyFieldObject.getProperty() + ""); + auditRecordLog.setAlias(modifyFieldObject.getAlias()); + auditRecordLog.setEntityName(tableName); + auditRecordLog.setModifiedDate(date); + String username = "特斯特" + i++; //todo 获取用户名等信息 + auditRecordLog.setUserName(username); + String description = ""; + //如果是添加 + if (AuditOperationType.INSERT.equals(operation)) { + description = getOperationDescription(username, date, operation, newValue + ""); + + } + //如果是更新 + if (AuditOperationType.UPDATE.equals(operation)) { + description = getOperationDescription(username, date, operation, oldValue + "为" + newValue + ""); + } + //如果是删除 + if (AuditOperationType.DELETE.equals(operation)) { + description = getOperationDescription(username, date, operation, oldValue + ""); + + } + auditRecordLog.setDescription(description); + System.out.println("============描述========》" + description); + auditRecordLogService.save(auditRecordLog); + } + } + + } + + private String getOperationDescription(String userName, String datetime, AuditOperationType operation, String obj) { + return new StringBuffer().append(userName).append("在").append(datetime).append(operation.getValue()).append("了").append(obj).toString(); + + } + + +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/repository/AuditRecordLogRepository.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/repository/AuditRecordLogRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..f41c6d6c1960400bf99dc04c3364e86d1d1d7537 --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/repository/AuditRecordLogRepository.java @@ -0,0 +1,10 @@ +package com.vesus.repository; + +import com.vesus.domain.AuditRecordLog; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +@Repository("operationRevisionLogRepository") +public interface AuditRecordLogRepository extends CrudRepository { + +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/repository/TUserRepository.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/repository/TUserRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..f0da38946b0cc8fe9a7abf49d96463b14a0f3470 --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/repository/TUserRepository.java @@ -0,0 +1,29 @@ +package com.vesus.repository; + +import com.vesus.domain.TUser; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.CrudRepository; +import org.springframework.stereotype.Repository; + +import java.util.stream.Stream; + +/** + * @author wx11055@163.com + * @date 2018-06-27 23:19:28 + * Created by CodeGen . + */ +@Repository("tUserRepository") +public interface TUserRepository extends CrudRepository { + @Query("select l from TUser l") + Page findAllPaged(Pageable pageable); + + //Page findAllAndSortPaged(Pageable pageable, Sort sort); + + @Query("select l from TUser l") + Stream findAllAndStreamPaged(Pageable pageable); + + //Page queryFirst10ByName(String name, Pageable pageable); + +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/service/AuditRecordLogService.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/service/AuditRecordLogService.java new file mode 100644 index 0000000000000000000000000000000000000000..7ad6b652516561debd79dd369533c17b8b261a1a --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/service/AuditRecordLogService.java @@ -0,0 +1,19 @@ +package com.vesus.service; + + +import com.vesus.domain.AuditRecordLog; + +import java.util.List; + +public interface AuditRecordLogService { + + List findAll(); + + AuditRecordLog save(AuditRecordLog businessChangeLog); + + AuditRecordLog findOne(long id); + + void delete(long id); + + List findByName(String name); +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/service/TUserService.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/service/TUserService.java new file mode 100644 index 0000000000000000000000000000000000000000..7a388763c9e61b09b28bbca6931f258ff2b7476b --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/service/TUserService.java @@ -0,0 +1,40 @@ +package com.vesus.service; + + +import com.vesus.domain.TUser; +import org.springframework.data.domain.Page; + +import java.util.List; +import java.util.Optional; + +/** + * @author wx11055@163.com + * @date 2018-06-27 23:19:28 + * Created by wuxia . + */ +public interface TUserService { + + TUser save(TUser tUser); + + Iterable saveAll(Iterable list); + + TUser findOne(Integer id); + + Optional findById(Integer id); + + boolean existsById(Integer id); + + List findAll(); + + Long count(); + + void deleteById(Integer id); + + void delete(TUser tUser); + + void deleteAll(Iterable iter); + + Page findAllPaged(Integer pageNum, Integer pageSize); + + List findAllByEntityManager(String excuteSql, Class returnType); +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/service/imp/AuditRecordLogServiceImpl.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/service/imp/AuditRecordLogServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..76c90701d0e598b554f7a5e693bc3059e015dfa2 --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/service/imp/AuditRecordLogServiceImpl.java @@ -0,0 +1,41 @@ +package com.vesus.service.imp; + +import com.vesus.domain.AuditRecordLog; +import com.vesus.repository.AuditRecordLogRepository; +import com.vesus.service.AuditRecordLogService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class AuditRecordLogServiceImpl implements AuditRecordLogService { + + @Autowired + private AuditRecordLogRepository auditRecordLogRepository; + + @Override + public List findAll() { + return null; + } + + @Override + public AuditRecordLog save(AuditRecordLog auditRecordLog) { + return auditRecordLogRepository.save(auditRecordLog); + } + + @Override + public AuditRecordLog findOne(long id) { + return null; + } + + @Override + public void delete(long id) { + + } + + @Override + public List findByName(String name) { + return null; + } +} diff --git a/springboot-hibernate-listener-audit/src/main/java/com/vesus/service/imp/TUserServiceImpl.java b/springboot-hibernate-listener-audit/src/main/java/com/vesus/service/imp/TUserServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..5452ba9916d3787fc3742175ca9d0defcd8587cd --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/java/com/vesus/service/imp/TUserServiceImpl.java @@ -0,0 +1,97 @@ +package com.vesus.service.imp; + +import com.vesus.domain.TUser; +import com.vesus.repository.TUserRepository; +import com.vesus.service.TUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Optional; + +@Service("tUserService") +@Transactional(propagation = Propagation.REQUIRED) +public class TUserServiceImpl implements TUserService { + + @Autowired + private TUserRepository tUserRepository; + + + @Override + public TUser save(TUser tUser) { + return tUserRepository.save(tUser); + } + + @Override + public Iterable saveAll(Iterable list) { + // return tUserRepository.saveAll(list); + return null; + } + + + @Override + public TUser findOne(Integer id) { + // return tUserRepository.findById(id).get(); + + return tUserRepository.findOne(id); + } + + @Override + public Optional findById(Integer id) { + //return tUserRepository.findById(id); + return null; + } + + + @Override + public boolean existsById(Integer id) { + //return tUserRepository.existsById(id); + + return tUserRepository.exists(id); + } + + @Override + public List findAll() { + return (List) tUserRepository.findAll(); + } + + @Override + public Long count() { + return tUserRepository.count(); + } + + @Override + public void deleteById(Integer id) { + // tUserRepository.deleteById(id); + tUserRepository.delete(id); + } + + @Override + public void delete(TUser tUser) { + tUserRepository.delete(tUser); + } + + + @Override + public void deleteAll(Iterable iter) { + // tUserRepository.deleteAll(iter); + } + + @Override + public Page findAllPaged(Integer pageNum, Integer pageSize) { + Pageable pageable = new PageRequest(pageNum, pageSize); + return tUserRepository.findAllPaged(pageable); + } + + public List findAllByEntityManager(String excuteSql, Class returnType) { + //Query query = em.createNativeQuery(excuteSql, returnType); + //List list = query.getResultList(); + return null; + } + +} diff --git a/springboot-hibernate-listener-audit/src/main/resources/application.properties b/springboot-hibernate-listener-audit/src/main/resources/application.properties new file mode 100644 index 0000000000000000000000000000000000000000..630487fbd41389c99f5022688c7f36acc87bc852 --- /dev/null +++ b/springboot-hibernate-listener-audit/src/main/resources/application.properties @@ -0,0 +1,11 @@ +spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8 +spring.datasource.driver-class-name=com.mysql.jdbc.Driver +spring.datasource.username=root +spring.datasource.password=root +spring.jpa.show-sql=true +spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy +spring.jpa.database=mysql +server.port=8080 +spring.jpa.hibernate.ddl-auto=update +hibernate.hbm2ddl.auto=true +