This commit is contained in:
younfor
2018-04-05 16:09:35 +08:00
parent 62902dd37c
commit 3cfdd6f6c9
153 changed files with 3154 additions and 0 deletions

1
.idea/.name generated Normal file
View File

@@ -0,0 +1 @@
middleware-mom

16
.idea/compiler.xml generated Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Annotation profile for middleware-mom" enabled="true">
<sourceOutputDir name="target/lib/generated-sources/annotations" />
<sourceTestOutputDir name="target/lib/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="middleware-mom" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="middleware-mom" target="1.7" />
</bytecodeTargetLevel>
</component>
</project>

6
.idea/encodings.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$" charset="UTF-8" />
</component>
</project>

13
.idea/libraries/Maven__asm_asm_3_3_1.xml generated Normal file
View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: asm:asm:3.3.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/asm/asm/3.3.1/asm-3.3.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/asm/asm/3.3.1/asm-3.3.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/asm/asm/3.3.1/asm-3.3.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.alibaba:fastjson:1.2.5">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.5/fastjson-1.2.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.5/fastjson-1.2.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.5/fastjson-1.2.5-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.esotericsoftware:kryo:3.0.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/kryo/3.0.2/kryo-3.0.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/kryo/3.0.2/kryo-3.0.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/kryo/3.0.2/kryo-3.0.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.esotericsoftware:minlog:1.3.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.esotericsoftware:reflectasm:1.10.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/reflectasm/1.10.1/reflectasm-1.10.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/reflectasm/1.10.1/reflectasm-1.10.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/reflectasm/1.10.1/reflectasm-1.10.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-core:2.5.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.5.3/jackson-core-2.5.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.5.3/jackson-core-2.5.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.5.3/jackson-core-2.5.3-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: de.ruedigermoeller:fst:2.34">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/de/ruedigermoeller/fst/2.34/fst-2.34.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/de/ruedigermoeller/fst/2.34/fst-2.34-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/de/ruedigermoeller/fst/2.34/fst-2.34-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: io.netty:netty-all:4.0.23.Final">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: junit:junit:4.7">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.7/junit-4.7.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.7/junit-4.7-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.7/junit-4.7-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: log4j:log4j:1.2.12">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.12/log4j-1.2.12.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.12/log4j-1.2.12-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.12/log4j-1.2.12-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: net.minidev:asm:1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/net/minidev/asm/1.0/asm-1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/net/minidev/asm/1.0/asm-1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/net/minidev/asm/1.0/asm-1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: net.minidev:json-smart:2.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/net/minidev/json-smart/2.0/json-smart-2.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/net/minidev/json-smart/2.0/json-smart-2.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/net/minidev/json-smart/2.0/json-smart-2.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.javassist:javassist:3.19.0-GA">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.19.0-GA/javassist-3.19.0-GA.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.19.0-GA/javassist-3.19.0-GA-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.19.0-GA/javassist-3.19.0-GA-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.objenesis:objenesis:2.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/2.1/objenesis-2.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/2.1/objenesis-2.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/2.1/objenesis-2.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.ow2.asm:asm:5.0.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/5.0.3/asm-5.0.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/5.0.3/asm-5.0.3-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.slf4j:slf4j-api:1.7.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.slf4j:slf4j-log4j12:1.7.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.2/slf4j-log4j12-1.7.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.2/slf4j-log4j12-1.7.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.2/slf4j-log4j12-1.7.2-sources.jar!/" />
</SOURCES>
</library>
</component>

13
.idea/misc.xml generated Normal file
View File

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

9
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/alibaba-mom.iml" filepath="$PROJECT_DIR$/alibaba-mom.iml" />
<module fileurl="file://$PROJECT_DIR$/middleware-mom.iml" filepath="$PROJECT_DIR$/middleware-mom.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

643
.idea/workspace.xml generated Normal file
View File

