commit e691d5c331e396e7a0a359411a259ee7e3009d1c
Author: GARCIIAa <15301164@bjtu.edu.cn>
Date: Thu Apr 23 15:42:55 2020 +0800
version 1.0
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..7c6cf10
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..35f724f
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/group1-project.iml b/.idea/group1-project.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/group1-project.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__antlr_antlr_2_7_7.xml b/.idea/libraries/Maven__antlr_antlr_2_7_7.xml
new file mode 100644
index 0000000..b8d93d8
--- /dev/null
+++ b/.idea/libraries/Maven__antlr_antlr_2_7_7.xml
@@ -0,0 +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
new file mode 100644
index 0000000..30ff5cb
--- /dev/null
+++ b/.idea/libraries/Maven__aopalliance_aopalliance_1_0.xml
@@ -0,0 +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
new file mode 100644
index 0000000..c6ea67e
--- /dev/null
+++ b/.idea/libraries/Maven__ch_qos_logback_logback_classic_1_1_11.xml
@@ -0,0 +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
new file mode 100644
index 0000000..f538e36
--- /dev/null
+++ b/.idea/libraries/Maven__ch_qos_logback_logback_core_1_1_11.xml
@@ -0,0 +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
new file mode 100644
index 0000000..33c30b4
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_classmate_1_3_4.xml
@@ -0,0 +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
new file mode 100644
index 0000000..49b4ec7
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_annotations_2_8_0.xml
@@ -0,0 +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
new file mode 100644
index 0000000..5d9d662
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_8_10.xml
@@ -0,0 +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
new file mode 100644
index 0000000..df5cb22
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_databind_2_8_10.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_xml_2_8_10.xml b/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_xml_2_8_10.xml
new file mode 100644
index 0000000..dc55693
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_dataformat_jackson_dataformat_xml_2_8_10.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_afterburner_2_8_10.xml b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_afterburner_2_8_10.xml
new file mode 100644
index 0000000..9f10588
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_afterburner_2_8_10.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_jaxb_annotations_2_8_10.xml b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_jaxb_annotations_2_8_10.xml
new file mode 100644
index 0000000..4274b9d
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_jackson_module_jackson_module_jaxb_annotations_2_8_10.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_uuid_java_uuid_generator_3_1_5.xml b/.idea/libraries/Maven__com_fasterxml_uuid_java_uuid_generator_3_1_5.xml
new file mode 100644
index 0000000..a82aa72
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_uuid_java_uuid_generator_3_1_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_fasterxml_woodstox_woodstox_core_5_0_3.xml b/.idea/libraries/Maven__com_fasterxml_woodstox_woodstox_core_5_0_3.xml
new file mode 100644
index 0000000..c08dcae
--- /dev/null
+++ b/.idea/libraries/Maven__com_fasterxml_woodstox_woodstox_core_5_0_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_1.xml b/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_1.xml
new file mode 100644
index 0000000..09453c9
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_code_findbugs_jsr305_3_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_code_gson_gson_2_8_2.xml b/.idea/libraries/Maven__com_google_code_gson_gson_2_8_2.xml
new file mode 100644
index 0000000..49c91be
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_code_gson_gson_2_8_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_guava_guava_18_0.xml b/.idea/libraries/Maven__com_google_guava_guava_18_0.xml
new file mode 100644
index 0000000..bbd71d7
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_guava_guava_18_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_google_inject_guice_4_1_0.xml b/.idea/libraries/Maven__com_google_inject_guice_4_1_0.xml
new file mode 100644
index 0000000..e956197
--- /dev/null
+++ b/.idea/libraries/Maven__com_google_inject_guice_4_1_0.xml
@@ -0,0 +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
new file mode 100644
index 0000000..578b079
--- /dev/null
+++ b/.idea/libraries/Maven__com_jayway_jsonpath_json_path_2_2_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_archaius_archaius_core_0_7_4.xml b/.idea/libraries/Maven__com_netflix_archaius_archaius_core_0_7_4.xml
new file mode 100644
index 0000000..e5a8232
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_archaius_archaius_core_0_7_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_eureka_eureka_client_1_7_0.xml b/.idea/libraries/Maven__com_netflix_eureka_eureka_client_1_7_0.xml
new file mode 100644
index 0000000..89ed6f5
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_eureka_eureka_client_1_7_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_eureka_eureka_core_1_7_0.xml b/.idea/libraries/Maven__com_netflix_eureka_eureka_core_1_7_0.xml
new file mode 100644
index 0000000..52fb825
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_eureka_eureka_core_1_7_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_hystrix_hystrix_core_1_5_12.xml b/.idea/libraries/Maven__com_netflix_hystrix_hystrix_core_1_5_12.xml
new file mode 100644
index 0000000..8f6dabe
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_hystrix_hystrix_core_1_5_12.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_hystrix_hystrix_javanica_1_5_12.xml b/.idea/libraries/Maven__com_netflix_hystrix_hystrix_javanica_1_5_12.xml
new file mode 100644
index 0000000..be8a561
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_hystrix_hystrix_javanica_1_5_12.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_hystrix_hystrix_metrics_event_stream_1_5_12.xml b/.idea/libraries/Maven__com_netflix_hystrix_hystrix_metrics_event_stream_1_5_12.xml
new file mode 100644
index 0000000..9f01c4f
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_hystrix_hystrix_metrics_event_stream_1_5_12.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_hystrix_hystrix_serialization_1_5_12.xml b/.idea/libraries/Maven__com_netflix_hystrix_hystrix_serialization_1_5_12.xml
new file mode 100644
index 0000000..d71dae3
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_hystrix_hystrix_serialization_1_5_12.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_commons_util_0_1_1.xml b/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_commons_util_0_1_1.xml
new file mode 100644
index 0000000..9854a4d
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_commons_util_0_1_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_eventbus_0_3_0.xml b/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_eventbus_0_3_0.xml
new file mode 100644
index 0000000..85ba8c9
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_eventbus_0_3_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_infix_0_3_0.xml b/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_infix_0_3_0.xml
new file mode 100644
index 0000000..c8b512e
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_infix_0_3_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_statistics_0_1_1.xml b/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_statistics_0_1_1.xml
new file mode 100644
index 0000000..09c6f6e
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_netflix_commons_netflix_statistics_0_1_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_ribbon_ribbon_2_2_4.xml b/.idea/libraries/Maven__com_netflix_ribbon_ribbon_2_2_4.xml
new file mode 100644
index 0000000..7dd8bae
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_ribbon_ribbon_2_2_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_ribbon_ribbon_core_2_2_4.xml b/.idea/libraries/Maven__com_netflix_ribbon_ribbon_core_2_2_4.xml
new file mode 100644
index 0000000..7f8420a
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_ribbon_ribbon_core_2_2_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_ribbon_ribbon_eureka_2_2_4.xml b/.idea/libraries/Maven__com_netflix_ribbon_ribbon_eureka_2_2_4.xml
new file mode 100644
index 0000000..0b069c0
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_ribbon_ribbon_eureka_2_2_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_ribbon_ribbon_httpclient_2_2_4.xml b/.idea/libraries/Maven__com_netflix_ribbon_ribbon_httpclient_2_2_4.xml
new file mode 100644
index 0000000..b81422c
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_ribbon_ribbon_httpclient_2_2_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_ribbon_ribbon_loadbalancer_2_2_4.xml b/.idea/libraries/Maven__com_netflix_ribbon_ribbon_loadbalancer_2_2_4.xml
new file mode 100644
index 0000000..533f7ae
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_ribbon_ribbon_loadbalancer_2_2_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_ribbon_ribbon_transport_2_2_4.xml b/.idea/libraries/Maven__com_netflix_ribbon_ribbon_transport_2_2_4.xml
new file mode 100644
index 0000000..2c1133d
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_ribbon_ribbon_transport_2_2_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_servo_servo_core_0_10_1.xml b/.idea/libraries/Maven__com_netflix_servo_servo_core_0_10_1.xml
new file mode 100644
index 0000000..8e42a88
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_servo_servo_core_0_10_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_servo_servo_internal_0_10_1.xml b/.idea/libraries/Maven__com_netflix_servo_servo_internal_0_10_1.xml
new file mode 100644
index 0000000..74dfcbc
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_servo_servo_internal_0_10_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_netflix_zuul_zuul_core_1_3_0.xml b/.idea/libraries/Maven__com_netflix_zuul_zuul_core_1_3_0.xml
new file mode 100644
index 0000000..04b3227
--- /dev/null
+++ b/.idea/libraries/Maven__com_netflix_zuul_zuul_core_1_3_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_rabbitmq_amqp_client_4_1_0.xml b/.idea/libraries/Maven__com_rabbitmq_amqp_client_4_1_0.xml
new file mode 100644
index 0000000..dddfc24
--- /dev/null
+++ b/.idea/libraries/Maven__com_rabbitmq_amqp_client_4_1_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_rabbitmq_http_client_1_1_1_RELEASE.xml b/.idea/libraries/Maven__com_rabbitmq_http_client_1_1_1_RELEASE.xml
new file mode 100644
index 0000000..9cd31db
--- /dev/null
+++ b/.idea/libraries/Maven__com_rabbitmq_http_client_1_1_1_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_sun_jersey_contribs_jersey_apache_client4_1_19_1.xml b/.idea/libraries/Maven__com_sun_jersey_contribs_jersey_apache_client4_1_19_1.xml
new file mode 100644
index 0000000..2061d8c
--- /dev/null
+++ b/.idea/libraries/Maven__com_sun_jersey_contribs_jersey_apache_client4_1_19_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_sun_jersey_jersey_client_1_19_1.xml b/.idea/libraries/Maven__com_sun_jersey_jersey_client_1_19_1.xml
new file mode 100644
index 0000000..2b077bc
--- /dev/null
+++ b/.idea/libraries/Maven__com_sun_jersey_jersey_client_1_19_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_sun_jersey_jersey_core_1_19_1.xml b/.idea/libraries/Maven__com_sun_jersey_jersey_core_1_19_1.xml
new file mode 100644
index 0000000..91d65b2
--- /dev/null
+++ b/.idea/libraries/Maven__com_sun_jersey_jersey_core_1_19_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_sun_jersey_jersey_server_1_19_1.xml b/.idea/libraries/Maven__com_sun_jersey_jersey_server_1_19_1.xml
new file mode 100644
index 0000000..b4ad3de
--- /dev/null
+++ b/.idea/libraries/Maven__com_sun_jersey_jersey_server_1_19_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_sun_jersey_jersey_servlet_1_19_1.xml b/.idea/libraries/Maven__com_sun_jersey_jersey_servlet_1_19_1.xml
new file mode 100644
index 0000000..943df5a
--- /dev/null
+++ b/.idea/libraries/Maven__com_sun_jersey_jersey_servlet_1_19_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_4_9.xml b/.idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_4_9.xml
new file mode 100644
index 0000000..1922b11
--- /dev/null
+++ b/.idea/libraries/Maven__com_thoughtworks_xstream_xstream_1_4_9.xml
@@ -0,0 +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
new file mode 100644
index 0000000..b8581a6
--- /dev/null
+++ b/.idea/libraries/Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml
@@ -0,0 +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
new file mode 100644
index 0000000..27424a1
--- /dev/null
+++ b/.idea/libraries/Maven__commons_codec_commons_codec_1_10.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml b/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml
new file mode 100644
index 0000000..13afda2
--- /dev/null
+++ b/.idea/libraries/Maven__commons_collections_commons_collections_3_2_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__commons_configuration_commons_configuration_1_8.xml b/.idea/libraries/Maven__commons_configuration_commons_configuration_1_8.xml
new file mode 100644
index 0000000..772d6fe
--- /dev/null
+++ b/.idea/libraries/Maven__commons_configuration_commons_configuration_1_8.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__commons_io_commons_io_2_4.xml b/.idea/libraries/Maven__commons_io_commons_io_2_4.xml
new file mode 100644
index 0000000..bc2aad0
--- /dev/null
+++ b/.idea/libraries/Maven__commons_io_commons_io_2_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__commons_jxpath_commons_jxpath_1_3.xml b/.idea/libraries/Maven__commons_jxpath_commons_jxpath_1_3.xml
new file mode 100644
index 0000000..1816895
--- /dev/null
+++ b/.idea/libraries/Maven__commons_jxpath_commons_jxpath_1_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml b/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml
new file mode 100644
index 0000000..2ec8376
--- /dev/null
+++ b/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml
@@ -0,0 +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
new file mode 100644
index 0000000..14681ee
--- /dev/null
+++ b/.idea/libraries/Maven__dom4j_dom4j_1_6_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_github_openfeign_feign_core_9_5_0.xml b/.idea/libraries/Maven__io_github_openfeign_feign_core_9_5_0.xml
new file mode 100644
index 0000000..aa7944c
--- /dev/null
+++ b/.idea/libraries/Maven__io_github_openfeign_feign_core_9_5_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_github_openfeign_feign_hystrix_9_5_0.xml b/.idea/libraries/Maven__io_github_openfeign_feign_hystrix_9_5_0.xml
new file mode 100644
index 0000000..1cddd78
--- /dev/null
+++ b/.idea/libraries/Maven__io_github_openfeign_feign_hystrix_9_5_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_github_openfeign_feign_slf4j_9_5_0.xml b/.idea/libraries/Maven__io_github_openfeign_feign_slf4j_9_5_0.xml
new file mode 100644
index 0000000..57db686
--- /dev/null
+++ b/.idea/libraries/Maven__io_github_openfeign_feign_slf4j_9_5_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_buffer_4_0_27_Final.xml b/.idea/libraries/Maven__io_netty_netty_buffer_4_0_27_Final.xml
new file mode 100644
index 0000000..ad32e95
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_buffer_4_0_27_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_4_0_27_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_4_0_27_Final.xml
new file mode 100644
index 0000000..84e99a4
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_codec_4_0_27_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_codec_http_4_0_27_Final.xml b/.idea/libraries/Maven__io_netty_netty_codec_http_4_0_27_Final.xml
new file mode 100644
index 0000000..cab5893
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_codec_http_4_0_27_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_common_4_0_27_Final.xml b/.idea/libraries/Maven__io_netty_netty_common_4_0_27_Final.xml
new file mode 100644
index 0000000..045bf26
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_common_4_0_27_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_handler_4_0_27_Final.xml b/.idea/libraries/Maven__io_netty_netty_handler_4_0_27_Final.xml
new file mode 100644
index 0000000..4f6d30b
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_handler_4_0_27_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_4_0_27_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_4_0_27_Final.xml
new file mode 100644
index 0000000..82b77c1
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_4_0_27_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_4_0_27_Final.xml b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_4_0_27_Final.xml
new file mode 100644
index 0000000..94ab026
--- /dev/null
+++ b/.idea/libraries/Maven__io_netty_netty_transport_native_epoll_4_0_27_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_reactivex_rxjava_1_2_0.xml b/.idea/libraries/Maven__io_reactivex_rxjava_1_2_0.xml
new file mode 100644
index 0000000..27eb537
--- /dev/null
+++ b/.idea/libraries/Maven__io_reactivex_rxjava_1_2_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_reactivex_rxnetty_0_4_9.xml b/.idea/libraries/Maven__io_reactivex_rxnetty_0_4_9.xml
new file mode 100644
index 0000000..82613f4
--- /dev/null
+++ b/.idea/libraries/Maven__io_reactivex_rxnetty_0_4_9.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_reactivex_rxnetty_contexts_0_4_9.xml b/.idea/libraries/Maven__io_reactivex_rxnetty_contexts_0_4_9.xml
new file mode 100644
index 0000000..1ce62ff
--- /dev/null
+++ b/.idea/libraries/Maven__io_reactivex_rxnetty_contexts_0_4_9.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__io_reactivex_rxnetty_servo_0_4_9.xml b/.idea/libraries/Maven__io_reactivex_rxnetty_servo_0_4_9.xml
new file mode 100644
index 0000000..f9da5f7
--- /dev/null
+++ b/.idea/libraries/Maven__io_reactivex_rxnetty_servo_0_4_9.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__javax_inject_javax_inject_1.xml b/.idea/libraries/Maven__javax_inject_javax_inject_1.xml
new file mode 100644
index 0000000..93cf65a
--- /dev/null
+++ b/.idea/libraries/Maven__javax_inject_javax_inject_1.xml
@@ -0,0 +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
new file mode 100644
index 0000000..5f032d2
--- /dev/null
+++ b/.idea/libraries/Maven__javax_transaction_javax_transaction_api_1_2.xml
@@ -0,0 +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
new file mode 100644
index 0000000..940ce73
--- /dev/null
+++ b/.idea/libraries/Maven__javax_validation_validation_api_1_1_0_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__javax_ws_rs_jsr311_api_1_1_1.xml b/.idea/libraries/Maven__javax_ws_rs_jsr311_api_1_1_1.xml
new file mode 100644
index 0000000..a0c4d76
--- /dev/null
+++ b/.idea/libraries/Maven__javax_ws_rs_jsr311_api_1_1_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__javax_xml_stream_stax_api_1_0_2.xml b/.idea/libraries/Maven__javax_xml_stream_stax_api_1_0_2.xml
new file mode 100644
index 0000000..2a4dd7a
--- /dev/null
+++ b/.idea/libraries/Maven__javax_xml_stream_stax_api_1_0_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__joda_time_joda_time_2_9_9.xml b/.idea/libraries/Maven__joda_time_joda_time_2_9_9.xml
new file mode 100644
index 0000000..a468f58
--- /dev/null
+++ b/.idea/libraries/Maven__joda_time_joda_time_2_9_9.xml
@@ -0,0 +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
new file mode 100644
index 0000000..d411041
--- /dev/null
+++ b/.idea/libraries/Maven__junit_junit_4_12.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_39.xml b/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_39.xml
new file mode 100644
index 0000000..18e6ec9
--- /dev/null
+++ b/.idea/libraries/Maven__mysql_mysql_connector_java_5_1_39.xml
@@ -0,0 +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
new file mode 100644
index 0000000..88d626e
--- /dev/null
+++ b/.idea/libraries/Maven__net_minidev_accessors_smart_1_1.xml
@@ -0,0 +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
new file mode 100644
index 0000000..6c692c8
--- /dev/null
+++ b/.idea/libraries/Maven__net_minidev_json_smart_2_2_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_antlr_antlr_runtime_3_4.xml b/.idea/libraries/Maven__org_antlr_antlr_runtime_3_4.xml
new file mode 100644
index 0000000..fd0779a
--- /dev/null
+++ b/.idea/libraries/Maven__org_antlr_antlr_runtime_3_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_antlr_stringtemplate_3_2_1.xml b/.idea/libraries/Maven__org_antlr_stringtemplate_3_2_1.xml
new file mode 100644
index 0000000..6998bac
--- /dev/null
+++ b/.idea/libraries/Maven__org_antlr_stringtemplate_3_2_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_activemq_activemq_broker_5_14_5.xml b/.idea/libraries/Maven__org_apache_activemq_activemq_broker_5_14_5.xml
new file mode 100644
index 0000000..3a42804
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_activemq_activemq_broker_5_14_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_activemq_activemq_client_5_14_5.xml b/.idea/libraries/Maven__org_apache_activemq_activemq_client_5_14_5.xml
new file mode 100644
index 0000000..ac024a5
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_activemq_activemq_client_5_14_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_activemq_activemq_openwire_legacy_5_14_5.xml b/.idea/libraries/Maven__org_apache_activemq_activemq_openwire_legacy_5_14_5.xml
new file mode 100644
index 0000000..57af9ea
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_activemq_activemq_openwire_legacy_5_14_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_1.xml b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_1.xml
new file mode 100644
index 0000000..32bfe3b
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_commons_commons_lang3_3_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_commons_commons_math_2_2.xml b/.idea/libraries/Maven__org_apache_commons_commons_math_2_2.xml
new file mode 100644
index 0000000..8f3e315
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_commons_commons_math_2_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_geronimo_specs_geronimo_j2ee_management_1_1_spec_1_0_1.xml b/.idea/libraries/Maven__org_apache_geronimo_specs_geronimo_j2ee_management_1_1_spec_1_0_1.xml
new file mode 100644
index 0000000..20819c0
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_geronimo_specs_geronimo_j2ee_management_1_1_spec_1_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_geronimo_specs_geronimo_jms_1_1_spec_1_1_1.xml b/.idea/libraries/Maven__org_apache_geronimo_specs_geronimo_jms_1_1_spec_1_1_1.xml
new file mode 100644
index 0000000..c30276b
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_geronimo_specs_geronimo_jms_1_1_spec_1_1_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_5.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_5.xml
new file mode 100644
index 0000000..e4eb38b
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpclient_4_5_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_9.xml b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_9.xml
new file mode 100644
index 0000000..7f14d45
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_httpcomponents_httpcore_4_4_9.xml
@@ -0,0 +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
new file mode 100644
index 0000000..88b62c1
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_core_8_5_27.xml
@@ -0,0 +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
new file mode 100644
index 0000000..a6aeaf1
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_el_8_5_27.xml
@@ -0,0 +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
new file mode 100644
index 0000000..fefedc8
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_tomcat_embed_tomcat_embed_websocket_8_5_27.xml
@@ -0,0 +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
new file mode 100644
index 0000000..5a86b53
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_tomcat_tomcat_annotations_api_8_5_27.xml
@@ -0,0 +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
new file mode 100644
index 0000000..74857b1
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_tomcat_tomcat_jdbc_8_5_27.xml
@@ -0,0 +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
new file mode 100644
index 0000000..df3122a
--- /dev/null
+++ b/.idea/libraries/Maven__org_apache_tomcat_tomcat_juli_8_5_27.xml
@@ -0,0 +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
new file mode 100644
index 0000000..d46e30a
--- /dev/null
+++ b/.idea/libraries/Maven__org_aspectj_aspectjweaver_1_8_13.xml
@@ -0,0 +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
new file mode 100644
index 0000000..58bdc9a
--- /dev/null
+++ b/.idea/libraries/Maven__org_assertj_assertj_core_2_6_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_axonframework_axon_amqp_3_2.xml b/.idea/libraries/Maven__org_axonframework_axon_amqp_3_2.xml
new file mode 100644
index 0000000..95f890e
--- /dev/null
+++ b/.idea/libraries/Maven__org_axonframework_axon_amqp_3_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_axonframework_axon_core_3_2.xml b/.idea/libraries/Maven__org_axonframework_axon_core_3_2.xml
new file mode 100644
index 0000000..5c989d2
--- /dev/null
+++ b/.idea/libraries/Maven__org_axonframework_axon_core_3_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_axonframework_axon_distributed_commandbus_springcloud_3_2.xml b/.idea/libraries/Maven__org_axonframework_axon_distributed_commandbus_springcloud_3_2.xml
new file mode 100644
index 0000000..bed3037
--- /dev/null
+++ b/.idea/libraries/Maven__org_axonframework_axon_distributed_commandbus_springcloud_3_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_axonframework_axon_spring_3_2.xml b/.idea/libraries/Maven__org_axonframework_axon_spring_3_2.xml
new file mode 100644
index 0000000..40cdf3a
--- /dev/null
+++ b/.idea/libraries/Maven__org_axonframework_axon_spring_3_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_axonframework_axon_spring_boot_autoconfigure_3_2.xml b/.idea/libraries/Maven__org_axonframework_axon_spring_boot_autoconfigure_3_2.xml
new file mode 100644
index 0000000..a50e558
--- /dev/null
+++ b/.idea/libraries/Maven__org_axonframework_axon_spring_boot_autoconfigure_3_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_axonframework_axon_spring_boot_starter_3_2.xml b/.idea/libraries/Maven__org_axonframework_axon_spring_boot_starter_3_2.xml
new file mode 100644
index 0000000..82e0910
--- /dev/null
+++ b/.idea/libraries/Maven__org_axonframework_axon_spring_boot_starter_3_2.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_55.xml b/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_55.xml
new file mode 100644
index 0000000..5d81708
--- /dev/null
+++ b/.idea/libraries/Maven__org_bouncycastle_bcpkix_jdk15on_1_55.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_55.xml b/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_55.xml
new file mode 100644
index 0000000..a2576d9
--- /dev/null
+++ b/.idea/libraries/Maven__org_bouncycastle_bcprov_jdk15on_1_55.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_codehaus_jettison_jettison_1_3_7.xml b/.idea/libraries/Maven__org_codehaus_jettison_jettison_1_3_7.xml
new file mode 100644
index 0000000..ca43e29
--- /dev/null
+++ b/.idea/libraries/Maven__org_codehaus_jettison_jettison_1_3_7.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_codehaus_woodstox_stax2_api_3_1_4.xml b/.idea/libraries/Maven__org_codehaus_woodstox_stax2_api_3_1_4.xml
new file mode 100644
index 0000000..b510642
--- /dev/null
+++ b/.idea/libraries/Maven__org_codehaus_woodstox_stax2_api_3_1_4.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_codehaus_woodstox_woodstox_core_asl_4_4_1.xml b/.idea/libraries/Maven__org_codehaus_woodstox_woodstox_core_asl_4_4_1.xml
new file mode 100644
index 0000000..2997967
--- /dev/null
+++ b/.idea/libraries/Maven__org_codehaus_woodstox_woodstox_core_asl_4_4_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_freemarker_freemarker_2_3_27_incubating.xml b/.idea/libraries/Maven__org_freemarker_freemarker_2_3_27_incubating.xml
new file mode 100644
index 0000000..a8f7879
--- /dev/null
+++ b/.idea/libraries/Maven__org_freemarker_freemarker_2_3_27_incubating.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_fusesource_hawtbuf_hawtbuf_1_11.xml b/.idea/libraries/Maven__org_fusesource_hawtbuf_hawtbuf_1_11.xml
new file mode 100644
index 0000000..6c98814
--- /dev/null
+++ b/.idea/libraries/Maven__org_fusesource_hawtbuf_hawtbuf_1_11.xml
@@ -0,0 +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
new file mode 100644
index 0000000..f58bbc1
--- /dev/null
+++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
@@ -0,0 +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
new file mode 100644
index 0000000..78dbe45
--- /dev/null
+++ b/.idea/libraries/Maven__org_hamcrest_hamcrest_library_1_3.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml b/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml
new file mode 100644
index 0000000..04cc804
--- /dev/null
+++ b/.idea/libraries/Maven__org_hdrhistogram_HdrHistogram_2_1_9.xml
@@ -0,0 +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
new file mode 100644
index 0000000..ce34f42
--- /dev/null
+++ b/.idea/libraries/Maven__org_hibernate_common_hibernate_commons_annotations_5_0_1_Final.xml
@@ -0,0 +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
new file mode 100644
index 0000000..34893a4
--- /dev/null
+++ b/.idea/libraries/Maven__org_hibernate_hibernate_core_5_0_12_Final.xml
@@ -0,0 +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
new file mode 100644
index 0000000..27dda1e
--- /dev/null
+++ b/.idea/libraries/Maven__org_hibernate_hibernate_entitymanager_5_0_12_Final.xml
@@ -0,0 +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
new file mode 100644
index 0000000..3c0ddd4
--- /dev/null
+++ b/.idea/libraries/Maven__org_hibernate_hibernate_validator_5_3_6_Final.xml
@@ -0,0 +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
new file mode 100644
index 0000000..6492b2b
--- /dev/null
+++ b/.idea/libraries/Maven__org_hibernate_javax_persistence_hibernate_jpa_2_1_api_1_0_0_Final.xml
@@ -0,0 +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
new file mode 100644
index 0000000..09c4cf0
--- /dev/null
+++ b/.idea/libraries/Maven__org_javassist_javassist_3_21_0_GA.xml
@@ -0,0 +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
new file mode 100644
index 0000000..a74dcfd
--- /dev/null
+++ b/.idea/libraries/Maven__org_jboss_jandex_2_0_0_Final.xml
@@ -0,0 +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
new file mode 100644
index 0000000..6dc7a37
--- /dev/null
+++ b/.idea/libraries/Maven__org_jboss_logging_jboss_logging_3_3_1_Final.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_jvnet_animal_sniffer_annotation_1_0.xml b/.idea/libraries/Maven__org_jvnet_animal_sniffer_annotation_1_0.xml
new file mode 100644
index 0000000..b1afcf5
--- /dev/null
+++ b/.idea/libraries/Maven__org_jvnet_animal_sniffer_annotation_1_0.xml
@@ -0,0 +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
new file mode 100644
index 0000000..a523703
--- /dev/null
+++ b/.idea/libraries/Maven__org_mockito_mockito_core_1_10_19.xml
@@ -0,0 +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
new file mode 100644
index 0000000..7ab319b
--- /dev/null
+++ b/.idea/libraries/Maven__org_objenesis_objenesis_2_1.xml
@@ -0,0 +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
new file mode 100644
index 0000000..da69f6c
--- /dev/null
+++ b/.idea/libraries/Maven__org_ow2_asm_asm_5_0_3.xml
@@ -0,0 +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
new file mode 100644
index 0000000..0bf8cf2
--- /dev/null
+++ b/.idea/libraries/Maven__org_ow2_asm_asm_5_0_4.xml
@@ -0,0 +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
new file mode 100644
index 0000000..f86d2c8
--- /dev/null
+++ b/.idea/libraries/Maven__org_skyscreamer_jsonassert_1_4_0.xml
@@ -0,0 +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
new file mode 100644
index 0000000..bae9949
--- /dev/null
+++ b/.idea/libraries/Maven__org_slf4j_jcl_over_slf4j_1_7_25.xml
@@ -0,0 +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
new file mode 100644
index 0000000..6073e53
--- /dev/null
+++ b/.idea/libraries/Maven__org_slf4j_jul_to_slf4j_1_7_25.xml
@@ -0,0 +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
new file mode 100644
index 0000000..a14ac63
--- /dev/null
+++ b/.idea/libraries/Maven__org_slf4j_log4j_over_slf4j_1_7_25.xml
@@ -0,0 +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
new file mode 100644
index 0000000..20e8163
--- /dev/null
+++ b/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_25.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_amqp_spring_amqp_1_7_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_amqp_spring_amqp_1_7_6_RELEASE.xml
new file mode 100644
index 0000000..3e5815b
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_amqp_spring_amqp_1_7_6_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_1_7_6_RELEASE.xml b/.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_1_7_6_RELEASE.xml
new file mode 100644
index 0000000..cc6d839
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_amqp_spring_rabbit_1_7_6_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..862504f
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_1_5_10_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_1_5_10_RELEASE.xml
new file mode 100644
index 0000000..ad08ef1
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_actuator_1_5_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..f64fa47
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_autoconfigure_1_5_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..9a329bf
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_1_5_10_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_activemq_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_activemq_1_5_10_RELEASE.xml
new file mode 100644
index 0000000..d409509
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_activemq_1_5_10_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_actuator_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_actuator_1_5_10_RELEASE.xml
new file mode 100644
index 0000000..6d4f17e
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_actuator_1_5_10_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_1_5_10_RELEASE.xml
new file mode 100644
index 0000000..9b77f64
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_amqp_1_5_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..e4d2ad2
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_aop_1_5_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..74d6d84
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_data_jpa_1_5_10_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_freemarker_1_5_10_RELEASE.xml b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_freemarker_1_5_10_RELEASE.xml
new file mode 100644
index 0000000..daaffff
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_freemarker_1_5_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..b8cb42e
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_jdbc_1_5_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..ebedfdb
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_logging_1_5_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..7e25b4d
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_security_1_5_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..6cebd81
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_test_1_5_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..dee86b6
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_tomcat_1_5_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..325be36
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_starter_web_1_5_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..bfaf36d
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_1_5_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..e52925f
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_boot_spring_boot_test_autoconfigure_1_5_10_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_commons_1_3_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_commons_1_3_2_RELEASE.xml
new file mode 100644
index 0000000..008edf2
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_commons_1_3_2_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_context_1_3_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_context_1_3_2_RELEASE.xml
new file mode 100644
index 0000000..e656cc5
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_context_1_3_2_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_core_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_core_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..113839e
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_core_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_eureka_client_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_eureka_client_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..60bda4a
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_eureka_client_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_eureka_server_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_eureka_server_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..414423a
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_eureka_server_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_hystrix_dashboard_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_hystrix_dashboard_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..fcfb552
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_netflix_hystrix_dashboard_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_1_3_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_1_3_2_RELEASE.xml
new file mode 100644
index 0000000..df84c72
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_1_3_2_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_eureka_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_eureka_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..d4202fc
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_eureka_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_eureka_server_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_eureka_server_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..64ad6fe
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_eureka_server_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_feign_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_feign_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..37b758f
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_feign_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_hystrix_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_hystrix_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..d81c1e2
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_hystrix_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_hystrix_dashboard_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_hystrix_dashboard_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..8997528
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_hystrix_dashboard_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_archaius_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_archaius_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..dc0eb4a
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_archaius_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_eureka_client_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_eureka_client_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..a74719e
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_eureka_client_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_eureka_server_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_eureka_server_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..80b4a47
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_eureka_server_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_hystrix_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_hystrix_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..4505db2
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_hystrix_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_hystrix_dashboard_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_hystrix_dashboard_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..27fb908
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_hystrix_dashboard_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_ribbon_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_ribbon_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..11bc7cc
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_ribbon_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_zuul_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_zuul_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..b83e841
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_netflix_zuul_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_openfeign_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_openfeign_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..7b6da87
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_openfeign_1_4_3_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_zuul_1_4_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_zuul_1_4_3_RELEASE.xml
new file mode 100644
index 0000000..c261da7
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_cloud_spring_cloud_starter_zuul_1_4_3_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..5360026
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_data_spring_data_commons_1_13_10_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..77ef83c
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_data_spring_data_jpa_1_11_10_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_2_2_RELEASE.xml b/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_2_2_RELEASE.xml
new file mode 100644
index 0000000..1b2836b
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_retry_spring_retry_1_2_2_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..c8abd01
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_security_spring_security_config_4_2_4_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..a740c7b
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_security_spring_security_core_4_2_4_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_crypto_4_2_4_RELEASE.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_crypto_4_2_4_RELEASE.xml
new file mode 100644
index 0000000..5a6a9f4
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_security_spring_security_crypto_4_2_4_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_security_spring_security_rsa_1_0_3_RELEASE.xml b/.idea/libraries/Maven__org_springframework_security_spring_security_rsa_1_0_3_RELEASE.xml
new file mode 100644
index 0000000..a17b0ca
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_security_spring_security_rsa_1_0_3_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..54796c2
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_security_spring_security_web_4_2_4_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..9cb4293
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_aop_4_3_14_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..6ff1f54
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_aspects_4_3_14_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..913057e
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_beans_4_3_14_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..9a1ad94
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_context_4_3_14_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..53a9500
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_context_support_4_3_14_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..4fb202b
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_core_4_3_14_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..2afefb8
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_expression_4_3_14_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..52faf73
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_jdbc_4_3_14_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_jms_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_jms_4_3_14_RELEASE.xml
new file mode 100644
index 0000000..f0238fd
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_jms_4_3_14_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_springframework_spring_messaging_4_3_14_RELEASE.xml b/.idea/libraries/Maven__org_springframework_spring_messaging_4_3_14_RELEASE.xml
new file mode 100644
index 0000000..7342eaa
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_messaging_4_3_14_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..cd77798
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_orm_4_3_14_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..f90438e
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_test_4_3_14_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..942f93e
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_tx_4_3_14_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..13a39e0
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_web_4_3_14_RELEASE.xml
@@ -0,0 +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
new file mode 100644
index 0000000..b1855ad
--- /dev/null
+++ b/.idea/libraries/Maven__org_springframework_spring_webmvc_4_3_14_RELEASE.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_webjars_d3js_3_4_11.xml b/.idea/libraries/Maven__org_webjars_d3js_3_4_11.xml
new file mode 100644
index 0000000..8782b09
--- /dev/null
+++ b/.idea/libraries/Maven__org_webjars_d3js_3_4_11.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_webjars_jquery_2_1_1.xml b/.idea/libraries/Maven__org_webjars_jquery_2_1_1.xml
new file mode 100644
index 0000000..643a421
--- /dev/null
+++ b/.idea/libraries/Maven__org_webjars_jquery_2_1_1.xml
@@ -0,0 +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
new file mode 100644
index 0000000..20e2920
--- /dev/null
+++ b/.idea/libraries/Maven__org_yaml_snakeyaml_1_17.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__stax_stax_api_1_0_1.xml b/.idea/libraries/Maven__stax_stax_api_1_0_1.xml
new file mode 100644
index 0000000..0b13335
--- /dev/null
+++ b/.idea/libraries/Maven__stax_stax_api_1_0_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__xmlpull_xmlpull_1_1_3_1.xml b/.idea/libraries/Maven__xmlpull_xmlpull_1_1_3_1.xml
new file mode 100644
index 0000000..0f2d9ef
--- /dev/null
+++ b/.idea/libraries/Maven__xmlpull_xmlpull_1_1_3_1.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__xpp3_xpp3_1_1_4c.xml b/.idea/libraries/Maven__xpp3_xpp3_1_1_4c.xml
new file mode 100644
index 0000000..26694b3
--- /dev/null
+++ b/.idea/libraries/Maven__xpp3_xpp3_1_1_4c.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/Maven__xpp3_xpp3_min_1_1_4c.xml b/.idea/libraries/Maven__xpp3_xpp3_min_1_1_4c.xml
new file mode 100644
index 0000000..6726a2d
--- /dev/null
+++ b/.idea/libraries/Maven__xpp3_xpp3_min_1_1_4c.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..0aa275b
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..d156816
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..7809b35
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1587580101628
+
+
+ 1587580101628
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..86e9668
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+This is our assignment project for service based architect.
\ No newline at end of file
diff --git a/order-query/.gitignore b/order-query/.gitignore
new file mode 100644
index 0000000..2af7cef
--- /dev/null
+++ b/order-query/.gitignore
@@ -0,0 +1,24 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+nbproject/private/
+build/
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
\ No newline at end of file
diff --git a/order-query/.mvn/wrapper/maven-wrapper.jar b/order-query/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..9cc84ea
Binary files /dev/null and b/order-query/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/order-query/.mvn/wrapper/maven-wrapper.properties b/order-query/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..9dda3b6
--- /dev/null
+++ b/order-query/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip
diff --git a/order-query/mvnw b/order-query/mvnw
new file mode 100644
index 0000000..5bf251c
--- /dev/null
+++ b/order-query/mvnw
@@ -0,0 +1,225 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+# JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+# M2_HOME - location of maven2's installed home dir
+# MAVEN_OPTS - parameters passed to the Java VM when running Maven
+# e.g. to debug Maven itself, use
+# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+ if [ -f /etc/mavenrc ] ; then
+ . /etc/mavenrc
+ fi
+
+ if [ -f "$HOME/.mavenrc" ] ; then
+ . "$HOME/.mavenrc"
+ fi
+
+fi
+
+# OS specific support. $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+ CYGWIN*) cygwin=true ;;
+ MINGW*) mingw=true;;
+ Darwin*) darwin=true
+ # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+ # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+ if [ -z "$JAVA_HOME" ]; then
+ if [ -x "/usr/libexec/java_home" ]; then
+ export JAVA_HOME="`/usr/libexec/java_home`"
+ else
+ export JAVA_HOME="/Library/Java/Home"
+ fi
+ fi
+ ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+ if [ -r /etc/gentoo-release ] ; then
+ JAVA_HOME=`java-config --jre-home`
+ fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+ ## resolve links - $0 may be a link to maven's home
+ PRG="$0"
+
+ # need this for relative symlinks
+ while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG="`dirname "$PRG"`/$link"
+ fi
+ done
+
+ saveddir=`pwd`
+
+ M2_HOME=`dirname "$PRG"`/..
+
+ # make it fully qualified
+ M2_HOME=`cd "$M2_HOME" && pwd`
+
+ cd "$saveddir"
+ # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --unix "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Migwn, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME="`(cd "$M2_HOME"; pwd)`"
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+ # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+ javaExecutable="`which javac`"
+ if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+ # readlink(1) is not available as standard on Solaris 10.
+ readLink=`which readlink`
+ if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+ if $darwin ; then
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+ else
+ javaExecutable="`readlink -f \"$javaExecutable\"`"
+ fi
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+ JAVA_HOME="$javaHome"
+ export JAVA_HOME
+ fi
+ fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+ if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ else
+ JAVACMD="`which java`"
+ fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+ echo "Error: JAVA_HOME is not defined correctly." >&2
+ echo " We cannot execute $JAVACMD" >&2
+ exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+ echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+ if [ -z "$1" ]
+ then
+ echo "Path not specified to find_maven_basedir"
+ return 1
+ fi
+
+ basedir="$1"
+ wdir="$1"
+ while [ "$wdir" != '/' ] ; do
+ if [ -d "$wdir"/.mvn ] ; then
+ basedir=$wdir
+ break
+ fi
+ # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+ if [ -d "${wdir}" ]; then
+ wdir=`cd "$wdir/.."; pwd`
+ fi
+ # end of workaround
+ done
+ echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+ if [ -f "$1" ]; then
+ echo "$(tr -s '\n' ' ' < "$1")"
+ fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+ exit 1;
+fi
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+echo $MAVEN_PROJECTBASEDIR
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --path --windows "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+ MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+ $MAVEN_OPTS \
+ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/order-query/mvnw.cmd b/order-query/mvnw.cmd
new file mode 100644
index 0000000..019bd74
--- /dev/null
+++ b/order-query/mvnw.cmd
@@ -0,0 +1,143 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/order-query/pom.xml b/order-query/pom.xml
new file mode 100644
index 0000000..ee524fe
--- /dev/null
+++ b/order-query/pom.xml
@@ -0,0 +1,109 @@
+
+
+ 4.0.0
+
+ com.group1.hw.axon
+ order-query
+ 0.0.1-SNAPSHOT
+ jar
+
+ order-query
+ Demo project for Spring Boot
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.10.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+ Edgware.SR2
+
+
+
+
+ org.axonframework
+ axon-spring-boot-starter
+ 3.2
+
+
+ org.axonframework
+ axon-distributed-commandbus-springcloud
+ 3.2
+
+
+ org.axonframework
+ axon-amqp
+ 3.2
+
+
+ org.springframework.boot
+ spring-boot-starter-amqp
+
+
+ org.springframework.cloud
+ spring-cloud-starter-eureka
+
+
+ org.springframework.boot
+ spring-boot-starter-activemq
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ mysql
+ mysql-connector-java
+ 5.1.39
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ com.fasterxml.uuid
+ java-uuid-generator
+ 3.1.5
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ com.group1.hw.axon
+ service
+ 1.0-SNAPSHOT
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring-cloud.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
diff --git a/order-query/src/main/java/com/group1/hw/order/OrderController.java b/order-query/src/main/java/com/group1/hw/order/OrderController.java
new file mode 100644
index 0000000..38ba356
--- /dev/null
+++ b/order-query/src/main/java/com/group1/hw/order/OrderController.java
@@ -0,0 +1,32 @@
+package com.group1.hw.order;
+
+import com.group1.hw.order.query.OrderEntity;
+import com.group1.hw.order.query.OrderEntityRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * Created by mavlarn on 2018/5/28.
+ */
+@RestController
+@RequestMapping("/orders")
+public class OrderController {
+
+ @Autowired
+ private OrderEntityRepository orderEntityRepository;
+
+ @GetMapping("")
+ public List get() {
+ return orderEntityRepository.findAll();
+ }
+
+ @GetMapping("/{orderId}")
+ public OrderEntity get(@PathVariable String orderId) {
+ return orderEntityRepository.findOne(orderId);
+ }
+}
diff --git a/order-query/src/main/java/com/group1/hw/order/OrderQueryApplication.java b/order-query/src/main/java/com/group1/hw/order/OrderQueryApplication.java
new file mode 100644
index 0000000..4a81116
--- /dev/null
+++ b/order-query/src/main/java/com/group1/hw/order/OrderQueryApplication.java
@@ -0,0 +1,14 @@
+package com.group1.hw.order;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+@SpringBootApplication
+@EnableDiscoveryClient
+public class OrderQueryApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(OrderQueryApplication.class, args);
+ }
+}
diff --git a/order-query/src/main/java/com/group1/hw/order/config/AxonConfig.java b/order-query/src/main/java/com/group1/hw/order/config/AxonConfig.java
new file mode 100644
index 0000000..6a958a5
--- /dev/null
+++ b/order-query/src/main/java/com/group1/hw/order/config/AxonConfig.java
@@ -0,0 +1,61 @@
+package com.group1.hw.order.config;
+
+import com.rabbitmq.client.Channel;
+import org.axonframework.amqp.eventhandling.spring.SpringAMQPMessageSource;
+import org.axonframework.config.EventHandlingConfiguration;
+import org.axonframework.serialization.Serializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.amqp.core.*;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+
+/**
+ * Created by mavlarn on 2018/6/4.
+ */
+@Configuration
+public class AxonConfig {
+
+ private static final Logger LOG = LoggerFactory.getLogger(AxonConfig.class);
+
+ @Value("${axon.amqp.exchange}")
+ private String exchangeName;
+
+ @Bean
+ public Queue orderQueue(){
+ return new Queue("order",true);
+ }
+
+ @Bean
+ public Exchange exchange(){
+ return ExchangeBuilder.topicExchange(exchangeName).durable(true).build();
+ }
+
+ @Bean
+ public Binding orderQueueBinding() {
+ return BindingBuilder.bind(orderQueue()).to(exchange()).with("com.group1.hw.order.event.#").noargs();
+ }
+
+ @Bean
+ public SpringAMQPMessageSource orderMessageSource(Serializer serializer) {
+ return new SpringAMQPMessageSource(serializer){
+ @RabbitListener(queues = "order")
+ @Override
+ public void onMessage(Message message, Channel channel) throws Exception {
+ LOG.debug("Message received: {}", message);
+ super.onMessage(message, channel);
+ }
+ };
+ }
+
+ @Autowired
+ public void configure(EventHandlingConfiguration ehConfig, SpringAMQPMessageSource userMessageSource,
+ SpringAMQPMessageSource ticketMessageSource, SpringAMQPMessageSource orderMessageSource) {
+ ehConfig.registerSubscribingEventProcessor("OrderEventProcessor", c -> orderMessageSource);
+ }
+
+}
diff --git a/order-query/src/main/java/com/group1/hw/order/query/OrderEntity.java b/order-query/src/main/java/com/group1/hw/order/query/OrderEntity.java
new file mode 100644
index 0000000..7be0d53
--- /dev/null
+++ b/order-query/src/main/java/com/group1/hw/order/query/OrderEntity.java
@@ -0,0 +1,106 @@
+package com.group1.hw.order.query;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import java.time.ZonedDateTime;
+
+/**
+ * Created by mavlarn on 2018/1/20.
+ */
+@Entity(name = "tb_customer_order")
+public class OrderEntity {
+
+ @Id
+ private String id;
+
+ private String customerId;
+
+ private String title;
+
+ private String ticketId;
+
+ private Double amount;
+
+ private String status;
+
+ private String reason;
+
+ private ZonedDateTime createdDate;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ public void setTicketId(String ticketId) {
+ this.ticketId = ticketId;
+ }
+
+ public Double getAmount() {
+ return amount;
+ }
+
+ public void setAmount(Double amount) {
+ this.amount = amount;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getReason() {
+ return reason;
+ }
+
+ public void setReason(String reason) {
+ this.reason = reason;
+ }
+
+ public ZonedDateTime getCreatedDate() {
+ return createdDate;
+ }
+
+ public void setCreatedDate(ZonedDateTime createdDate) {
+ this.createdDate = createdDate;
+ }
+
+ @Override
+ public String toString() {
+ return "Order{" +
+ "id=" + id +
+ ", customerId=" + customerId +
+ ", title='" + title + '\'' +
+ ", ticketId=" + ticketId +
+ ", amount=" + amount +
+ ", status='" + status + '\'' +
+ ", createdDate=" + createdDate +
+ '}';
+ }
+}
diff --git a/order-query/src/main/java/com/group1/hw/order/query/OrderEntityRepository.java b/order-query/src/main/java/com/group1/hw/order/query/OrderEntityRepository.java
new file mode 100644
index 0000000..8b57c69
--- /dev/null
+++ b/order-query/src/main/java/com/group1/hw/order/query/OrderEntityRepository.java
@@ -0,0 +1,9 @@
+package com.group1.hw.order.query;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+/**
+ * Created by mavlarn on 2018/5/28.
+ */
+public interface OrderEntityRepository extends JpaRepository {
+}
diff --git a/order-query/src/main/java/com/group1/hw/order/query/OrderProjector.java b/order-query/src/main/java/com/group1/hw/order/query/OrderProjector.java
new file mode 100644
index 0000000..468a04d
--- /dev/null
+++ b/order-query/src/main/java/com/group1/hw/order/query/OrderProjector.java
@@ -0,0 +1,58 @@
+package com.group1.hw.order.query;
+
+
+import com.group1.hw.user.event.saga.OrderPaidEvent;
+import com.group1.hw.order.event.saga.OrderCreatedEvent;
+import com.group1.hw.order.event.OrderFailedEvent;
+import com.group1.hw.order.event.OrderFinishedEvent;
+import org.axonframework.config.ProcessingGroup;
+import org.axonframework.eventhandling.EventHandler;
+import org.axonframework.eventsourcing.EventSourcingHandler;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * Created by mavlarn on 2018/5/22.
+ */
+@Service
+@ProcessingGroup("OrderEventProcessor")
+public class OrderProjector {
+
+ @Autowired
+ private OrderEntityRepository repository;
+
+ @EventHandler
+ public void on(OrderCreatedEvent event) {
+ OrderEntity order = new OrderEntity();
+ order.setId(event.getOrderId());
+ order.setCustomerId(event.getCustomerId());
+ order.setTicketId(event.getTicketId());
+ order.setAmount(event.getAmount());
+ order.setCreatedDate(event.getCreatedDate());
+ order.setTitle(event.getTitle());
+ order.setStatus("NEW");
+ repository.save(order);
+ }
+
+ @EventSourcingHandler
+ public void onPaid(OrderPaidEvent event) {
+ OrderEntity order = repository.findOne(event.getOrderId());
+ order.setStatus("PAID");
+ repository.save(order);
+ }
+
+ @EventSourcingHandler
+ public void onFinished(OrderFinishedEvent event) {
+ OrderEntity order = repository.findOne(event.getOrderId());
+ order.setStatus("FINISH");
+ repository.save(order);
+ }
+
+ @EventSourcingHandler
+ public void onFailed(OrderFailedEvent event) {
+ OrderEntity order = repository.findOne(event.getOrderId());
+ order.setStatus("FAILED");
+ order.setReason(event.getReason());
+ repository.save(order);
+ }
+}
diff --git a/order-query/src/main/resources/application.yml b/order-query/src/main/resources/application.yml
new file mode 100644
index 0000000..e2b6139
--- /dev/null
+++ b/order-query/src/main/resources/application.yml
@@ -0,0 +1,33 @@
+server:
+ port: 18082
+spring:
+ application:
+ name: order-query
+ datasource:
+ url: jdbc:mysql://10.0.0.130:3306/order_query
+ username: root
+ password: 123456
+ driver-class-name: com.mysql.jdbc.Driver
+ jpa:
+ hibernate:
+ ddl-auto: update
+ properties:
+ hibernate:
+ enable_lazy_load_no_trans: true
+ rabbitmq:
+ host: 10.0.0.130
+ port: 5672
+ username: guest
+ password: guest
+ virtual-host: docker-mq-vhost
+
+eureka:
+ client:
+ serviceUrl:
+ defaultZone: http://group1:111111@localhost:8761/eureka/
+
+axon:
+ distributed:
+ enabled: true
+ amqp:
+ exchange: Group1.EventBus
diff --git a/order-query/src/main/resources/logback-spring.xml b/order-query/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..1e59c9e
--- /dev/null
+++ b/order-query/src/main/resources/logback-spring.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/order-query/src/test/java/com/group1/hw/order/OrderQueryApplicationTests.java b/order-query/src/test/java/com/group1/hw/order/OrderQueryApplicationTests.java
new file mode 100644
index 0000000..bdf152f
--- /dev/null
+++ b/order-query/src/test/java/com/group1/hw/order/OrderQueryApplicationTests.java
@@ -0,0 +1,16 @@
+package com.group1.hw.order;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class OrderQueryApplicationTests {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
diff --git a/order/.gitignore b/order/.gitignore
new file mode 100644
index 0000000..2af7cef
--- /dev/null
+++ b/order/.gitignore
@@ -0,0 +1,24 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+nbproject/private/
+build/
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
\ No newline at end of file
diff --git a/order/.mvn/wrapper/maven-wrapper.jar b/order/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..9cc84ea
Binary files /dev/null and b/order/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/order/.mvn/wrapper/maven-wrapper.properties b/order/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..9dda3b6
--- /dev/null
+++ b/order/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip
diff --git a/order/mvnw b/order/mvnw
new file mode 100644
index 0000000..5bf251c
--- /dev/null
+++ b/order/mvnw
@@ -0,0 +1,225 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+# JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+# M2_HOME - location of maven2's installed home dir
+# MAVEN_OPTS - parameters passed to the Java VM when running Maven
+# e.g. to debug Maven itself, use
+# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+ if [ -f /etc/mavenrc ] ; then
+ . /etc/mavenrc
+ fi
+
+ if [ -f "$HOME/.mavenrc" ] ; then
+ . "$HOME/.mavenrc"
+ fi
+
+fi
+
+# OS specific support. $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+ CYGWIN*) cygwin=true ;;
+ MINGW*) mingw=true;;
+ Darwin*) darwin=true
+ # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+ # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+ if [ -z "$JAVA_HOME" ]; then
+ if [ -x "/usr/libexec/java_home" ]; then
+ export JAVA_HOME="`/usr/libexec/java_home`"
+ else
+ export JAVA_HOME="/Library/Java/Home"
+ fi
+ fi
+ ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+ if [ -r /etc/gentoo-release ] ; then
+ JAVA_HOME=`java-config --jre-home`
+ fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+ ## resolve links - $0 may be a link to maven's home
+ PRG="$0"
+
+ # need this for relative symlinks
+ while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG="`dirname "$PRG"`/$link"
+ fi
+ done
+
+ saveddir=`pwd`
+
+ M2_HOME=`dirname "$PRG"`/..
+
+ # make it fully qualified
+ M2_HOME=`cd "$M2_HOME" && pwd`
+
+ cd "$saveddir"
+ # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --unix "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Migwn, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME="`(cd "$M2_HOME"; pwd)`"
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+ # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+ javaExecutable="`which javac`"
+ if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+ # readlink(1) is not available as standard on Solaris 10.
+ readLink=`which readlink`
+ if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+ if $darwin ; then
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+ else
+ javaExecutable="`readlink -f \"$javaExecutable\"`"
+ fi
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+ JAVA_HOME="$javaHome"
+ export JAVA_HOME
+ fi
+ fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+ if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ else
+ JAVACMD="`which java`"
+ fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+ echo "Error: JAVA_HOME is not defined correctly." >&2
+ echo " We cannot execute $JAVACMD" >&2
+ exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+ echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+ if [ -z "$1" ]
+ then
+ echo "Path not specified to find_maven_basedir"
+ return 1
+ fi
+
+ basedir="$1"
+ wdir="$1"
+ while [ "$wdir" != '/' ] ; do
+ if [ -d "$wdir"/.mvn ] ; then
+ basedir=$wdir
+ break
+ fi
+ # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+ if [ -d "${wdir}" ]; then
+ wdir=`cd "$wdir/.."; pwd`
+ fi
+ # end of workaround
+ done
+ echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+ if [ -f "$1" ]; then
+ echo "$(tr -s '\n' ' ' < "$1")"
+ fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+ exit 1;
+fi
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+echo $MAVEN_PROJECTBASEDIR
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --path --windows "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+ MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+ $MAVEN_OPTS \
+ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/order/mvnw.cmd b/order/mvnw.cmd
new file mode 100644
index 0000000..019bd74
--- /dev/null
+++ b/order/mvnw.cmd
@@ -0,0 +1,143 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/order/pom.xml b/order/pom.xml
new file mode 100644
index 0000000..ce5df29
--- /dev/null
+++ b/order/pom.xml
@@ -0,0 +1,114 @@
+
+
+ 4.0.0
+
+ com.group1.hw.axon
+ order
+ 0.0.1-SNAPSHOT
+ jar
+
+ order
+ Demo project for Spring Boot
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.10.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+ Edgware.SR2
+
+
+
+
+ com.group1.hw.axon
+ service
+ 1.0-SNAPSHOT
+
+
+ org.axonframework
+ axon-spring-boot-starter
+ 3.2
+
+
+ org.axonframework
+ axon-distributed-commandbus-springcloud
+ 3.2
+
+
+ org.axonframework
+ axon-amqp
+ 3.2
+
+
+ org.springframework.boot
+ spring-boot-starter-amqp
+
+
+ org.springframework.cloud
+ spring-cloud-starter-eureka
+
+
+ org.springframework.boot
+ spring-boot-starter-activemq
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ mysql
+ mysql-connector-java
+ 5.1.39
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ com.fasterxml.uuid
+ java-uuid-generator
+ 3.1.5
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ com.group1.hw.axon
+ service
+ 1.0-SNAPSHOT
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring-cloud.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
diff --git a/order/src/main/java/com/group1/hw/order/Order.java b/order/src/main/java/com/group1/hw/order/Order.java
new file mode 100644
index 0000000..6f52d64
--- /dev/null
+++ b/order/src/main/java/com/group1/hw/order/Order.java
@@ -0,0 +1,138 @@
+package com.group1.hw.order;
+
+
+import com.group1.hw.order.command.OrderCreateCommand;
+import com.group1.hw.order.command.OrderFailCommand;
+import com.group1.hw.order.command.OrderFinishCommand;
+import com.group1.hw.order.event.saga.OrderCreatedEvent;
+import com.group1.hw.order.event.OrderFailedEvent;
+import com.group1.hw.order.event.OrderFinishedEvent;
+import org.axonframework.commandhandling.CommandHandler;
+import org.axonframework.commandhandling.model.AggregateIdentifier;
+import org.axonframework.eventsourcing.EventSourcingHandler;
+import org.axonframework.spring.stereotype.Aggregate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.time.ZonedDateTime;
+
+import static org.axonframework.commandhandling.model.AggregateLifecycle.apply;
+
+/**
+ * Created by mavlarn on 2018/1/20.
+ */
+@Aggregate
+public class Order {
+
+ private static final Logger LOG = LoggerFactory.getLogger(Order.class);
+
+ @AggregateIdentifier
+ private String id;
+
+ private String customerId;
+
+ private String title;
+
+ private String ticketId;
+
+ private Double amount;
+
+ private String status;
+
+ private String reason;
+
+ private ZonedDateTime createdDate;
+
+ public Order() {
+ }
+
+ @CommandHandler
+ public Order(OrderCreateCommand command) {
+ apply(new OrderCreatedEvent(command.getOrderId(), command.getCustomerId(), command.getTitle(), command.getTicketId(), command.getAmount(), ZonedDateTime.now()));
+ }
+
+ @CommandHandler
+ public void handleFinish(OrderFinishCommand command) {
+ apply(new OrderFinishedEvent(command.getOrderId()));
+ }
+
+ @CommandHandler
+ public void handleFail(OrderFailCommand command) {
+ apply(new OrderFailedEvent(command.getOrderId(), command.getReason()));
+ }
+
+ @EventSourcingHandler
+ public void onCreate(OrderCreatedEvent event) {
+ this.id = event.getOrderId();
+ this.customerId = event.getCustomerId();
+ this.title = event.getTitle();
+ this.ticketId = event.getTicketId();
+ this.amount = event.getAmount();
+ this.status = "NEW";
+ this.createdDate = event.getCreatedDate();
+ LOG.info("Executed event:{}", event);
+ }
+
+ @EventSourcingHandler
+ public void onFinished(OrderFinishedEvent event) {
+ this.status = "FINISH";
+ LOG.info("Executed event:{}", event);
+ }
+
+ @EventSourcingHandler
+ public void onFailed(OrderFailedEvent event) {
+ this.status = "FAILED";
+ this.reason = event.getReason();
+ LOG.info("Executed event:{}", event);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ public Double getAmount() {
+ return amount;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public String getReason() {
+ return reason;
+ }
+
+ public ZonedDateTime getCreatedDate() {
+ return createdDate;
+ }
+
+ @Override
+ public String toString() {
+ return "Order{" +
+ "id='" + id + '\'' +
+ ", customerId='" + customerId + '\'' +
+ ", title='" + title + '\'' +
+ ", ticketId='" + ticketId + '\'' +
+ ", amount=" + amount +
+ ", status='" + status + '\'' +
+ ", reason='" + reason + '\'' +
+ ", createdDate=" + createdDate +
+ '}';
+ }
+}
diff --git a/order/src/main/java/com/group1/hw/order/OrderApplication.java b/order/src/main/java/com/group1/hw/order/OrderApplication.java
new file mode 100644
index 0000000..d081850
--- /dev/null
+++ b/order/src/main/java/com/group1/hw/order/OrderApplication.java
@@ -0,0 +1,14 @@
+package com.group1.hw.order;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+@SpringBootApplication
+@EnableDiscoveryClient
+public class OrderApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(OrderApplication.class, args);
+ }
+}
diff --git a/order/src/main/java/com/group1/hw/order/OrderController.java b/order/src/main/java/com/group1/hw/order/OrderController.java
new file mode 100644
index 0000000..9e2a9e9
--- /dev/null
+++ b/order/src/main/java/com/group1/hw/order/OrderController.java
@@ -0,0 +1,37 @@
+package com.group1.hw.order;
+
+import com.group1.hw.order.command.OrderCreateCommand;
+import org.axonframework.commandhandling.callbacks.LoggingCallback;
+import org.axonframework.commandhandling.gateway.CommandGateway;
+import org.axonframework.queryhandling.QueryGateway;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.UUID;
+import java.util.concurrent.ExecutionException;
+
+/**
+ * Created by mavlarn on 2018/5/28.
+ */
+@RestController
+@RequestMapping("/orders")
+public class OrderController {
+
+ @Autowired
+ private CommandGateway commandGateway;
+ @Autowired
+ private QueryGateway queryGateway;
+
+ @PostMapping("")
+ public void create(@RequestBody Order order) {
+ UUID orderId = UUID.randomUUID();
+ OrderCreateCommand command = new OrderCreateCommand(orderId.toString(), order.getCustomerId(),
+ order.getTitle(), order.getTicketId(), order.getAmount());
+ commandGateway.send(command, LoggingCallback.INSTANCE);
+ }
+
+ @PostMapping("/{orderId}")
+ public Order get(@PathVariable String orderId) throws ExecutionException, InterruptedException {
+ return queryGateway.query(orderId, Order.class).get();
+ }
+}
diff --git a/order/src/main/java/com/group1/hw/order/OrderManagementSaga.java b/order/src/main/java/com/group1/hw/order/OrderManagementSaga.java
new file mode 100644
index 0000000..67c86d4
--- /dev/null
+++ b/order/src/main/java/com/group1/hw/order/OrderManagementSaga.java
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2016. Axon Framework
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.group1.hw.order;
+
+import com.group1.hw.order.command.OrderFailCommand;
+import com.group1.hw.order.command.OrderFinishCommand;
+import com.group1.hw.order.event.OrderFailedEvent;
+import com.group1.hw.order.event.OrderFinishedEvent;
+import com.group1.hw.order.event.saga.OrderCreatedEvent;
+import com.group1.hw.ticket.command.OrderTicketMoveCommand;
+import com.group1.hw.ticket.command.OrderTicketPreserveCommand;
+import com.group1.hw.ticket.command.OrderTicketUnlockCommand;
+import com.group1.hw.ticket.event.saga.OrderTicketMovedEvent;
+import com.group1.hw.ticket.event.saga.OrderTicketPreserveFailedEvent;
+import com.group1.hw.ticket.event.saga.OrderTicketPreservedEvent;
+import com.group1.hw.user.command.OrderPayCommand;
+import com.group1.hw.user.event.saga.OrderPaidEvent;
+import com.group1.hw.user.event.saga.OrderPayFailedEvent;
+import org.axonframework.commandhandling.CommandBus;
+import org.axonframework.commandhandling.callbacks.LoggingCallback;
+import org.axonframework.eventhandling.saga.EndSaga;
+import org.axonframework.eventhandling.saga.SagaEventHandler;
+import org.axonframework.eventhandling.saga.StartSaga;
+import org.axonframework.eventhandling.scheduling.EventScheduler;
+import org.axonframework.eventhandling.scheduling.ScheduleToken;
+import org.axonframework.spring.stereotype.Saga;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.time.Instant;
+
+import static org.axonframework.commandhandling.GenericCommandMessage.asCommandMessage;
+
+@Saga
+public class OrderManagementSaga {
+
+ private static final Logger LOG = LoggerFactory.getLogger(OrderManagementSaga.class);
+
+ @Autowired
+ private transient CommandBus commandBus;
+ @Autowired
+ private transient EventScheduler eventScheduler;
+
+ private String orderId;
+ private String customerId;
+ private String ticketId;
+ private Double amount;
+
+ private ScheduleToken timeoutToken;
+
+ @StartSaga
+ @SagaEventHandler(associationProperty = "orderId")
+ public void on(OrderCreatedEvent event) {
+ this.orderId = event.getOrderId();
+ this.customerId = event.getCustomerId();
+ this.ticketId = event.getTicketId();
+ this.amount = event.getAmount();
+
+ timeoutToken = eventScheduler.schedule(Instant.now().plusSeconds(60), new OrderPayFailedEvent(this.orderId));
+
+ OrderTicketPreserveCommand command = new OrderTicketPreserveCommand(orderId, ticketId, customerId);
+ commandBus.dispatch(asCommandMessage(command), LoggingCallback.INSTANCE);
+ }
+
+ @SagaEventHandler(associationProperty = "orderId")
+ public void on(OrderTicketPreservedEvent event) {
+ OrderPayCommand command = new OrderPayCommand(orderId, customerId, amount);
+ commandBus.dispatch(asCommandMessage(command), LoggingCallback.INSTANCE);
+ }
+
+ @SagaEventHandler(associationProperty = "orderId")
+ @EndSaga
+ public void on(OrderTicketPreserveFailedEvent event) {
+ OrderFailCommand command = new OrderFailCommand(event.getOrderId(), "Preserve Failed");
+ commandBus.dispatch(asCommandMessage(command), LoggingCallback.INSTANCE);
+ }
+
+ @SagaEventHandler(associationProperty = "orderId")
+ public void on(OrderPaidEvent event) {
+ OrderTicketMoveCommand command = new OrderTicketMoveCommand(this.ticketId, this.orderId, this.customerId);
+ commandBus.dispatch(asCommandMessage(command), LoggingCallback.INSTANCE);
+ }
+
+ @SagaEventHandler(associationProperty = "orderId")
+ public void on(OrderPayFailedEvent event) {
+ OrderTicketUnlockCommand command = new OrderTicketUnlockCommand(ticketId, customerId);
+ commandBus.dispatch(asCommandMessage(command), LoggingCallback.INSTANCE);
+
+ OrderFailCommand failCommand = new OrderFailCommand(event.getOrderId(), "Pay Failed");
+ commandBus.dispatch(asCommandMessage(failCommand), LoggingCallback.INSTANCE);
+ }
+
+ @SagaEventHandler(associationProperty = "orderId")
+ public void on(OrderTicketMovedEvent event) {
+ OrderFinishCommand command = new OrderFinishCommand(orderId);
+ commandBus.dispatch(asCommandMessage(command), LoggingCallback.INSTANCE);
+ }
+
+ @SagaEventHandler(associationProperty = "orderId")
+ @EndSaga
+ public void on(OrderFinishedEvent event) {
+ LOG.info("Order:{} finished.", event.getOrderId());
+ if (this.timeoutToken != null) {
+ eventScheduler.cancelSchedule(this.timeoutToken);
+ }
+ }
+
+ @SagaEventHandler(associationProperty = "orderId")
+ @EndSaga
+ public void on(OrderFailedEvent event) {
+ LOG.info("Order:{} failed.", event.getOrderId());
+ if (this.timeoutToken != null) {
+ eventScheduler.cancelSchedule(this.timeoutToken);
+ }
+ }
+
+}
diff --git a/order/src/main/java/com/group1/hw/order/command/OrderCreateCommand.java b/order/src/main/java/com/group1/hw/order/command/OrderCreateCommand.java
new file mode 100644
index 0000000..4def579
--- /dev/null
+++ b/order/src/main/java/com/group1/hw/order/command/OrderCreateCommand.java
@@ -0,0 +1,45 @@
+package com.group1.hw.order.command;
+
+import org.axonframework.commandhandling.TargetAggregateIdentifier;
+
+/**
+ * Created by mavlarn on 2018/5/24.
+ */
+public class OrderCreateCommand {
+
+ @TargetAggregateIdentifier
+ private String orderId;
+
+ private String customerId;
+ private String title;
+ private String ticketId;
+ private Double amount;
+
+ public OrderCreateCommand(String orderId, String customerId, String title, String ticketId, Double amount) {
+ this.orderId = orderId;
+ this.customerId = customerId;
+ this.title = title;
+ this.ticketId = ticketId;
+ this.amount = amount;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ public Double getAmount() {
+ return amount;
+ }
+}
diff --git a/order/src/main/java/com/group1/hw/order/command/OrderFailCommand.java b/order/src/main/java/com/group1/hw/order/command/OrderFailCommand.java
new file mode 100644
index 0000000..01648b3
--- /dev/null
+++ b/order/src/main/java/com/group1/hw/order/command/OrderFailCommand.java
@@ -0,0 +1,27 @@
+package com.group1.hw.order.command;
+
+import org.axonframework.commandhandling.TargetAggregateIdentifier;
+
+/**
+ * Created by mavlarn on 2018/5/24.
+ */
+public class OrderFailCommand {
+
+ @TargetAggregateIdentifier
+ private String orderId;
+
+ private String reason;
+
+ public OrderFailCommand(String orderId, String reason) {
+ this.orderId = orderId;
+ this.reason = reason;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public String getReason() {
+ return reason;
+ }
+}
diff --git a/order/src/main/java/com/group1/hw/order/command/OrderFinishCommand.java b/order/src/main/java/com/group1/hw/order/command/OrderFinishCommand.java
new file mode 100644
index 0000000..053adf8
--- /dev/null
+++ b/order/src/main/java/com/group1/hw/order/command/OrderFinishCommand.java
@@ -0,0 +1,21 @@
+package com.group1.hw.order.command;
+
+import org.axonframework.commandhandling.TargetAggregateIdentifier;
+
+/**
+ * Created by mavlarn on 2018/5/24.
+ */
+public class OrderFinishCommand {
+
+ @TargetAggregateIdentifier
+ private String orderId;
+
+
+ public OrderFinishCommand(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+}
diff --git a/order/src/main/java/com/group1/hw/order/config/AxonConfig.java b/order/src/main/java/com/group1/hw/order/config/AxonConfig.java
new file mode 100644
index 0000000..4a8cfb9
--- /dev/null
+++ b/order/src/main/java/com/group1/hw/order/config/AxonConfig.java
@@ -0,0 +1,95 @@
+package com.group1.hw.order.config;
+
+import com.group1.hw.order.OrderManagementSaga;
+import com.rabbitmq.client.Channel;
+import org.axonframework.amqp.eventhandling.spring.SpringAMQPMessageSource;
+import org.axonframework.common.transaction.TransactionManager;
+import org.axonframework.config.SagaConfiguration;
+import org.axonframework.eventhandling.EventBus;
+import org.axonframework.eventhandling.scheduling.EventScheduler;
+import org.axonframework.eventhandling.scheduling.java.SimpleEventScheduler;
+import org.axonframework.serialization.Serializer;
+import org.axonframework.spring.messaging.unitofwork.SpringTransactionManager;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.amqp.core.*;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.concurrent.Executors;
+
+
+/**
+ * Created by mavlarn on 2018/6/4.
+ */
+@Configuration
+public class AxonConfig {
+
+ private static final Logger LOG = LoggerFactory.getLogger(AxonConfig.class);
+
+ @Value("${axon.amqp.exchange}")
+ private String exchangeName;
+
+ @Bean
+ public EventScheduler eventScheduler(EventBus eventBus, TransactionManager transactionManager) {
+ return new SimpleEventScheduler(Executors.newScheduledThreadPool(1), eventBus, transactionManager);
+ }
+
+ @Bean
+ public Queue sagaQueue(){
+ return new Queue("saga",true);
+ }
+
+ @Bean
+ public Exchange exchange(){
+ return ExchangeBuilder.topicExchange(exchangeName).durable(true).build();
+ }
+
+ @Bean
+ public Binding sagaQueueBinding() {
+ return BindingBuilder.bind(sagaQueue()).to(exchange()).with("com.group1.hw.order.event.saga.#").noargs();
+ }
+ @Bean
+ public Queue orderQueue(){
+ return new Queue("order",true);
+ }
+
+ @Bean
+ public Binding orderQueueBinding() {
+ return BindingBuilder.bind(sagaQueue()).to(exchange()).with("com.group1.hw.order.event.#").noargs();
+ }
+ /**
+ * Order Saga需要监听事件来处理订单流程,它需要监听ticket、user队列来监听saga流程里面相应的事件。
+ * 他反而不需要监听order队列,因为order的事件都是本地处理的。所以我们不需要设置OrderEventProcessor
+ */
+ @Bean
+ public SpringAMQPMessageSource sagaMessageSource(Serializer serializer) {
+ return new SpringAMQPMessageSource(serializer){
+ @RabbitListener(queues = {"saga"})
+ @Override
+ @Transactional
+ public void onMessage(Message message, Channel channel) throws Exception {
+ LOG.debug("Message received: {}", message);
+ super.onMessage(message, channel);
+ }
+ };
+ }
+
+// @Autowired
+// public void configure(EventHandlingConfiguration ehConfig, SpringAMQPMessageSource sagaMessageSource) {
+// // saga类上不能添加EventProcessor
+// ehConfig.registerSubscribingEventProcessor("SagaEventProcessor", c -> sagaMessageSource);
+// }
+
+ @Bean
+ public SagaConfiguration orderManagementSagaConfiguration(SpringAMQPMessageSource sagaMessageSource,
+ PlatformTransactionManager txManager) {
+ return SagaConfiguration.subscribingSagaManager(OrderManagementSaga.class, c -> sagaMessageSource)
+ .configureTransactionManager(c -> new SpringTransactionManager(txManager));
+ }
+
+}
diff --git a/order/src/main/java/com/group1/hw/order/query/OrderId.java b/order/src/main/java/com/group1/hw/order/query/OrderId.java
new file mode 100644
index 0000000..38e47ff
--- /dev/null
+++ b/order/src/main/java/com/group1/hw/order/query/OrderId.java
@@ -0,0 +1,39 @@
+package com.group1.hw.order.query;
+
+import org.axonframework.common.Assert;
+
+/**
+ * Created by mavlarn on 2018/6/27.
+ */
+public class OrderId {
+
+ private final String identifier;
+ private final int hashCode;
+
+ public OrderId(String identifier) {
+ Assert.notNull(identifier, () -> "Identifier may not be null");
+ this.identifier = identifier;
+ this.hashCode = identifier.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ OrderId customerId = (OrderId) o;
+ return identifier.equals(customerId.identifier);
+
+ }
+
+ @Override
+ public int hashCode() {
+ return hashCode;
+ }
+
+ @Override
+ public String toString() {
+ return identifier;
+ }
+
+}
diff --git a/order/src/main/java/com/group1/hw/order/query/OrderQueryHandler.java b/order/src/main/java/com/group1/hw/order/query/OrderQueryHandler.java
new file mode 100644
index 0000000..d7718c9
--- /dev/null
+++ b/order/src/main/java/com/group1/hw/order/query/OrderQueryHandler.java
@@ -0,0 +1,30 @@
+package com.group1.hw.order.query;
+
+import com.group1.hw.order.Order;
+import org.axonframework.commandhandling.model.Repository;
+import org.axonframework.queryhandling.QueryHandler;
+import org.axonframework.spring.config.AxonConfiguration;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by mavlarn on 2018/5/29.
+ */
+@Component
+public class OrderQueryHandler {
+
+
+ @Autowired
+ AxonConfiguration axonConfiguration;
+
+ @QueryHandler
+ public Order query(OrderId orderId) {
+ // WARN: 强烈不建议使用这种方式将聚合数据暴露给外界,而应该使用物化视图的方式将保存的视图数据显示出来。
+ // 这里这样做,只是用于debug,有时候,可能写的代码有问题,导致聚合数据跟视图数据不一致。
+ final Order[] theOrder = new Order[1];
+ Repository orderRepository = axonConfiguration.repository(Order.class);
+ orderRepository.load(orderId.toString()).execute(order -> theOrder[0] = order);
+
+ return theOrder[0];
+ }
+}
diff --git a/order/src/main/resources/application.yml b/order/src/main/resources/application.yml
new file mode 100644
index 0000000..74a30cd
--- /dev/null
+++ b/order/src/main/resources/application.yml
@@ -0,0 +1,32 @@
+server:
+ port: 8082
+spring:
+ application:
+ name: order
+ datasource:
+ url: jdbc:mysql://10.0.0.130:3306/order
+ username: root
+ password: 123456
+ driver-class-name: com.mysql.jdbc.Driver
+ jpa:
+ hibernate:
+ ddl-auto: update
+ properties:
+ hibernate:
+ enable_lazy_load_no_trans: true
+ rabbitmq:
+ host: 10.0.0.130
+ port: 5672
+ username: guest
+ password: guest
+ virtual-host: docker-mq-vhost
+eureka:
+ client:
+ serviceUrl:
+ defaultZone: http://group1:111111@localhost:8761/eureka/
+
+axon:
+ distributed:
+ enabled: true
+ amqp:
+ exchange: Group1.EventBus
diff --git a/order/src/main/resources/logback-spring.xml b/order/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..1e59c9e
--- /dev/null
+++ b/order/src/main/resources/logback-spring.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/order/src/test/java/com/group1/hw/order/OrderApplicationTests.java b/order/src/test/java/com/group1/hw/order/OrderApplicationTests.java
new file mode 100644
index 0000000..05a559c
--- /dev/null
+++ b/order/src/test/java/com/group1/hw/order/OrderApplicationTests.java
@@ -0,0 +1,16 @@
+package com.group1.hw.order;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class OrderApplicationTests {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
diff --git a/proxy/.gitignore b/proxy/.gitignore
new file mode 100644
index 0000000..2af7cef
--- /dev/null
+++ b/proxy/.gitignore
@@ -0,0 +1,24 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+nbproject/private/
+build/
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
\ No newline at end of file
diff --git a/proxy/.mvn/wrapper/maven-wrapper.jar b/proxy/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..9cc84ea
Binary files /dev/null and b/proxy/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/proxy/.mvn/wrapper/maven-wrapper.properties b/proxy/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..9dda3b6
--- /dev/null
+++ b/proxy/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip
diff --git a/proxy/mvnw b/proxy/mvnw
new file mode 100644
index 0000000..5bf251c
--- /dev/null
+++ b/proxy/mvnw
@@ -0,0 +1,225 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+# JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+# M2_HOME - location of maven2's installed home dir
+# MAVEN_OPTS - parameters passed to the Java VM when running Maven
+# e.g. to debug Maven itself, use
+# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+ if [ -f /etc/mavenrc ] ; then
+ . /etc/mavenrc
+ fi
+
+ if [ -f "$HOME/.mavenrc" ] ; then
+ . "$HOME/.mavenrc"
+ fi
+
+fi
+
+# OS specific support. $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+ CYGWIN*) cygwin=true ;;
+ MINGW*) mingw=true;;
+ Darwin*) darwin=true
+ # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+ # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+ if [ -z "$JAVA_HOME" ]; then
+ if [ -x "/usr/libexec/java_home" ]; then
+ export JAVA_HOME="`/usr/libexec/java_home`"
+ else
+ export JAVA_HOME="/Library/Java/Home"
+ fi
+ fi
+ ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+ if [ -r /etc/gentoo-release ] ; then
+ JAVA_HOME=`java-config --jre-home`
+ fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+ ## resolve links - $0 may be a link to maven's home
+ PRG="$0"
+
+ # need this for relative symlinks
+ while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG="`dirname "$PRG"`/$link"
+ fi
+ done
+
+ saveddir=`pwd`
+
+ M2_HOME=`dirname "$PRG"`/..
+
+ # make it fully qualified
+ M2_HOME=`cd "$M2_HOME" && pwd`
+
+ cd "$saveddir"
+ # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --unix "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Migwn, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME="`(cd "$M2_HOME"; pwd)`"
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+ # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+ javaExecutable="`which javac`"
+ if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+ # readlink(1) is not available as standard on Solaris 10.
+ readLink=`which readlink`
+ if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+ if $darwin ; then
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+ else
+ javaExecutable="`readlink -f \"$javaExecutable\"`"
+ fi
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+ JAVA_HOME="$javaHome"
+ export JAVA_HOME
+ fi
+ fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+ if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ else
+ JAVACMD="`which java`"
+ fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+ echo "Error: JAVA_HOME is not defined correctly." >&2
+ echo " We cannot execute $JAVACMD" >&2
+ exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+ echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+ if [ -z "$1" ]
+ then
+ echo "Path not specified to find_maven_basedir"
+ return 1
+ fi
+
+ basedir="$1"
+ wdir="$1"
+ while [ "$wdir" != '/' ] ; do
+ if [ -d "$wdir"/.mvn ] ; then
+ basedir=$wdir
+ break
+ fi
+ # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+ if [ -d "${wdir}" ]; then
+ wdir=`cd "$wdir/.."; pwd`
+ fi
+ # end of workaround
+ done
+ echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+ if [ -f "$1" ]; then
+ echo "$(tr -s '\n' ' ' < "$1")"
+ fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+ exit 1;
+fi
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+echo $MAVEN_PROJECTBASEDIR
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --path --windows "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+ MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+ $MAVEN_OPTS \
+ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/proxy/mvnw.cmd b/proxy/mvnw.cmd
new file mode 100644
index 0000000..019bd74
--- /dev/null
+++ b/proxy/mvnw.cmd
@@ -0,0 +1,143 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/proxy/pom.xml b/proxy/pom.xml
new file mode 100644
index 0000000..650fd0f
--- /dev/null
+++ b/proxy/pom.xml
@@ -0,0 +1,68 @@
+
+
+ 4.0.0
+
+ com.group1.hw.axon
+ proxy
+ 0.0.1-SNAPSHOT
+ jar
+
+ proxy
+ Demo project for Spring Boot
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.10.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+ Edgware.SR2
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-eureka
+
+
+ org.springframework.cloud
+ spring-cloud-starter-zuul
+ 1.4.3.RELEASE
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring-cloud.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
diff --git a/proxy/src/main/java/com/group1/hw/proxy/HttpMethodZuulFilter.java b/proxy/src/main/java/com/group1/hw/proxy/HttpMethodZuulFilter.java
new file mode 100644
index 0000000..ef2e7c7
--- /dev/null
+++ b/proxy/src/main/java/com/group1/hw/proxy/HttpMethodZuulFilter.java
@@ -0,0 +1,51 @@
+package com.group1.hw.proxy;
+
+import com.netflix.zuul.ZuulFilter;
+import com.netflix.zuul.context.RequestContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+
+import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.ROUTE_TYPE;
+
+/**
+ * Created by mavlarn on 2018/6/6.
+ */
+@Component
+public class HttpMethodZuulFilter extends ZuulFilter {
+
+ private static final Logger LOG = LoggerFactory.getLogger(HttpMethodZuulFilter.class);
+
+ private static final String REQUEST_PATH = "/order";
+ private static final String TARGET_SERVICE = "order-query";
+
+ @Override
+ public String filterType() {
+ return ROUTE_TYPE;
+ }
+
+ @Override
+ public int filterOrder() {
+ return 0;
+ }
+
+ @Override
+ public boolean shouldFilter() {
+ RequestContext context = RequestContext.getCurrentContext();
+ HttpServletRequest request = context.getRequest();
+ String method = request.getMethod();
+ String requestURI = request.getRequestURI();
+ return "GET".equals(method.toUpperCase()) && requestURI.startsWith(REQUEST_PATH);
+ }
+
+ @Override
+ public Object run() {
+ LOG.info("Route GET order requests to order-query service.");
+ RequestContext context = RequestContext.getCurrentContext();
+ context.set("serviceId", TARGET_SERVICE);
+ context.setRouteHost(null);
+ return null;
+ }
+}
diff --git a/proxy/src/main/java/com/group1/hw/proxy/ProxyApplication.java b/proxy/src/main/java/com/group1/hw/proxy/ProxyApplication.java
new file mode 100644
index 0000000..9c8e602
--- /dev/null
+++ b/proxy/src/main/java/com/group1/hw/proxy/ProxyApplication.java
@@ -0,0 +1,16 @@
+package com.group1.hw.proxy;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
+
+@SpringBootApplication
+@EnableEurekaClient
+@EnableZuulProxy
+public class ProxyApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(ProxyApplication.class, args);
+ }
+}
diff --git a/proxy/src/main/resources/application.yml b/proxy/src/main/resources/application.yml
new file mode 100644
index 0000000..cd278f6
--- /dev/null
+++ b/proxy/src/main/resources/application.yml
@@ -0,0 +1,17 @@
+server:
+ port: 8888
+spring:
+ application:
+ name: proxy
+
+eureka:
+ client:
+ serviceUrl:
+ defaultZone: http://group1:111111@localhost:8761/eureka/
+
+#zuul:
+# routes:
+# userApi:
+# path: /home/**
+# stripPrefix: false
+# serviceId: user
\ No newline at end of file
diff --git a/proxy/src/test/java/com/group1/hw/proxy/ProxyApplicationTests.java b/proxy/src/test/java/com/group1/hw/proxy/ProxyApplicationTests.java
new file mode 100644
index 0000000..1c296e4
--- /dev/null
+++ b/proxy/src/test/java/com/group1/hw/proxy/ProxyApplicationTests.java
@@ -0,0 +1,16 @@
+package com.group1.hw.proxy;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class ProxyApplicationTests {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
diff --git a/registry/.gitignore b/registry/.gitignore
new file mode 100644
index 0000000..2af7cef
--- /dev/null
+++ b/registry/.gitignore
@@ -0,0 +1,24 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+nbproject/private/
+build/
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
\ No newline at end of file
diff --git a/registry/.mvn/wrapper/maven-wrapper.jar b/registry/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..9cc84ea
Binary files /dev/null and b/registry/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/registry/.mvn/wrapper/maven-wrapper.properties b/registry/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..9dda3b6
--- /dev/null
+++ b/registry/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip
diff --git a/registry/mvnw b/registry/mvnw
new file mode 100644
index 0000000..5bf251c
--- /dev/null
+++ b/registry/mvnw
@@ -0,0 +1,225 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+# JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+# M2_HOME - location of maven2's installed home dir
+# MAVEN_OPTS - parameters passed to the Java VM when running Maven
+# e.g. to debug Maven itself, use
+# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+ if [ -f /etc/mavenrc ] ; then
+ . /etc/mavenrc
+ fi
+
+ if [ -f "$HOME/.mavenrc" ] ; then
+ . "$HOME/.mavenrc"
+ fi
+
+fi
+
+# OS specific support. $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+ CYGWIN*) cygwin=true ;;
+ MINGW*) mingw=true;;
+ Darwin*) darwin=true
+ # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+ # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+ if [ -z "$JAVA_HOME" ]; then
+ if [ -x "/usr/libexec/java_home" ]; then
+ export JAVA_HOME="`/usr/libexec/java_home`"
+ else
+ export JAVA_HOME="/Library/Java/Home"
+ fi
+ fi
+ ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+ if [ -r /etc/gentoo-release ] ; then
+ JAVA_HOME=`java-config --jre-home`
+ fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+ ## resolve links - $0 may be a link to maven's home
+ PRG="$0"
+
+ # need this for relative symlinks
+ while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG="`dirname "$PRG"`/$link"
+ fi
+ done
+
+ saveddir=`pwd`
+
+ M2_HOME=`dirname "$PRG"`/..
+
+ # make it fully qualified
+ M2_HOME=`cd "$M2_HOME" && pwd`
+
+ cd "$saveddir"
+ # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --unix "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Migwn, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME="`(cd "$M2_HOME"; pwd)`"
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+ # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+ javaExecutable="`which javac`"
+ if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+ # readlink(1) is not available as standard on Solaris 10.
+ readLink=`which readlink`
+ if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+ if $darwin ; then
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+ else
+ javaExecutable="`readlink -f \"$javaExecutable\"`"
+ fi
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+ JAVA_HOME="$javaHome"
+ export JAVA_HOME
+ fi
+ fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+ if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ else
+ JAVACMD="`which java`"
+ fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+ echo "Error: JAVA_HOME is not defined correctly." >&2
+ echo " We cannot execute $JAVACMD" >&2
+ exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+ echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+ if [ -z "$1" ]
+ then
+ echo "Path not specified to find_maven_basedir"
+ return 1
+ fi
+
+ basedir="$1"
+ wdir="$1"
+ while [ "$wdir" != '/' ] ; do
+ if [ -d "$wdir"/.mvn ] ; then
+ basedir=$wdir
+ break
+ fi
+ # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+ if [ -d "${wdir}" ]; then
+ wdir=`cd "$wdir/.."; pwd`
+ fi
+ # end of workaround
+ done
+ echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+ if [ -f "$1" ]; then
+ echo "$(tr -s '\n' ' ' < "$1")"
+ fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+ exit 1;
+fi
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+echo $MAVEN_PROJECTBASEDIR
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --path --windows "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+ MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+ $MAVEN_OPTS \
+ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/registry/mvnw.cmd b/registry/mvnw.cmd
new file mode 100644
index 0000000..019bd74
--- /dev/null
+++ b/registry/mvnw.cmd
@@ -0,0 +1,143 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/registry/pom.xml b/registry/pom.xml
new file mode 100644
index 0000000..5265704
--- /dev/null
+++ b/registry/pom.xml
@@ -0,0 +1,71 @@
+
+
+ 4.0.0
+
+ com.group1.hw.axon
+ registry
+ 0.0.1-SNAPSHOT
+ jar
+
+ registry
+ Demo project for Spring Boot
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.10.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+ Edgware.SR2
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
+
+ org.springframework.cloud
+ spring-cloud-starter-eureka-server
+
+
+ org.springframework.cloud
+ spring-cloud-starter-hystrix-dashboard
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring-cloud.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
diff --git a/registry/src/main/java/com/group1/hw/registry/RegistryApplication.java b/registry/src/main/java/com/group1/hw/registry/RegistryApplication.java
new file mode 100644
index 0000000..4a03158
--- /dev/null
+++ b/registry/src/main/java/com/group1/hw/registry/RegistryApplication.java
@@ -0,0 +1,16 @@
+package com.group1.hw.registry;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
+import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
+
+@SpringBootApplication
+@EnableEurekaServer
+@EnableHystrixDashboard
+public class RegistryApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(RegistryApplication.class, args);
+ }
+}
diff --git a/registry/src/main/resources/application.yml b/registry/src/main/resources/application.yml
new file mode 100644
index 0000000..2fb7d37
--- /dev/null
+++ b/registry/src/main/resources/application.yml
@@ -0,0 +1,17 @@
+server:
+ port: 8761
+spring:
+ application:
+ name: registry
+security:
+ basic:
+ enabled: true
+ user:
+ name: group1
+ password: 111111
+eureka:
+ client:
+ register-with-eureka: false
+ fetch-registry: false
+ serviceUrl:
+ defaultZone: http://group1:111111@localhost:${server.port}/eureka/
\ No newline at end of file
diff --git a/registry/src/test/java/com/group1/hw/registry/RegistryApplicationTests.java b/registry/src/test/java/com/group1/hw/registry/RegistryApplicationTests.java
new file mode 100644
index 0000000..f2815e9
--- /dev/null
+++ b/registry/src/test/java/com/group1/hw/registry/RegistryApplicationTests.java
@@ -0,0 +1,16 @@
+package com.group1.hw.registry;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class RegistryApplicationTests {
+
+ @Test
+ public void contextLoads() {
+ }
+
+}
diff --git a/service/pom.xml b/service/pom.xml
new file mode 100644
index 0000000..7f18314
--- /dev/null
+++ b/service/pom.xml
@@ -0,0 +1,33 @@
+
+
+ 4.0.0
+
+ com.group1.hw.axon
+ service
+ 1.0-SNAPSHOT
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.10.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+
+ org.axonframework
+ axon-amqp
+ 3.2
+
+
+
+
\ No newline at end of file
diff --git a/service/service.iml b/service/service.iml
new file mode 100644
index 0000000..7ca37cb
--- /dev/null
+++ b/service/service.iml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/service/src/main/java/com/group1/hw/dto/OrderDTO.java b/service/src/main/java/com/group1/hw/dto/OrderDTO.java
new file mode 100644
index 0000000..582d58e
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/dto/OrderDTO.java
@@ -0,0 +1,87 @@
+package com.group1.hw.dto;
+
+public class OrderDTO {
+
+ private Long id;
+
+ private String uuid;
+
+ private Long customerId;
+
+ private String title;
+
+ private Long ticketNum;
+
+ private int amount;
+
+ private String status;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getUuid() {
+ return uuid;
+ }
+
+ public void setUuid(String uuid) {
+ this.uuid = uuid;
+ }
+
+ public Long getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(Long customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public Long getTicketNum() {
+ return ticketNum;
+ }
+
+ public void setTicketNum(Long ticketNum) {
+ this.ticketNum = ticketNum;
+ }
+
+ public int getAmount() {
+ return amount;
+ }
+
+ public void setAmount(int amount) {
+ this.amount = amount;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ @Override
+ public String toString() {
+ return "OrderDTO{" +
+ "id=" + id +
+ ", uuid='" + uuid + '\'' +
+ ", customerId=" + customerId +
+ ", title='" + title + '\'' +
+ ", ticketNum=" + ticketNum +
+ ", amount=" + amount +
+ ", status='" + status + '\'' +
+ '}';
+ }
+}
diff --git a/service/src/main/java/com/group1/hw/dto/TicketDTO.java b/service/src/main/java/com/group1/hw/dto/TicketDTO.java
new file mode 100644
index 0000000..18ed97b
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/dto/TicketDTO.java
@@ -0,0 +1,54 @@
+package com.group1.hw.dto;
+
+public class TicketDTO {
+
+ private Long id;
+
+ private Long ticketNum;
+
+ private String name;
+
+ private Long lockUser;
+
+ private Long owner;
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getTicketNum() {
+ return ticketNum;
+ }
+
+ public void setTicketNum(Long ticketNum) {
+ this.ticketNum = ticketNum;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Long getLockUser() {
+ return lockUser;
+ }
+
+ public void setLockUser(Long lockUser) {
+ this.lockUser = lockUser;
+ }
+
+ public Long getOwner() {
+ return owner;
+ }
+
+ public void setOwner(Long owner) {
+ this.owner = owner;
+ }
+}
diff --git a/service/src/main/java/com/group1/hw/order/event/OrderFailedEvent.java b/service/src/main/java/com/group1/hw/order/event/OrderFailedEvent.java
new file mode 100644
index 0000000..475b286
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/order/event/OrderFailedEvent.java
@@ -0,0 +1,20 @@
+package com.group1.hw.order.event;
+
+public class OrderFailedEvent {
+
+ private String reason;
+ private String orderId;
+
+ public OrderFailedEvent(String orderId, String reason) {
+ this.orderId = orderId;
+ this.reason = reason;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public String getReason() {
+ return reason;
+ }
+}
diff --git a/service/src/main/java/com/group1/hw/order/event/OrderFinishedEvent.java b/service/src/main/java/com/group1/hw/order/event/OrderFinishedEvent.java
new file mode 100644
index 0000000..83267ef
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/order/event/OrderFinishedEvent.java
@@ -0,0 +1,14 @@
+package com.group1.hw.order.event;
+
+public class OrderFinishedEvent {
+
+ private String orderId;
+
+ public OrderFinishedEvent(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+}
diff --git a/service/src/main/java/com/group1/hw/order/event/saga/OrderCreatedEvent.java b/service/src/main/java/com/group1/hw/order/event/saga/OrderCreatedEvent.java
new file mode 100644
index 0000000..00841ac
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/order/event/saga/OrderCreatedEvent.java
@@ -0,0 +1,51 @@
+package com.group1.hw.order.event.saga;
+
+import java.time.ZonedDateTime;
+
+public class OrderCreatedEvent {
+
+ private String orderId;
+
+ private String customerId;
+
+ private String title;
+
+ private String ticketId;
+
+ private Double amount;
+
+ private ZonedDateTime createdDate;
+
+ public OrderCreatedEvent(String orderId, String customerId, String title, String ticketId, Double amount, ZonedDateTime createdDate) {
+ this.orderId = orderId;
+ this.customerId = customerId;
+ this.title = title;
+ this.ticketId = ticketId;
+ this.amount = amount;
+ this.createdDate = createdDate;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ public Double getAmount() {
+ return amount;
+ }
+
+ public ZonedDateTime getCreatedDate() {
+ return createdDate;
+ }
+}
diff --git a/service/src/main/java/com/group1/hw/service/OrderCompositeService.java b/service/src/main/java/com/group1/hw/service/OrderCompositeService.java
new file mode 100644
index 0000000..cab068d
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/service/OrderCompositeService.java
@@ -0,0 +1,10 @@
+package com.group1.hw.service;
+
+import com.group1.hw.dto.OrderDTO;
+
+import java.util.List;
+
+public interface OrderCompositeService {
+
+ List getMyOrder(Long id);
+}
diff --git a/service/src/main/java/com/group1/hw/service/TicketCompositeService.java b/service/src/main/java/com/group1/hw/service/TicketCompositeService.java
new file mode 100644
index 0000000..78e63db
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/service/TicketCompositeService.java
@@ -0,0 +1,11 @@
+package com.group1.hw.service;
+
+import com.group1.hw.dto.TicketDTO;
+
+import java.util.List;
+
+public interface TicketCompositeService {
+
+ List getMyTickets(Long customerId);
+
+}
diff --git a/service/src/main/java/com/group1/hw/ticket/command/OrderTicketMoveCommand.java b/service/src/main/java/com/group1/hw/ticket/command/OrderTicketMoveCommand.java
new file mode 100644
index 0000000..1082f98
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/ticket/command/OrderTicketMoveCommand.java
@@ -0,0 +1,29 @@
+package com.group1.hw.ticket.command;
+
+import org.axonframework.commandhandling.TargetAggregateIdentifier;
+
+public class OrderTicketMoveCommand {
+
+ @TargetAggregateIdentifier
+ private String ticketId;
+ private String orderId;
+ private String customerId;
+
+ public OrderTicketMoveCommand(String ticketId, String orderId, String customerId) {
+ this.ticketId = ticketId;
+ this.orderId = orderId;
+ this.customerId = customerId;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+}
diff --git a/service/src/main/java/com/group1/hw/ticket/command/OrderTicketPreserveCommand.java b/service/src/main/java/com/group1/hw/ticket/command/OrderTicketPreserveCommand.java
new file mode 100644
index 0000000..9d2dc32
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/ticket/command/OrderTicketPreserveCommand.java
@@ -0,0 +1,30 @@
+package com.group1.hw.ticket.command;
+
+import org.axonframework.commandhandling.TargetAggregateIdentifier;
+
+public class OrderTicketPreserveCommand {
+
+ @TargetAggregateIdentifier
+ private String ticketId;
+
+ private String orderId;
+ private String customerId;
+
+ public OrderTicketPreserveCommand(String orderId, String ticketId, String customerId) {
+ this.orderId = orderId;
+ this.ticketId = ticketId;
+ this.customerId = customerId;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+}
diff --git a/service/src/main/java/com/group1/hw/ticket/command/OrderTicketUnlockCommand.java b/service/src/main/java/com/group1/hw/ticket/command/OrderTicketUnlockCommand.java
new file mode 100644
index 0000000..b572421
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/ticket/command/OrderTicketUnlockCommand.java
@@ -0,0 +1,24 @@
+package com.group1.hw.ticket.command;
+
+import org.axonframework.commandhandling.TargetAggregateIdentifier;
+
+public class OrderTicketUnlockCommand {
+
+ @TargetAggregateIdentifier
+ private String ticketId;
+
+ private String customerId;
+
+ public OrderTicketUnlockCommand(String ticketId, String customerId) {
+ this.ticketId = ticketId;
+ this.customerId = customerId;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+}
diff --git a/service/src/main/java/com/group1/hw/ticket/event/saga/OrderTicketMovedEvent.java b/service/src/main/java/com/group1/hw/ticket/event/saga/OrderTicketMovedEvent.java
new file mode 100644
index 0000000..6dd6159
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/ticket/event/saga/OrderTicketMovedEvent.java
@@ -0,0 +1,28 @@
+package com.group1.hw.ticket.event.saga;
+
+public class OrderTicketMovedEvent {
+
+ private String orderId;
+ private String ticketId;
+
+ private String customerId;
+
+ public OrderTicketMovedEvent(String orderId, String ticketId, String customerId) {
+ this.orderId = orderId;
+ this.ticketId = ticketId;
+ this.customerId = customerId;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+}
diff --git a/service/src/main/java/com/group1/hw/ticket/event/saga/OrderTicketPreserveFailedEvent.java b/service/src/main/java/com/group1/hw/ticket/event/saga/OrderTicketPreserveFailedEvent.java
new file mode 100644
index 0000000..0da86b2
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/ticket/event/saga/OrderTicketPreserveFailedEvent.java
@@ -0,0 +1,14 @@
+package com.group1.hw.ticket.event.saga;
+
+public class OrderTicketPreserveFailedEvent {
+
+ private String orderId;
+
+ public OrderTicketPreserveFailedEvent(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+}
diff --git a/service/src/main/java/com/group1/hw/ticket/event/saga/OrderTicketPreservedEvent.java b/service/src/main/java/com/group1/hw/ticket/event/saga/OrderTicketPreservedEvent.java
new file mode 100644
index 0000000..83934f5
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/ticket/event/saga/OrderTicketPreservedEvent.java
@@ -0,0 +1,27 @@
+package com.group1.hw.ticket.event.saga;
+
+public class OrderTicketPreservedEvent {
+
+ private String orderId;
+ private String customerId;
+ private String ticketId;
+
+ public OrderTicketPreservedEvent(String orderId, String customerId, String ticketId) {
+ this.orderId = orderId;
+ this.ticketId = ticketId;
+ this.customerId = customerId;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+}
diff --git a/service/src/main/java/com/group1/hw/user/command/OrderPayCommand.java b/service/src/main/java/com/group1/hw/user/command/OrderPayCommand.java
new file mode 100644
index 0000000..285c233
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/user/command/OrderPayCommand.java
@@ -0,0 +1,30 @@
+package com.group1.hw.user.command;
+
+import org.axonframework.commandhandling.TargetAggregateIdentifier;
+
+public class OrderPayCommand {
+
+ @TargetAggregateIdentifier
+ private String customerId;
+
+ private String orderId;
+ private Double amount;
+
+ public OrderPayCommand(String orderId, String customerId, Double amount) {
+ this.orderId = orderId;
+ this.customerId = customerId;
+ this.amount = amount;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public Double getAmount() {
+ return amount;
+ }
+}
diff --git a/service/src/main/java/com/group1/hw/user/event/saga/OrderPaidEvent.java b/service/src/main/java/com/group1/hw/user/event/saga/OrderPaidEvent.java
new file mode 100644
index 0000000..f96ed5a
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/user/event/saga/OrderPaidEvent.java
@@ -0,0 +1,26 @@
+package com.group1.hw.user.event.saga;
+
+public class OrderPaidEvent {
+
+ private String orderId;
+ private String customerId;
+ private Double amount;
+
+ public OrderPaidEvent(String orderId, String customerId, Double amount) {
+ this.orderId = orderId;
+ this.customerId = customerId;
+ this.amount = amount;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+
+ public Double getAmount() {
+ return amount;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+}
diff --git a/service/src/main/java/com/group1/hw/user/event/saga/OrderPayFailedEvent.java b/service/src/main/java/com/group1/hw/user/event/saga/OrderPayFailedEvent.java
new file mode 100644
index 0000000..c2e0d78
--- /dev/null
+++ b/service/src/main/java/com/group1/hw/user/event/saga/OrderPayFailedEvent.java
@@ -0,0 +1,14 @@
+package com.group1.hw.user.event.saga;
+
+public class OrderPayFailedEvent {
+
+ private String orderId;
+
+ public OrderPayFailedEvent(String orderId) {
+ this.orderId = orderId;
+ }
+
+ public String getOrderId() {
+ return orderId;
+ }
+}
diff --git a/service/target/classes/com/group1/hw/dto/OrderDTO.class b/service/target/classes/com/group1/hw/dto/OrderDTO.class
new file mode 100644
index 0000000..e788b66
Binary files /dev/null and b/service/target/classes/com/group1/hw/dto/OrderDTO.class differ
diff --git a/service/target/classes/com/group1/hw/dto/TicketDTO.class b/service/target/classes/com/group1/hw/dto/TicketDTO.class
new file mode 100644
index 0000000..2a06911
Binary files /dev/null and b/service/target/classes/com/group1/hw/dto/TicketDTO.class differ
diff --git a/service/target/classes/com/group1/hw/order/event/OrderFailedEvent.class b/service/target/classes/com/group1/hw/order/event/OrderFailedEvent.class
new file mode 100644
index 0000000..5a3abf2
Binary files /dev/null and b/service/target/classes/com/group1/hw/order/event/OrderFailedEvent.class differ
diff --git a/service/target/classes/com/group1/hw/order/event/OrderFinishedEvent.class b/service/target/classes/com/group1/hw/order/event/OrderFinishedEvent.class
new file mode 100644
index 0000000..604bd00
Binary files /dev/null and b/service/target/classes/com/group1/hw/order/event/OrderFinishedEvent.class differ
diff --git a/service/target/classes/com/group1/hw/order/event/saga/OrderCreatedEvent.class b/service/target/classes/com/group1/hw/order/event/saga/OrderCreatedEvent.class
new file mode 100644
index 0000000..b66709d
Binary files /dev/null and b/service/target/classes/com/group1/hw/order/event/saga/OrderCreatedEvent.class differ
diff --git a/service/target/classes/com/group1/hw/service/OrderCompositeService.class b/service/target/classes/com/group1/hw/service/OrderCompositeService.class
new file mode 100644
index 0000000..1171cc0
Binary files /dev/null and b/service/target/classes/com/group1/hw/service/OrderCompositeService.class differ
diff --git a/service/target/classes/com/group1/hw/service/TicketCompositeService.class b/service/target/classes/com/group1/hw/service/TicketCompositeService.class
new file mode 100644
index 0000000..6e589de
Binary files /dev/null and b/service/target/classes/com/group1/hw/service/TicketCompositeService.class differ
diff --git a/service/target/classes/com/group1/hw/ticket/command/OrderTicketMoveCommand.class b/service/target/classes/com/group1/hw/ticket/command/OrderTicketMoveCommand.class
new file mode 100644
index 0000000..ddab406
Binary files /dev/null and b/service/target/classes/com/group1/hw/ticket/command/OrderTicketMoveCommand.class differ
diff --git a/service/target/classes/com/group1/hw/ticket/command/OrderTicketPreserveCommand.class b/service/target/classes/com/group1/hw/ticket/command/OrderTicketPreserveCommand.class
new file mode 100644
index 0000000..769d4d5
Binary files /dev/null and b/service/target/classes/com/group1/hw/ticket/command/OrderTicketPreserveCommand.class differ
diff --git a/service/target/classes/com/group1/hw/ticket/command/OrderTicketUnlockCommand.class b/service/target/classes/com/group1/hw/ticket/command/OrderTicketUnlockCommand.class
new file mode 100644
index 0000000..9402715
Binary files /dev/null and b/service/target/classes/com/group1/hw/ticket/command/OrderTicketUnlockCommand.class differ
diff --git a/service/target/classes/com/group1/hw/ticket/event/saga/OrderTicketMovedEvent.class b/service/target/classes/com/group1/hw/ticket/event/saga/OrderTicketMovedEvent.class
new file mode 100644
index 0000000..a464e5e
Binary files /dev/null and b/service/target/classes/com/group1/hw/ticket/event/saga/OrderTicketMovedEvent.class differ
diff --git a/service/target/classes/com/group1/hw/ticket/event/saga/OrderTicketPreserveFailedEvent.class b/service/target/classes/com/group1/hw/ticket/event/saga/OrderTicketPreserveFailedEvent.class
new file mode 100644
index 0000000..777073d
Binary files /dev/null and b/service/target/classes/com/group1/hw/ticket/event/saga/OrderTicketPreserveFailedEvent.class differ
diff --git a/service/target/classes/com/group1/hw/ticket/event/saga/OrderTicketPreservedEvent.class b/service/target/classes/com/group1/hw/ticket/event/saga/OrderTicketPreservedEvent.class
new file mode 100644
index 0000000..9226667
Binary files /dev/null and b/service/target/classes/com/group1/hw/ticket/event/saga/OrderTicketPreservedEvent.class differ
diff --git a/service/target/classes/com/group1/hw/user/command/OrderPayCommand.class b/service/target/classes/com/group1/hw/user/command/OrderPayCommand.class
new file mode 100644
index 0000000..ca450b0
Binary files /dev/null and b/service/target/classes/com/group1/hw/user/command/OrderPayCommand.class differ
diff --git a/service/target/classes/com/group1/hw/user/event/saga/OrderPaidEvent.class b/service/target/classes/com/group1/hw/user/event/saga/OrderPaidEvent.class
new file mode 100644
index 0000000..9bc50ce
Binary files /dev/null and b/service/target/classes/com/group1/hw/user/event/saga/OrderPaidEvent.class differ
diff --git a/service/target/classes/com/group1/hw/user/event/saga/OrderPayFailedEvent.class b/service/target/classes/com/group1/hw/user/event/saga/OrderPayFailedEvent.class
new file mode 100644
index 0000000..62d811b
Binary files /dev/null and b/service/target/classes/com/group1/hw/user/event/saga/OrderPayFailedEvent.class differ
diff --git a/ticket/.gitignore b/ticket/.gitignore
new file mode 100644
index 0000000..2af7cef
--- /dev/null
+++ b/ticket/.gitignore
@@ -0,0 +1,24 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+nbproject/private/
+build/
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
\ No newline at end of file
diff --git a/ticket/.mvn/wrapper/maven-wrapper.jar b/ticket/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..9cc84ea
Binary files /dev/null and b/ticket/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/ticket/.mvn/wrapper/maven-wrapper.properties b/ticket/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..9dda3b6
--- /dev/null
+++ b/ticket/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.5.2/apache-maven-3.5.2-bin.zip
diff --git a/ticket/mvnw b/ticket/mvnw
new file mode 100644
index 0000000..5bf251c
--- /dev/null
+++ b/ticket/mvnw
@@ -0,0 +1,225 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+# JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+# M2_HOME - location of maven2's installed home dir
+# MAVEN_OPTS - parameters passed to the Java VM when running Maven
+# e.g. to debug Maven itself, use
+# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+ if [ -f /etc/mavenrc ] ; then
+ . /etc/mavenrc
+ fi
+
+ if [ -f "$HOME/.mavenrc" ] ; then
+ . "$HOME/.mavenrc"
+ fi
+
+fi
+
+# OS specific support. $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+ CYGWIN*) cygwin=true ;;
+ MINGW*) mingw=true;;
+ Darwin*) darwin=true
+ # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+ # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+ if [ -z "$JAVA_HOME" ]; then
+ if [ -x "/usr/libexec/java_home" ]; then
+ export JAVA_HOME="`/usr/libexec/java_home`"
+ else
+ export JAVA_HOME="/Library/Java/Home"
+ fi
+ fi
+ ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+ if [ -r /etc/gentoo-release ] ; then
+ JAVA_HOME=`java-config --jre-home`
+ fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+ ## resolve links - $0 may be a link to maven's home
+ PRG="$0"
+
+ # need this for relative symlinks
+ while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG="`dirname "$PRG"`/$link"
+ fi
+ done
+
+ saveddir=`pwd`
+
+ M2_HOME=`dirname "$PRG"`/..
+
+ # make it fully qualified
+ M2_HOME=`cd "$M2_HOME" && pwd`
+
+ cd "$saveddir"
+ # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --unix "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Migwn, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME="`(cd "$M2_HOME"; pwd)`"
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+ # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+ javaExecutable="`which javac`"
+ if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+ # readlink(1) is not available as standard on Solaris 10.
+ readLink=`which readlink`
+ if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+ if $darwin ; then
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+ else
+ javaExecutable="`readlink -f \"$javaExecutable\"`"
+ fi
+ javaHome="`dirname \"$javaExecutable\"`"
+ javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+ JAVA_HOME="$javaHome"
+ export JAVA_HOME
+ fi
+ fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+ if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ else
+ JAVACMD="`which java`"
+ fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+ echo "Error: JAVA_HOME is not defined correctly." >&2
+ echo " We cannot execute $JAVACMD" >&2
+ exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+ echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+ if [ -z "$1" ]
+ then
+ echo "Path not specified to find_maven_basedir"
+ return 1
+ fi
+
+ basedir="$1"
+ wdir="$1"
+ while [ "$wdir" != '/' ] ; do
+ if [ -d "$wdir"/.mvn ] ; then
+ basedir=$wdir
+ break
+ fi
+ # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+ if [ -d "${wdir}" ]; then
+ wdir=`cd "$wdir/.."; pwd`
+ fi
+ # end of workaround
+ done
+ echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+ if [ -f "$1" ]; then
+ echo "$(tr -s '\n' ' ' < "$1")"
+ fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+ exit 1;
+fi
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+echo $MAVEN_PROJECTBASEDIR
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+ [ -n "$M2_HOME" ] &&
+ M2_HOME=`cygpath --path --windows "$M2_HOME"`
+ [ -n "$JAVA_HOME" ] &&
+ JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+ [ -n "$CLASSPATH" ] &&
+ CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+ [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+ MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+ $MAVEN_OPTS \
+ -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+ "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+ ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/ticket/mvnw.cmd b/ticket/mvnw.cmd
new file mode 100644
index 0000000..019bd74
--- /dev/null
+++ b/ticket/mvnw.cmd
@@ -0,0 +1,143 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/ticket/pom.xml b/ticket/pom.xml
new file mode 100644
index 0000000..fe98921
--- /dev/null
+++ b/ticket/pom.xml
@@ -0,0 +1,104 @@
+
+
+ 4.0.0
+
+ com.group1.hw.axon
+ ticket
+ 0.0.1-SNAPSHOT
+ jar
+
+ ticket
+ Demo project for Spring Boot
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.10.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+ Edgware.SR2
+
+
+
+
+ org.axonframework
+ axon-spring-boot-starter
+ 3.2
+
+
+ org.axonframework
+ axon-distributed-commandbus-springcloud
+ 3.2
+
+
+ org.axonframework
+ axon-amqp
+ 3.2
+
+
+ org.springframework.boot
+ spring-boot-starter-amqp
+
+
+ org.springframework.cloud
+ spring-cloud-starter-eureka
+
+
+ org.springframework.boot
+ spring-boot-starter-activemq
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
+
+ mysql
+ mysql-connector-java
+ 5.1.39
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ com.group1.hw.axon
+ service
+ 1.0-SNAPSHOT
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ ${spring-cloud.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
+
+
diff --git a/ticket/src/main/java/com/group1/hw/ticket/Ticket.java b/ticket/src/main/java/com/group1/hw/ticket/Ticket.java
new file mode 100644
index 0000000..50e191c
--- /dev/null
+++ b/ticket/src/main/java/com/group1/hw/ticket/Ticket.java
@@ -0,0 +1,123 @@
+package com.group1.hw.ticket;
+
+
+import com.group1.hw.ticket.event.OrderTicketUnlockedEvent;
+import com.group1.hw.ticket.event.TicketCreatedEvent;
+import com.group1.hw.ticket.command.OrderTicketMoveCommand;
+import com.group1.hw.ticket.command.OrderTicketPreserveCommand;
+import com.group1.hw.ticket.command.OrderTicketUnlockCommand;
+import com.group1.hw.ticket.command.TicketCreateCommand;
+import com.group1.hw.ticket.event.*;
+import com.group1.hw.ticket.event.saga.OrderTicketMovedEvent;
+import com.group1.hw.ticket.event.saga.OrderTicketPreserveFailedEvent;
+import com.group1.hw.ticket.event.saga.OrderTicketPreservedEvent;
+import org.axonframework.commandhandling.CommandHandler;
+import org.axonframework.commandhandling.model.AggregateIdentifier;
+import org.axonframework.eventsourcing.EventSourcingHandler;
+import org.axonframework.spring.stereotype.Aggregate;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.axonframework.commandhandling.model.AggregateLifecycle.apply;
+
+@Aggregate
+public class Ticket {
+
+ private static final Logger LOG = LoggerFactory.getLogger(Ticket.class);
+
+ @AggregateIdentifier
+ private String id;
+
+ private String name;
+
+ private String lockUser;
+
+ private String owner;
+
+ public Ticket() {
+ }
+
+ @CommandHandler
+ public Ticket(TicketCreateCommand command) {
+ apply(new TicketCreatedEvent(command.getTicketId(), command.getName()));
+ }
+
+ @CommandHandler
+ public void handle(OrderTicketPreserveCommand command) {
+
+ if (this.owner != null) {
+ LOG.error("Ticket is owned.");
+ apply(new OrderTicketPreserveFailedEvent(command.getOrderId()));
+ } else if (this.lockUser != null && this.lockUser.equals(command.getCustomerId())) {
+ LOG.info("duplicated command");
+ } else if (this.lockUser == null) {
+ apply(new OrderTicketPreservedEvent(command.getOrderId(), command.getCustomerId(), command.getTicketId()));
+ } else {
+ apply(new OrderTicketPreserveFailedEvent(command.getOrderId()));
+ }
+ }
+
+ @CommandHandler
+ public void handle(OrderTicketUnlockCommand command) {
+ if (this.lockUser == null) {
+ LOG.error("Invalid command, ticket not locked");
+ } else if (!this.lockUser.equals(command.getCustomerId())) {
+ LOG.error("Invalid command, ticket not locked by:{}", command.getCustomerId());
+ } else {
+ apply(new OrderTicketUnlockedEvent(command.getTicketId()));
+ }
+ }
+
+ @CommandHandler
+ public void handle(OrderTicketMoveCommand command) {
+ if (this.lockUser == null) {
+ LOG.error("Invalid command, ticket not locked");
+ } else if (!this.lockUser.equals(command.getCustomerId())) {
+ LOG.error("Invalid command, ticket not locked by:{}", command.getCustomerId());
+ } else {
+ apply(new OrderTicketMovedEvent(command.getOrderId(), command.getTicketId(), command.getCustomerId()));
+ }
+ }
+
+ @EventSourcingHandler
+ public void onCreate(TicketCreatedEvent event) {
+ this.id = event.getTicketId();
+ this.name = event.getName();
+ LOG.info("Executed event:{}", event);
+ }
+
+ @EventSourcingHandler
+ public void onPreserve(OrderTicketPreservedEvent event) {
+ this.lockUser = event.getCustomerId();
+ LOG.info("Executed event:{}", event);
+ }
+
+ @EventSourcingHandler
+ public void onUnlock(OrderTicketUnlockedEvent event) {
+ this.lockUser = null;
+ LOG.info("Executed event:{}", event);
+ }
+
+ @EventSourcingHandler
+ public void onMove(OrderTicketMovedEvent event) {
+ this.lockUser = null;
+ this.owner = event.getCustomerId();
+ LOG.info("Executed event:{}", event);
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getLockUser() {
+ return lockUser;
+ }
+
+ public String getOwner() {
+ return owner;
+ }
+}
diff --git a/ticket/src/main/java/com/group1/hw/ticket/TicketApplication.java b/ticket/src/main/java/com/group1/hw/ticket/TicketApplication.java
new file mode 100644
index 0000000..07e880b
--- /dev/null
+++ b/ticket/src/main/java/com/group1/hw/ticket/TicketApplication.java
@@ -0,0 +1,14 @@
+package com.group1.hw.ticket;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+@SpringBootApplication
+@EnableDiscoveryClient
+public class TicketApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(TicketApplication.class, args);
+ }
+}
diff --git a/ticket/src/main/java/com/group1/hw/ticket/command/TicketCreateCommand.java b/ticket/src/main/java/com/group1/hw/ticket/command/TicketCreateCommand.java
new file mode 100644
index 0000000..de26734
--- /dev/null
+++ b/ticket/src/main/java/com/group1/hw/ticket/command/TicketCreateCommand.java
@@ -0,0 +1,27 @@
+package com.group1.hw.ticket.command;
+
+import org.axonframework.commandhandling.TargetAggregateIdentifier;
+
+/**
+ * Created by mavlarn on 2018/5/28.
+ */
+public class TicketCreateCommand {
+
+ @TargetAggregateIdentifier
+ private String ticketId;
+
+ private String name;
+
+ public TicketCreateCommand(String ticketId, String name) {
+ this.ticketId = ticketId;
+ this.name = name;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/ticket/src/main/java/com/group1/hw/ticket/config/AxonConfig.java b/ticket/src/main/java/com/group1/hw/ticket/config/AxonConfig.java
new file mode 100644
index 0000000..51c4336
--- /dev/null
+++ b/ticket/src/main/java/com/group1/hw/ticket/config/AxonConfig.java
@@ -0,0 +1,72 @@
+package com.group1.hw.ticket.config;
+
+import com.rabbitmq.client.Channel;
+import org.axonframework.amqp.eventhandling.spring.SpringAMQPMessageSource;
+import org.axonframework.config.EventHandlingConfiguration;
+import org.axonframework.serialization.Serializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.amqp.core.*;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+
+/**
+ * Created by mavlarn on 2018/6/4.
+ */
+@Configuration
+public class AxonConfig {
+
+ private static final Logger LOG = LoggerFactory.getLogger(AxonConfig.class);
+
+ @Value("${axon.amqp.exchange}")
+ private String exchangeName;
+
+ @Bean
+ public Queue ticketQueue(){
+ return new Queue("ticket", true);
+ }
+
+
+ @Bean
+ public Exchange exchange(){
+ return ExchangeBuilder.topicExchange(exchangeName).durable(true).build();
+ }
+
+ @Bean
+ public Binding ticketQueueBinding() {
+ return BindingBuilder.bind(ticketQueue()).to(exchange()).with("com.group1.hw.ticket.event.#").noargs();
+ }
+
+ @Bean
+ public Queue ticketSagaQueue(){
+ return new Queue("saga", true);
+ }
+
+ @Bean
+ public Binding ticketSagaQueueBinding() {
+ return BindingBuilder.bind(ticketSagaQueue()).to(exchange()).with("com.group1.hw.ticket.event.saga.#").noargs();
+ }
+
+ @Bean
+ public SpringAMQPMessageSource ticketMessageSource(Serializer serializer) {
+ return new SpringAMQPMessageSource(serializer){
+ @RabbitListener(queues = "ticket")
+ @Override
+ public void onMessage(Message message, Channel channel) throws Exception {
+ LOG.debug("Message received: {}", message);
+ super.onMessage(message, channel);
+ }
+ };
+ }
+
+ @Autowired
+ public void configure(EventHandlingConfiguration ehConfig, SpringAMQPMessageSource userMessageSource,
+ SpringAMQPMessageSource ticketMessageSource, SpringAMQPMessageSource orderMessageSource) {
+ ehConfig.registerSubscribingEventProcessor("TicketEventProcessor", c -> ticketMessageSource);
+ }
+
+}
diff --git a/ticket/src/main/java/com/group1/hw/ticket/event/OrderTicketUnlockedEvent.java b/ticket/src/main/java/com/group1/hw/ticket/event/OrderTicketUnlockedEvent.java
new file mode 100644
index 0000000..e8f8eff
--- /dev/null
+++ b/ticket/src/main/java/com/group1/hw/ticket/event/OrderTicketUnlockedEvent.java
@@ -0,0 +1,17 @@
+package com.group1.hw.ticket.event;
+
+/**
+ * Created by mavlarn on 2018/5/27.
+ */
+public class OrderTicketUnlockedEvent {
+
+ private String ticketId;
+
+ public OrderTicketUnlockedEvent(String ticketId) {
+ this.ticketId = ticketId;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+}
diff --git a/ticket/src/main/java/com/group1/hw/ticket/event/TicketCreatedEvent.java b/ticket/src/main/java/com/group1/hw/ticket/event/TicketCreatedEvent.java
new file mode 100644
index 0000000..ebd1cb5
--- /dev/null
+++ b/ticket/src/main/java/com/group1/hw/ticket/event/TicketCreatedEvent.java
@@ -0,0 +1,24 @@
+package com.group1.hw.ticket.event;
+
+/**
+ * Created by mavlarn on 2018/5/28.
+ */
+public class TicketCreatedEvent {
+
+ private String ticketId;
+
+ private String name;
+
+ public TicketCreatedEvent(String ticketId, String name) {
+ this.ticketId = ticketId;
+ this.name = name;
+ }
+
+ public String getTicketId() {
+ return ticketId;
+ }
+
+ public String getName() {
+ return name;
+ }
+}
diff --git a/ticket/src/main/java/com/group1/hw/ticket/query/TicketEntity.java b/ticket/src/main/java/com/group1/hw/ticket/query/TicketEntity.java
new file mode 100644
index 0000000..99f1c06
--- /dev/null
+++ b/ticket/src/main/java/com/group1/hw/ticket/query/TicketEntity.java
@@ -0,0 +1,50 @@
+package com.group1.hw.ticket.query;
+
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+@Entity(name = "tb_ticket")
+public class TicketEntity {
+
+ @Id
+ private String id;
+
+ private String name;
+
+ private String lockUser;
+
+ private String owner;
+
+ public String getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getLockUser() {
+ return lockUser;
+ }
+
+ public String getOwner() {
+ return owner;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setLockUser(String lockUser) {
+ this.lockUser = lockUser;
+ }
+
+ public void setOwner(String owner) {
+ this.owner = owner;
+ }
+}
diff --git a/ticket/src/main/java/com/group1/hw/ticket/query/TicketEntityRepository.java b/ticket/src/main/java/com/group1/hw/ticket/query/TicketEntityRepository.java
new file mode 100644
index 0000000..5924efb
--- /dev/null
+++ b/ticket/src/main/java/com/group1/hw/ticket/query/TicketEntityRepository.java
@@ -0,0 +1,9 @@
+package com.group1.hw.ticket.query;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+
+/**
+ * Created by mavlarn on 2018/6/4.
+ */
+public interface TicketEntityRepository extends JpaRepository {
+}
diff --git a/ticket/src/main/java/com/group1/hw/ticket/query/TicketProjector.java b/ticket/src/main/java/com/group1/hw/ticket/query/TicketProjector.java
new file mode 100644
index 0000000..d0b7b28
--- /dev/null
+++ b/ticket/src/main/java/com/group1/hw/ticket/query/TicketProjector.java
@@ -0,0 +1,60 @@
+package com.group1.hw.ticket.query;
+
+import com.group1.hw.ticket.event.OrderTicketUnlockedEvent;
+import com.group1.hw.ticket.event.TicketCreatedEvent;
+import com.group1.hw.ticket.event.saga.OrderTicketMovedEvent;
+import com.group1.hw.ticket.event.saga.OrderTicketPreservedEvent;
+import org.axonframework.config.ProcessingGroup;
+import org.axonframework.eventhandling.EventHandler;
+import org.axonframework.eventsourcing.EventSourcingHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * Created by mavlarn on 2018/6/5.
+ */
+@Component
+@ProcessingGroup("TicketEventProcessor")
+public class TicketProjector {
+ private static final Logger LOG = LoggerFactory.getLogger(TicketProjector.class);
+
+ @Autowired
+ private TicketEntityRepository ticketEntityRepository;
+
+ @EventHandler
+ public void on(TicketCreatedEvent event) {
+ TicketEntity ticket = new TicketEntity();
+ ticket.setId(event.getTicketId());
+ ticket.setName(event.getName());
+ ticketEntityRepository.save(ticket);
+ LOG.info("TicketProjector Executed event:{}", event);
+ }
+
+ @EventSourcingHandler
+ public void onPreserve(OrderTicketPreservedEvent event) {
+ String lockUser = event.getCustomerId();
+ TicketEntity ticket = ticketEntityRepository.findOne(event.getTicketId());
+ ticket.setLockUser(lockUser);
+ ticketEntityRepository.save(ticket);
+ LOG.info("TicketProjector Executed event:{}", event);
+ }
+
+ @EventSourcingHandler
+ public void onUnlock(OrderTicketUnlockedEvent event) {
+ TicketEntity ticket = ticketEntityRepository.findOne(event.getTicketId());
+ ticket.setLockUser(null);
+ ticketEntityRepository.save(ticket);
+ LOG.info("TicketProjector Executed event:{}", event);
+ }
+
+ @EventSourcingHandler
+ public void onMove(OrderTicketMovedEvent event) {
+ TicketEntity ticket = ticketEntityRepository.findOne(event.getTicketId());
+ ticket.setOwner(event.getCustomerId());
+ ticket.setLockUser(null);
+ ticketEntityRepository.save(ticket);
+ LOG.info("TicketProjector Executed event:{}", event);
+ }
+}
diff --git a/ticket/src/main/java/com/group1/hw/ticket/web/TicketController.java b/ticket/src/main/java/com/group1/hw/ticket/web/TicketController.java
new file mode 100644
index 0000000..9c20bed
--- /dev/null
+++ b/ticket/src/main/java/com/group1/hw/ticket/web/TicketController.java
@@ -0,0 +1,41 @@
+package com.group1.hw.ticket.web;
+
+import com.group1.hw.ticket.query.TicketEntity;
+import com.group1.hw.ticket.command.TicketCreateCommand;
+import com.group1.hw.ticket.query.TicketEntityRepository;
+import org.axonframework.commandhandling.gateway.CommandGateway;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.CompletableFuture;
+
+/**
+ * Created by mavlarn on 2018/5/28.
+ */
+@RestController
+@RequestMapping("/tickets")
+public class TicketController {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TicketController.class);
+ @Autowired
+ private CommandGateway commandGateway;
+ @Autowired
+ private TicketEntityRepository ticketEntityRepository;
+
+ @PostMapping("")
+ public CompletableFuture