@@ -0,0 +1,643 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="5d6534c2-ad6e-42ed-9acb-def31798998d" name="Default" comment="">
<change afterPath="$PROJECT_DIR$/.idea/compiler.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/encodings.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__asm_asm_3_3_1.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_alibaba_fastjson_1_2_5.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_esotericsoftware_kryo_3_0_2.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_esotericsoftware_minlog_1_3_0.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_esotericsoftware_reflectasm_1_10_1.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_5_3.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__de_ruedigermoeller_fst_2_34.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__io_netty_netty_all_4_0_23_Final.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__junit_junit_4_7.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__log4j_log4j_1_2_12.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__net_minidev_asm_1_0.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__net_minidev_json_smart_2_0.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_javassist_javassist_3_19_0_GA.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_objenesis_objenesis_2_1.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_ow2_asm_asm_5_0_3.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_2.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_2.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/alibaba-mom.iml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/middleware-mom.iml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/main/main1.iml" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/test/test.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/Broker$1$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/Broker$1$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/Broker$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/Broker$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/Broker.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/Broker.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/ConsumeStatus.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/ConsumeStatus.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultConsumer$1$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultConsumer$1$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultConsumer$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultConsumer$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultConsumer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultConsumer.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer$1$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer$1$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer$2.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/SendStatus.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/SendStatus.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/AccumulateHandler$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/AccumulateHandler$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/AccumulateHandler.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/AccumulateHandler.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageManager.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageManager.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageStore$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageStore$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageStore$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageStore$2.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageStore.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageStore.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/Recover.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/Recover.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner$1$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner$1$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner$2.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/StoreSucceedListener$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/StoreSucceedListener$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/StoreSucceedListener.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/StoreSucceedListener.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SubsStore$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SubsStore$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SubsStore.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SubsStore.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup$2.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup$3.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup$3.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ProducerGroup.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ProducerGroup.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/serializer/JdkObjectSerializer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/serializer/JdkObjectSerializer.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/serializer/KryoxSerializer.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/serializer/KryoxSerializer.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/serializer/RpcEncoder.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/serializer/RpcEncoder.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/ArrayStoreImp.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/ArrayStoreImp.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/Comm.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/Comm.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/DataMappedFile.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/DataMappedFile.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/FileStoreManager$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/FileStoreManager$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/FileStoreManager$2.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/FileStoreManager$2.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/FileStoreManager.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/FileStoreManager.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/IndexMappedFile.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/IndexMappedFile.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/MappedFileInfo.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/MappedFileInfo.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/MsgFileUtil.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/MsgFileUtil.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/MsgStoreImp_MappedBuffer2.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/MsgStoreImp_MappedBuffer2.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/Redo$RedoBean.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/Redo$RedoBean.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/Redo.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/Redo.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/RedoLog$LogBean.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/RedoLog$LogBean.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/RedoLog.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/RedoLog.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/SubscribeStoreImp.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/SubscribeStoreImp.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/SubscribeStoreImp_MappedBuffer2.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/SubscribeStoreImp_MappedBuffer2.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/redotest.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/store/redotest.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/util/Info.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/util/Info.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/util/InfoType.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/classes/com/alibaba/middleware/race/mom/util/InfoType.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/test-classes/com/alibaba/middleware/race/mom/AppTest$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/test-classes/com/alibaba/middleware/race/mom/AppTest$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/test-classes/com/alibaba/middleware/race/mom/AppTest.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/test-classes/com/alibaba/middleware/race/mom/AppTest.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/test-classes/com/alibaba/middleware/race/mom/test$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/test-classes/com/alibaba/middleware/race/mom/test$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/target/lib/test-classes/com/alibaba/middleware/race/mom/test.class" beforeDir="false" afterPath="$PROJECT_DIR$/target/lib/test-classes/com/alibaba/middleware/race/mom/test.class" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/target/lib/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file leaf-file-name="Broker.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/Broker.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="110">
<caret line="27" column="11" lean-forward="true" selection-start-line="27" selection-start-column="11" selection-end-line="27" selection-end-column="11" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="FindInProjectRecents">
<findStrings>
<find>main</find>
<find>pa</find>
</findStrings>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="MavenImportPreferences">
<option name="importingSettings">
<MavenImportingSettings>
<option name="importAutomatically" value="true" />
</MavenImportingSettings>
</option>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-35" />
<option name="y" value="38" />
<option name="width" value="1750" />
<option name="height" value="1030" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true">
<ConfirmationsSetting value="2" id="Add" />
</component>
<component name="ProjectView">
<navigator currentView="Scope" currentSubView="Project Files" proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="PackagesPane" />
<pane id="Scope">
<subPane subId="Project Files">
<expand>
<path>
<item name="Root" type="cbb8eebc:String" user="Root" />
<item name="middleware-mom" type="cbb8eebc:String" user="middleware-mom" />
</path>
<path>
<item name="Root" type="cbb8eebc:String" user="Root" />
<item name="middleware-mom" type="cbb8eebc:String" user="middleware-mom" />
<item name="alibaba-mom" type="cbb8eebc:String" user="alibaba-mom" />
</path>
<path>
<item name="Root" type="cbb8eebc:String" user="Root" />
<item name="middleware-mom" type="cbb8eebc:String" user="middleware-mom" />
<item name="alibaba-mom" type="cbb8eebc:String" user="alibaba-mom" />
<item name="src" type="cbb8eebc:String" user="src" />
</path>
<path>
<item name="Root" type="cbb8eebc:String" user="Root" />
<item name="middleware-mom" type="cbb8eebc:String" user="middleware-mom" />
<item name="alibaba-mom" type="cbb8eebc:String" user="alibaba-mom" />
<item name="src" type="cbb8eebc:String" user="src" />
<item name="main" type="cbb8eebc:String" user="main" />
</path>
<path>
<item name="Root" type="cbb8eebc:String" user="Root" />
<item name="middleware-mom" type="cbb8eebc:String" user="middleware-mom" />
<item name="alibaba-mom" type="cbb8eebc:String" user="alibaba-mom" />
<item name="src" type="cbb8eebc:String" user="src" />
<item name="main" type="cbb8eebc:String" user="main" />
<item name="java" type="cbb8eebc:String" user="java" />
</path>
<path>
<item name="Root" type="cbb8eebc:String" user="Root" />
<item name="middleware-mom" type="cbb8eebc:String" user="middleware-mom" />
<item name="alibaba-mom" type="cbb8eebc:String" user="alibaba-mom" />
<item name="src" type="cbb8eebc:String" user="src" />
<item name="main" type="cbb8eebc:String" user="main" />
<item name="java" type="cbb8eebc:String" user="java" />
<item name="com/alibaba/middleware/race/mom" type="cbb8eebc:String" user="com/alibaba/middleware/race/mom" />
</path>
<path>
<item name="Root" type="cbb8eebc:String" user="Root" />
<item name="middleware-mom" type="cbb8eebc:String" user="middleware-mom" />
<item name="alibaba-mom" type="cbb8eebc:String" user="alibaba-mom" />
<item name="src" type="cbb8eebc:String" user="src" />
<item name="main" type="cbb8eebc:String" user="main" />
<item name="java" type="cbb8eebc:String" user="java" />
<item name="com/alibaba/middleware/race/mom" type="cbb8eebc:String" user="com/alibaba/middleware/race/mom" />
<item name="Broker" type="cbb8eebc:String" user="Broker" />
</path>
<path>
<item name="Root" type="cbb8eebc:String" user="Root" />
<item name="middleware-mom" type="cbb8eebc:String" user="middleware-mom" />
<item name="alibaba-mom" type="cbb8eebc:String" user="alibaba-mom" />
<item name="target" type="cbb8eebc:String" user="target" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="middleware-mom" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="middleware-mom" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="middleware-mom" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="middleware-mom" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="middleware-mom" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="mom" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="middleware-mom" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="mom" type="462c0819:PsiDirectoryNode" />
<item name="broker" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="middleware-mom" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="mom" type="462c0819:PsiDirectoryNode" />
<item name="broker" type="462c0819:PsiDirectoryNode" />
<item name="function" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="middleware-mom" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="middleware-mom" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="test" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
</panes>
</component>
<component name="PropertiesComponent">
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="H:/momtest" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager">
<configuration name="Broker" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.alibaba.middleware.race.mom.Broker" />
<module name="middleware-mom" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.alibaba.middleware.race.mom.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<patterns />
</configuration>
<configuration default="true" type="TestNG" factoryName="TestNG">
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="SUITE_NAME" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="GROUP_NAME" />
<option name="TEST_OBJECT" value="CLASS" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" />
<option name="OUTPUT_DIRECTORY" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<option name="USE_DEFAULT_REPORTERS" value="false" />
<option name="PROPERTIES_FILE" />
<properties />
<listeners />
</configuration>
<recent_temporary>
<list>
<item itemvalue="Application.Broker" />
</list>
</recent_temporary>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="5d6534c2-ad6e-42ed-9acb-def31798998d" name="Default" comment="" />
<created>1522909238023</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1522909238023</updated>
<workItem from="1522909248220" duration="1677000" />
<workItem from="1522912421625" duration="2880000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="4557000" />
</component>
<component name="ToolWindowManager">
<frame x="-28" y="31" width="1400" height="824" extended-state="0" />
<editor active="true" />
<layout>
<window_info anchor="right" id="Palette" order="3" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Messages" order="7" />
<window_info anchor="right" id="Palette&#9;" order="3" />
<window_info anchor="bottom" id="Event Log" order="7" side_tool="true" />
<window_info anchor="right" id="Maven Projects" order="3" />
<window_info anchor="bottom" id="Database Changes" order="7" show_stripe_button="false" />
<window_info anchor="bottom" id="Version Control" order="7" />
<window_info anchor="bottom" id="Run" order="2" weight="0.35595778" />
<window_info anchor="bottom" id="Terminal" order="7" />
<window_info id="Designer" order="2" />
<window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.266766" />
<window_info anchor="right" id="Database" order="3" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info id="UI Designer" order="2" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="bottom" id="Find" order="1" visible="true" weight="0.32984293" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Message" order="0" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/Broker.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="264">
<caret line="34" column="13" lean-forward="true" selection-start-line="34" selection-start-column="13" selection-end-line="34" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/alibaba/middleware/race/mom/test.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="286">
<caret line="18" column="16" selection-start-line="18" selection-start-column="16" selection-end-line="18" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/alibaba/middleware/race/mom/AppTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="176">
<caret line="13" column="30" lean-forward="true" selection-start-line="13" selection-start-column="30" selection-end-line="13" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/broker/function/ReSendHandler.java">
<provider selected="true" editor-type-id="text-editor">
<state>
<folding>
<element signature="e#0#2570#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/broker/function/MessageManager.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="110">
<caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/broker/function/MessageSend.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="88">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/broker/function/MessageStore.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4290">
<caret line="209" column="73" selection-start-line="209" selection-start-column="73" selection-end-line="209" selection-end-column="73" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/DefaultProducer1.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4114">
<caret line="187" column="24" lean-forward="true" selection-start-line="187" selection-start-column="24" selection-end-line="187" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/Consumer.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="176">
<caret line="10" column="12" selection-start-line="10" selection-start-column="12" selection-end-line="10" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/broker/function/MessageInfoQueue.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="242">
<caret line="17" column="4" lean-forward="true" selection-start-line="17" selection-start-column="4" selection-end-line="17" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/alibaba/middleware/race/mom/fstjson.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="63" column="6" selection-start-line="63" selection-start-column="6" selection-end-line="63" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/ConsumeStatus.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="88">
<caret line="4" column="7" selection-start-line="4" selection-start-column="7" selection-end-line="4" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/ConsumeResult.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="370">
<caret line="26" column="29" selection-start-line="26" selection-start-column="29" selection-end-line="26" selection-end-column="29" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/broker/function/AccumulateHandler.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="352">
<caret line="19" column="14" lean-forward="true" selection-start-line="19" selection-start-column="14" selection-end-line="19" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/Producer.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="66">
<caret line="3" column="17" selection-start-line="3" selection-start-column="17" selection-end-line="3" selection-end-column="17" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/DefaultProducer.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="110">
<caret line="34" column="13" selection-start-line="34" selection-start-column="13" selection-end-line="34" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/DefaultConsumer.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="88">
<caret line="27" column="42" selection-start-line="27" selection-start-column="42" selection-end-line="27" selection-end-column="42" />
<folding>
<element signature="e#1635#1636#0" expanded="true" />
<element signature="e#1651#1652#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/Consumer.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="176">
<caret line="10" column="12" selection-start-line="10" selection-start-column="12" selection-end-line="10" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/DefaultProducer1.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="4114">
<caret line="187" column="24" selection-start-line="187" selection-start-column="24" selection-end-line="187" selection-end-column="24" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/alibaba/middleware/race/mom/test.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="286">
<caret line="18" column="16" selection-start-line="18" selection-start-column="16" selection-end-line="18" selection-end-column="16" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/test/java/com/alibaba/middleware/race/mom/AppTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="176">
<caret line="13" column="30" selection-start-line="13" selection-start-column="30" selection-end-line="13" selection-end-column="30" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/broker/function/ReSendHandler.java">
<provider selected="true" editor-type-id="text-editor">
<state>
<folding>
<element signature="e#0#2570#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/broker/function/MessageManager.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="110">
<caret line="18" column="13" selection-start-line="18" selection-start-column="13" selection-end-line="18" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/broker/function/MessageSend.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="88">
<caret line="9" column="13" selection-start-line="9" selection-start-column="13" selection-end-line="9" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/broker/function/MessageInfoQueue.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="242">
<caret line="17" column="4" selection-start-line="17" selection-start-column="4" selection-end-line="17" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/broker.sh">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/middleware-mom.iml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-115" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/broker/function/MessageStore.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="374">
<caret line="31" column="7" selection-start-line="31" selection-start-column="7" selection-end-line="31" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pom.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="132">
<caret line="6" column="15" selection-start-line="6" selection-start-column="15" selection-end-line="6" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/build.sh">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="44">
<caret line="2" selection-start-line="2" selection-end-line="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/util/TopicAndFilter.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="154">
<caret line="17" column="9" selection-start-line="17" selection-start-column="9" selection-end-line="17" selection-end-column="9" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/alibaba-mom.iml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/mom/Broker.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="110">
<caret line="27" column="11" lean-forward="true" selection-start-line="27" selection-start-column="11" selection-end-line="27" selection-end-column="11" />
</state>
</provider>
</entry>
</component>
</project>

11
alibaba-mom.iml Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/java" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="middleware-mom-1.01" level="project" />
<orderEntry type="library" name="lib" level="project" />
</component>
</module>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/java" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="middleware-mom-1.01" level="project" />
<orderEntry type="library" name="lib" level="project" />
</component>
</module>

31
middleware-mom.iml Normal file
View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
<output url="file://$MODULE_DIR$/target/lib/classes" />
<output-test url="file://$MODULE_DIR$/target/lib/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target/lib" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.5" level="project" />
<orderEntry type="library" name="Maven: net.minidev:json-smart:2.0" level="project" />
<orderEntry type="library" name="Maven: net.minidev:asm:1.0" level="project" />
<orderEntry type="library" name="Maven: asm:asm:3.3.1" level="project" />
<orderEntry type="library" name="Maven: de.ruedigermoeller:fst:2.34" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.5.3" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.19.0-GA" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.1" level="project" />
<orderEntry type="library" name="Maven: com.esotericsoftware:kryo:3.0.2" level="project" />
<orderEntry type="library" name="Maven: com.esotericsoftware:reflectasm:1.10.1" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm:5.0.3" level="project" />
<orderEntry type="library" name="Maven: com.esotericsoftware:minlog:1.3.0" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-all:4.0.23.Final" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.2" level="project" />
<orderEntry type="library" name="Maven: log4j:log4j:1.2.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.7" level="project" />
</component>
</module>

8
momtest/.idea/artifacts/main_jar.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<component name="ArtifactManager">
<artifact type="jar" name="main:jar">
<output-path>$PROJECT_DIR$/out/artifacts/main_jar</output-path>
<root id="archive" name="main.jar">
<element id="module-output" name="main" />
</root>
</artifact>
</component>

23
momtest/.idea/compiler.xml generated Normal file
View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="middleware-momtest" />
</profile>
<profile name="Annotation profile for middleware-mom" enabled="true">
<sourceOutputDir name="target/lib/generated-sources/annotations" />
<sourceTestOutputDir name="target/lib/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="middleware-mom" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="middleware-mom" target="1.7" />
<module name="middleware-momtest" target="1.6" />
</bytecodeTargetLevel>
</component>
</project>

6
momtest/.idea/encodings.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://H:/alibaba-mom" charset="UTF-8" />
</component>
</project>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: asm:asm:3.3.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/asm/asm/3.3.1/asm-3.3.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/asm/asm/3.3.1/asm-3.3.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/asm/asm/3.3.1/asm-3.3.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.alibaba:fastjson:1.2.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.3/fastjson-1.2.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.3/fastjson-1.2.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.3/fastjson-1.2.3-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.alibaba:fastjson:1.2.5">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.5/fastjson-1.2.5.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.5/fastjson-1.2.5-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.5/fastjson-1.2.5-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.esotericsoftware:kryo:3.0.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/kryo/3.0.2/kryo-3.0.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/kryo/3.0.2/kryo-3.0.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/kryo/3.0.2/kryo-3.0.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.esotericsoftware:minlog:1.3.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/minlog/1.3.0/minlog-1.3.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.esotericsoftware:reflectasm:1.10.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/reflectasm/1.10.1/reflectasm-1.10.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/reflectasm/1.10.1/reflectasm-1.10.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/esotericsoftware/reflectasm/1.10.1/reflectasm-1.10.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.fasterxml.jackson.core:jackson-core:2.5.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.5.3/jackson-core-2.5.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.5.3/jackson-core-2.5.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.5.3/jackson-core-2.5.3-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: de.ruedigermoeller:fst:2.34">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/de/ruedigermoeller/fst/2.34/fst-2.34.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/de/ruedigermoeller/fst/2.34/fst-2.34-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/de/ruedigermoeller/fst/2.34/fst-2.34-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: io.netty:netty-all:4.0.23.Final">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty-all/4.0.23.Final/netty-all-4.0.23.Final-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: junit:junit:4.7">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.7/junit-4.7.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.7/junit-4.7-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.7/junit-4.7-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: log4j:log4j:1.2.12">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.12/log4j-1.2.12.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.12/log4j-1.2.12-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.12/log4j-1.2.12-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: net.minidev:asm:1.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/net/minidev/asm/1.0/asm-1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/net/minidev/asm/1.0/asm-1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/net/minidev/asm/1.0/asm-1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: net.minidev:json-smart:2.0">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/net/minidev/json-smart/2.0/json-smart-2.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/net/minidev/json-smart/2.0/json-smart-2.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/net/minidev/json-smart/2.0/json-smart-2.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.javassist:javassist:3.19.0-GA">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.19.0-GA/javassist-3.19.0-GA.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.19.0-GA/javassist-3.19.0-GA-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/javassist/javassist/3.19.0-GA/javassist-3.19.0-GA-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.objenesis:objenesis:2.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/2.1/objenesis-2.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/2.1/objenesis-2.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/objenesis/objenesis/2.1/objenesis-2.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.ow2.asm:asm:5.0.3">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/5.0.3/asm-5.0.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/5.0.3/asm-5.0.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/ow2/asm/asm/5.0.3/asm-5.0.3-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.slf4j:slf4j-api:1.7.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.2/slf4j-api-1.7.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.slf4j:slf4j-log4j12:1.7.2">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.2/slf4j-log4j12-1.7.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.2/slf4j-log4j12-1.7.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.7.2/slf4j-log4j12-1.7.2-sources.jar!/" />
</SOURCES>
</library>
</component>

14
momtest/.idea/misc.xml generated Normal file
View File

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

9
momtest/.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://H:/alibaba-mom/middleware-mom.iml" filepath="H:/alibaba-mom/middleware-mom.iml" />
<module fileurl="file://$PROJECT_DIR$/middleware-momtest.iml" filepath="$PROJECT_DIR$/middleware-momtest.iml" />
</modules>
</component>
</project>

6
momtest/.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="H:/alibaba-mom" vcs="Git" />
</component>
</project>

629
momtest/.idea/workspace.xml generated Normal file
View File

@@ -0,0 +1,629 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="888f16e6-4fd9-476d-aea6-1c28fab4f4c5" name="Default" comment="">
<change afterPath="H:/alibaba-mom/.idea/compiler.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/encodings.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__asm_asm_3_3_1.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__com_alibaba_fastjson_1_2_5.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__com_esotericsoftware_kryo_3_0_2.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__com_esotericsoftware_minlog_1_3_0.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__com_esotericsoftware_reflectasm_1_10_1.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__com_fasterxml_jackson_core_jackson_core_2_5_3.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__de_ruedigermoeller_fst_2_34.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__io_netty_netty_all_4_0_23_Final.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__junit_junit_4_7.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__log4j_log4j_1_2_12.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__net_minidev_asm_1_0.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__net_minidev_json_smart_2_0.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__org_javassist_javassist_3_19_0_GA.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__org_objenesis_objenesis_2_1.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__org_ow2_asm_asm_5_0_3.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__org_slf4j_slf4j_api_1_7_2.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/libraries/Maven__org_slf4j_slf4j_log4j12_1_7_2.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/modules.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/.idea/vcs.xml" afterDir="false" />
<change afterPath="H:/alibaba-mom/alibaba-mom.iml" afterDir="false" />
<change afterPath="H:/alibaba-mom/middleware-mom.iml" afterDir="false" />
<change afterPath="H:/alibaba-mom/src/main/main1.iml" afterDir="false" />
<change afterPath="H:/alibaba-mom/src/test/test.iml" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/Broker$1$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/Broker$1$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/Broker$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/Broker$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/Broker.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/Broker.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/ConsumeStatus.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/ConsumeStatus.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultConsumer$1$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultConsumer$1$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultConsumer$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultConsumer$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultConsumer.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultConsumer.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer$1$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer$1$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer$2.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer$2.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/DefaultProducer.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/SendStatus.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/SendStatus.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/AccumulateHandler$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/AccumulateHandler$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/AccumulateHandler.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/AccumulateHandler.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageManager.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageManager.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageStore$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageStore$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageStore$2.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageStore$2.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageStore.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/MessageStore.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/Recover.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/Recover.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner$1$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner$1$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner$2.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner$2.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SendInfoScanner.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/StoreSucceedListener$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/StoreSucceedListener$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/StoreSucceedListener.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/StoreSucceedListener.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SubsStore$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SubsStore$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SubsStore.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/function/SubsStore.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup$2.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup$2.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup$3.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup$3.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ConsumerGroup.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ProducerGroup.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/broker/group/ProducerGroup.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/serializer/JdkObjectSerializer.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/serializer/JdkObjectSerializer.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/serializer/KryoxSerializer.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/serializer/KryoxSerializer.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/serializer/RpcEncoder.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/serializer/RpcEncoder.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/ArrayStoreImp.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/ArrayStoreImp.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/Comm.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/Comm.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/DataMappedFile.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/DataMappedFile.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/FileStoreManager$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/FileStoreManager$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/FileStoreManager$2.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/FileStoreManager$2.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/FileStoreManager.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/FileStoreManager.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/IndexMappedFile.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/IndexMappedFile.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/MappedFileInfo.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/MappedFileInfo.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/MsgFileUtil.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/MsgFileUtil.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/MsgStoreImp_MappedBuffer2.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/MsgStoreImp_MappedBuffer2.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/Redo$RedoBean.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/Redo$RedoBean.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/Redo.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/Redo.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/RedoLog$LogBean.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/RedoLog$LogBean.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/RedoLog.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/RedoLog.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/SubscribeStoreImp.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/SubscribeStoreImp.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/SubscribeStoreImp_MappedBuffer2.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/SubscribeStoreImp_MappedBuffer2.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/redotest.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/store/redotest.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/util/Info.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/util/Info.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/util/InfoType.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/classes/com/alibaba/middleware/race/mom/util/InfoType.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/test-classes/com/alibaba/middleware/race/mom/AppTest$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/test-classes/com/alibaba/middleware/race/mom/AppTest$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/test-classes/com/alibaba/middleware/race/mom/AppTest.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/test-classes/com/alibaba/middleware/race/mom/AppTest.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/test-classes/com/alibaba/middleware/race/mom/test$1.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/test-classes/com/alibaba/middleware/race/mom/test$1.class" afterDir="false" />
<change beforePath="H:/alibaba-mom/target/lib/test-classes/com/alibaba/middleware/race/mom/test.class" beforeDir="false" afterPath="H:/alibaba-mom/target/lib/test-classes/com/alibaba/middleware/race/mom/test.class" afterDir="false" />
</list>
<ignored path="$PROJECT_DIR$/out/" />
<ignored path="$PROJECT_DIR$/target/" />
<ignored path="H:/alibaba-mom/target/lib/" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="Broker.java" pinned="false" current-in-tab="false">
<entry file="file://H:/alibaba-mom/src/main/java/com/alibaba/middleware/race/mom/Broker.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="88">
<caret line="26" lean-forward="true" selection-start-line="26" selection-end-line="26" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="pom.xml" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/pom.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="22">
<caret line="9" column="4" selection-start-line="9" selection-start-column="4" selection-end-line="9" selection-end-column="4" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ConusmerTest.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/momtest/ConusmerTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="44">
<caret line="14" column="20" selection-start-line="14" selection-start-column="20" selection-end-line="14" selection-end-column="20" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ConsumeResult.class" pinned="false" current-in-tab="false">
<entry file="jar://H:/alibaba-mom/target/lib/middleware-mom-1.0.jar!/com/alibaba/middleware/race/mom/ConsumeResult.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="44">
<caret line="2" column="7" selection-start-line="2" selection-start-column="7" selection-end-line="2" selection-end-column="7" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ProducerAsyncTest.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/momtest/ProducerAsyncTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="65">
<caret line="5" column="7" selection-start-line="5" selection-start-column="7" selection-end-line="5" selection-end-column="7" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="ProducerTest.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/momtest/ProducerTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="132">
<caret line="9" column="46" lean-forward="true" selection-start-line="9" selection-start-column="46" selection-end-line="9" selection-end-column="46" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="PubSubTest.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/momtest/PubSubTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="43">
<caret line="5" column="12" selection-start-line="5" selection-start-column="12" selection-end-line="5" selection-end-column="12" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="MomStressTest.java" pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/momtest/MomStressTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-681">
<caret line="27" column="4" selection-start-line="27" selection-start-column="4" selection-end-line="27" selection-end-column="4" />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="Consumer.java" pinned="false" current-in-tab="false">
<entry file="file://H:/alibaba-mom/src/main/java/com/alibaba/middleware/race/mom/Consumer.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-433">
<caret line="16" column="23" lean-forward="true" selection-start-line="16" selection-start-column="23" selection-end-line="16" selection-end-column="23" />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="H:/alibaba-mom" />
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
<sorting>DEFINITION_ORDER</sorting>
</component>
<component name="ProjectFrameBounds">
<option name="x" value="50" />
<option name="y" value="32" />
<option name="width" value="1750" />
<option name="height" value="1030" />
</component>
<component name="ProjectView">
<navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" />
</navigator>
<panes>
<pane id="Scope" />
<pane id="ProjectPane">
<subPane>
<expand>
<path>
<item name="momtest" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="momtest" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="momtest" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="momtest" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="momtest" type="b2602c69:ProjectViewProjectNode" />
<item name="alibaba-mom" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="mom" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="momtest" type="b2602c69:ProjectViewProjectNode" />
<item name="momtest" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="momtest" type="b2602c69:ProjectViewProjectNode" />
<item name="momtest" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="momtest" type="b2602c69:ProjectViewProjectNode" />
<item name="momtest" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="momtest" type="b2602c69:ProjectViewProjectNode" />
<item name="momtest" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="momtest" type="b2602c69:ProjectViewProjectNode" />
<item name="momtest" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="race" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="momtest" type="b2602c69:ProjectViewProjectNode" />
<item name="momtest" type="462c0819:PsiDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="race" type="462c0819:PsiDirectoryNode" />
<item name="momtest" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="Downloaded.Files.Path.Enabled" value="false" />
<property name="Repository.Attach.JavaDocs" value="false" />
<property name="Repository.Attach.Sources" value="false" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="aspect.path.notification.shown" value="true" />
<property name="last_opened_file_path" value="H:/alibaba-mom" />
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
<property name="nodejs_npm_path_reset_for_default_project" value="true" />
<property name="project.structure.last.edited" value="Modules" />
<property name="project.structure.proportion" value="0.15" />
<property name="project.structure.side.proportion" value="0.2" />
</component>
<component name="RunDashboard">
<option name="ruleStates">
<list>
<RuleState>
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
</RuleState>
<RuleState>
<option name="name" value="StatusDashboardGroupingRule" />
</RuleState>
</list>
</option>
</component>
<component name="RunManager" selected="Application.ConusmerTest">
<configuration name="Broker" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.alibaba.middleware.race.mom.Broker" />
<module name="middleware-mom" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.alibaba.middleware.race.mom.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
</configuration>
<configuration name="ConusmerTest" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.alibaba.middleware.race.momtest.ConusmerTest" />
<module name="middleware-momtest" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.alibaba.middleware.race.momtest.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
</configuration>
<configuration name="MomStressTest" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.alibaba.middleware.race.momtest.MomStressTest" />
<module name="middleware-momtest" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.alibaba.middleware.race.momtest.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
</configuration>
<configuration name="ProducerAsyncTest" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="com.alibaba.middleware.race.momtest.ProducerAsyncTest" />
<module name="middleware-momtest" />
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="com.alibaba.middleware.race.momtest.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
</configuration>
<configuration default="true" type="JUnit" factoryName="JUnit">
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="TEST_OBJECT" value="class" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<patterns />
</configuration>
<configuration default="true" type="JetRunConfigurationType" factoryName="Kotlin">
<module name="main" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="MAIN_CLASS_NAME" />
<option name="WORKING_DIRECTORY" />
</configuration>
<configuration default="true" type="TestNG" factoryName="TestNG">
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="SUITE_NAME" />
<option name="PACKAGE_NAME" />
<option name="MAIN_CLASS_NAME" />
<option name="METHOD_NAME" />
<option name="GROUP_NAME" />
<option name="TEST_OBJECT" value="CLASS" />
<option name="VM_PARAMETERS" value="-ea" />
<option name="PARAMETERS" />
<option name="WORKING_DIRECTORY" value="%MODULE_WORKING_DIR%" />
<option name="OUTPUT_DIRECTORY" />
<option name="PASS_PARENT_ENVS" value="true" />
<option name="TEST_SEARCH_SCOPE">
<value defaultName="singleModule" />
</option>
<option name="USE_DEFAULT_REPORTERS" value="false" />
<option name="PROPERTIES_FILE" />
<properties />
<listeners />
</configuration>
<list>
<item itemvalue="Application.ProducerAsyncTest" />
<item itemvalue="Application.Broker" />
<item itemvalue="Application.MomStressTest" />
<item itemvalue="Application.ConusmerTest" />
</list>
<recent_temporary>
<list>
<item itemvalue="Application.ConusmerTest" />
<item itemvalue="Application.Broker" />
<item itemvalue="Application.MomStressTest" />
<item itemvalue="Application.ProducerAsyncTest" />
</list>
</recent_temporary>
</component>
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="888f16e6-4fd9-476d-aea6-1c28fab4f4c5" name="Default" comment="" />
<created>1522912665643</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1522912665643</updated>
<workItem from="1522912668622" duration="3068000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="3068000" />
</component>
<component name="ToolWindowManager">
<frame x="40" y="26" width="1400" height="824" extended-state="0" />
<editor active="true" />
<layout>
<window_info anchor="right" id="Palette" />
<window_info anchor="bottom" id="TODO" order="6" />
<window_info anchor="bottom" id="Messages" weight="0.33031675" />
<window_info anchor="right" id="Palette&#9;" />
<window_info anchor="bottom" id="Event Log" sideWeight="0.5007452" side_tool="true" visible="true" weight="0.32880846" />
<window_info anchor="right" id="Maven Projects" />
<window_info anchor="bottom" id="Database Changes" show_stripe_button="false" />
<window_info anchor="bottom" id="Run" order="2" weight="0.32880846" />
<window_info anchor="bottom" id="Version Control" sideWeight="0.49925485" visible="true" weight="0.32880846" />
<window_info anchor="bottom" id="Terminal" weight="0.32880846" />
<window_info id="Designer" />
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24962743" />
<window_info anchor="right" id="Database" />
<window_info anchor="bottom" id="Find" order="1" weight="0.32880846" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" />
<window_info id="UI Designer" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info id="Favorites" side_tool="true" />
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
</layout>
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="1" />
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="editorHistoryManager">
<entry file="file://H:/alibaba-mom/src/main/java/com/alibaba/middleware/race/mom/config/Config.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="44">
<caret line="2" column="13" selection-start-line="2" selection-start-column="13" selection-end-line="2" selection-end-column="13" />
</state>
</provider>
</entry>
<entry file="jar://H:/alibaba-mom/target/lib/middleware-mom-1.0.jar!/com/alibaba/middleware/race/mom/ConsumeResult.class">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="44">
<caret line="2" column="7" selection-start-line="2" selection-start-column="7" selection-end-line="2" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/momtest/PubSubTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="43">
<caret line="5" column="12" selection-start-line="5" selection-start-column="12" selection-end-line="5" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/momtest/ProducerAsyncTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="65">
<caret line="5" column="7" selection-start-line="5" selection-start-column="7" selection-end-line="5" selection-end-column="7" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/pom.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="22">
<caret line="9" column="4" selection-start-line="9" selection-start-column="4" selection-end-line="9" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://H:/alibaba-mom/src/main/java/com/alibaba/middleware/race/mom/Broker.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="88">
<caret line="26" lean-forward="true" selection-start-line="26" selection-end-line="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/momtest/MomStressTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-681">
<caret line="27" column="4" selection-start-line="27" selection-start-column="4" selection-end-line="27" selection-end-column="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/momtest/ConusmerTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="44">
<caret line="14" column="20" selection-start-line="14" selection-start-column="20" selection-end-line="14" selection-end-column="20" />
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://H:/alibaba-mom/src/main/java/com/alibaba/middleware/race/mom/Consumer.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-433">
<caret line="16" column="23" lean-forward="true" selection-start-line="16" selection-start-column="23" selection-end-line="16" selection-end-column="23" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/com/alibaba/middleware/race/momtest/ProducerTest.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="132">
<caret line="9" column="46" lean-forward="true" selection-start-line="9" selection-start-column="46" selection-end-line="9" selection-end-column="46" />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
<state key="ArtifactsStructureConfigurable.UI">
<settings>
<artifact-editor />
<last-edited>main:jar</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
<option value="0.5" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="FacetStructureConfigurable.UI">
<settings>
<last-edited>No facets are configured</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="GlobalLibrariesConfigurable.UI">
<settings>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="JdkListConfigurable.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ModuleStructureConfigurable.UI">
<settings>
<last-edited>middleware-mom</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
<option value="0.6" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
<state key="ProjectLibrariesConfigurable.UI">
<settings>
<last-edited>Maven: com.alibaba:fastjson:1.2.3</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="middleware-mom" />
<orderEntry type="library" name="Maven: net.minidev:json-smart:2.0" level="project" />
<orderEntry type="library" name="Maven: net.minidev:asm:1.0" level="project" />
<orderEntry type="library" name="Maven: asm:asm:3.3.1" level="project" />
<orderEntry type="library" name="Maven: de.ruedigermoeller:fst:2.34" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.5.3" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.19.0-GA" level="project" />
<orderEntry type="library" name="Maven: org.objenesis:objenesis:2.1" level="project" />
<orderEntry type="library" name="Maven: com.esotericsoftware:kryo:3.0.2" level="project" />
<orderEntry type="library" name="Maven: com.esotericsoftware:reflectasm:1.10.1" level="project" />
<orderEntry type="library" name="Maven: org.ow2.asm:asm:5.0.3" level="project" />
<orderEntry type="library" name="Maven: com.esotericsoftware:minlog:1.3.0" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-all:4.0.23.Final" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.2" level="project" />
<orderEntry type="library" name="Maven: log4j:log4j:1.2.12" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.3" level="project" />
</component>
</module>

View File

@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: com.alibaba.middleware.race.mom.Broker

36
momtest/pom.xml Normal file
View File

@@ -0,0 +1,36 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.alibaba.race</groupId>
<artifactId>middleware-momtest</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>middleware-mom</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>com.alibaba.race</groupId>
<artifactId>middleware-mom</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>

1
momtest/result Normal file
View File

@@ -0,0 +1 @@
result:false, info:/ by zero

View File

@@ -0,0 +1,3 @@
Manifest-Version: 1.0
Main-Class: com.alibaba.middleware.race.mom.Broker

View File

@@ -0,0 +1,21 @@
package com.alibaba.middleware.race.momtest;
import java.util.ArrayList;
import java.util.List;
public class ConsumeStatus {
String msgId;
List<Boolean> statusList=new ArrayList<Boolean>();
public String getMsgId() {
return msgId;
}
public void setMsgId(String msgId) {
this.msgId = msgId;
}
public List<Boolean> getStatusList() {
return statusList;
}
public void setStatusList(List<Boolean> statusList) {
this.statusList = statusList;
}
}

View File

@@ -0,0 +1,33 @@
package com.alibaba.middleware.race.momtest;
import com.alibaba.middleware.race.mom.ConsumeResult;
import com.alibaba.middleware.race.mom.ConsumeStatus;
import com.alibaba.middleware.race.mom.Consumer;
import com.alibaba.middleware.race.mom.Message;
import com.alibaba.middleware.race.mom.MessageListener;
public class ConusmerTest {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
Consumer consumer = (Consumer) Class.forName("com.alibaba.middleware.race.mom.DefaultConsumer").newInstance();
//设置消费者idgroupid相同的消费者broker会视为同一个消费者集群每条消息只会投递给集群中的一台机器
consumer.setGroupId("CG-test");
//发起订阅操作broker只能投递 topic为T-test并且area属性为us的消息给消费者
consumer.subscribe("T-test", "area=us"/*如果改属性为null或者空串那么表示接收这个topic下的所有消息*/, new MessageListener() {
@Override
public ConsumeResult onMessage(Message message) {
assert "T-test".equals(message.getTopic()) && "us".equals(message.getProperty("area"));
System.out.println("consume success:" + message.getMsgId());
ConsumeResult result = new ConsumeResult();
//设置消费结果如果成功那么broker不再投递
result.setStatus(ConsumeStatus.SUCCESS);
//如果设置为失败那么broker会尽快重试投递直至返回成功。
//result.setStatus(ConsumeStatus.FAIL);
//消费失败要设置失败原因broker可以获取到这个信息
//result.setInfo("fail detail or reason");
return result;
}
});
consumer.start();
}
}

View File

@@ -0,0 +1,30 @@
package com.alibaba.middleware.race.momtest;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Map;
import java.util.concurrent.ConcurrentMap;
public class FileIO {
private static File file;
private static FileWriter fw;
static{
file=new File(System.getProperty("file", "result"));
try {
fw=new FileWriter(file);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void write(String text) {
try {
fw.write(text);
fw.flush();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

View File

@@ -0,0 +1,55 @@
package com.alibaba.middleware.race.momtest;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
public class FileUtil {
public static String read(String fileName) {
try {
File dir=new File("check");
if (!dir.exists()) {
dir.mkdirs();
}
File file=new File("check/"+fileName);
FileReader fReader=new FileReader(file);
BufferedReader bufferedReader=new BufferedReader(fReader);
String text=bufferedReader.readLine();
bufferedReader.close();
fReader.close();
return text;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void write(String fileName,String text){
try {
File dir=new File("check");
if (!dir.exists()) {
dir.mkdirs();
}
File file=new File("check/"+fileName);
if (file.exists()) {
//file.delete();
file=new File("check/"+fileName);
}
FileWriter fileWriter=new FileWriter(file);
fileWriter.write(text);
fileWriter.flush();
fileWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String text="hello sdfadsf";
String fileName="tmp";
FileUtil.write(fileName, text);
System.out.println(FileUtil.read(fileName));
FileUtil.write(fileName, "heloo");
System.out.println(FileUtil.read(fileName));
}
}

View File

@@ -0,0 +1,192 @@
package com.alibaba.middleware.race.momtest;
import java.nio.charset.Charset;
import java.util.Queue;
import java.util.Random;
import java.util.concurrent.LinkedBlockingQueue;
import com.alibaba.middleware.race.mom.ConsumeResult;
import com.alibaba.middleware.race.mom.ConsumeStatus;
import com.alibaba.middleware.race.mom.Consumer;
import com.alibaba.middleware.race.mom.Message;
import com.alibaba.middleware.race.mom.MessageListener;
import com.alibaba.middleware.race.mom.Producer;
import com.alibaba.middleware.race.mom.SendResult;
import com.alibaba.middleware.race.mom.SendStatus;
public class MomFuntionTest {
private static String TOPIC="MOM-RACE-";
private static String PID="PID_";
private static String CID="CID_";
private static String BODY="hello mom ";
private static String AREA="area_";
private static Charset charset=Charset.forName("utf-8");
private static Random random=new Random();
private static Queue<String> sendMsg=new LinkedBlockingQueue<String>();
private static Queue<String> recvMsg=new LinkedBlockingQueue<String>();
private static TestResult testResult=new TestResult();
public static void main(String[] args) {
System.setProperty("SIP","127.0.0.1");
testBasic();
if (!testResult.isSuccess()) {
System.out.println(testResult);
FileIO.write(testResult.toString());
Runtime.getRuntime().exit(0);
}
sendMsg.clear();
recvMsg.clear();
testFilter();
System.out.println(testResult);
FileIO.write(testResult.toString());
Runtime.getRuntime().exit(0);
}
private static void testBasic() {
int code=random.nextInt(100000);
final ConsumeResult consumeResult=new ConsumeResult();
consumeResult.setStatus(ConsumeStatus.SUCCESS);
final String topic=TOPIC+code;
try {
String ip=System.getProperty("SIP");
Consumer consumer=(Consumer) Class.forName("com.alibaba.middleware.race.mom.DefaultConsumer").newInstance();
consumer.setGroupId(CID+code);
consumer.subscribe(topic, "", new MessageListener() {
@Override
public ConsumeResult onMessage(Message message) {
if (!message.getTopic().equals(topic)) {
testResult.setSuccess(false);
testResult.setInfo("expect topic:"+topic+", actual topic:"+message.getTopic());
}
if (System.currentTimeMillis()-message.getBornTime()>1000) {
testResult.setSuccess(false);
testResult.setInfo("msg "+message.getMsgId()+" delay "+(System.currentTimeMillis()-message.getBornTime())+" ms");
}
recvMsg.add(message.getMsgId());
return consumeResult;
}
});
consumer.start();
Producer producer=(Producer) Class.forName("com.alibaba.middleware.race.mom.DefaultProducer").newInstance();
producer.setGroupId(PID+code);
producer.setTopic(topic);
producer.start();
Message msg=new Message();
msg.setBody(BODY.getBytes(charset));
msg.setProperty("area", "hz"+code);
SendResult result=producer.sendMessage(msg);
if (result.getStatus()!=SendStatus.SUCCESS) {
testResult.setSuccess(false);
testResult.setInfo(result.toString());
return;
}
sendMsg.add(result.getMsgId());
Thread.sleep(5000);
if (!testResult.isSuccess()) {
System.out.println(testResult);
return ;
}
checkMsg(sendMsg, recvMsg);
producer.stop();
consumer.stop();
} catch (Exception e) {
testResult.setSuccess(false);
testResult.setInfo(e.getMessage());
}
}
private static void testFilter() {
int code=random.nextInt(100000);
final ConsumeResult consumeResult=new ConsumeResult();
consumeResult.setStatus(ConsumeStatus.SUCCESS);
final String topic=TOPIC+code;
final String k=AREA+code;
final String v="hz_"+code;
try {
String ip=System.getProperty("SIP");
Consumer consumer=(Consumer) Class.forName("com.alibaba.middleware.race.mom.DefaultConsumer").newInstance();
consumer.setGroupId(CID+code);
consumer.subscribe(topic, k+"="+v, new MessageListener() {
@Override
public ConsumeResult onMessage(Message message) {
if (!message.getTopic().equals(topic)) {
testResult.setSuccess(false);
testResult.setInfo("expect topic:"+topic+", actual topic:"+message.getTopic());
}
if (System.currentTimeMillis()-message.getBornTime()>1000) {
testResult.setSuccess(false);
testResult.setInfo("msg "+message.getMsgId()+" delay "+(System.currentTimeMillis()-message.getBornTime())+" ms");
}
if (message.getProperty(k)==null||!message.getProperty(k).equals(v)) {
testResult.setSuccess(false);
testResult.setInfo("msg "+message.getMsgId()+" expect k"+k+" value is "+ v+", but actual value is "+message.getProperty(k));
}
recvMsg.add(message.getMsgId());
return consumeResult;
}
});
consumer.start();
Producer producer=(Producer) Class.forName("com.alibaba.middleware.race.mom.DefaultProducer").newInstance();
producer.setGroupId(PID+code);
producer.setTopic(topic);
producer.start();
Message msg=new Message();
msg.setBody(BODY.getBytes(charset));
msg.setProperty(k, v);
SendResult result=producer.sendMessage(msg);
if (result.getStatus()!=SendStatus.SUCCESS) {
testResult.setSuccess(false);
testResult.setInfo(result.toString());
return;
}
sendMsg.add(result.getMsgId());
msg=new Message();
msg.setBody(BODY.getBytes(charset));
result=producer.sendMessage(msg);
if (result.getStatus()!=SendStatus.SUCCESS) {
testResult.setSuccess(false);
testResult.setInfo(result.toString());
return;
}
Thread.sleep(5000);
if (!testResult.isSuccess()) {
return;
}
checkMsg(sendMsg, recvMsg);
return;
} catch (Exception e) {
testResult.setSuccess(false);
testResult.setInfo(e.getMessage());
}
}
private static void checkMsg(Queue<String> sendMsg,Queue<String> recvMsg){
if (sendMsg.size()>recvMsg.size()) {
testResult.setSuccess(false);
testResult.setInfo("send msg num is "+sendMsg.size()+",but recv msg num is "+recvMsg.size());
return ;
}
if ((recvMsg.size()-sendMsg.size())/sendMsg.size()>0.001) {
testResult.setSuccess(false);
testResult.setInfo("repeat rate too big "+(recvMsg.size()-sendMsg.size())/sendMsg.size());
return ;
}
for (String send : sendMsg) {
boolean find=false;
for (String recv : recvMsg) {
if (recv.equals(send)) {
find=true;
break;
}
}
if (!find) {
testResult.setSuccess(false);
testResult.setInfo("msg "+send+" is miss");
return ;
}
}
}
}

View File

@@ -0,0 +1,220 @@
package com.alibaba.middleware.race.momtest;
import java.nio.charset.Charset;
import java.util.Queue;
import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicLong;
import com.alibaba.middleware.race.mom.ConsumeResult;
import com.alibaba.middleware.race.mom.ConsumeStatus;
import com.alibaba.middleware.race.mom.Consumer;
import com.alibaba.middleware.race.mom.Message;
import com.alibaba.middleware.race.mom.MessageListener;
import com.alibaba.middleware.race.mom.Producer;
import com.alibaba.middleware.race.mom.SendCallback;
import com.alibaba.middleware.race.mom.SendResult;
import com.alibaba.middleware.race.mom.SendStatus;
public class MomStressTest {
private static String TOPIC="MOM-RACE-";
private static String PID="PID_";
private static String CID="CID_";
private static String BODY="hello mom ";
private static String AREA="area_";
private static Charset charset=Charset.forName("utf-8");
private static Random random=new Random();
private static AtomicLong sendCount=new AtomicLong();
private static AtomicLong recvCount=new AtomicLong();
private static AtomicLong totalRT=new AtomicLong();
private static AtomicLong totalDelay=new AtomicLong();
private static int c=Integer.valueOf(System.getProperty("C","30"));
private static ExecutorService executorService=Executors.newFixedThreadPool(c);
private static TestResult testResult=new TestResult();
public static void main(String[] args) {
testBasic();
if (!testResult.isSuccess()) {
System.out.println(testResult);
FileIO.write(testResult.toString());
Runtime.getRuntime().exit(0);
}
System.out.println(testResult);
FileIO.write(testResult.toString());
Runtime.getRuntime().exit(0);
}
private static void testBasic() {
final int code=random.nextInt(100000);
final ConsumeResult consumeResult=new ConsumeResult();
consumeResult.setStatus(ConsumeStatus.SUCCESS);
final String topic=TOPIC+code;
try {
String ip=System.getProperty("SIP");
Consumer consumer=(Consumer) Class.forName("com.alibaba.middleware.race.mom.DefaultConsumer").newInstance();
consumer.setGroupId(CID+code);
consumer.subscribe(topic, "", new MessageListener() {
@Override
public ConsumeResult onMessage(Message message) {
if (!message.getTopic().equals(topic)) {
testResult.setSuccess(false);
testResult.setInfo("expect topic:"+topic+", actual topic:"+message.getTopic());
}
long delay=System.currentTimeMillis()-message.getBornTime();
/* if (delay>1000) {
testResult.setSuccess(false);
testResult.setInfo("msg "+message.getMsgId()+" delay "+(System.currentTimeMillis()-message.getBornTime())+" ms");
}*/
totalDelay.addAndGet(delay);
recvCount.incrementAndGet();
return consumeResult;
}
});
consumer.start();
final Producer producer=(Producer) Class.forName("com.alibaba.middleware.race.mom.DefaultProducer").newInstance();
producer.setGroupId(PID+code);
producer.setTopic(topic);
producer.start();
long start=System.currentTimeMillis();
for (int i = 0; i < c; i++) {
executorService.execute(new Runnable() {
@Override
public void run() {
while (true) {
try {
Message msg=new Message();
msg.setBody(BODY.getBytes(charset));
msg.setProperty("area", "hz"+code);
final long startRt=System.currentTimeMillis();
SendResult result=producer.sendMessage(msg);
if (result.getStatus()==SendStatus.SUCCESS) {
sendCount.incrementAndGet();
totalRT.addAndGet(System.currentTimeMillis()-startRt);
}
/*producer.asyncSendMessage(msg, new SendCallback() {
@Override
public void onResult(SendResult result) {
if (result.getStatus()==SendStatus.SUCCESS) {
sendCount.incrementAndGet();
totalRT.addAndGet(System.currentTimeMillis()-startRt);
}
}
});*/
} catch (Exception e) {
e.printStackTrace();
}
}
}
});
}
Thread.sleep(30000);
if (!testResult.isSuccess()) {
return ;
}
long totalTime=System.currentTimeMillis()-start;
long sendTps=sendCount.get()*1000/totalTime;
long recvTps=recvCount.get()*1000/totalTime;
long rt=totalRT.get()/sendCount.get();
long delay=totalDelay.get()/recvCount.get();
testResult.setInfo("send tps:"+sendTps+", recv tps:"+recvTps+", send rt:"+rt+", avg delay:"+delay);
} catch (Exception e) {
testResult.setSuccess(false);
testResult.setInfo(e.getMessage());
}
}
private static void testFilter() {
int code=random.nextInt(100000);
final ConsumeResult consumeResult=new ConsumeResult();
consumeResult.setStatus(ConsumeStatus.SUCCESS);
final String topic=TOPIC+code;
final String k=AREA+code;
final String v="hz_"+code;
try {
String ip=System.getProperty("SIP");
Consumer consumer=(Consumer) Class.forName("com.alibaba.middleware.race.mom.DefaultConsumer").newInstance();
consumer.setGroupId(CID+code);
consumer.subscribe(topic, k+"="+v, new MessageListener() {
@Override
public ConsumeResult onMessage(Message message) {
if (!message.getTopic().equals(topic)) {
testResult.setSuccess(false);
testResult.setInfo("expect topic:"+topic+", actual topic:"+message.getTopic());
}
if (System.currentTimeMillis()-message.getBornTime()>1000) {
testResult.setSuccess(false);
testResult.setInfo("msg "+message.getMsgId()+" delay "+(System.currentTimeMillis()-message.getBornTime())+" ms");
}
if (!message.getProperty(k).equals(v)) {
testResult.setSuccess(false);
testResult.setInfo("msg "+message.getMsgId()+" expect k"+k+" value is "+ v+", but actual value is "+message.getProperty(k));
}
return consumeResult;
}
});
consumer.start();
Producer producer=(Producer) Class.forName("com.alibaba.middleware.race.mom.DefaultProducer").newInstance();
producer.setGroupId(PID+code);
producer.setTopic(topic);
producer.start();
Message msg=new Message();
msg.setBody(BODY.getBytes(charset));
msg.setProperty(k, v);
SendResult result=producer.sendMessage(msg);
if (result.getStatus()!=SendStatus.SUCCESS) {
testResult.setSuccess(false);
testResult.setInfo(result.toString());
return;
}
msg=new Message();
msg.setBody(BODY.getBytes(charset));
result=producer.sendMessage(msg);
if (result.getStatus()!=SendStatus.SUCCESS) {
testResult.setSuccess(false);
testResult.setInfo(result.toString());
return;
}
Thread.sleep(5000);
if (!testResult.isSuccess()) {
return ;
}
} catch (Exception e) {
testResult.setSuccess(false);
testResult.setInfo(e.getMessage());
}
}
private static void checkMsg(Queue<String> sendMsg,Queue<String> recvMsg){
if (sendMsg.size()>recvMsg.size()) {
testResult.setSuccess(false);
testResult.setInfo("send msg num is "+sendMsg.size()+",but recv msg num is "+recvMsg.size());
return ;
}
if ((recvMsg.size()-sendMsg.size())/sendMsg.size()>0.001) {
testResult.setSuccess(false);
testResult.setInfo("repeat rate too big "+(recvMsg.size()-sendMsg.size())/sendMsg.size());
return ;
}
for (String send : sendMsg) {
boolean find=false;
for (String recv : recvMsg) {
if (recv.equals(send)) {
find=true;
break;
}
}
if (!find) {
testResult.setSuccess(false);
testResult.setInfo("msg "+send+" is miss");
return ;
}
}
}
}

View File

@@ -0,0 +1,30 @@
package com.alibaba.middleware.race.momtest;
import com.alibaba.middleware.race.mom.Message;
import com.alibaba.middleware.race.mom.Producer;
import com.alibaba.middleware.race.mom.SendCallback;
import com.alibaba.middleware.race.mom.SendResult;
import com.alibaba.middleware.race.mom.SendStatus;
public class ProducerAsyncTest {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
Producer producer=(Producer) Class.forName("com.alibaba.middleware.race.mom.DefaultProducer").newInstance();
producer.setGroupId("PG-test");
producer.setTopic("T-test");
producer.start();
Message message=new Message();
message.setBody("Hello MOM".getBytes());
message.setProperty("area", "us");
//调用此方法,当前线程不阻塞
producer.asyncSendMessage(message, new SendCallback() {
@Override
public void onResult(SendResult result) {
if (result.getStatus().equals(SendStatus.SUCCESS)) {
System.out.println("send success:"+result.getMsgId());
}
}
});
}
}

View File

@@ -0,0 +1,23 @@
package com.alibaba.middleware.race.momtest;
import com.alibaba.middleware.race.mom.Message;
import com.alibaba.middleware.race.mom.Producer;
import com.alibaba.middleware.race.mom.SendResult;
import com.alibaba.middleware.race.mom.SendStatus;
public class ProducerTest {
public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException {
System.setProperty("SIP","127.0.0.1");
Producer producer=(Producer) Class.forName("com.alibaba.middleware.race.mom.DefaultProducer").newInstance();
producer.setGroupId("PG-test");
producer.setTopic("T-test");
producer.start();
Message message=new Message();
message.setBody("Hello MOM".getBytes());
message.setProperty("area", "us");
SendResult result=producer.sendMessage(message);
if (result.getStatus().equals(SendStatus.SUCCESS)) {
System.out.println("send success:"+result.getMsgId());
}
}
}

View File

@@ -0,0 +1,245 @@
package com.alibaba.middleware.race.momtest;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.ConcurrentHashMap;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.middleware.race.mom.ConsumeResult;
import com.alibaba.middleware.race.mom.ConsumeStatus;
import com.alibaba.middleware.race.mom.Consumer;
import com.alibaba.middleware.race.mom.Message;
import com.alibaba.middleware.race.mom.MessageListener;
import com.alibaba.middleware.race.mom.Producer;
import com.alibaba.middleware.race.mom.SendResult;
import com.alibaba.middleware.race.mom.SendStatus;
/**
* 多个订阅者按照不同的条件订阅同一个topic的消息
* 通过调整代码和重启broker或者client来模拟所有功能点
*
* @author longji
*
*/
public class PubSubTest {
private static Charset charset = Charset.forName("utf-8");
private static Random random = new Random();
private static String seed = "22";// String.valueOf(random.nextInt(10000));
private static String TOPIC = "MOM-RACE-" + seed;
private static String PID = "PID_" + seed;
private static String CID = "CID_" + seed;
private static String BODY = "hello mom " + seed;
private static String AREA = "area" + seed;
private static String CATID = "cid" + seed;
private static String BIZID = "bid";
private static List<String> toA = new ArrayList<String>();
private static List<String> toB = new ArrayList<String>();
private static List<String> toC = new ArrayList<String>();
private static ConcurrentHashMap<String, List<Boolean>> amap = new ConcurrentHashMap<String, List<Boolean>>();
private static ConcurrentHashMap<String, List<Boolean>> bmap = new ConcurrentHashMap<String, List<Boolean>>();
private static ConcurrentHashMap<String, List<Boolean>> cmap = new ConcurrentHashMap<String, List<Boolean>>();
private static volatile boolean isRunning=true;
public static void main(String[] args) throws InterruptedException, InstantiationException, IllegalAccessException, ClassNotFoundException {
System.setProperty("SIP", "127.0.0.1");
//这些会记录所有的发送记录和消费记录,用于对账
String toAs = FileUtil.read("toA");
String toBs = FileUtil.read("toB");
String toCs = FileUtil.read("toC");
String amaps = FileUtil.read("amap");
String bmaps = FileUtil.read("bmap");
String cmaps = FileUtil.read("cmap");
if (toAs != null) {
toA = JSONArray.parseArray(toAs, String.class);
}
if (toBs != null) {
toB = JSONArray.parseArray(toBs, String.class);
}
if (toCs != null) {
toC = JSONArray.parseArray(toCs, String.class);
}
if (amaps != null) {
amap = JSON.parseObject(amaps, ConcurrentHashMap.class);
}
if (bmaps != null) {
bmap = JSON.parseObject(bmaps, ConcurrentHashMap.class);
}
if (cmaps != null) {
cmap = JSON.parseObject(cmaps, ConcurrentHashMap.class);
}
Consumer consumerA = (Consumer) Class.forName("com.alibaba.middleware.race.mom.DefaultConsumer").newInstance();
consumerA.setGroupId(CID + "A");
// /A 消费所有消息
consumerA.subscribe(TOPIC, "", new MessageListener() {
@Override
public ConsumeResult onMessage(Message message) {
ConsumeResult result = new ConsumeResult();
if (!isRunning) {
return result;
}
if (!TOPIC.equals(message.getTopic())) {
System.out.println("wrong topic-" + message.getTopic());
}
result.setStatus(ConsumeStatus.SUCCESS);
List<Boolean> value = new ArrayList<Boolean>();
List<Boolean> oldValue = amap.putIfAbsent(message.getProperty(BIZID), value);
if (oldValue != null) {
oldValue.add(Boolean.TRUE);
} else {
value.add(Boolean.TRUE);
}
return result;
}
});
consumerA.start();
Consumer consumerB = (Consumer) Class.forName("com.alibaba.middleware.race.mom.DefaultConsumer").newInstance();
consumerB.setGroupId(CID + "B");
// /B 消费AREA+seed+"="+seed
consumerB.subscribe(TOPIC, AREA + "=" + seed, new MessageListener() {
@Override
public ConsumeResult onMessage(Message message) {
ConsumeResult result = new ConsumeResult();
if (!isRunning) {
return result;
}
if (!TOPIC.equals(message.getTopic())) {
System.out.println("wrong topic-" + message.getTopic());
}
if (!seed.equals(message.getProperty(AREA))) {
System.out.println("wrong area-" + message.getProperty(AREA));
}
result.setStatus(ConsumeStatus.SUCCESS);
List<Boolean> value = new ArrayList<Boolean>();
List<Boolean> oldValue = bmap.putIfAbsent(message.getProperty(BIZID), value);
if (oldValue != null) {
oldValue.add(Boolean.TRUE);
} else {
value.add(Boolean.TRUE);
}
return result;
}
});
consumerB.start();
Consumer consumerC = (Consumer) Class.forName("com.alibaba.middleware.race.mom.DefaultConsumer").newInstance();
consumerC.setGroupId(CID + "C");
// /C 消费CATID+seed+"="+seed
consumerC.subscribe(TOPIC, CATID + "=" + seed, new MessageListener() {
@Override
public ConsumeResult onMessage(Message message) {
ConsumeResult result = new ConsumeResult();
if (!isRunning) {
return result;
}
//重启broker来观察是否能否自动重连
System.out.println(message.getProperty(BIZID));
if (!TOPIC.equals(message.getTopic())) {
System.out.println("wrong topic-" + message.getTopic());
}
if (!seed.equals(message.getProperty(CATID))) {
System.out.println("wrong CATID-" + message.getProperty(CATID));
}
//此处注释模拟消费失败
result.setStatus(ConsumeStatus.FAIL);
//result.setStatus(ConsumeStatus.SUCCESS);
List<Boolean> value = new ArrayList<Boolean>();
List<Boolean> oldValue = cmap.putIfAbsent(message.getProperty(BIZID), value);
if (oldValue != null) {
oldValue.add(result.getStatus()==ConsumeStatus.SUCCESS?true:false);
} else {
value.add(result.getStatus()==ConsumeStatus.SUCCESS?true:false);
}
return result;
}
});
//本行可以注释来模拟c不在线
consumerC.start();
Producer producer = (Producer) Class.forName("com.alibaba.middleware.race.mom.DefaultProducer").newInstance();
producer.setGroupId(PID);
producer.setTopic(TOPIC);
producer.start();
//此处控制发送量
for (int i = 0; i < 10; i++) {
Message message = new Message();
message.setBody((BODY + i).getBytes(charset));
message.setTopic(TOPIC);
String bizId = UniqId.getInstance().getUniqIDHashString();
message.setProperty(BIZID, bizId);
toA.add(bizId);
if (i % 2 == 0) {
message.setProperty(AREA, seed);
toB.add(bizId);
}
if (i % 8 == 0) {
message.setProperty(CATID, seed);
toC.add(bizId);
}
SendResult result = producer.sendMessage(message);
if (result.getStatus() == SendStatus.FAIL) {
System.out.println("fail:" + bizId);
}
}
//改变大小来模拟客户端在线broker重启客户端重连
Thread.sleep(5000L);
isRunning=false;
Thread.sleep(2000L);
FileUtil.write("toA", JSON.toJSONString(toA));
FileUtil.write("toB", JSON.toJSONString(toB));
FileUtil.write("toC", JSON.toJSONString(toC));
FileUtil.write("amap", JSON.toJSONString(amap));
FileUtil.write("bmap", JSON.toJSONString(bmap));
FileUtil.write("cmap", JSON.toJSONString(cmap));
System.out.println(toA.size()+"--A--"+amap.size());
System.out.println(toB.size()+"--B--"+bmap.size());
System.out.println(toC.size()+"--C--"+cmap.size());
for (String string : toA) {
if (!amap.containsKey(string)) {
System.out.println("a miss " + string);
} else if (amap.get(string).size() > 1) {
List<Boolean> ackList = amap.get(string);
for (int i = 0; i < ackList.size(); i++) {
if (ackList.get(i).booleanValue() && i < ackList.size()-1) {
System.out.println("a reapeat " + string);
}
}
}
}
for (String string : toB) {
if (!bmap.containsKey(string)) {
System.out.println("b miss " + string);
} else if (bmap.get(string).size() > 1) {
List<Boolean> ackList = bmap.get(string);
for (int i = 0; i < ackList.size(); i++) {
if (ackList.get(i).booleanValue() && i < ackList.size()-1) {
System.out.println("b reapeat " + string);
}
}
}
}
for (String string : toC) {
if (!cmap.containsKey(string)) {
System.out.println("c miss " + string);
} else if (cmap.get(string).size() > 1) {
List<Boolean> ackList = cmap.get(string);
for (int i = 0; i < ackList.size(); i++) {
if (ackList.get(i).booleanValue() && i < ackList.size()-1) {
System.out.println("c reapeat " + string);
}
}
}
}
System.out.println("finish ");
System.exit(0);
}
}

View File

@@ -0,0 +1,27 @@
package com.alibaba.middleware.race.momtest;
import java.util.Date;
public class TestResult {
private boolean isSuccess=true;
private String info;
public boolean isSuccess() {
return isSuccess;
}
public void setSuccess(boolean isSuccess) {
this.isSuccess = isSuccess;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public String toString() {
return "result:"+isSuccess+", info:"+info;
}
public static void main(String[] args) {
System.out.println(new Date(1436787640930L));
}
}

View File

@@ -0,0 +1,255 @@
package com.alibaba.middleware.race.momtest;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.InetAddress;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.atomic.AtomicLong;
/**
* @author huangshang
*
*/
public class UniqId {
private static char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
private static Map<Character, Integer> rDigits = new HashMap<Character, Integer>(16);
static {
for (int i = 0; i < digits.length; ++i) {
rDigits.put(digits[i], i);
}
}
private static UniqId me = new UniqId();
private String hostAddr;
private final Random random = new Random();
private final static ThreadLocal<MessageDigest> mHasher = new ThreadLocal<MessageDigest>();
private final UniqTimer timer = new UniqTimer();
// private final ReentrantLock opLock = new ReentrantLock();
private UniqId() {
try {
InetAddress addr = InetAddress.getLocalHost();
this.hostAddr = addr.getHostAddress();
}
catch (IOException e) {
this.hostAddr = String.valueOf(System.currentTimeMillis());
}
if (this.hostAddr==null||hostAddr.isEmpty() || "127.0.0.1".equals(this.hostAddr)) {
this.hostAddr = String.valueOf(System.currentTimeMillis());
}
}
/**
* <20><>ȡUniqIDʵ<44><CAB5>
*
* @return UniqId
*/
public static UniqId getInstance() {
return me;
}
/**
* <20><>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD>
*
* @return
*/
public long getUniqTime() {
return this.timer.getCurrentTime();
}
/**
* <20><><EFBFBD>UniqId
*
* @return uniqTime-randomNum-hostAddr-threadId
*/
public String getUniqID() {
StringBuffer sb = new StringBuffer();
long t = this.timer.getCurrentTime();
sb.append(t);
sb.append("-");
sb.append(this.random.nextInt(8999) + 1000);
sb.append("-");
sb.append(this.hostAddr);
sb.append("-");
sb.append(Thread.currentThread().hashCode());
return sb.toString();
}
/**
* <20><>ȡMD5֮<35><D6AE><EFBFBD>uniqId string
*
* @return uniqId md5 string
*/
public String getUniqIDHashString() {
return this.hashString(this.getUniqID());
}
/**
* <20><>ȡMD5֮<35><D6AE><EFBFBD>uniqId
*
* @return byte[16]
*/
public byte[] getUniqIDHash() {
return this.hash(this.getUniqID());
}
private static MessageDigest getHasher() {
if (mHasher.get() != null) {
return mHasher.get();
} else {
MessageDigest tempHasher = null;
try {
tempHasher = MessageDigest.getInstance("MD5");
} catch (NoSuchAlgorithmException nex) {
// FIXME shenxun: in this case , tempHasher will be null , then
// all the other methods will throw NPE .
tempHasher = null;
}
mHasher.set(tempHasher);
}
return mHasher.get();
}
/**
* <20><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>md5
*
* @param str
* @return md5 byte[16]
*/
public byte[] hash(String str) {
try {
byte[] bt = getHasher().digest(str.getBytes("UTF-8"));
if (null == bt || bt.length != 16) {
throw new IllegalArgumentException("md5 need");
}
return bt;
}
catch (UnsupportedEncodingException e) {
throw new RuntimeException("unsupported utf-8 encoding", e);
}
}
/**
* <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD>md5
*
* @param str
* @return md5 byte[16]
*/
public byte[] hash(byte[] data) {
byte[] bt = getHasher().digest(data);
if (null == bt || bt.length != 16) {
throw new IllegalArgumentException("md5 need");
}
return bt;
}
/**
* <20><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>md5 string
*
* @param str
* @return md5 string
*/
public String hashString(String str) {
byte[] bt = this.hash(str);
return this.bytes2string(bt);
}
/**
* <20><><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>md5 string
*
* @param str
* @return md5 string
*/
public String hashBytes(byte[] str) {
byte[] bt = this.hash(str);
return this.bytes2string(bt);
}
/**
* <20><>һ<EFBFBD><D2BB><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
*
* @param bt
* @return
*/
public String bytes2string(byte[] bt) {
if (bt == null) {
return null;
}
int l = bt.length;
char[] out = new char[l << 1];
for (int i = 0, j = 0; i < l; i++) {
out[j++] = digits[(0xF0 & bt[i]) >>> 4];
out[j++] = digits[0x0F & bt[i]];
}
return new String(out);
}
/**
* <20><><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>ת<EFBFBD><D7AA>Ϊbytes
*
* @param str
* @return byte[]
*/
public byte[] string2bytes(String str) {
if (null == str) {
throw new NullPointerException("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>");
}
if (str.length() != 32) {
throw new IllegalArgumentException("<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32");
}
byte[] data = new byte[16];
char[] chs = str.toCharArray();
for (int i = 0; i < 16; ++i) {
int h = rDigits.get(chs[i * 2]).intValue();
int l = rDigits.get(chs[i * 2 + 1]).intValue();
data[i] = (byte) ((h & 0x0F) << 4 | l & 0x0F);
}
return data;
}
/**
* ʵ<>ֲ<EFBFBD><D6B2>ظ<EFBFBD><D8B8><EFBFBD>ʱ<EFBFBD><CAB1>
*
* @author dogun
*/
private static class UniqTimer {
private final AtomicLong lastTime = new AtomicLong(System.currentTimeMillis());
public long getCurrentTime() {
return this.lastTime.incrementAndGet();
}
}
}

12
momtest/src/main/main.iml Normal file
View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/java" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="middleware-mom-1.0" level="project" />
</component>
</module>

13
src/main/main1.iml Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/java" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="middleware-mom-1.01" level="project" />
<orderEntry type="library" name="lib" level="project" />
</component>
</module>

13
src/test/test.iml Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/java" isTestSource="true" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="middleware-mom-1.01" level="project" />
<orderEntry type="library" name="lib" level="project" />
</component>
</module>

Some files were not shown because too many files have changed in this diff Show More