Compare commits
6 Commits
http_avro_
...
develop
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ecb608f94f | ||
|
|
37d3d2c60c | ||
|
|
ed72afa6b0 | ||
|
|
6c536289e0 | ||
|
|
be38915890 | ||
|
|
2273acd47c |
3
.idea/.gitignore
generated
vendored
3
.idea/.gitignore
generated
vendored
@@ -6,3 +6,6 @@
|
|||||||
/dataSources.local.xml
|
/dataSources.local.xml
|
||||||
# Editor-based HTTP Client requests
|
# Editor-based HTTP Client requests
|
||||||
/httpRequests/
|
/httpRequests/
|
||||||
|
../yb_http_avro_sink_file/target/
|
||||||
|
../yb_http_avro_sink_file/src/test/
|
||||||
|
./libraries/
|
||||||
|
|||||||
10
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
10
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<profile version="1.0">
|
||||||
|
<option name="myName" value="Project Default" />
|
||||||
|
<inspection_tool class="DuplicatedCode" enabled="true" level="WEAK WARNING" enabled_by_default="true">
|
||||||
|
<Languages>
|
||||||
|
<language minSize="53" name="Java" />
|
||||||
|
</Languages>
|
||||||
|
</inspection_tool>
|
||||||
|
</profile>
|
||||||
|
</component>
|
||||||
5
.idea/jarRepositories.xml
generated
5
.idea/jarRepositories.xml
generated
@@ -26,5 +26,10 @@
|
|||||||
<option name="name" value="JBoss Community repository" />
|
<option name="name" value="JBoss Community repository" />
|
||||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||||
</remote-repository>
|
</remote-repository>
|
||||||
|
<remote-repository>
|
||||||
|
<option name="id" value="central" />
|
||||||
|
<option name="name" value="Central Repository" />
|
||||||
|
<option name="url" value="https://maven.aliyun.com/repository/public" />
|
||||||
|
</remote-repository>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.101tec:zkclient:0.10">
|
<library name="Maven: com.101tec:zkclient:0.10">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/101tec/zkclient/0.10/zkclient-0.10.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/101tec/zkclient/0.10/zkclient-0.10.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/101tec/zkclient/0.10/zkclient-0.10-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/101tec/zkclient/0.10/zkclient-0.10-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/101tec/zkclient/0.10/zkclient-0.10-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/101tec/zkclient/0.10/zkclient-0.10-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.alibaba:fastjson:1.2.47">
|
<library name="Maven: com.alibaba:fastjson:1.2.47">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.47/fastjson-1.2.47.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/alibaba/fastjson/1.2.47/fastjson-1.2.47.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.47/fastjson-1.2.47-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/alibaba/fastjson/1.2.47/fastjson-1.2.47-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/alibaba/fastjson/1.2.47/fastjson-1.2.47-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/alibaba/fastjson/1.2.47/fastjson-1.2.47-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.5">
|
<library name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.5">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.9.5/jackson-annotations-2.9.5.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/fasterxml/jackson/core/jackson-annotations/2.9.5/jackson-annotations-2.9.5.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.9.5/jackson-annotations-2.9.5-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/fasterxml/jackson/core/jackson-annotations/2.9.5/jackson-annotations-2.9.5-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-annotations/2.9.5/jackson-annotations-2.9.5-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/fasterxml/jackson/core/jackson-annotations/2.9.5/jackson-annotations-2.9.5-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.5">
|
<library name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.5">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/fasterxml/jackson/core/jackson-core/2.9.5/jackson-core-2.9.5-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.1">
|
<library name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.1">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.9.1/jackson-databind-2.9.1.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/fasterxml/jackson/core/jackson-databind/2.9.1/jackson-databind-2.9.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.9.1/jackson-databind-2.9.1-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/fasterxml/jackson/core/jackson-databind/2.9.1/jackson-databind-2.9.1-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.9.1/jackson-databind-2.9.1-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/fasterxml/jackson/core/jackson-databind/2.9.1/jackson-databind-2.9.1-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.google.code.gson:gson:2.2.2">
|
<library name="Maven: com.google.code.gson:gson:2.2.2">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.2.2/gson-2.2.2.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/google/code/gson/gson/2.2.2/gson-2.2.2.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.2.2/gson-2.2.2-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/google/code/gson/gson/2.2.2/gson-2.2.2-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/gson/gson/2.2.2/gson-2.2.2-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/google/code/gson/gson/2.2.2/gson-2.2.2-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.google.guava:guava:18.0">
|
<library name="Maven: com.google.guava:guava:18.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/18.0/guava-18.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/google/guava/guava/18.0/guava-18.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/18.0/guava-18.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/google/guava/guava/18.0/guava-18.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/google/guava/guava/18.0/guava-18.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/google/guava/guava/18.0/guava-18.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.maxmind.db:maxmind-db:1.2.2">
|
<library name="Maven: com.maxmind.db:maxmind-db:1.2.2">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/maxmind/db/maxmind-db/1.2.2/maxmind-db-1.2.2.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/maxmind/db/maxmind-db/1.2.2/maxmind-db-1.2.2.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/maxmind/db/maxmind-db/1.2.2/maxmind-db-1.2.2-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/maxmind/db/maxmind-db/1.2.2/maxmind-db-1.2.2-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/maxmind/db/maxmind-db/1.2.2/maxmind-db-1.2.2-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/maxmind/db/maxmind-db/1.2.2/maxmind-db-1.2.2-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.maxmind.geoip2:geoip2:2.12.0">
|
<library name="Maven: com.maxmind.geoip2:geoip2:2.12.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/maxmind/geoip2/geoip2/2.12.0/geoip2-2.12.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/maxmind/geoip2/geoip2/2.12.0/geoip2-2.12.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/maxmind/geoip2/geoip2/2.12.0/geoip2-2.12.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/maxmind/geoip2/geoip2/2.12.0/geoip2-2.12.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/maxmind/geoip2/geoip2/2.12.0/geoip2-2.12.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/maxmind/geoip2/geoip2/2.12.0/geoip2-2.12.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.maxmind.geoip:geoip-api:1.3.1">
|
<library name="Maven: com.maxmind.geoip:geoip-api:1.3.1">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/maxmind/geoip/geoip-api/1.3.1/geoip-api-1.3.1.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/maxmind/geoip/geoip-api/1.3.1/geoip-api-1.3.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/maxmind/geoip/geoip-api/1.3.1/geoip-api-1.3.1-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/maxmind/geoip/geoip-api/1.3.1/geoip-api-1.3.1-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/maxmind/geoip/geoip-api/1.3.1/geoip-api-1.3.1-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/maxmind/geoip/geoip-api/1.3.1/geoip-api-1.3.1-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.squareup.okhttp3:okhttp:3.9.0">
|
<library name="Maven: com.squareup.okhttp3:okhttp:3.9.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/squareup/okhttp3/okhttp/3.9.0/okhttp-3.9.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/squareup/okhttp3/okhttp/3.9.0/okhttp-3.9.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/squareup/okhttp3/okhttp/3.9.0/okhttp-3.9.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/squareup/okhttp3/okhttp/3.9.0/okhttp-3.9.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/squareup/okhttp3/okhttp/3.9.0/okhttp-3.9.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/squareup/okhttp3/okhttp/3.9.0/okhttp-3.9.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.squareup.okhttp:okhttp:2.4.0">
|
<library name="Maven: com.squareup.okhttp:okhttp:2.4.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/squareup/okhttp/okhttp/2.4.0/okhttp-2.4.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/squareup/okhttp/okhttp/2.4.0/okhttp-2.4.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/squareup/okhttp/okhttp/2.4.0/okhttp-2.4.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/squareup/okhttp/okhttp/2.4.0/okhttp-2.4.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/squareup/okhttp/okhttp/2.4.0/okhttp-2.4.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/squareup/okhttp/okhttp/2.4.0/okhttp-2.4.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.squareup.okio:okio:1.13.0">
|
<library name="Maven: com.squareup.okio:okio:1.13.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/squareup/okio/okio/1.13.0/okio-1.13.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/squareup/okio/okio/1.13.0/okio-1.13.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/squareup/okio/okio/1.13.0/okio-1.13.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/squareup/okio/okio/1.13.0/okio-1.13.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/squareup/okio/okio/1.13.0/okio-1.13.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.squareup.retrofit:retrofit:1.9.0">
|
<library name="Maven: com.squareup.retrofit:retrofit:1.9.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/squareup/retrofit/retrofit/1.9.0/retrofit-1.9.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/squareup/retrofit/retrofit/1.9.0/retrofit-1.9.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/squareup/retrofit/retrofit/1.9.0/retrofit-1.9.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/squareup/retrofit/retrofit/1.9.0/retrofit-1.9.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/squareup/retrofit/retrofit/1.9.0/retrofit-1.9.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/squareup/retrofit/retrofit/1.9.0/retrofit-1.9.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.thoughtworks.paranamer:paranamer:2.3">
|
<library name="Maven: com.thoughtworks.paranamer:paranamer:2.3">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/thoughtworks/paranamer/paranamer/2.3/paranamer-2.3-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.yammer.metrics:metrics-core:2.2.0">
|
<library name="Maven: com.yammer.metrics:metrics-core:2.2.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/yammer/metrics/metrics-core/2.2.0/metrics-core-2.2.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/yammer/metrics/metrics-core/2.2.0/metrics-core-2.2.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/yammer/metrics/metrics-core/2.2.0/metrics-core-2.2.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/yammer/metrics/metrics-core/2.2.0/metrics-core-2.2.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/yammer/metrics/metrics-core/2.2.0/metrics-core-2.2.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/yammer/metrics/metrics-core/2.2.0/metrics-core-2.2.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: com.zdjizhi:galaxy:1.0.1">
|
<library name="Maven: com.zdjizhi:galaxy:1.0.1">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/zdjizhi/galaxy/1.0.1/galaxy-1.0.1.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/zdjizhi/galaxy/1.0.1/galaxy-1.0.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/zdjizhi/galaxy/1.0.1/galaxy-1.0.1-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/zdjizhi/galaxy/1.0.1/galaxy-1.0.1-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/com/zdjizhi/galaxy/1.0.1/galaxy-1.0.1-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/com/zdjizhi/galaxy/1.0.1/galaxy-1.0.1-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: commons-cli:commons-cli:1.2">
|
<library name="Maven: commons-cli:commons-cli:1.2">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-cli/commons-cli/1.2/commons-cli-1.2.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-cli/commons-cli/1.2/commons-cli-1.2.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-cli/commons-cli/1.2/commons-cli-1.2-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-cli/commons-cli/1.2/commons-cli-1.2-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-cli/commons-cli/1.2/commons-cli-1.2-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-cli/commons-cli/1.2/commons-cli-1.2-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: commons-codec:commons-codec:1.8">
|
<library name="Maven: commons-codec:commons-codec:1.8">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.8/commons-codec-1.8.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-codec/commons-codec/1.8/commons-codec-1.8.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.8/commons-codec-1.8-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-codec/commons-codec/1.8/commons-codec-1.8-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.8/commons-codec-1.8-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-codec/commons-codec/1.8/commons-codec-1.8-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: commons-collections:commons-collections:3.2.1">
|
<library name="Maven: commons-collections:commons-collections:3.2.1">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: commons-io:commons-io:2.4">
|
<library name="Maven: commons-io:commons-io:2.4">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.4/commons-io-2.4.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-io/commons-io/2.4/commons-io-2.4.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.4/commons-io-2.4-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-io/commons-io/2.4/commons-io-2.4-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-io/commons-io/2.4/commons-io-2.4-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-io/commons-io/2.4/commons-io-2.4-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: commons-lang:commons-lang:2.6">
|
<library name="Maven: commons-lang:commons-lang:2.6">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-lang/commons-lang/2.6/commons-lang-2.6.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-lang/commons-lang/2.6/commons-lang-2.6-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-lang/commons-lang/2.6/commons-lang-2.6-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: commons-logging:commons-logging:1.2">
|
<library name="Maven: commons-logging:commons-logging:1.2">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-logging/commons-logging/1.2/commons-logging-1.2.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-logging/commons-logging/1.2/commons-logging-1.2-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/commons-logging/commons-logging/1.2/commons-logging-1.2-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: io.netty:netty:3.10.6.Final">
|
<library name="Maven: io.netty:netty:3.10.6.Final">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty/3.10.6.Final/netty-3.10.6.Final.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/io/netty/netty/3.10.6.Final/netty-3.10.6.Final.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty/3.10.6.Final/netty-3.10.6.Final-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/io/netty/netty/3.10.6.Final/netty-3.10.6.Final-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/io/netty/netty/3.10.6.Final/netty-3.10.6.Final-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/io/netty/netty/3.10.6.Final/netty-3.10.6.Final-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: javax.servlet:javax.servlet-api:3.1.0">
|
<library name="Maven: javax.servlet:javax.servlet-api:3.1.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: joda-time:joda-time:2.9.9">
|
<library name="Maven: joda-time:joda-time:2.9.9">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/joda-time/joda-time/2.9.9/joda-time-2.9.9.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/joda-time/joda-time/2.9.9/joda-time-2.9.9.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/joda-time/joda-time/2.9.9/joda-time-2.9.9-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/joda-time/joda-time/2.9.9/joda-time-2.9.9-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/joda-time/joda-time/2.9.9/joda-time-2.9.9-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/joda-time/joda-time/2.9.9/joda-time-2.9.9-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
13
.idea/libraries/Maven__junit_junit_3_8_1.xml
generated
13
.idea/libraries/Maven__junit_junit_3_8_1.xml
generated
@@ -1,13 +0,0 @@
|
|||||||
<component name="libraryTable">
|
|
||||||
<library name="Maven: junit:junit:3.8.1">
|
|
||||||
<CLASSES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/3.8.1/junit-3.8.1.jar!/" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/3.8.1/junit-3.8.1-javadoc.jar!/" />
|
|
||||||
</JAVADOC>
|
|
||||||
<SOURCES>
|
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/3.8.1/junit-3.8.1-sources.jar!/" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</component>
|
|
||||||
13
.idea/libraries/Maven__junit_junit_4_12.xml
generated
Normal file
13
.idea/libraries/Maven__junit_junit_4_12.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: junit:junit:4.12">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/junit/junit/4.12/junit-4.12.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/junit/junit/4.12/junit-4.12-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/junit/junit/4.12/junit-4.12-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
6
.idea/libraries/Maven__log4j_log4j_1_2_14.xml
generated
6
.idea/libraries/Maven__log4j_log4j_1_2_14.xml
generated
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: log4j:log4j:1.2.14">
|
<library name="Maven: log4j:log4j:1.2.14">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.14/log4j-1.2.14.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/log4j/log4j/1.2.14/log4j-1.2.14.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.14/log4j-1.2.14-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/log4j/log4j/1.2.14/log4j-1.2.14-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.14/log4j-1.2.14-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/log4j/log4j/1.2.14/log4j-1.2.14-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: net.sf.jopt-simple:jopt-simple:5.0.4">
|
<library name="Maven: net.sf.jopt-simple:jopt-simple:5.0.4">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/net/sf/jopt-simple/jopt-simple/5.0.4/jopt-simple-5.0.4-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.avro:avro:1.7.4">
|
<library name="Maven: org.apache.avro:avro:1.7.4">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/avro/avro/1.7.4/avro-1.7.4.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/avro/avro/1.7.4/avro-1.7.4.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/avro/avro/1.7.4/avro-1.7.4-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/avro/avro/1.7.4/avro-1.7.4-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/avro/avro/1.7.4/avro-1.7.4-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/avro/avro/1.7.4/avro-1.7.4-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.avro:avro-ipc:1.7.4">
|
<library name="Maven: org.apache.avro:avro-ipc:1.7.4">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/avro/avro-ipc/1.7.4/avro-ipc-1.7.4.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/avro/avro-ipc/1.7.4/avro-ipc-1.7.4.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/avro/avro-ipc/1.7.4/avro-ipc-1.7.4-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/avro/avro-ipc/1.7.4/avro-ipc-1.7.4-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/avro/avro-ipc/1.7.4/avro-ipc-1.7.4-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/avro/avro-ipc/1.7.4/avro-ipc-1.7.4-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.avro:avro-tools:1.7.4">
|
<library name="Maven: org.apache.avro:avro-tools:1.7.4">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/avro/avro-tools/1.7.4/avro-tools-1.7.4.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/avro/avro-tools/1.7.4/avro-tools-1.7.4.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/avro/avro-tools/1.7.4/avro-tools-1.7.4-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/avro/avro-tools/1.7.4/avro-tools-1.7.4-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/avro/avro-tools/1.7.4/avro-tools-1.7.4-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/avro/avro-tools/1.7.4/avro-tools-1.7.4-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.commons:commons-compress:1.4.1">
|
<library name="Maven: org.apache.commons:commons-compress:1.4.1">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.commons:commons-lang3:3.4">
|
<library name="Maven: org.apache.commons:commons-lang3:3.4">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.flume:flume-ng-auth:1.9.0">
|
<library name="Maven: org.apache.flume:flume-ng-auth:1.9.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-auth/1.9.0/flume-ng-auth-1.9.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-auth/1.9.0/flume-ng-auth-1.9.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-auth/1.9.0/flume-ng-auth-1.9.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-auth/1.9.0/flume-ng-auth-1.9.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-auth/1.9.0/flume-ng-auth-1.9.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-auth/1.9.0/flume-ng-auth-1.9.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.flume.flume-ng-configfilters:flume-ng-config-filter-api:1.9.0">
|
<library name="Maven: org.apache.flume.flume-ng-configfilters:flume-ng-config-filter-api:1.9.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-configfilters/flume-ng-config-filter-api/1.9.0/flume-ng-config-filter-api-1.9.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-configfilters/flume-ng-config-filter-api/1.9.0/flume-ng-config-filter-api-1.9.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-configfilters/flume-ng-config-filter-api/1.9.0/flume-ng-config-filter-api-1.9.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-configfilters/flume-ng-config-filter-api/1.9.0/flume-ng-config-filter-api-1.9.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-configfilters/flume-ng-config-filter-api/1.9.0/flume-ng-config-filter-api-1.9.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-configfilters/flume-ng-config-filter-api/1.9.0/flume-ng-config-filter-api-1.9.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.flume:flume-ng-configuration:1.9.0">
|
<library name="Maven: org.apache.flume:flume-ng-configuration:1.9.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-configuration/1.9.0/flume-ng-configuration-1.9.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-configuration/1.9.0/flume-ng-configuration-1.9.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-configuration/1.9.0/flume-ng-configuration-1.9.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-configuration/1.9.0/flume-ng-configuration-1.9.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-configuration/1.9.0/flume-ng-configuration-1.9.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-configuration/1.9.0/flume-ng-configuration-1.9.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.flume:flume-ng-core:1.9.0">
|
<library name="Maven: org.apache.flume:flume-ng-core:1.9.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-core/1.9.0/flume-ng-core-1.9.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-core/1.9.0/flume-ng-core-1.9.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-core/1.9.0/flume-ng-core-1.9.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-core/1.9.0/flume-ng-core-1.9.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-core/1.9.0/flume-ng-core-1.9.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-core/1.9.0/flume-ng-core-1.9.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.flume:flume-ng-sdk:1.9.0">
|
<library name="Maven: org.apache.flume:flume-ng-sdk:1.9.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-sdk/1.9.0/flume-ng-sdk-1.9.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-sdk/1.9.0/flume-ng-sdk-1.9.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-sdk/1.9.0/flume-ng-sdk-1.9.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-sdk/1.9.0/flume-ng-sdk-1.9.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/flume/flume-ng-sdk/1.9.0/flume-ng-sdk-1.9.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/flume/flume-ng-sdk/1.9.0/flume-ng-sdk-1.9.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.httpcomponents:httpasyncclient:4.1.3">
|
<library name="Maven: org.apache.httpcomponents:httpasyncclient:4.1.3">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpasyncclient/4.1.3/httpasyncclient-4.1.3.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpasyncclient/4.1.3/httpasyncclient-4.1.3.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpasyncclient/4.1.3/httpasyncclient-4.1.3-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpasyncclient/4.1.3/httpasyncclient-4.1.3-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpasyncclient/4.1.3/httpasyncclient-4.1.3-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpasyncclient/4.1.3/httpasyncclient-4.1.3-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.httpcomponents:httpclient:4.5.2">
|
<library name="Maven: org.apache.httpcomponents:httpclient:4.5.2">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpclient/4.5.2/httpclient-4.5.2-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.httpcomponents:httpcore:4.4.6">
|
<library name="Maven: org.apache.httpcomponents:httpcore:4.4.6">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpcore/4.4.6/httpcore-4.4.6-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.httpcomponents:httpcore-nio:4.4.6">
|
<library name="Maven: org.apache.httpcomponents:httpcore-nio:4.4.6">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore-nio/4.4.6/httpcore-nio-4.4.6.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpcore-nio/4.4.6/httpcore-nio-4.4.6.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore-nio/4.4.6/httpcore-nio-4.4.6-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpcore-nio/4.4.6/httpcore-nio-4.4.6-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpcore-nio/4.4.6/httpcore-nio-4.4.6-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpcore-nio/4.4.6/httpcore-nio-4.4.6-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.httpcomponents:httpmime:4.3.1">
|
<library name="Maven: org.apache.httpcomponents:httpmime:4.3.1">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpmime/4.3.1/httpmime-4.3.1.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpmime/4.3.1/httpmime-4.3.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpmime/4.3.1/httpmime-4.3.1-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpmime/4.3.1/httpmime-4.3.1-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpmime/4.3.1/httpmime-4.3.1-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/httpcomponents/httpmime/4.3.1/httpmime-4.3.1-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.kafka:kafka_2.11:1.0.0">
|
<library name="Maven: org.apache.kafka:kafka_2.11:1.0.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/kafka/kafka_2.11/1.0.0/kafka_2.11-1.0.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/kafka/kafka_2.11/1.0.0/kafka_2.11-1.0.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/kafka/kafka_2.11/1.0.0/kafka_2.11-1.0.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/kafka/kafka_2.11/1.0.0/kafka_2.11-1.0.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/kafka/kafka_2.11/1.0.0/kafka_2.11-1.0.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/kafka/kafka_2.11/1.0.0/kafka_2.11-1.0.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.kafka:kafka-clients:1.0.0">
|
<library name="Maven: org.apache.kafka:kafka-clients:1.0.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/kafka/kafka-clients/1.0.0/kafka-clients-1.0.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/kafka/kafka-clients/1.0.0/kafka-clients-1.0.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/kafka/kafka-clients/1.0.0/kafka-clients-1.0.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/kafka/kafka-clients/1.0.0/kafka-clients-1.0.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/kafka/kafka-clients/1.0.0/kafka-clients-1.0.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/kafka/kafka-clients/1.0.0/kafka-clients-1.0.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.mina:mina-core:2.0.4">
|
<library name="Maven: org.apache.mina:mina-core:2.0.4">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/mina/mina-core/2.0.4/mina-core-2.0.4.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/mina/mina-core/2.0.4/mina-core-2.0.4.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/mina/mina-core/2.0.4/mina-core-2.0.4-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/mina/mina-core/2.0.4/mina-core-2.0.4-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/mina/mina-core/2.0.4/mina-core-2.0.4-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/mina/mina-core/2.0.4/mina-core-2.0.4-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.thrift:libthrift:0.9.3">
|
<library name="Maven: org.apache.thrift:libthrift:0.9.3">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/thrift/libthrift/0.9.3/libthrift-0.9.3.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/thrift/libthrift/0.9.3/libthrift-0.9.3.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/thrift/libthrift/0.9.3/libthrift-0.9.3-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/thrift/libthrift/0.9.3/libthrift-0.9.3-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/thrift/libthrift/0.9.3/libthrift-0.9.3-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/thrift/libthrift/0.9.3/libthrift-0.9.3-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.velocity:velocity:1.7">
|
<library name="Maven: org.apache.velocity:velocity:1.7">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/velocity/velocity/1.7/velocity-1.7.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/velocity/velocity/1.7/velocity-1.7.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/velocity/velocity/1.7/velocity-1.7-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/velocity/velocity/1.7/velocity-1.7-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/velocity/velocity/1.7/velocity-1.7-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/velocity/velocity/1.7/velocity-1.7-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.apache.zookeeper:zookeeper:3.4.10">
|
<library name="Maven: org.apache.zookeeper:zookeeper:3.4.10">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/zookeeper/zookeeper/3.4.10/zookeeper-3.4.10.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/zookeeper/zookeeper/3.4.10/zookeeper-3.4.10.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/zookeeper/zookeeper/3.4.10/zookeeper-3.4.10-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/zookeeper/zookeeper/3.4.10/zookeeper-3.4.10-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/apache/zookeeper/zookeeper/3.4.10/zookeeper-3.4.10-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/apache/zookeeper/zookeeper/3.4.10/zookeeper-3.4.10-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.codehaus.jackson:jackson-core-asl:1.8.8">
|
<library name="Maven: org.codehaus.jackson:jackson-core-asl:1.8.8">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-core-asl/1.8.8/jackson-core-asl-1.8.8.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/codehaus/jackson/jackson-core-asl/1.8.8/jackson-core-asl-1.8.8.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-core-asl/1.8.8/jackson-core-asl-1.8.8-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/codehaus/jackson/jackson-core-asl/1.8.8/jackson-core-asl-1.8.8-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-core-asl/1.8.8/jackson-core-asl-1.8.8-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/codehaus/jackson/jackson-core-asl/1.8.8/jackson-core-asl-1.8.8-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.codehaus.jackson:jackson-mapper-asl:1.8.8">
|
<library name="Maven: org.codehaus.jackson:jackson-mapper-asl:1.8.8">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-mapper-asl/1.8.8/jackson-mapper-asl-1.8.8.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/codehaus/jackson/jackson-mapper-asl/1.8.8/jackson-mapper-asl-1.8.8.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-mapper-asl/1.8.8/jackson-mapper-asl-1.8.8-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/codehaus/jackson/jackson-mapper-asl/1.8.8/jackson-mapper-asl-1.8.8-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jackson/jackson-mapper-asl/1.8.8/jackson-mapper-asl-1.8.8-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/codehaus/jackson/jackson-mapper-asl/1.8.8/jackson-mapper-asl-1.8.8-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.eclipse.jetty:jetty-http:9.4.6.v20170531">
|
<library name="Maven: org.eclipse.jetty:jetty-http:9.4.6.v20170531">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-http/9.4.6.v20170531/jetty-http-9.4.6.v20170531.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-http/9.4.6.v20170531/jetty-http-9.4.6.v20170531.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-http/9.4.6.v20170531/jetty-http-9.4.6.v20170531-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-http/9.4.6.v20170531/jetty-http-9.4.6.v20170531-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-http/9.4.6.v20170531/jetty-http-9.4.6.v20170531-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-http/9.4.6.v20170531/jetty-http-9.4.6.v20170531-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.eclipse.jetty:jetty-io:9.4.6.v20170531">
|
<library name="Maven: org.eclipse.jetty:jetty-io:9.4.6.v20170531">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-io/9.4.6.v20170531/jetty-io-9.4.6.v20170531.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-io/9.4.6.v20170531/jetty-io-9.4.6.v20170531.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-io/9.4.6.v20170531/jetty-io-9.4.6.v20170531-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-io/9.4.6.v20170531/jetty-io-9.4.6.v20170531-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-io/9.4.6.v20170531/jetty-io-9.4.6.v20170531-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-io/9.4.6.v20170531/jetty-io-9.4.6.v20170531-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.eclipse.jetty:jetty-jmx:9.4.6.v20170531">
|
<library name="Maven: org.eclipse.jetty:jetty-jmx:9.4.6.v20170531">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-jmx/9.4.6.v20170531/jetty-jmx-9.4.6.v20170531.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-jmx/9.4.6.v20170531/jetty-jmx-9.4.6.v20170531.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-jmx/9.4.6.v20170531/jetty-jmx-9.4.6.v20170531-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-jmx/9.4.6.v20170531/jetty-jmx-9.4.6.v20170531-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-jmx/9.4.6.v20170531/jetty-jmx-9.4.6.v20170531-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-jmx/9.4.6.v20170531/jetty-jmx-9.4.6.v20170531-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.eclipse.jetty:jetty-security:9.4.6.v20170531">
|
<library name="Maven: org.eclipse.jetty:jetty-security:9.4.6.v20170531">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-security/9.4.6.v20170531/jetty-security-9.4.6.v20170531.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-security/9.4.6.v20170531/jetty-security-9.4.6.v20170531.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-security/9.4.6.v20170531/jetty-security-9.4.6.v20170531-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-security/9.4.6.v20170531/jetty-security-9.4.6.v20170531-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-security/9.4.6.v20170531/jetty-security-9.4.6.v20170531-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-security/9.4.6.v20170531/jetty-security-9.4.6.v20170531-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.eclipse.jetty:jetty-server:9.4.6.v20170531">
|
<library name="Maven: org.eclipse.jetty:jetty-server:9.4.6.v20170531">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-server/9.4.6.v20170531/jetty-server-9.4.6.v20170531.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-server/9.4.6.v20170531/jetty-server-9.4.6.v20170531.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-server/9.4.6.v20170531/jetty-server-9.4.6.v20170531-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-server/9.4.6.v20170531/jetty-server-9.4.6.v20170531-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-server/9.4.6.v20170531/jetty-server-9.4.6.v20170531-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-server/9.4.6.v20170531/jetty-server-9.4.6.v20170531-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.eclipse.jetty:jetty-servlet:9.4.6.v20170531">
|
<library name="Maven: org.eclipse.jetty:jetty-servlet:9.4.6.v20170531">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-servlet/9.4.6.v20170531/jetty-servlet-9.4.6.v20170531.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-servlet/9.4.6.v20170531/jetty-servlet-9.4.6.v20170531.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-servlet/9.4.6.v20170531/jetty-servlet-9.4.6.v20170531-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-servlet/9.4.6.v20170531/jetty-servlet-9.4.6.v20170531-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-servlet/9.4.6.v20170531/jetty-servlet-9.4.6.v20170531-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-servlet/9.4.6.v20170531/jetty-servlet-9.4.6.v20170531-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.eclipse.jetty:jetty-util:9.4.6.v20170531">
|
<library name="Maven: org.eclipse.jetty:jetty-util:9.4.6.v20170531">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-util/9.4.6.v20170531/jetty-util-9.4.6.v20170531.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-util/9.4.6.v20170531/jetty-util-9.4.6.v20170531.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-util/9.4.6.v20170531/jetty-util-9.4.6.v20170531-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-util/9.4.6.v20170531/jetty-util-9.4.6.v20170531-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/eclipse/jetty/jetty-util/9.4.6.v20170531/jetty-util-9.4.6.v20170531-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/eclipse/jetty/jetty-util/9.4.6.v20170531/jetty-util-9.4.6.v20170531-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
13
.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
generated
Normal file
13
.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_3.xml
generated
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: org.hamcrest:hamcrest-core:1.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.influxdb:influxdb-java:2.1">
|
<library name="Maven: org.influxdb:influxdb-java:2.1">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/influxdb/influxdb-java/2.1/influxdb-java-2.1.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/influxdb/influxdb-java/2.1/influxdb-java-2.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/influxdb/influxdb-java/2.1/influxdb-java-2.1-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/influxdb/influxdb-java/2.1/influxdb-java-2.1-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/influxdb/influxdb-java/2.1/influxdb-java-2.1-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/influxdb/influxdb-java/2.1/influxdb-java-2.1-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
6
.idea/libraries/Maven__org_lz4_lz4_java_1_4.xml
generated
6
.idea/libraries/Maven__org_lz4_lz4_java_1_4.xml
generated
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.lz4:lz4-java:1.4">
|
<library name="Maven: org.lz4:lz4-java:1.4">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/lz4/lz4-java/1.4/lz4-java-1.4.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/lz4/lz4-java/1.4/lz4-java-1.4.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/lz4/lz4-java/1.4/lz4-java-1.4-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/lz4/lz4-java/1.4/lz4-java-1.4-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/lz4/lz4-java/1.4/lz4-java-1.4-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/lz4/lz4-java/1.4/lz4-java-1.4-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.mockito:mockito-all:1.10.19">
|
<library name="Maven: org.mockito:mockito-all:1.10.19">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-all/1.10.19/mockito-all-1.10.19.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/mockito/mockito-all/1.10.19/mockito-all-1.10.19.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-all/1.10.19/mockito-all-1.10.19-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/mockito/mockito-all/1.10.19/mockito-all-1.10.19-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mockito/mockito-all/1.10.19/mockito-all-1.10.19-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/mockito/mockito-all/1.10.19/mockito-all-1.10.19-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.mortbay.jetty:jetty:6.1.26">
|
<library name="Maven: org.mortbay.jetty:jetty:6.1.26">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.mortbay.jetty:jetty-util:6.1.26">
|
<library name="Maven: org.mortbay.jetty:jetty-util:6.1.26">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.scala-lang:scala-library:2.11.11">
|
<library name="Maven: org.scala-lang:scala-library:2.11.11">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.11.11/scala-library-2.11.11.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/scala-lang/scala-library/2.11.11/scala-library-2.11.11.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.11.11/scala-library-2.11.11-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/scala-lang/scala-library/2.11.11/scala-library-2.11.11-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.11.11/scala-library-2.11.11-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/scala-lang/scala-library/2.11.11/scala-library-2.11.11-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.slf4j:slf4j-api:1.7.25">
|
<library name="Maven: org.slf4j:slf4j-api:1.7.25">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/slf4j/slf4j-api/1.7.25/slf4j-api-1.7.25-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
6
.idea/libraries/Maven__org_tukaani_xz_1_0.xml
generated
6
.idea/libraries/Maven__org_tukaani_xz_1_0.xml
generated
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.tukaani:xz:1.0">
|
<library name="Maven: org.tukaani:xz:1.0">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/tukaani/xz/1.0/xz-1.0.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/tukaani/xz/1.0/xz-1.0.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/tukaani/xz/1.0/xz-1.0-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/tukaani/xz/1.0/xz-1.0-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/tukaani/xz/1.0/xz-1.0-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/tukaani/xz/1.0/xz-1.0-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: org.xerial.snappy:snappy-java:1.1.4">
|
<library name="Maven: org.xerial.snappy:snappy-java:1.1.4">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/xerial/snappy/snappy-java/1.1.4/snappy-java-1.1.4.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/xerial/snappy/snappy-java/1.1.4/snappy-java-1.1.4.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/xerial/snappy/snappy-java/1.1.4/snappy-java-1.1.4-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/xerial/snappy/snappy-java/1.1.4/snappy-java-1.1.4-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/org/xerial/snappy/snappy-java/1.1.4/snappy-java-1.1.4-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/org/xerial/snappy/snappy-java/1.1.4/snappy-java-1.1.4-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
<component name="libraryTable">
|
<component name="libraryTable">
|
||||||
<library name="Maven: tech.allegro.schema.json2avro:converter:0.2.5">
|
<library name="Maven: tech.allegro.schema.json2avro:converter:0.2.5">
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/tech/allegro/schema/json2avro/converter/0.2.5/converter-0.2.5.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/tech/allegro/schema/json2avro/converter/0.2.5/converter-0.2.5.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC>
|
<JAVADOC>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/tech/allegro/schema/json2avro/converter/0.2.5/converter-0.2.5-javadoc.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/tech/allegro/schema/json2avro/converter/0.2.5/converter-0.2.5-javadoc.jar!/" />
|
||||||
</JAVADOC>
|
</JAVADOC>
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
<root url="jar://$MAVEN_REPOSITORY$/tech/allegro/schema/json2avro/converter/0.2.5/converter-0.2.5-sources.jar!/" />
|
<root url="jar://$PROJECT_DIR$/../../storage/maven_repo/tech/allegro/schema/json2avro/converter/0.2.5/converter-0.2.5-sources.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</component>
|
</component>
|
||||||
@@ -204,12 +204,6 @@
|
|||||||
<!--<artifactId>junit</artifactId>-->
|
<!--<artifactId>junit</artifactId>-->
|
||||||
<!--<scope>test</scope>-->
|
<!--<scope>test</scope>-->
|
||||||
<!--</dependency>-->
|
<!--</dependency>-->
|
||||||
<dependency>
|
|
||||||
<groupId>junit</groupId>
|
|
||||||
<artifactId>junit</artifactId>
|
|
||||||
<version>3.8.1</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!--<dependency>-->
|
<!--<dependency>-->
|
||||||
<!--<groupId>org.slf4j</groupId>-->
|
<!--<groupId>org.slf4j</groupId>-->
|
||||||
@@ -343,6 +337,12 @@
|
|||||||
<artifactId>guava</artifactId>
|
<artifactId>guava</artifactId>
|
||||||
<version>18.0</version>
|
<version>18.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>junit</groupId>
|
||||||
|
<artifactId>junit</artifactId>
|
||||||
|
<version>4.12</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!--<dependency>-->
|
<!--<dependency>-->
|
||||||
<!--<groupId>org.influxdb</groupId>-->
|
<!--<groupId>org.influxdb</groupId>-->
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ public class GetDataDictionaryCodeByTopicUtils {
|
|||||||
case "NTC-COLLECT-HTTP-LOG":
|
case "NTC-COLLECT-HTTP-LOG":
|
||||||
case "NTC-COLLECT-SSL-LOG":
|
case "NTC-COLLECT-SSL-LOG":
|
||||||
case "NTC-COLLECT-DNS-LOG":
|
case "NTC-COLLECT-DNS-LOG":
|
||||||
|
case "NTC-COLLECT-HTTP-HDR-LOG":
|
||||||
case "NTC-COLLECT-FILE-LOG"://此时没有数据对象,数据对象类型选择1-log日志
|
case "NTC-COLLECT-FILE-LOG"://此时没有数据对象,数据对象类型选择1-log日志
|
||||||
return 1;
|
return 1;
|
||||||
/**
|
/**
|
||||||
@@ -69,6 +70,7 @@ public class GetDataDictionaryCodeByTopicUtils {
|
|||||||
case "NTC-COLLECT-HTTP-LOG":
|
case "NTC-COLLECT-HTTP-LOG":
|
||||||
case "NTC-COLLECT-SSL-LOG":
|
case "NTC-COLLECT-SSL-LOG":
|
||||||
case "NTC-COLLECT-DNS-LOG":
|
case "NTC-COLLECT-DNS-LOG":
|
||||||
|
case "NTC-COLLECT-HTTP-HDR-LOG":
|
||||||
case "NTC-COLLECT-FTP-DOC-LOG":
|
case "NTC-COLLECT-FTP-DOC-LOG":
|
||||||
case "NTC-COLLECT-HTTP-DOC-LOG":
|
case "NTC-COLLECT-HTTP-DOC-LOG":
|
||||||
case "NTC-COLLECT-HTTP-AV-LOG"://20200810新增,等同于NTC-COLLECT-HTTP-DOC-LOG
|
case "NTC-COLLECT-HTTP-AV-LOG"://20200810新增,等同于NTC-COLLECT-HTTP-DOC-LOG
|
||||||
@@ -109,6 +111,8 @@ public class GetDataDictionaryCodeByTopicUtils {
|
|||||||
return 4;
|
return 4;
|
||||||
case "NTC-COLLECT-DNS-LOG":
|
case "NTC-COLLECT-DNS-LOG":
|
||||||
return 5;
|
return 5;
|
||||||
|
case "NTC-COLLECT-HTTP-HDR-LOG":
|
||||||
|
return 6;
|
||||||
/**
|
/**
|
||||||
* 文件消息-file
|
* 文件消息-file
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -25,6 +25,8 @@ public class GetFilePathByTopicUtils {
|
|||||||
return "-";
|
return "-";
|
||||||
case "NTC-COLLECT-DNS-LOG":
|
case "NTC-COLLECT-DNS-LOG":
|
||||||
return "-";
|
return "-";
|
||||||
|
case "NTC-COLLECT-HTTP-HDR-LOG":
|
||||||
|
return "-";
|
||||||
/**
|
/**
|
||||||
* 文件消息
|
* 文件消息
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,30 +1,22 @@
|
|||||||
package cn.ac.iie.cusflume.sink.CommonUtils;
|
package cn.ac.iie.cusflume.sink.CommonUtils;
|
||||||
|
|
||||||
import cn.ac.iie.cusflume.sink.HttpAsyncUtils.HttpClientFactory;
|
|
||||||
import cn.ac.iie.cusflume.sink.HttpAsyncUtils.HttpClientUtil;
|
import cn.ac.iie.cusflume.sink.HttpAsyncUtils.HttpClientUtil;
|
||||||
import cn.ac.iie.cusflume.sink.HttpAsyncUtils.msgCallBack.AsyncPostMsgCallBack;
|
|
||||||
import cn.ac.iie.cusflume.sink.avroUtils.MD5Utils;
|
import cn.ac.iie.cusflume.sink.avroUtils.MD5Utils;
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import org.apache.http.HttpHeaders;
|
import org.apache.http.HttpHeaders;
|
||||||
import org.apache.http.HttpResponse;
|
import org.apache.http.HttpResponse;
|
||||||
import org.apache.http.client.ClientProtocolException;
|
import org.apache.http.client.ClientProtocolException;
|
||||||
import org.apache.http.client.ResponseHandler;
|
import org.apache.http.client.ResponseHandler;
|
||||||
import org.apache.http.client.config.RequestConfig;
|
import org.apache.http.client.config.RequestConfig;
|
||||||
import org.apache.http.client.methods.HttpPost;
|
import org.apache.http.client.methods.HttpPost;
|
||||||
import org.apache.http.client.methods.HttpRequestBase;
|
|
||||||
import org.apache.http.entity.ByteArrayEntity;
|
import org.apache.http.entity.ByteArrayEntity;
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.impl.client.HttpClients;
|
||||||
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
||||||
import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
|
|
||||||
import org.apache.http.protocol.HTTP;
|
|
||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
import org.mortbay.log.Log;
|
import org.mortbay.log.Log;
|
||||||
import scala.util.Try;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.MalformedURLException;
|
|
||||||
|
|
||||||
public class HttpClientTest {
|
public class HttpClientTest {
|
||||||
|
|
||||||
|
|||||||
@@ -1,232 +0,0 @@
|
|||||||
package cn.ac.iie.cusflume.sink.CommonUtils;
|
|
||||||
|
|
||||||
import cn.ac.iie.cusflume.sink.YbHttpAvroSinkFile;
|
|
||||||
import cn.ac.iie.cusflume.sink.avroUtils.AvroMonitorTimerTask;
|
|
||||||
import cn.ac.iie.cusflume.sink.bean.redirectBean.ResRedirBody;
|
|
||||||
import cn.ac.iie.cusflume.sink.daoUtils.RealtimeCountConfig;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.zdjizhi.utils.StringUtil;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.apache.http.*;
|
|
||||||
import org.apache.http.client.ClientProtocolException;
|
|
||||||
import org.apache.http.client.HttpRequestRetryHandler;
|
|
||||||
import org.apache.http.client.config.RequestConfig;
|
|
||||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
||||||
import org.apache.http.client.methods.HttpPost;
|
|
||||||
import org.apache.http.client.protocol.HttpClientContext;
|
|
||||||
import org.apache.http.conn.ConnectTimeoutException;
|
|
||||||
import org.apache.http.conn.ConnectionKeepAliveStrategy;
|
|
||||||
import org.apache.http.entity.ByteArrayEntity;
|
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
|
||||||
import org.apache.http.impl.client.HttpClients;
|
|
||||||
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
|
||||||
import org.apache.http.message.BasicHeaderElementIterator;
|
|
||||||
import org.apache.http.protocol.HTTP;
|
|
||||||
import org.apache.http.util.EntityUtils;
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
import org.mortbay.log.Log;
|
|
||||||
|
|
||||||
import javax.net.ssl.SSLException;
|
|
||||||
import javax.net.ssl.SSLHandshakeException;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InterruptedIOException;
|
|
||||||
import java.net.UnknownHostException;
|
|
||||||
|
|
||||||
public class SinkHttpClientUtil {
|
|
||||||
private static Logger LOG = Logger.getLogger(SinkHttpClientUtil.class);
|
|
||||||
/** 全局连接池对象 */
|
|
||||||
private static final PoolingHttpClientConnectionManager connManager =
|
|
||||||
new PoolingHttpClientConnectionManager();
|
|
||||||
public static final String DEFAULT_CHARSET = "utf-8";
|
|
||||||
private static int socketTimeout = RealtimeCountConfig.HTTP_ASYNC_SOCKETTIMEOUT;//设置等待数据超时时间60秒钟 根据业务调整
|
|
||||||
private static int connectTimeout = RealtimeCountConfig.HTTP_ASYNC_CONNECTTIMEOUT;//连接超时
|
|
||||||
private static int poolSize = RealtimeCountConfig.HTTP_ASYNC_POOLSIZE;//连接池最大连接数
|
|
||||||
private static int maxPerRoute = RealtimeCountConfig.HTTP_ASYNC_MAXPERROUTE;//每个主机的并发最多只有1500
|
|
||||||
private static int connectionRequestTimeout = RealtimeCountConfig.HTTP_ASYNC_CONNECTIONREQUESTTIMEOUT; //从连接池中后去连接的timeout时间
|
|
||||||
|
|
||||||
|
|
||||||
static {
|
|
||||||
connManager.setMaxTotal(poolSize);
|
|
||||||
connManager.setDefaultMaxPerRoute(maxPerRoute);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static CloseableHttpClient getHttpClient() {
|
|
||||||
RequestConfig requestConfig = RequestConfig.custom()
|
|
||||||
// 获取连接超时时间
|
|
||||||
.setConnectionRequestTimeout(connectionRequestTimeout)
|
|
||||||
// 请求超时时间
|
|
||||||
.setConnectTimeout(connectTimeout)
|
|
||||||
// 响应超时时间
|
|
||||||
.setSocketTimeout(socketTimeout)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 测出超时重试机制为了防止超时不生效而设置
|
|
||||||
* 如果直接放回false,不重试
|
|
||||||
* 这里会根据情况进行判断是否重试
|
|
||||||
*/
|
|
||||||
HttpRequestRetryHandler retry = (exception, executionCount, context) -> {
|
|
||||||
if (executionCount >= 3) {// 如果已经重试了3次,就放弃
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (exception instanceof NoHttpResponseException) {// 如果服务器丢掉了连接,那么就重试
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (exception instanceof SSLHandshakeException) {// 不要重试SSL握手异常
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (exception instanceof InterruptedIOException) {// 超时
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
if (exception instanceof UnknownHostException) {// 目标服务器不可达
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (exception instanceof ConnectTimeoutException) {// 连接被拒绝
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (exception instanceof SSLException) {// ssl握手异常
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
HttpClientContext clientContext = HttpClientContext.adapt(context);
|
|
||||||
HttpRequest request = clientContext.getRequest();
|
|
||||||
// 如果请求是幂等的,就再次尝试
|
|
||||||
if (!(request instanceof HttpEntityEnclosingRequest)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
ConnectionKeepAliveStrategy myStrategy = (response, context) -> {
|
|
||||||
HeaderElementIterator it = new BasicHeaderElementIterator
|
|
||||||
(response.headerIterator(HTTP.CONN_KEEP_ALIVE));
|
|
||||||
while (it.hasNext()) {
|
|
||||||
HeaderElement he = it.nextElement();
|
|
||||||
String param = he.getName();
|
|
||||||
String value = he.getValue();
|
|
||||||
if (value != null && param.equalsIgnoreCase("timeout")) {
|
|
||||||
return Long.parseLong(value) * 1000;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 60 * 1000;//如果没有约定,则默认定义时长为60s
|
|
||||||
};
|
|
||||||
|
|
||||||
// 创建httpClient
|
|
||||||
return HttpClients.custom()
|
|
||||||
// 把请求相关的超时信息设置到连接客户端
|
|
||||||
.setDefaultRequestConfig(requestConfig)
|
|
||||||
// 把请求重试设置到连接客户端
|
|
||||||
.setRetryHandler(retry)
|
|
||||||
.setKeepAliveStrategy(myStrategy)
|
|
||||||
// 配置连接池管理对象
|
|
||||||
.setConnectionManager(connManager)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static void httpPost(String url, byte[] requestBody, int batchSize, Header... headers) {
|
|
||||||
String msg = "-1";
|
|
||||||
// 获取客户端连接对象
|
|
||||||
CloseableHttpClient httpClient = getHttpClient();
|
|
||||||
// 创建POST请求对象
|
|
||||||
CloseableHttpResponse response = null;
|
|
||||||
try {
|
|
||||||
HttpPost httpPost = new HttpPost(url);
|
|
||||||
httpPost.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE);
|
|
||||||
httpPost.setHeader("Content-Type", "application/json");
|
|
||||||
if (StringUtil.isNotEmpty(headers)) {
|
|
||||||
for (Header h : headers) {
|
|
||||||
httpPost.addHeader(h);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ByteArrayEntity payload = new ByteArrayEntity(requestBody);
|
|
||||||
payload.setContentEncoding("utf-8");
|
|
||||||
httpPost.setEntity(payload);
|
|
||||||
long startTime = System.currentTimeMillis();
|
|
||||||
response = httpClient.execute(httpPost);
|
|
||||||
int statusCode = response.getStatusLine().getStatusCode();
|
|
||||||
// 获取响应实体
|
|
||||||
HttpEntity entity = response.getEntity();
|
|
||||||
// 获取响应信息
|
|
||||||
msg = EntityUtils.toString(entity, "UTF-8");
|
|
||||||
Log.warn(Thread.currentThread().getName() + ",请求响应用时(ms):" + (System.currentTimeMillis() - startTime));
|
|
||||||
if (statusCode != HttpStatus.SC_OK ) {
|
|
||||||
AvroMonitorTimerTask.addSuccessNum(batchSize);
|
|
||||||
LOG.info("数据总线响应内容:" + msg);
|
|
||||||
} else {
|
|
||||||
AvroMonitorTimerTask.addFailedNum(batchSize);
|
|
||||||
LOG.error("数据总线反馈出错:" + statusCode + ",msg" + msg);
|
|
||||||
|
|
||||||
switch (statusCode) {
|
|
||||||
case 300:
|
|
||||||
LOG.info("AsyncPostMsgCallBack==>重定向响应体-redirect-ret==>"
|
|
||||||
+ ",resRedirBodyCode:300,当前服务节点负载过高,将向其他通信地址发送请求.");
|
|
||||||
//若不包含对应字段,则不进行对象转换,减少报错
|
|
||||||
if (msg.contains("redirect")) {
|
|
||||||
ResRedirBody resRedirBody = JSONObject.parseObject(msg, ResRedirBody.class);
|
|
||||||
String redirectUrl = resRedirBody.getData().getRedirect();
|
|
||||||
if (StringUtils.isNotBlank(redirectUrl)) {
|
|
||||||
YbHttpAvroSinkFile.changeUrl(redirectUrl);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
LOG.error("AsyncPostMsgCallBack==>服务端响应体中ResRedirBody.data.redirect字段不存在或格式不正确!!!");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
break;
|
|
||||||
case 301:
|
|
||||||
LOG.error("AsyncPostMsgCallBack==>Status Code:" + statusCode +
|
|
||||||
",resRedirBodyCode:301,当前所有服务端节点均负载过高,暂无可用资源,请等待.");
|
|
||||||
break;
|
|
||||||
case 410:
|
|
||||||
LOG.error("AsyncPostMsgCallBack==>Status Code:" + statusCode
|
|
||||||
+ "服务端响应时间(ms)==>" + "<==,"
|
|
||||||
+ ",resRedirBodyCode:410,Cookie已过期或Cookie错误,将开始更新Cookie.");
|
|
||||||
YbHttpAvroSinkFile.updateCookie();
|
|
||||||
break;
|
|
||||||
case 500:
|
|
||||||
LOG.error("AsyncPostMsgCallBack==>Status Code:" + statusCode
|
|
||||||
+ "服务端响应时间(ms)==>" + "<==,"
|
|
||||||
+ ",resRedirBodyCode:500,处理请求过程出现系统错误.");
|
|
||||||
YbHttpAvroSinkFile.updateCookie();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
LOG.error("AsyncPostMsgCallBack==>数据加载失败,响应体:" + "<==,"
|
|
||||||
+ "---Status Code:" + statusCode );
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} catch (ClientProtocolException e) {
|
|
||||||
LOG.error("协议错误: {}", e);
|
|
||||||
} catch (ParseException e) {
|
|
||||||
LOG.error("解析错误: {}", e);
|
|
||||||
} catch (IOException e) {
|
|
||||||
LOG.error("IO错误: {}", e);
|
|
||||||
} finally {
|
|
||||||
if (null != response) {
|
|
||||||
try {
|
|
||||||
EntityUtils.consumeQuietly(response.getEntity());
|
|
||||||
response.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
LOG.error("释放链接错误: {}", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -52,7 +52,7 @@ public class AsyncHttpClientGetFileCallback implements FutureCallback<HttpRespon
|
|||||||
public AsyncHttpClientGetFileCallback(ConfigInfo configInfo, String getFileUrl, String sendMsg, AsyncHttpClientPostFileCallback asyncHttpClientPostFileCallback, int count) {
|
public AsyncHttpClientGetFileCallback(ConfigInfo configInfo, String getFileUrl, String sendMsg, AsyncHttpClientPostFileCallback asyncHttpClientPostFileCallback, int count) {
|
||||||
this.configInfo = configInfo;
|
this.configInfo = configInfo;
|
||||||
this.postFileUrl = configInfo.getPostFileUrl();//通过configInfo赋值
|
this.postFileUrl = configInfo.getPostFileUrl();//通过configInfo赋值
|
||||||
this.postMsgUrl = configInfo.getPostMsgUrl();//通过configInfo赋值
|
this.postMsgUrl = configInfo.getSingleProduceUrl();//通过configInfo赋值
|
||||||
this.getFileUrl = getFileUrl;
|
this.getFileUrl = getFileUrl;
|
||||||
this.sendMsg = sendMsg;
|
this.sendMsg = sendMsg;
|
||||||
this.asyncHttpClientPostFileCallback = asyncHttpClientPostFileCallback;
|
this.asyncHttpClientPostFileCallback = asyncHttpClientPostFileCallback;
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public class AsyncHttpClientPostFileCallback implements FutureCallback<HttpRespo
|
|||||||
public AsyncHttpClientPostFileCallback(ConfigInfo configInfo, String sendMsg, int count) {
|
public AsyncHttpClientPostFileCallback(ConfigInfo configInfo, String sendMsg, int count) {
|
||||||
this.configInfo = configInfo;
|
this.configInfo = configInfo;
|
||||||
this.postFileUrl = configInfo.getPostFileUrl();
|
this.postFileUrl = configInfo.getPostFileUrl();
|
||||||
this.postMsgUrl = configInfo.getPostMsgUrl();
|
this.postMsgUrl = configInfo.getSingleProduceUrl();
|
||||||
this.sendMsg = sendMsg;//存放对应于url的数据
|
this.sendMsg = sendMsg;//存放对应于url的数据
|
||||||
this.count = count;
|
this.count = count;
|
||||||
|
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ public class HttpAsyncClient {
|
|||||||
private CloseableHttpAsyncClient proxyAsyncHttpClient;
|
private CloseableHttpAsyncClient proxyAsyncHttpClient;
|
||||||
|
|
||||||
public HttpAsyncClient() {
|
public HttpAsyncClient() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
this.asyncHttpClient = createAsyncClient(false);
|
this.asyncHttpClient = createAsyncClient(false);
|
||||||
this.proxyAsyncHttpClient = createAsyncClient(true);
|
this.proxyAsyncHttpClient = createAsyncClient(true);
|
||||||
@@ -131,7 +132,7 @@ public class HttpAsyncClient {
|
|||||||
.register("https", new SSLIOSessionStrategy(sslcontext, NoopHostnameVerifier.INSTANCE))
|
.register("https", new SSLIOSessionStrategy(sslcontext, NoopHostnameVerifier.INSTANCE))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// 配置io线程\
|
// 配置io线程
|
||||||
IOReactorConfig ioReactorConfig = IOReactorConfig.custom()
|
IOReactorConfig ioReactorConfig = IOReactorConfig.custom()
|
||||||
.setSoKeepAlive(true)
|
.setSoKeepAlive(true)
|
||||||
.setTcpNoDelay(true)
|
.setTcpNoDelay(true)
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ import cn.ac.iie.cusflume.sink.CommonUtils.GetDataDictionaryCodeByTopicUtils;
|
|||||||
import cn.ac.iie.cusflume.sink.CommonUtils.GetFilePathByTopicUtils;
|
import cn.ac.iie.cusflume.sink.CommonUtils.GetFilePathByTopicUtils;
|
||||||
import cn.ac.iie.cusflume.sink.CommonUtils.HttpClientTest;
|
import cn.ac.iie.cusflume.sink.CommonUtils.HttpClientTest;
|
||||||
import cn.ac.iie.cusflume.sink.HttpAsyncUtils.mail.AsyncPostMailFilesCallback;
|
import cn.ac.iie.cusflume.sink.HttpAsyncUtils.mail.AsyncPostMailFilesCallback;
|
||||||
import cn.ac.iie.cusflume.sink.HttpAsyncUtils.msgCallBack.AsyncPostMsgCallBack;
|
import cn.ac.iie.cusflume.sink.HttpAsyncUtils.msgCallBack.AsyncBatchMsgCallBack;
|
||||||
import cn.ac.iie.cusflume.sink.avroUtils.AvroMonitorTimerTask;
|
import cn.ac.iie.cusflume.sink.HttpAsyncUtils.msgCallBack.AsyncSingleMsgCallBack;
|
||||||
import cn.ac.iie.cusflume.sink.avroUtils.MD5Utils;
|
import cn.ac.iie.cusflume.sink.avroUtils.MD5Utils;
|
||||||
import cn.ac.iie.cusflume.sink.avroUtils.avroRecord.GetAvroRecordByTopicUtils;
|
import cn.ac.iie.cusflume.sink.avroUtils.avroRecord.GetAvroRecordByTopicUtils;
|
||||||
import cn.ac.iie.cusflume.sink.avroUtils.avroSchema.GetAvroSchemaByTopicUtils;
|
import cn.ac.iie.cusflume.sink.avroUtils.avroSchema.GetAvroSchemaByTopicUtils;
|
||||||
@@ -21,7 +21,6 @@ import org.apache.avro.io.DatumWriter;
|
|||||||
import org.apache.avro.io.EncoderFactory;
|
import org.apache.avro.io.EncoderFactory;
|
||||||
import org.apache.avro.specific.SpecificDatumWriter;
|
import org.apache.avro.specific.SpecificDatumWriter;
|
||||||
import org.apache.http.HttpEntity;
|
import org.apache.http.HttpEntity;
|
||||||
import org.apache.http.HttpResponse;
|
|
||||||
import org.apache.http.client.ClientProtocolException;
|
import org.apache.http.client.ClientProtocolException;
|
||||||
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
@@ -42,11 +41,12 @@ import org.apache.log4j.Logger;
|
|||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.ArrayBlockingQueue;
|
||||||
|
import java.util.concurrent.BlockingQueue;
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
@@ -55,347 +55,19 @@ import java.util.concurrent.Executors;
|
|||||||
* 执行请求发送
|
* 执行请求发送
|
||||||
*/
|
*/
|
||||||
public class HttpClientUtil {
|
public class HttpClientUtil {
|
||||||
|
private static HashMap<String, Schema> schemaHashMap = new HashMap<String, Schema>();//用于存放Schema
|
||||||
private static Logger LOG = Logger.getLogger(HttpClientUtil.class);
|
private static Logger logger = Logger.getLogger(HttpClientUtil.class);
|
||||||
|
|
||||||
protected static ExecutorService pool = Executors.newFixedThreadPool(RealtimeCountConfig.HTTP_ASYNC_PARALLELISM);//线程池
|
protected static ExecutorService pool = Executors.newFixedThreadPool(RealtimeCountConfig.HTTP_ASYNC_PARALLELISM);//线程池
|
||||||
|
|
||||||
private static String utf8Charset = "utf-8";
|
private final static BlockingQueue<String> retryQueue = new ArrayBlockingQueue(100000);
|
||||||
|
|
||||||
private static final MediaType JSON
|
//private static String utf8Charset = "utf-8";
|
||||||
= MediaType.parse("application/json; charset=utf-8");
|
|
||||||
|
|
||||||
/**
|
//private static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
|
||||||
* 向指定的url发送一次post请求,参数是List<NameValuePair>
|
|
||||||
*
|
|
||||||
* @param baseUrl 请求地址
|
|
||||||
* @param list 请求参数,格式是List<NameValuePair>
|
|
||||||
* @return 返回结果, 请求失败时返回null
|
|
||||||
* @apiNote http接口处用 @RequestParam接收参数
|
|
||||||
*/
|
|
||||||
public static String httpSyncPost(String baseUrl, List<BasicNameValuePair> list) {
|
|
||||||
|
|
||||||
CloseableHttpClient httpClient = HttpClientFactory.getInstance().getHttpSyncClientPool().getHttpClient();
|
public static BlockingQueue<String> getRetryQueue() {
|
||||||
HttpPost httpPost = new HttpPost(baseUrl);
|
return retryQueue;
|
||||||
|
|
||||||
//Parameters
|
|
||||||
LOG.info("==== Parameters ======" + list);
|
|
||||||
CloseableHttpResponse response = null;
|
|
||||||
try {
|
|
||||||
httpPost.setEntity(new UrlEncodedFormEntity(list));
|
|
||||||
// httpPost.setHeader("Connection","close");
|
|
||||||
response = httpClient.execute(httpPost);
|
|
||||||
LOG.info("========HttpResponseProxy:========" + response.getStatusLine());
|
|
||||||
HttpEntity entity = response.getEntity();
|
|
||||||
String result = null;
|
|
||||||
if (entity != null) {
|
|
||||||
result = EntityUtils.toString(entity, "UTF-8");
|
|
||||||
LOG.info("========Response=======" + result);
|
|
||||||
}
|
|
||||||
EntityUtils.consume(entity);
|
|
||||||
return result;
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
if (response != null) {
|
|
||||||
try {
|
|
||||||
response.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 向指定的url发送一次post请求,参数是字符串
|
|
||||||
*
|
|
||||||
* @param baseUrl 请求地址
|
|
||||||
* @param postString 请求参数,格式是json.toString()
|
|
||||||
* @return 返回结果, 请求失败时返回null
|
|
||||||
* @apiNote http接口处用 @RequestBody接收参数
|
|
||||||
*/
|
|
||||||
public static String httpSyncPost(String baseUrl, String postString) {
|
|
||||||
|
|
||||||
CloseableHttpClient httpClient = HttpClientFactory.getInstance().getHttpSyncClientPool().getHttpClient();
|
|
||||||
HttpPost httpPost = new HttpPost(baseUrl);
|
|
||||||
//parameters
|
|
||||||
LOG.warn("==== Parameters ======" + postString);
|
|
||||||
CloseableHttpResponse response = null;
|
|
||||||
try {
|
|
||||||
if (postString == null || "".equals(postString)) {
|
|
||||||
throw new Exception("missing post String");
|
|
||||||
}
|
|
||||||
|
|
||||||
StringEntity stringEntity = new StringEntity(postString.toString(), utf8Charset);
|
|
||||||
stringEntity.setContentEncoding("UTF-8");
|
|
||||||
stringEntity.setContentType("application/json");
|
|
||||||
httpPost.setEntity(stringEntity);
|
|
||||||
|
|
||||||
response = httpClient.execute(httpPost);
|
|
||||||
LOG.warn("========HttpResponseProxy:========" + response.getStatusLine());
|
|
||||||
HttpEntity entity = response.getEntity();
|
|
||||||
String result = null;
|
|
||||||
if (entity != null) {
|
|
||||||
result = EntityUtils.toString(entity, "UTF-8");
|
|
||||||
LOG.warn("========Response=======" + result);
|
|
||||||
}
|
|
||||||
EntityUtils.consume(entity);
|
|
||||||
return result;
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
if (response != null) {
|
|
||||||
try {
|
|
||||||
response.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 向指定的url发送一次get请求,参数是List<NameValuePair>
|
|
||||||
*
|
|
||||||
* @param baseUrl 请求地址
|
|
||||||
* @param list 请求参数,格式是List<NameValuePair>
|
|
||||||
* @return 返回结果, 请求失败时返回null
|
|
||||||
* @apiNote http接口处用 @RequestParam接收参数
|
|
||||||
*/
|
|
||||||
public static String httpSyncGet(String baseUrl, List<BasicNameValuePair> list) {
|
|
||||||
|
|
||||||
CloseableHttpClient httpClient = HttpClientFactory.getInstance().getHttpSyncClientPool().getHttpClient();
|
|
||||||
HttpGet httpGet = new HttpGet(baseUrl);
|
|
||||||
//Parameters
|
|
||||||
LOG.warn("==== Parameters ======" + list);
|
|
||||||
CloseableHttpResponse response = null;
|
|
||||||
try {
|
|
||||||
|
|
||||||
if (list != null) {
|
|
||||||
String getUrl = EntityUtils
|
|
||||||
.toString(new UrlEncodedFormEntity(list));
|
|
||||||
httpGet.setURI(new URI(httpGet.getURI().toString()
|
|
||||||
+ "?" + getUrl));
|
|
||||||
} else {
|
|
||||||
httpGet.setURI(new URI(httpGet.getURI().toString()));
|
|
||||||
}
|
|
||||||
|
|
||||||
response = httpClient.execute(httpGet);
|
|
||||||
LOG.warn("========HttpResponseProxy:========" + response.getStatusLine());
|
|
||||||
HttpEntity entity = response.getEntity();
|
|
||||||
String result = null;
|
|
||||||
if (entity != null) {
|
|
||||||
result = EntityUtils.toString(entity, "UTF-8");
|
|
||||||
LOG.warn("========Response=======" + result);
|
|
||||||
}
|
|
||||||
EntityUtils.consume(entity);
|
|
||||||
return result;
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
if (response != null) {
|
|
||||||
try {
|
|
||||||
response.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 向指定的url发送一次get请求,参数是字符串
|
|
||||||
*
|
|
||||||
* @param baseUrl 请求地址
|
|
||||||
* @param urlParams 请求参数,格式是String
|
|
||||||
* @return 返回结果, 请求失败时返回null
|
|
||||||
* @apiNote http接口处用 @RequestParam接收参数
|
|
||||||
*/
|
|
||||||
public static String httpSyncGet(String baseUrl, String urlParams) {
|
|
||||||
|
|
||||||
CloseableHttpClient httpClient = HttpClientFactory.getInstance().getHttpSyncClientPool().getHttpClient();
|
|
||||||
HttpGet httpGet = new HttpGet(baseUrl);
|
|
||||||
//Parameters
|
|
||||||
LOG.warn("==== Parameters ======" + urlParams);
|
|
||||||
CloseableHttpResponse response = null;
|
|
||||||
try {
|
|
||||||
|
|
||||||
if (null != urlParams || "".equals(urlParams)) {
|
|
||||||
|
|
||||||
httpGet.setURI(new URI(httpGet.getURI().toString()
|
|
||||||
+ "?" + urlParams));
|
|
||||||
} else {
|
|
||||||
httpGet.setURI(new URI(httpGet.getURI().toString()));
|
|
||||||
}
|
|
||||||
|
|
||||||
response = httpClient.execute(httpGet);
|
|
||||||
LOG.warn("========HttpResponseProxy:========" + response.getStatusLine());
|
|
||||||
HttpEntity entity = response.getEntity();
|
|
||||||
String result = null;
|
|
||||||
if (entity != null) {
|
|
||||||
result = EntityUtils.toString(entity, "UTF-8");
|
|
||||||
LOG.warn("========Response=======" + result);
|
|
||||||
}
|
|
||||||
EntityUtils.consume(entity);
|
|
||||||
return result;
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
if (response != null) {
|
|
||||||
try {
|
|
||||||
response.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 向指定的url发送一次get请求,参数是字符串
|
|
||||||
*
|
|
||||||
* @param baseUrl 请求地址
|
|
||||||
* @return 返回结果, 请求失败时返回null
|
|
||||||
* @apiNote http接口处用 @RequestParam接收参数
|
|
||||||
*/
|
|
||||||
public static String httpSyncGet(String baseUrl) {
|
|
||||||
|
|
||||||
CloseableHttpClient httpClient = HttpClientFactory.getInstance().getHttpSyncClientPool().getHttpClient();
|
|
||||||
HttpGet httpGet = new HttpGet(baseUrl);
|
|
||||||
|
|
||||||
CloseableHttpResponse response = null;
|
|
||||||
try {
|
|
||||||
httpGet.setURI(new URI(httpGet.getURI().toString()));
|
|
||||||
response = httpClient.execute(httpGet);
|
|
||||||
LOG.warn("========HttpResponseProxy:========" + response.getStatusLine());
|
|
||||||
HttpEntity entity = response.getEntity();
|
|
||||||
String result = null;
|
|
||||||
if (entity != null) {
|
|
||||||
result = EntityUtils.toString(entity, "UTF-8");
|
|
||||||
LOG.warn("========Response=======" + result);
|
|
||||||
}
|
|
||||||
EntityUtils.consume(entity);
|
|
||||||
return result;
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
if (response != null) {
|
|
||||||
try {
|
|
||||||
response.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 向指定的url发送一次异步post请求,参数是字符串
|
|
||||||
*
|
|
||||||
* @param baseUrl 请求地址
|
|
||||||
* @param postString 请求参数,格式是json.toString()
|
|
||||||
* @param urlParams 请求参数,格式是String
|
|
||||||
* @param callback 回调方法,格式是FutureCallback
|
|
||||||
* @return 返回结果, 请求失败时返回null
|
|
||||||
* @apiNote http接口处用 @RequestParam接收参数
|
|
||||||
*/
|
|
||||||
public static void httpAsyncPost(String baseUrl, String postString,
|
|
||||||
String urlParams, FutureCallback callback) throws Exception {
|
|
||||||
if (baseUrl == null || "".equals(baseUrl)) {
|
|
||||||
LOG.warn("we don't have base url, check config");
|
|
||||||
throw new Exception("missing base url");
|
|
||||||
}
|
|
||||||
CloseableHttpAsyncClient hc = HttpClientFactory.getInstance().getHttpAsyncClientPool()
|
|
||||||
.getAsyncHttpClient();
|
|
||||||
try {
|
|
||||||
hc.start();
|
|
||||||
HttpPost httpPost = new HttpPost(baseUrl);
|
|
||||||
|
|
||||||
// httpPost.setHeader("Connection","close");
|
|
||||||
|
|
||||||
if (null != postString) {
|
|
||||||
LOG.debug("exeAsyncReq post postBody={" + postString + "}");
|
|
||||||
StringEntity entity = new StringEntity(postString.toString(), utf8Charset);
|
|
||||||
entity.setContentEncoding("UTF-8");
|
|
||||||
entity.setContentType("application/json");
|
|
||||||
httpPost.setEntity(entity);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (null != urlParams) {
|
|
||||||
|
|
||||||
httpPost.setURI(new URI(httpPost.getURI().toString()
|
|
||||||
+ "?" + urlParams));
|
|
||||||
}
|
|
||||||
|
|
||||||
LOG.warn("exeAsyncReq getparams:" + httpPost.getURI());
|
|
||||||
|
|
||||||
hc.execute(httpPost, callback);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 向指定的url发送一次异步post请求,参数是字符串
|
|
||||||
*
|
|
||||||
* @param baseUrl 请求地址
|
|
||||||
* @param urlParams 请求参数,格式是List<BasicNameValuePair>
|
|
||||||
* @param callback 回调方法,格式是FutureCallback
|
|
||||||
* @return 返回结果, 请求失败时返回null
|
|
||||||
* @apiNote http接口处用 @RequestParam接收参数
|
|
||||||
*/
|
|
||||||
public static void httpAsyncPost(String baseUrl, List<BasicNameValuePair> postBody,
|
|
||||||
List<BasicNameValuePair> urlParams, FutureCallback callback) throws Exception {
|
|
||||||
if (baseUrl == null || "".equals(baseUrl)) {
|
|
||||||
LOG.warn("we don't have base url, check config");
|
|
||||||
throw new Exception("missing base url");
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
CloseableHttpAsyncClient hc = HttpClientFactory.getInstance().getHttpAsyncClientPool()
|
|
||||||
.getAsyncHttpClient();
|
|
||||||
|
|
||||||
hc.start();
|
|
||||||
|
|
||||||
HttpPost httpPost = new HttpPost(baseUrl);
|
|
||||||
|
|
||||||
// httpPost.setHeader("Connection","close");
|
|
||||||
|
|
||||||
if (null != postBody) {
|
|
||||||
LOG.debug("exeAsyncReq post postBody={" + postBody + "}");
|
|
||||||
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(
|
|
||||||
postBody, "UTF-8");
|
|
||||||
httpPost.setEntity(entity);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (null != urlParams) {
|
|
||||||
|
|
||||||
String getUrl = EntityUtils
|
|
||||||
.toString(new UrlEncodedFormEntity(urlParams));
|
|
||||||
|
|
||||||
httpPost.setURI(new URI(httpPost.getURI().toString()
|
|
||||||
+ "?" + getUrl));
|
|
||||||
}
|
|
||||||
|
|
||||||
LOG.warn("exeAsyncReq getparams:" + httpPost.getURI());
|
|
||||||
|
|
||||||
|
|
||||||
hc.execute(httpPost, callback);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -404,12 +76,11 @@ public class HttpClientUtil {
|
|||||||
*
|
*
|
||||||
* @param baseUrl 请求地址
|
* @param baseUrl 请求地址
|
||||||
* @param callback 回调方法,格式是FutureCallback
|
* @param callback 回调方法,格式是FutureCallback
|
||||||
* @return 返回结果, 请求失败时返回null
|
|
||||||
* @apiNote http接口处用 @RequestParam接收参数
|
* @apiNote http接口处用 @RequestParam接收参数
|
||||||
*/
|
*/
|
||||||
public static void httpAsyncPostFileToZx(String baseUrl, byte[] fileIs, AsyncHttpClientPostFileCallback callback) throws Exception {
|
public static void httpAsyncPostFileToZx(String baseUrl, byte[] fileIs, AsyncHttpClientPostFileCallback callback) throws Exception {
|
||||||
if (baseUrl == null || "".equals(baseUrl)) {
|
if (baseUrl == null || "".equals(baseUrl)) {
|
||||||
LOG.warn("we don't have base url, check config");
|
logger.warn("we don't have base url, check config");
|
||||||
throw new Exception("missing base url");
|
throw new Exception("missing base url");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -433,7 +104,7 @@ public class HttpClientUtil {
|
|||||||
if (null != fileIs) {
|
if (null != fileIs) {
|
||||||
httpPut.setEntity(new ByteArrayEntity(fileIs));
|
httpPut.setEntity(new ByteArrayEntity(fileIs));
|
||||||
}
|
}
|
||||||
LOG.info("File httpPut.getURI()===>>>" + httpPut.getURI());
|
logger.info("File httpPut.getURI()===>>>" + httpPut.getURI());
|
||||||
|
|
||||||
localContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore);
|
localContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore);
|
||||||
|
|
||||||
@@ -449,12 +120,11 @@ public class HttpClientUtil {
|
|||||||
*
|
*
|
||||||
* @param baseUrl 请求地址
|
* @param baseUrl 请求地址
|
||||||
* @param callback 回调方法,格式是FutureCallback
|
* @param callback 回调方法,格式是FutureCallback
|
||||||
* @return 返回结果, 请求失败时返回null
|
|
||||||
* @apiNote http接口处用 @RequestParam接收参数
|
* @apiNote http接口处用 @RequestParam接收参数
|
||||||
*/
|
*/
|
||||||
public static void httpAsyncPostFileToZx(String baseUrl, byte[] fileIs, AsyncPostMailFilesCallback callback) throws Exception {
|
public static void httpAsyncPostFileToZx(String baseUrl, byte[] fileIs, AsyncPostMailFilesCallback callback) throws Exception {
|
||||||
if (baseUrl == null || "".equals(baseUrl)) {
|
if (baseUrl == null || "".equals(baseUrl)) {
|
||||||
LOG.warn("we don't have base url, check config");
|
logger.warn("we don't have base url, check config");
|
||||||
throw new Exception("missing base url");
|
throw new Exception("missing base url");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -468,17 +138,15 @@ public class HttpClientUtil {
|
|||||||
|
|
||||||
HttpClientContext localContext = HttpClientContext.create();
|
HttpClientContext localContext = HttpClientContext.create();
|
||||||
BasicCookieStore cookieStore = new BasicCookieStore();
|
BasicCookieStore cookieStore = new BasicCookieStore();
|
||||||
|
|
||||||
httpPut = new HttpPut(baseUrl);
|
httpPut = new HttpPut(baseUrl);
|
||||||
|
|
||||||
|
|
||||||
// httpPost.setHeader("Transfer-Encoding","close");
|
// httpPost.setHeader("Transfer-Encoding","close");
|
||||||
// httpPost.setHeader("Content-Type", "binary/octet-stream");
|
// httpPost.setHeader("Content-Type", "binary/octet-stream");
|
||||||
httpPut.setHeader("Content-Type", "binary/octet-stream");
|
httpPut.setHeader("Content-Type", "binary/octet-stream");
|
||||||
if (null != fileIs) {
|
if (null != fileIs) {
|
||||||
httpPut.setEntity(new ByteArrayEntity(fileIs));
|
httpPut.setEntity(new ByteArrayEntity(fileIs));
|
||||||
}
|
}
|
||||||
LOG.info("File httpPut.getURI()===>>>" + httpPut.getURI());
|
logger.info("File httpPut.getURI()===>>>" + httpPut.getURI());
|
||||||
|
|
||||||
localContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore);
|
localContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore);
|
||||||
|
|
||||||
@@ -497,13 +165,12 @@ public class HttpClientUtil {
|
|||||||
*
|
*
|
||||||
* @param baseUrl 请求地址
|
* @param baseUrl 请求地址
|
||||||
* @param callback 回调方法,格式是FutureCallback
|
* @param callback 回调方法,格式是FutureCallback
|
||||||
* @return 返回结果, 请求失败时返回null
|
|
||||||
* @apiNote http接口处用 @RequestParam接收参数
|
* @apiNote http接口处用 @RequestParam接收参数
|
||||||
*/
|
*/
|
||||||
public static void httpAsyncGetFile(String baseUrl, FutureCallback callback) throws Exception {
|
public static void httpAsyncGetFile(String baseUrl, FutureCallback callback) throws Exception {
|
||||||
|
|
||||||
if (baseUrl == null || "".equals(baseUrl)) {
|
if (baseUrl == null || "".equals(baseUrl)) {
|
||||||
LOG.warn("we don't have base url, check config");
|
logger.warn("we don't have base url, check config");
|
||||||
throw new Exception("missing base url");
|
throw new Exception("missing base url");
|
||||||
}
|
}
|
||||||
CloseableHttpAsyncClient hc = HttpClientFactory.getInstance().getHttpAsyncClientPool().getAsyncHttpClient();
|
CloseableHttpAsyncClient hc = HttpClientFactory.getInstance().getHttpAsyncClientPool().getAsyncHttpClient();
|
||||||
@@ -523,7 +190,7 @@ public class HttpClientUtil {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
// LOG.info("exeAsyncReq getparams:" + httpGet.getURI());
|
// LOG.info("exeAsyncReq getparams:" + httpGet.getURI());
|
||||||
LOG.info("File httpGet.getURI()===>>>" + httpGet.getURI());
|
logger.info("File httpGet.getURI()===>>>" + httpGet.getURI());
|
||||||
hc.execute(httpGet, callback);
|
hc.execute(httpGet, callback);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -545,7 +212,7 @@ public class HttpClientUtil {
|
|||||||
public static void httpAsyncGet(String baseUrl, String urlParams, FutureCallback callback) throws Exception {
|
public static void httpAsyncGet(String baseUrl, String urlParams, FutureCallback callback) throws Exception {
|
||||||
|
|
||||||
if (baseUrl == null || "".equals(baseUrl)) {
|
if (baseUrl == null || "".equals(baseUrl)) {
|
||||||
LOG.warn("we don't have base url, check config");
|
logger.warn("we don't have base url, check config");
|
||||||
throw new Exception("missing base url");
|
throw new Exception("missing base url");
|
||||||
}
|
}
|
||||||
CloseableHttpAsyncClient hc = HttpClientFactory.getInstance().getHttpAsyncClientPool()
|
CloseableHttpAsyncClient hc = HttpClientFactory.getInstance().getHttpAsyncClientPool()
|
||||||
@@ -567,7 +234,7 @@ public class HttpClientUtil {
|
|||||||
httpGet.setURI(new URI(httpGet.getURI().toString()));
|
httpGet.setURI(new URI(httpGet.getURI().toString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG.warn("exeAsyncReq getparams:" + httpGet.getURI());
|
logger.warn("exeAsyncReq getparams:" + httpGet.getURI());
|
||||||
|
|
||||||
|
|
||||||
hc.execute(httpGet, callback);
|
hc.execute(httpGet, callback);
|
||||||
@@ -585,12 +252,11 @@ public class HttpClientUtil {
|
|||||||
* @param baseUrl 请求地址
|
* @param baseUrl 请求地址
|
||||||
* @param urlParams 请求参数,格式是List<BasicNameValuePair>
|
* @param urlParams 请求参数,格式是List<BasicNameValuePair>
|
||||||
* @param callback 回调方法,格式是FutureCallback
|
* @param callback 回调方法,格式是FutureCallback
|
||||||
* @return 返回结果, 请求失败时返回null
|
|
||||||
* @apiNote http接口处用 @RequestParam接收参数
|
* @apiNote http接口处用 @RequestParam接收参数
|
||||||
*/
|
*/
|
||||||
public static void httpAsyncGet(String baseUrl, List<BasicNameValuePair> urlParams, FutureCallback callback) throws Exception {
|
public static void httpAsyncGet(String baseUrl, List<BasicNameValuePair> urlParams, FutureCallback callback) throws Exception {
|
||||||
if (baseUrl == null || "".equals(baseUrl)) {
|
if (baseUrl == null || "".equals(baseUrl)) {
|
||||||
LOG.warn("we don't have base url, check config");
|
logger.warn("we don't have base url, check config");
|
||||||
throw new Exception("missing base url");
|
throw new Exception("missing base url");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -613,7 +279,7 @@ public class HttpClientUtil {
|
|||||||
+ "?" + getUrl));
|
+ "?" + getUrl));
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG.warn("exeAsyncReq getparams:" + httpGet.getURI());
|
logger.warn("exeAsyncReq getparams:" + httpGet.getURI());
|
||||||
|
|
||||||
|
|
||||||
hc.execute(httpGet, callback);
|
hc.execute(httpGet, callback);
|
||||||
@@ -624,126 +290,6 @@ public class HttpClientUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static String OkSyncPost(String url, String json) throws IOException {
|
|
||||||
|
|
||||||
OkHttpClient okClient = HttpClientFactory.getInstance().getOkClientPool().getHttpClient();
|
|
||||||
|
|
||||||
RequestBody body = RequestBody.create(JSON, json);
|
|
||||||
Request request = new Request.Builder()
|
|
||||||
.url(url)
|
|
||||||
.post(body)
|
|
||||||
.build();
|
|
||||||
try (Response response = okClient.newCall(request).execute()) {
|
|
||||||
|
|
||||||
return response.body().string();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void OkAsyncPost(String url, String json) throws IOException {
|
|
||||||
OkHttpClient okClient = HttpClientFactory.getInstance().getOkClientPool().getHttpClient();
|
|
||||||
|
|
||||||
RequestBody body = RequestBody.create(JSON, json);
|
|
||||||
Request request = new Request.Builder()
|
|
||||||
.url(url)
|
|
||||||
.post(body)
|
|
||||||
.build();
|
|
||||||
Call call = okClient.newCall(request);
|
|
||||||
call.enqueue(new Callback() {
|
|
||||||
@Override
|
|
||||||
public void onFailure(Call call, IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResponse(Call call, Response response) throws IOException {
|
|
||||||
|
|
||||||
LOG.warn("OkAsyncPost回调:" + response.body().string());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static void OkAsyncPost(String url, Map<String, String> map) throws IOException {
|
|
||||||
OkHttpClient okClient = HttpClientFactory.getInstance().getOkClientPool().getHttpClient();
|
|
||||||
|
|
||||||
FormBody.Builder formBodyBuilder = new FormBody.Builder();
|
|
||||||
for (Map.Entry<String, String> entry : map.entrySet()) {
|
|
||||||
formBodyBuilder.add(entry.getKey(), entry.getValue());
|
|
||||||
}
|
|
||||||
Request request = new Request.Builder()
|
|
||||||
.url(url)
|
|
||||||
.post(formBodyBuilder.build())
|
|
||||||
.build();
|
|
||||||
Call call = okClient.newCall(request);
|
|
||||||
call.enqueue(new Callback() {
|
|
||||||
@Override
|
|
||||||
public void onFailure(Call call, IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResponse(Call call, Response response) throws IOException {
|
|
||||||
|
|
||||||
LOG.warn("OkAsyncPost回调:" + response.body().string());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void OkAsyncPost(String url, Map<String, String> map, Callback callback) throws IOException {
|
|
||||||
OkHttpClient okClient = HttpClientFactory.getInstance().getOkClientPool().getHttpClient();
|
|
||||||
|
|
||||||
FormBody.Builder formBodyBuilder = new FormBody.Builder();
|
|
||||||
for (Map.Entry<String, String> entry : map.entrySet()) {
|
|
||||||
formBodyBuilder.add(entry.getKey(), entry.getValue());
|
|
||||||
}
|
|
||||||
|
|
||||||
Request request = new Request.Builder()
|
|
||||||
.url(url)
|
|
||||||
.post(formBodyBuilder.build())
|
|
||||||
.build();
|
|
||||||
Call call = okClient.newCall(request);
|
|
||||||
call.enqueue(callback);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String OkSyncGet(String url) throws IOException {
|
|
||||||
|
|
||||||
OkHttpClient okClient = HttpClientFactory.getInstance().getOkClientPool().getHttpClient();
|
|
||||||
|
|
||||||
Request request = new Request.Builder()
|
|
||||||
.url(url)
|
|
||||||
.build();
|
|
||||||
try (Response response = okClient.newCall(request).execute()) {
|
|
||||||
|
|
||||||
return response.body().string();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void OkAsyncGet(String url) throws IOException {
|
|
||||||
|
|
||||||
OkHttpClient okClient = HttpClientFactory.getInstance().getOkClientPool().getHttpClient();
|
|
||||||
|
|
||||||
Request request = new Request.Builder()
|
|
||||||
.url(url)
|
|
||||||
.build();
|
|
||||||
Call call = okClient.newCall(request);
|
|
||||||
call.enqueue(new Callback() {
|
|
||||||
@Override
|
|
||||||
public void onFailure(Call call, IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onResponse(Call call, Response response) throws IOException {
|
|
||||||
|
|
||||||
LOG.warn("OkAsyncGet回调:" + response.body().string());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取单个文件并传递单个文件时使用
|
* 获取单个文件并传递单个文件时使用
|
||||||
*
|
*
|
||||||
@@ -759,15 +305,17 @@ public class HttpClientUtil {
|
|||||||
httpAsyncGetFile(getFileUrl, callback);
|
httpAsyncGetFile(getFileUrl, callback);
|
||||||
// LOG.info(Thread.currentThread().getName() + "===>run====>>>" + "success,now time is" + System.currentTimeMillis());
|
// LOG.info(Thread.currentThread().getName() + "===>run====>>>" + "success,now time is" + System.currentTimeMillis());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOG.error("getFileAndPostFile multithreading is error===>" + e);
|
logger.error("getFileAndPostFile multithreading is error===>" + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOG.error("getFileAndPostFile method is error===>" + e);
|
logger.error("getFileAndPostFile method is error===>" + e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 对消息数据进行批量组装
|
* 对消息数据进行批量组装
|
||||||
* @param contents
|
* @param contents
|
||||||
@@ -815,90 +363,66 @@ public class HttpClientUtil {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void asyncProducerAvroMessageToZX(String urlProducer,String topic, byte[] results, String dataJson, String userAgent, String msgSessionCookie, int count, long postTime) throws IOException {
|
/**
|
||||||
|
* 用于测试总线的同步发送客户端接口,不作为生产环境使用
|
||||||
|
* @param urlProducer
|
||||||
|
* @param topic
|
||||||
|
* @param results
|
||||||
|
* @param dataJson
|
||||||
|
* @param userAgent
|
||||||
|
* @param msgSessionCookie
|
||||||
|
* @param count
|
||||||
|
* @param postTime
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public static void syncProducerAvroMessageTest(String urlProducer,String topic, byte[] results, String dataJson, String userAgent, String msgSessionCookie, int count, long postTime) throws IOException {
|
||||||
HttpClientTest.producerAvroMessageToZX(urlProducer, topic, results, dataJson, userAgent, msgSessionCookie, count, postTime);
|
HttpClientTest.producerAvroMessageToZX(urlProducer, topic, results, dataJson, userAgent, msgSessionCookie, count, postTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void asyncProducerAvroMessageToZX_toBatch(String urlProducer,String topic, byte[] results, String dataJson, String userAgent, String msgSessionCookie, int count, long postTime) {
|
|
||||||
HttpPost httpPost = null;
|
|
||||||
urlProducer = urlProducer.trim();
|
|
||||||
CloseableHttpAsyncClient httpClient = null;
|
|
||||||
try {
|
|
||||||
httpClient = HttpClientFactory.getInstance().getHttpAsyncClientPool().getAsyncHttpClient();
|
|
||||||
httpClient.start();
|
|
||||||
httpPost = new HttpPost(urlProducer);
|
|
||||||
httpPost.addHeader("User-Agent", userAgent);
|
|
||||||
httpPost.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE);
|
|
||||||
httpPost.addHeader("Cookie", msgSessionCookie);
|
|
||||||
String md5Avro = MD5Utils.md5Encode(results);
|
|
||||||
httpPost.addHeader("Checksum", md5Avro);
|
|
||||||
logger.info("批量发送body Checksum MD5 为:" + md5Avro);
|
|
||||||
httpPost.addHeader("Content-Type", "binary/octet-stream");
|
|
||||||
httpPost.addHeader("X-Tag", "getXTAG(dataJson, topic)");
|
|
||||||
ByteArrayEntity payload = new ByteArrayEntity(results);
|
|
||||||
payload.setContentEncoding("utf-8");
|
|
||||||
httpPost.setEntity(payload);
|
|
||||||
AsyncPostMsgCallBack asyncPostMsgCallBack = new AsyncPostMsgCallBack(urlProducer, topic, dataJson, userAgent, msgSessionCookie, count, postTime);
|
|
||||||
httpClient.execute(httpPost, asyncPostMsgCallBack);
|
|
||||||
logger.info("当前Thread number ID :" + Thread.currentThread().getId());
|
|
||||||
} catch (MalformedURLException e) {
|
|
||||||
//执行URL url = new URL()的异常
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (ClientProtocolException e) {
|
|
||||||
// 执行httpClient.execute(httpGet)的异常
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (IOException e) {
|
|
||||||
// 执行httpClient.execute(httpGet)的异常
|
|
||||||
logger.error("asyncProducerAvroToZX is IOException===>>>" + e.getMessage() + "<<<===IOException Message is==>" + dataJson + "<==");//进一步细化日志
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (Exception e) {
|
|
||||||
//handle response here... try other servers
|
|
||||||
logger.error("asyncProducerAvroToZX is Exception===>>>" + e.getMessage() + "<<<===Exception Message is==>" + dataJson + "<==");//进一步细化日志
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量生产消息-总线
|
* 异步批量发送接口
|
||||||
|
* @param batchProduceUrl
|
||||||
|
* @param topic
|
||||||
|
* @param results
|
||||||
|
* @param xTag
|
||||||
|
* @param userAgent
|
||||||
|
* @param msgSessionCookie
|
||||||
|
* @param count
|
||||||
|
* @param postTime
|
||||||
*/
|
*/
|
||||||
public static void asyncProducerAvroMessageToZX_bk(String urlProducer,String topic, byte[] results, String dataJson, String userAgent, String msgSessionCookie, int count, long postTime) {
|
public static void batchAsyncProduceMessage(String batchProduceUrl, String topic,
|
||||||
|
byte[] results,
|
||||||
|
String xTag, String userAgent,
|
||||||
|
String msgSessionCookie, int count, long postTime) {
|
||||||
HttpPost httpPost = null;
|
HttpPost httpPost = null;
|
||||||
urlProducer = urlProducer.trim();
|
batchProduceUrl = batchProduceUrl.trim();
|
||||||
CloseableHttpAsyncClient httpClient = null;
|
CloseableHttpAsyncClient httpClient = null;
|
||||||
try {
|
try {
|
||||||
httpClient = HttpClientFactory.getInstance().getHttpAsyncClientPool().getAsyncHttpClient();
|
httpClient = HttpClientFactory.getInstance().getHttpAsyncClientPool().getAsyncHttpClient();
|
||||||
httpClient.start();
|
httpClient.start();
|
||||||
httpPost = new HttpPost(urlProducer);
|
httpPost = new HttpPost(batchProduceUrl);
|
||||||
httpPost.addHeader("User-Agent", userAgent);
|
httpPost.addHeader("User-Agent", userAgent);
|
||||||
httpPost.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE);
|
httpPost.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE);
|
||||||
httpPost.addHeader("Cookie", msgSessionCookie);
|
httpPost.addHeader("Cookie", msgSessionCookie);
|
||||||
String md5Avro = MD5Utils.md5Encode(results);
|
String checksum = MD5Utils.md5Encode(results);
|
||||||
httpPost.addHeader("Checksum", md5Avro);
|
httpPost.addHeader("Checksum", checksum);
|
||||||
logger.info("批量发送body Checksum MD5 为:" + md5Avro);
|
|
||||||
httpPost.addHeader("Content-Type", "binary/octet-stream");
|
httpPost.addHeader("Content-Type", "binary/octet-stream");
|
||||||
httpPost.addHeader("X-Tag", getXTAG(dataJson, topic));
|
httpPost.addHeader("X-Tag", xTag);
|
||||||
ByteArrayEntity payload = new ByteArrayEntity(results);
|
ByteArrayEntity payload = new ByteArrayEntity(results);
|
||||||
payload.setContentEncoding("utf-8");
|
payload.setContentEncoding("utf-8");
|
||||||
httpPost.setEntity(payload);
|
httpPost.setEntity(payload);
|
||||||
AsyncPostMsgCallBack asyncPostMsgCallBack = new AsyncPostMsgCallBack(urlProducer, topic, dataJson, userAgent, msgSessionCookie, count, postTime);
|
AsyncBatchMsgCallBack asyncBatchMsgCallBack = new AsyncBatchMsgCallBack(batchProduceUrl, topic, checksum, count, postTime);
|
||||||
httpClient.execute(httpPost, asyncPostMsgCallBack);
|
httpClient.execute(httpPost, asyncBatchMsgCallBack);
|
||||||
logger.info("当前Thread number ID :" + Thread.currentThread().getId());
|
|
||||||
} catch (MalformedURLException e) {
|
} catch (MalformedURLException e) {
|
||||||
//执行URL url = new URL()的异常
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (ClientProtocolException e) {
|
} catch (ClientProtocolException e) {
|
||||||
// 执行httpClient.execute(httpGet)的异常
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
// 执行httpClient.execute(httpGet)的异常
|
logger.error("IOException===>>>" + e.getMessage() + "<<<===IOException Message is==>" + batchProduceUrl + "<==");
|
||||||
logger.error("asyncProducerAvroToZX is IOException===>>>" + e.getMessage() + "<<<===IOException Message is==>" + dataJson + "<==");//进一步细化日志
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
//handle response here... try other servers
|
logger.error("Other Exception===>>>" + e.getMessage() + "<<<===Exception Message is==>" + batchProduceUrl + "<==");
|
||||||
logger.error("asyncProducerAvroToZX is Exception===>>>" + e.getMessage() + "<<<===Exception Message is==>" + dataJson + "<==");//进一步细化日志
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -909,16 +433,17 @@ public class HttpClientUtil {
|
|||||||
* 生产AVRO数据入ZX(单条)--数据不包含schema
|
* 生产AVRO数据入ZX(单条)--数据不包含schema
|
||||||
* 静态,适用于异步与多线程的版本
|
* 静态,适用于异步与多线程的版本
|
||||||
*
|
*
|
||||||
* @param urlProducer
|
* @param singleProduceUrl singleProduceUrl
|
||||||
* @param topic
|
* @param topic topic
|
||||||
* @param dataJson
|
* @param dataJson dataJson
|
||||||
* @param userAgent
|
* @param userAgent userAgent
|
||||||
* @param msgSessionCookie
|
* @param msgSessionCookie msgSessionCookie
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
public static void asyncProducerAvroToZX(String urlProducer, String topic, String dataJson, String userAgent, String msgSessionCookie, int count, long postTime) {
|
public static void singleAsyncProduceMessage(String singleProduceUrl, String topic,
|
||||||
|
String dataJson, String userAgent,
|
||||||
|
String msgSessionCookie, int count, long postTime) {
|
||||||
HttpPost httpPost = null;
|
HttpPost httpPost = null;
|
||||||
urlProducer = urlProducer.trim();
|
singleProduceUrl = singleProduceUrl.trim();
|
||||||
byte[] resultArray = null;
|
byte[] resultArray = null;
|
||||||
CloseableHttpAsyncClient httpClient = null;
|
CloseableHttpAsyncClient httpClient = null;
|
||||||
try {
|
try {
|
||||||
@@ -961,7 +486,7 @@ public class HttpClientUtil {
|
|||||||
resultArray = alreadyGetFileTagRecordSoOnlyGetMergeAllArray(topic, resultArray);
|
resultArray = alreadyGetFileTagRecordSoOnlyGetMergeAllArray(topic, resultArray);
|
||||||
}
|
}
|
||||||
|
|
||||||
httpPost = new HttpPost(urlProducer);
|
httpPost = new HttpPost(singleProduceUrl);
|
||||||
// set header
|
// set header
|
||||||
httpPost.addHeader("User-Agent", userAgent);
|
httpPost.addHeader("User-Agent", userAgent);
|
||||||
|
|
||||||
@@ -974,16 +499,11 @@ public class HttpClientUtil {
|
|||||||
|
|
||||||
httpPost.addHeader("Cookie", msgSessionCookie);//不设置Cookie时,广东测试出现报错,打开广东的Cookie设置测试一下,经测试,可用
|
httpPost.addHeader("Cookie", msgSessionCookie);//不设置Cookie时,广东测试出现报错,打开广东的Cookie设置测试一下,经测试,可用
|
||||||
|
|
||||||
try {
|
|
||||||
String md5Avro = MD5Utils.md5Encode(resultArray);
|
String md5Avro = MD5Utils.md5Encode(resultArray);
|
||||||
httpPost.addHeader("Checksum", md5Avro);
|
httpPost.addHeader("Checksum", md5Avro);
|
||||||
logger.info("请求端Checksum MD5 avro 加密为:" + md5Avro);
|
|
||||||
logger.debug("原始数据==>" + dataJson + "<==," +
|
|
||||||
"原始数据checksum==>" + MD5Utils.md5Encode(dataJson) + "<==," +
|
|
||||||
"对应请求端Checksum MD5 avro 加密为:" + md5Avro);//20200521新增,自证清白
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("MD5Utils.md5Encode Method is error===>>> " + e);
|
|
||||||
}
|
|
||||||
// httpPost.addHeader("Content-Type", "application/avro+json;charset=UTF-8");
|
// httpPost.addHeader("Content-Type", "application/avro+json;charset=UTF-8");
|
||||||
httpPost.addHeader("Content-Type", "binary/octet-stream");
|
httpPost.addHeader("Content-Type", "binary/octet-stream");
|
||||||
|
|
||||||
@@ -999,22 +519,16 @@ public class HttpClientUtil {
|
|||||||
ByteArrayEntity payload = new ByteArrayEntity(resultArray);
|
ByteArrayEntity payload = new ByteArrayEntity(resultArray);
|
||||||
payload.setContentEncoding("utf-8");
|
payload.setContentEncoding("utf-8");
|
||||||
//payload.setContentType("text/xml; charset=UTF-8");
|
//payload.setContentType("text/xml; charset=UTF-8");
|
||||||
// anti avro
|
|
||||||
httpPost.setEntity(payload);
|
httpPost.setEntity(payload);
|
||||||
|
// logger.debug("封装数据==>" + dataJson + "<==最终加载内容字节数组长度: " + resultArray.length);//20200428进一步细化日志
|
||||||
|
logger.info("原始数据==>" + dataJson + "<==," +
|
||||||
logger.info("最终加载内容字节数组长度: " + resultArray.length);
|
|
||||||
// logger.debug("封装数据==>" + dataJson + "<==最终加载内容字节数组长度: " + resultArray.length);//20200428进一步细化日志
|
|
||||||
logger.debug("原始数据==>" + dataJson + "<==," +
|
|
||||||
"原始数据checksum==>" + MD5Utils.md5Encode(dataJson) + "<==," +
|
"原始数据checksum==>" + MD5Utils.md5Encode(dataJson) + "<==," +
|
||||||
"数据处理时间handleTime==>" + (System.currentTimeMillis() - postTime) + "<==," +
|
"数据处理时间handleTime==>" + (System.currentTimeMillis() - postTime) + "<==," +
|
||||||
"最终加载内容字节数组长度: " + resultArray.length + "," +
|
"最终加载内容字节数组长度: " + resultArray.length + "," +
|
||||||
"最终加载内容字节数组:" + Arrays.toString(resultArray));//20200521进一步细化日志
|
"对应请求端Checksum MD5 avro 加密为:" + md5Avro);//20200521进一步细化日志
|
||||||
|
|
||||||
//执行请求
|
//执行请求
|
||||||
AsyncPostMsgCallBack asyncPostMsgCallBack = new AsyncPostMsgCallBack(urlProducer, topic, dataJson, userAgent, msgSessionCookie, count, postTime);
|
AsyncSingleMsgCallBack asyncPostMsgCallBack = new AsyncSingleMsgCallBack(singleProduceUrl, topic, dataJson, userAgent, msgSessionCookie, count, postTime);
|
||||||
httpClient.execute(httpPost, asyncPostMsgCallBack);
|
httpClient.execute(httpPost, asyncPostMsgCallBack);
|
||||||
|
|
||||||
} catch (MalformedURLException e) {
|
} catch (MalformedURLException e) {
|
||||||
//执行URL url = new URL()的异常
|
//执行URL url = new URL()的异常
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@@ -1023,11 +537,13 @@ public class HttpClientUtil {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
// 执行httpClient.execute(httpGet)的异常
|
// 执行httpClient.execute(httpGet)的异常
|
||||||
logger.error("asyncProducerAvroToZX is IOException===>>>" + e.getMessage() + "<<<===IOException Message is==>" + dataJson + "<==");//进一步细化日志
|
logger.error("asyncProducerAvroToZX is IOException===>>>" + e.getMessage()
|
||||||
|
+ "<<<===IOException Message is==>" + dataJson + "<==");//进一步细化日志
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
//handle response here... try other servers
|
//handle response here... try other servers
|
||||||
logger.error("asyncProducerAvroToZX is Exception===>>>" + e.getMessage() + "<<<===Exception Message is==>" + dataJson + "<==");//进一步细化日志
|
logger.error("asyncProducerAvroToZX is Exception===>>>"
|
||||||
|
+ e.getMessage() + "<<<===Exception Message is==>" + dataJson + "<==");//进一步细化日志
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1049,8 +565,7 @@ public class HttpClientUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static HashMap<String, Schema> schemaHashMap = new HashMap<String, Schema>();//用于存放Schema
|
|
||||||
private static Logger logger = Logger.getLogger(HttpClientUtil.class);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取数据中的日志标签并将所有相关数据字节数组化后拼接返回
|
* 获取数据中的日志标签并将所有相关数据字节数组化后拼接返回
|
||||||
@@ -1215,7 +730,7 @@ public class HttpClientUtil {
|
|||||||
* 获取X-Tag用于设置请求头
|
* 获取X-Tag用于设置请求头
|
||||||
*
|
*
|
||||||
* @param dataJson
|
* @param dataJson
|
||||||
* @return
|
* @return xTag
|
||||||
*/
|
*/
|
||||||
public static String getXTAG(String dataJson, String topic) {
|
public static String getXTAG(String dataJson, String topic) {
|
||||||
if ("monitor-msg".equals(topic) || "INFLUX-SAPP-BPS-STAT-LOG".equals(topic)) {
|
if ("monitor-msg".equals(topic) || "INFLUX-SAPP-BPS-STAT-LOG".equals(topic)) {
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class AsyncGetMailFilesCallback implements FutureCallback<HttpResponse> {
|
|||||||
public AsyncGetMailFilesCallback(ConfigInfo configInfo, String getFileUrl, String sendMsg, AsyncPostMailFilesCallback asyncPostMailFilesCallback, int count, int urlCount, int dealUrlCount, LinkedList<String> attachmentsUrl) {
|
public AsyncGetMailFilesCallback(ConfigInfo configInfo, String getFileUrl, String sendMsg, AsyncPostMailFilesCallback asyncPostMailFilesCallback, int count, int urlCount, int dealUrlCount, LinkedList<String> attachmentsUrl) {
|
||||||
this.configInfo = configInfo;
|
this.configInfo = configInfo;
|
||||||
this.postFileUrl = configInfo.getPostFileUrl();//通过configInfo赋值
|
this.postFileUrl = configInfo.getPostFileUrl();//通过configInfo赋值
|
||||||
this.postMsgUrl = configInfo.getPostMsgUrl();//通过configInfo赋值
|
this.postMsgUrl = configInfo.getSingleProduceUrl();//通过configInfo赋值
|
||||||
this.getFileUrl = getFileUrl;//初次存储的是eml_file_url,后续每次存储的都是当次需要请求的文件路径
|
this.getFileUrl = getFileUrl;//初次存储的是eml_file_url,后续每次存储的都是当次需要请求的文件路径
|
||||||
this.sendMsg = sendMsg;
|
this.sendMsg = sendMsg;
|
||||||
this.asyncPostMailFilesCallback = asyncPostMailFilesCallback;
|
this.asyncPostMailFilesCallback = asyncPostMailFilesCallback;
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class AsyncPostMailFilesCallback implements FutureCallback<HttpResponse>
|
|||||||
public AsyncPostMailFilesCallback(ConfigInfo configInfo, String sendMsg, int count, int isCount, int dealIsCount, LinkedList<String> attachmentsIdList) {
|
public AsyncPostMailFilesCallback(ConfigInfo configInfo, String sendMsg, int count, int isCount, int dealIsCount, LinkedList<String> attachmentsIdList) {
|
||||||
this.configInfo = configInfo;
|
this.configInfo = configInfo;
|
||||||
this.postFileUrl = configInfo.getPostFileUrl();
|
this.postFileUrl = configInfo.getPostFileUrl();
|
||||||
this.postMsgUrl = configInfo.getPostMsgUrl();
|
this.postMsgUrl = configInfo.getSingleProduceUrl();
|
||||||
this.sendMsg = sendMsg;//存放对应于url的数据
|
this.sendMsg = sendMsg;//存放对应于url的数据
|
||||||
this.count = count;//初始为0
|
this.count = count;//初始为0
|
||||||
this.isCount = isCount;//初始总数为url总数
|
this.isCount = isCount;//初始总数为url总数
|
||||||
@@ -275,7 +275,7 @@ public class AsyncPostMailFilesCallback implements FutureCallback<HttpResponse>
|
|||||||
AvroMonitorTimerTask.msgReadyPostSum++;//多个文件对应一条消息
|
AvroMonitorTimerTask.msgReadyPostSum++;//多个文件对应一条消息
|
||||||
|
|
||||||
//开始推送消息进入总线
|
//开始推送消息进入总线
|
||||||
ProResBody proResBody = dclAsyncPost.avroDataLoad(configInfo.getPostMsgUrl(), configInfo.getTopicName(), sendMsg, configInfo.getBatchSize(), configInfo.getUserAgent(), configInfo.getMsgSessionCookie());
|
ProResBody proResBody = dclAsyncPost.avroDataLoad(configInfo.getSingleProduceUrl(), configInfo.getTopicName(), sendMsg, configInfo.getBatchSize(), configInfo.getUserAgent(), configInfo.getMsgSessionCookie());
|
||||||
LOG.info("Send message with many fileId to zx over,this responseBody is===>" + proResBody.toString());
|
LOG.info("Send message with many fileId to zx over,this responseBody is===>" + proResBody.toString());
|
||||||
} else if (dealIsCount < isCount) {//继续发送余下文件流获取id
|
} else if (dealIsCount < isCount) {//继续发送余下文件流获取id
|
||||||
// 注意此处dealIsCount必然是>=1的,所以不需要考虑eml_file,因为eml_file必然已经完成,直接发送attachmentsResultIsList中的流获取id
|
// 注意此处dealIsCount必然是>=1的,所以不需要考虑eml_file,因为eml_file必然已经完成,直接发送attachmentsResultIsList中的流获取id
|
||||||
|
|||||||
@@ -0,0 +1,207 @@
|
|||||||
|
package cn.ac.iie.cusflume.sink.HttpAsyncUtils.msgCallBack;
|
||||||
|
|
||||||
|
import cn.ac.iie.cusflume.sink.HttpAsyncUtils.HttpClientUtil;
|
||||||
|
import cn.ac.iie.cusflume.sink.YbHttpAvroSinkFile;
|
||||||
|
import cn.ac.iie.cusflume.sink.avroUtils.AvroMonitorTimerTask;
|
||||||
|
import cn.ac.iie.cusflume.sink.bean.redirectBean.ResRedirBody;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.apache.http.HttpEntity;
|
||||||
|
import org.apache.http.HttpResponse;
|
||||||
|
import org.apache.http.client.utils.HttpClientUtils;
|
||||||
|
import org.apache.http.concurrent.FutureCallback;
|
||||||
|
import org.apache.http.util.EntityUtils;
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 被回调的对象,给异步的httpclient使用
|
||||||
|
*/
|
||||||
|
public class AsyncBatchMsgCallBack implements FutureCallback<HttpResponse> {
|
||||||
|
private static Logger logger = Logger.getLogger(AsyncBatchMsgCallBack.class);
|
||||||
|
|
||||||
|
private String batchProduceUrl;
|
||||||
|
private String topicName;
|
||||||
|
private String checksum;
|
||||||
|
private int count;
|
||||||
|
private long postTime;
|
||||||
|
|
||||||
|
public AsyncBatchMsgCallBack(String batchProduceUrl, String topicName,
|
||||||
|
String checksum, int count, long postTime) {
|
||||||
|
this.batchProduceUrl = batchProduceUrl;
|
||||||
|
this.topicName = topicName;
|
||||||
|
this.count = count;
|
||||||
|
this.postTime = postTime;
|
||||||
|
this.checksum = checksum;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public String getBatchProduceUrl() {
|
||||||
|
return batchProduceUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBatchProduceUrl(String batchProduceUrl) {
|
||||||
|
this.batchProduceUrl = batchProduceUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getChecksum() {
|
||||||
|
return checksum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChecksum(String checksum) {
|
||||||
|
this.checksum = checksum;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTopicName() {
|
||||||
|
return topicName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTopicName(String topicName) {
|
||||||
|
this.topicName = topicName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCount() {
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCount(int count) {
|
||||||
|
this.count = count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getPostTime() {
|
||||||
|
return postTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPostTime(long postTime) {
|
||||||
|
this.postTime = postTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 请求完成后调用该函数
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void completed(HttpResponse response) {
|
||||||
|
try {
|
||||||
|
int statusCode = response.getStatusLine().getStatusCode();
|
||||||
|
|
||||||
|
HttpEntity entity = response.getEntity();
|
||||||
|
|
||||||
|
String result = null;
|
||||||
|
if (entity != null) {
|
||||||
|
result = EntityUtils.toString(entity, "UTF-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 不直接进行对象转换,除非数据加载不成功
|
||||||
|
*/
|
||||||
|
Map map = JSONObject.parseObject(result, Map.class);
|
||||||
|
|
||||||
|
int resRedirBodyCode = 0;
|
||||||
|
|
||||||
|
if (map != null) {
|
||||||
|
resRedirBodyCode = (int) map.get("code");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 20200818-接口细化响应码
|
||||||
|
*/
|
||||||
|
if (statusCode == 200 && resRedirBodyCode == 200) {
|
||||||
|
logger.info(
|
||||||
|
"数据加载成功,返回码: " + statusCode +
|
||||||
|
"生产数据checksum==>" + checksum + "<==," +
|
||||||
|
"服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==," +
|
||||||
|
"数据加载成功,返回码: " + statusCode);
|
||||||
|
AvroMonitorTimerTask.addSuccessNum(count);
|
||||||
|
} else {
|
||||||
|
AvroMonitorTimerTask.addFailedNum(count);
|
||||||
|
switch (resRedirBodyCode) {
|
||||||
|
case 300:
|
||||||
|
logger.error("AsyncPostBatchMsgCallBack==>重定向响应体-redirect-ret==>" + result
|
||||||
|
+ "总线批量发送URL==>" + batchProduceUrl
|
||||||
|
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
||||||
|
+ "<==,Status Code:" + statusCode + ",resRedirBodyCode:300,当前服务节点负载过高,将向其他通信地址发送请求.");
|
||||||
|
|
||||||
|
//若不包含对应字段,则不进行对象转换,减少报错
|
||||||
|
if (result.contains("redirect")) {
|
||||||
|
ResRedirBody resRedirBody = JSONObject.parseObject(result, ResRedirBody.class);
|
||||||
|
String redirectUrl = resRedirBody.getData().getRedirect();
|
||||||
|
if (StringUtils.isNotBlank(redirectUrl)) {
|
||||||
|
YbHttpAvroSinkFile.changeUrl(redirectUrl);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
logger.error("AsyncPostBatchMsgCallBack==>服务端响应体中ResRedirBody.data.redirect字段不存在或格式不正确!!!");
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 301:
|
||||||
|
logger.error("AsyncPostBatchMsgCallBack==>Status Code:" + statusCode
|
||||||
|
+ "总线批量发送URL==>" + batchProduceUrl
|
||||||
|
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
||||||
|
+ ",resRedirBodyCode:301,当前所有服务端节点均负载过高,暂无可用资源,请等待.");
|
||||||
|
break;
|
||||||
|
case 410:
|
||||||
|
logger.error("AsyncPostBatchMsgCallBack==>Status Code:" + statusCode
|
||||||
|
+ "总线批量发送URL==>" + batchProduceUrl
|
||||||
|
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
||||||
|
+ ",resRedirBodyCode:410,Cookie已过期或Cookie错误,将开始更新Cookie.");
|
||||||
|
YbHttpAvroSinkFile.updateCookie();
|
||||||
|
break;
|
||||||
|
case 500:
|
||||||
|
logger.error("AsyncPostBatchMsgCallBack==>Status Code:" + statusCode
|
||||||
|
+ "总线批量发送URL==>" + batchProduceUrl
|
||||||
|
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
||||||
|
+ ",resRedirBodyCode:500,处理请求过程出现系统错误.");
|
||||||
|
YbHttpAvroSinkFile.updateCookie();
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
logger.error("AsyncPostBatchMsgCallBack==>数据加载失败,响应体:" + result
|
||||||
|
+ "总线批量发送URL==>" + batchProduceUrl
|
||||||
|
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
||||||
|
+ "---Status Code:" + statusCode + "---resRedirBodyCode:" + resRedirBodyCode);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (entity != null) {
|
||||||
|
try {
|
||||||
|
EntityUtils.consume(entity);
|
||||||
|
} catch (final IOException ex) {
|
||||||
|
logger.error("IOException : " + ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("AsyncPostBatchMsgCallBack Get response from ZX is error===>>>"
|
||||||
|
+ e.getMessage());
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
HttpClientUtils.closeQuietly(response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 请求取消后调用该函数
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void cancelled() {
|
||||||
|
logger.error("AsyncPostMagCallBack Request is cancelled");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 请求失败后调用该函数
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void failed(Exception e) {
|
||||||
|
AvroMonitorTimerTask.addFailedNum(count);
|
||||||
|
logger.error("AsyncPostMagCallBack Request is Failed,This Failed data checksum is ==>"+ checksum);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -15,14 +15,13 @@ import org.apache.http.util.EntityUtils;
|
|||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 被回调的对象,给异步的httpclient使用
|
* 被回调的对象,给异步的httpclient使用
|
||||||
*/
|
*/
|
||||||
public class AsyncPostMsgCallBack implements FutureCallback<HttpResponse> {
|
public class AsyncSingleMsgCallBack implements FutureCallback<HttpResponse> {
|
||||||
private static Logger logger = Logger.getLogger(AsyncPostMsgCallBack.class);
|
private static Logger logger = Logger.getLogger(AsyncSingleMsgCallBack.class);
|
||||||
|
|
||||||
private String postMsgUrl;
|
private String postMsgUrl;
|
||||||
private String topicName;
|
private String topicName;
|
||||||
@@ -32,7 +31,7 @@ public class AsyncPostMsgCallBack implements FutureCallback<HttpResponse> {
|
|||||||
private int count;
|
private int count;
|
||||||
private long postTime;
|
private long postTime;
|
||||||
|
|
||||||
public AsyncPostMsgCallBack(String postMsgUrl, String topicName, String dataJson, String userAgent, String msgSessionCookie, int count, long postTime) {
|
public AsyncSingleMsgCallBack(String postMsgUrl, String topicName, String dataJson, String userAgent, String msgSessionCookie, int count, long postTime) {
|
||||||
this.postMsgUrl = postMsgUrl;
|
this.postMsgUrl = postMsgUrl;
|
||||||
this.topicName = topicName;
|
this.topicName = topicName;
|
||||||
this.dataJson = dataJson;
|
this.dataJson = dataJson;
|
||||||
@@ -103,7 +102,6 @@ public class AsyncPostMsgCallBack implements FutureCallback<HttpResponse> {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void completed(HttpResponse response) {
|
public void completed(HttpResponse response) {
|
||||||
// ProResBody proResBody = null;
|
|
||||||
try {
|
try {
|
||||||
int statusCode = response.getStatusLine().getStatusCode();
|
int statusCode = response.getStatusLine().getStatusCode();
|
||||||
HttpEntity entity = response.getEntity();
|
HttpEntity entity = response.getEntity();
|
||||||
@@ -121,11 +119,7 @@ public class AsyncPostMsgCallBack implements FutureCallback<HttpResponse> {
|
|||||||
if (map != null) {
|
if (map != null) {
|
||||||
resRedirBodyCode = (int) map.get("code");
|
resRedirBodyCode = (int) map.get("code");
|
||||||
}
|
}
|
||||||
// int resRedirBodyCode = resRedirBody.getCode();
|
|
||||||
|
|
||||||
/* logger.debug("生产数据==>" + dataJson + "<==," +
|
|
||||||
"生产数据checksum==>" + MD5Utils.md5Encode(dataJson) + "<==," +
|
|
||||||
"返回的生产原始响应体String数据为:" + ret);*/
|
|
||||||
/**
|
/**
|
||||||
* 20200818-接口细化响应码
|
* 20200818-接口细化响应码
|
||||||
*/
|
*/
|
||||||
@@ -137,12 +131,11 @@ public class AsyncPostMsgCallBack implements FutureCallback<HttpResponse> {
|
|||||||
"数据加载成功,返回码: " + statusCode);
|
"数据加载成功,返回码: " + statusCode);
|
||||||
|
|
||||||
AvroMonitorTimerTask.addSuccessNum(count);
|
AvroMonitorTimerTask.addSuccessNum(count);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
AvroMonitorTimerTask.addFailedNum(count);
|
AvroMonitorTimerTask.addFailedNum(count);
|
||||||
switch (resRedirBodyCode) {
|
switch (resRedirBodyCode) {
|
||||||
case 300:
|
case 300:
|
||||||
logger.info("AsyncPostMsgCallBack==>重定向响应体-redirect-ret==>" + ret
|
logger.error("AsyncSingleMsgCallBack==>重定向响应体-redirect-ret==>" + ret
|
||||||
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
||||||
+ "<==,Status Code:" + statusCode + ",resRedirBodyCode:300,当前服务节点负载过高,将向其他通信地址发送请求.");
|
+ "<==,Status Code:" + statusCode + ",resRedirBodyCode:300,当前服务节点负载过高,将向其他通信地址发送请求.");
|
||||||
//若不包含对应字段,则不进行对象转换,减少报错
|
//若不包含对应字段,则不进行对象转换,减少报错
|
||||||
@@ -153,33 +146,35 @@ public class AsyncPostMsgCallBack implements FutureCallback<HttpResponse> {
|
|||||||
YbHttpAvroSinkFile.changeUrl(redirectUrl);
|
YbHttpAvroSinkFile.changeUrl(redirectUrl);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
logger.error("AsyncPostMsgCallBack==>服务端响应体中ResRedirBody.data.redirect字段不存在或格式不正确!!!");
|
logger.error("AsyncSingleMsgCallBack==>服务端响应体中ResRedirBody.data.redirect字段不存在或格式不正确!!!");
|
||||||
}
|
}
|
||||||
|
|
||||||
YbHttpAvroSinkFile.redirectContents.add(dataJson);
|
HttpClientUtil.getRetryQueue().put(dataJson);
|
||||||
break;
|
break;
|
||||||
case 301:
|
case 301:
|
||||||
logger.info("AsyncPostMsgCallBack==>Status Code:" + statusCode
|
logger.error("AsyncSingleMsgCallBack==>Status Code:" + statusCode
|
||||||
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
||||||
+ ",resRedirBodyCode:301,当前所有服务端节点均负载过高,暂无可用资源,请等待.");
|
+ ",resRedirBodyCode:301,当前所有服务端节点均负载过高,暂无可用资源,请等待.");
|
||||||
YbHttpAvroSinkFile.redirectContents.add(dataJson);
|
HttpClientUtil.getRetryQueue().put(dataJson);
|
||||||
break;
|
break;
|
||||||
case 410:
|
case 410:
|
||||||
logger.info("AsyncPostMsgCallBack==>Status Code:" + statusCode
|
logger.error("AsyncSingleMsgCallBack==>Status Code:" + statusCode
|
||||||
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
||||||
+ ",resRedirBodyCode:410,Cookie已过期或Cookie错误,将开始更新Cookie.");
|
+ ",resRedirBodyCode:410,Cookie已过期或Cookie错误,将开始更新Cookie.");
|
||||||
YbHttpAvroSinkFile.updateCookie();
|
YbHttpAvroSinkFile.updateCookie();
|
||||||
break;
|
break;
|
||||||
case 500:
|
case 500:
|
||||||
logger.info("AsyncPostMsgCallBack==>Status Code:" + statusCode
|
logger.error("AsyncSingleMsgCallBack==>Status Code:" + statusCode
|
||||||
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
||||||
+ ",resRedirBodyCode:500,处理请求过程出现系统错误.");
|
+ ",resRedirBodyCode:500,处理请求过程出现系统错误.");
|
||||||
YbHttpAvroSinkFile.updateCookie();
|
YbHttpAvroSinkFile.updateCookie();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
logger.error("AsyncPostMsgCallBack==>数据加载失败,响应体:" + ret
|
|
||||||
|
logger.error("AsyncSingleMsgCallBack==>数据加载失败,响应体:" + ret
|
||||||
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
+ "服务端响应时间(ms)==>" + (System.currentTimeMillis() - postTime) + "<==,"
|
||||||
+ "---Status Code:" + statusCode + "---resRedirBodyCode:" + resRedirBodyCode);
|
+ "---Status Code:" + statusCode + "---resRedirBodyCode:" + resRedirBodyCode);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -188,11 +183,12 @@ public class AsyncPostMsgCallBack implements FutureCallback<HttpResponse> {
|
|||||||
try {
|
try {
|
||||||
EntityUtils.consume(entity);
|
EntityUtils.consume(entity);
|
||||||
} catch (final IOException ex) {
|
} catch (final IOException ex) {
|
||||||
|
logger.error("IOException : " + ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("AsyncPostMsgCallBack Get response from ZX is error===>>>" + e.getMessage() + "<<<===Message is==>" + dataJson + "<==");//细化日志
|
logger.error("AsyncSingleMsgCallBack Get response from ZX is error===>>>" + e.getMessage() + "<<<===Message is==>" + dataJson + "<==");//细化日志
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} finally {
|
} finally {
|
||||||
HttpClientUtils.closeQuietly(response);
|
HttpClientUtils.closeQuietly(response);
|
||||||
@@ -204,7 +200,7 @@ public class AsyncPostMsgCallBack implements FutureCallback<HttpResponse> {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void cancelled() {
|
public void cancelled() {
|
||||||
logger.error("AsyncPostMagCallBack Request is cancelled");
|
logger.error("AsyncSingleMsgCallBack Request is cancelled");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -212,15 +208,9 @@ public class AsyncPostMsgCallBack implements FutureCallback<HttpResponse> {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void failed(Exception e) {
|
public void failed(Exception e) {
|
||||||
count++;
|
AvroMonitorTimerTask.addFailedNum(count);
|
||||||
logger.info("AsyncPostMagCallBack Request is Failed,This Failed data is ==>" + dataJson + "<==,Retry count=" + count);
|
logger.error("AsyncSingleMsgCallBack Request is Failed,This Failed data is ==>"
|
||||||
if (count > 1) {
|
+ dataJson );
|
||||||
|
|
||||||
AvroMonitorTimerTask.addFailedNum(1);
|
|
||||||
logger.error("dataJson:" + dataJson + " send failed finally,error:" + e.toString());
|
|
||||||
} else {
|
|
||||||
HttpClientUtil.asyncProducerAvroToZX(postMsgUrl, topicName, dataJson, userAgent, msgSessionCookie, count, System.currentTimeMillis());//failed失败时重试
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,139 +0,0 @@
|
|||||||
package cn.ac.iie.cusflume.sink;
|
|
||||||
|
|
||||||
import cn.ac.iie.cusflume.sink.CommonUtils.SinkHttpClientUtil;
|
|
||||||
import cn.ac.iie.cusflume.sink.avroUtils.AvroMonitorTimerTask;
|
|
||||||
import cn.ac.iie.cusflume.sink.avroUtils.MD5Utils;
|
|
||||||
import cn.ac.iie.cusflume.sink.bean.redirectBean.ResRedirBody;
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.apache.http.HttpEntity;
|
|
||||||
import org.apache.http.HttpStatus;
|
|
||||||
import org.apache.http.ParseException;
|
|
||||||
import org.apache.http.client.ClientProtocolException;
|
|
||||||
import org.apache.http.client.methods.CloseableHttpResponse;
|
|
||||||
import org.apache.http.client.methods.HttpPost;
|
|
||||||
import org.apache.http.entity.ByteArrayEntity;
|
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
|
||||||
import org.apache.http.protocol.HTTP;
|
|
||||||
import org.apache.http.util.EntityUtils;
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
import org.mortbay.log.Log;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public class SinkService {
|
|
||||||
private static final SinkService sinkService = new SinkService();
|
|
||||||
|
|
||||||
private SinkService() {
|
|
||||||
}
|
|
||||||
//SinkHttpClientUtil.getHttpClient();
|
|
||||||
public static CloseableHttpClient httpClient = null;
|
|
||||||
private static Logger LOG = Logger.getLogger(SinkHttpClientUtil.class);
|
|
||||||
|
|
||||||
public static SinkService getInstance() {
|
|
||||||
return sinkService;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void producerAvroMessageToBus(
|
|
||||||
String urlProducer, String topic, byte[] results,
|
|
||||||
String dataJson, String userAgent, String msgSessionCookie, int batchSize) {
|
|
||||||
|
|
||||||
httpClient = SinkHttpClientUtil.getHttpClient();
|
|
||||||
HttpPost httpPost = null;
|
|
||||||
urlProducer = urlProducer.trim();
|
|
||||||
String msg = "-1";
|
|
||||||
// 创建POST请求对象
|
|
||||||
CloseableHttpResponse response = null;
|
|
||||||
try {
|
|
||||||
httpPost = new HttpPost(urlProducer);
|
|
||||||
httpPost.addHeader("User-Agent", userAgent);
|
|
||||||
httpPost.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE);
|
|
||||||
httpPost.addHeader("Cookie", msgSessionCookie);
|
|
||||||
String md5Avro = MD5Utils.md5Encode(results);
|
|
||||||
httpPost.addHeader("Checksum", md5Avro);
|
|
||||||
LOG.info("批量发送body Checksum MD5 为:" + md5Avro);
|
|
||||||
httpPost.addHeader("Content-Type", "binary/octet-stream");
|
|
||||||
httpPost.addHeader("X-Tag", cn.ac.iie.cusflume.sink.HttpAsyncUtils.HttpClientUtil.getXTAG(dataJson, topic));
|
|
||||||
ByteArrayEntity payload = new ByteArrayEntity(results);
|
|
||||||
payload.setContentEncoding("utf-8");
|
|
||||||
httpPost.setEntity(payload);
|
|
||||||
long startTime = System.currentTimeMillis();
|
|
||||||
response = httpClient.execute(httpPost);
|
|
||||||
int statusCode = response.getStatusLine().getStatusCode();
|
|
||||||
// 获取响应实体
|
|
||||||
HttpEntity entity = response.getEntity();
|
|
||||||
// 获取响应信息
|
|
||||||
msg = EntityUtils.toString(entity, "UTF-8");
|
|
||||||
Log.warn(Thread.currentThread().getName() + ",请求响应用时(ms):" + (System.currentTimeMillis() - startTime));
|
|
||||||
if (statusCode != HttpStatus.SC_OK) {
|
|
||||||
AvroMonitorTimerTask.addSuccessNum(batchSize);
|
|
||||||
LOG.info("数据总线响应内容:" + msg);
|
|
||||||
} else {
|
|
||||||
AvroMonitorTimerTask.addFailedNum(batchSize);
|
|
||||||
LOG.error("数据总线反馈出错:" + statusCode + ",msg" + msg);
|
|
||||||
|
|
||||||
switch (statusCode) {
|
|
||||||
case 300:
|
|
||||||
LOG.info("AsyncPostMsgCallBack==>重定向响应体-redirect-ret==>"
|
|
||||||
+ ",resRedirBodyCode:300,当前服务节点负载过高,将向其他通信地址发送请求.");
|
|
||||||
//若不包含对应字段,则不进行对象转换,减少报错
|
|
||||||
if (msg.contains("redirect")) {
|
|
||||||
ResRedirBody resRedirBody = JSONObject.parseObject(msg, ResRedirBody.class);
|
|
||||||
String redirectUrl = resRedirBody.getData().getRedirect();
|
|
||||||
if (StringUtils.isNotBlank(redirectUrl)) {
|
|
||||||
YbHttpAvroSinkFile.changeUrl(redirectUrl);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
LOG.error("AsyncPostMsgCallBack==>服务端响应体中ResRedirBody.data.redirect字段不存在或格式不正确!!!");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
break;
|
|
||||||
case 301:
|
|
||||||
LOG.error("AsyncPostMsgCallBack==>Status Code:" + statusCode +
|
|
||||||
",resRedirBodyCode:301,当前所有服务端节点均负载过高,暂无可用资源,请等待.");
|
|
||||||
break;
|
|
||||||
case 410:
|
|
||||||
LOG.error("AsyncPostMsgCallBack==>Status Code:" + statusCode
|
|
||||||
+ "服务端响应时间(ms)==>" + "<==,"
|
|
||||||
+ ",resRedirBodyCode:410,Cookie已过期或Cookie错误,将开始更新Cookie.");
|
|
||||||
YbHttpAvroSinkFile.updateCookie();
|
|
||||||
break;
|
|
||||||
case 500:
|
|
||||||
LOG.error("AsyncPostMsgCallBack==>Status Code:" + statusCode
|
|
||||||
+ "服务端响应时间(ms)==>" + "<==,"
|
|
||||||
+ ",resRedirBodyCode:500,处理请求过程出现系统错误.");
|
|
||||||
YbHttpAvroSinkFile.updateCookie();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
LOG.error("AsyncPostMsgCallBack==>数据加载失败,响应体:" + "<==,"
|
|
||||||
+ "---Status Code:" + statusCode);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} catch (ClientProtocolException e) {
|
|
||||||
LOG.error("协议错误: {}", e);
|
|
||||||
} catch (ParseException e) {
|
|
||||||
LOG.error("解析错误: {}", e);
|
|
||||||
} catch (IOException e) {
|
|
||||||
LOG.error("IO错误: {}", e);
|
|
||||||
} catch (Exception e) {
|
|
||||||
LOG.error("其它错误: {}", e);
|
|
||||||
} finally {
|
|
||||||
if (null != response) {
|
|
||||||
try {
|
|
||||||
EntityUtils.consumeQuietly(response.getEntity());
|
|
||||||
response.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
LOG.error("释放链接错误: {}", e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -16,20 +16,16 @@ import org.apache.flume.sink.AbstractSink;
|
|||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
import java.util.concurrent.*;
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
||||||
|
|
||||||
private static Logger logger = Logger.getLogger(YbHttpAvroSinkFile.class);
|
private static Logger logger = Logger.getLogger(YbHttpAvroSinkFile.class);
|
||||||
|
|
||||||
protected static ExecutorService pool = Executors.newFixedThreadPool(RealtimeCountConfig.HTTP_ASYNC_PARALLELISM);
|
protected static ExecutorService pool = Executors.newFixedThreadPool(RealtimeCountConfig.HTTP_ASYNC_PARALLELISM);
|
||||||
private static ConcurrentLinkedQueue<byte[]> concurrentLinkedQueue = new ConcurrentLinkedQueue<byte[]>();
|
|
||||||
private static DataCenterLoad dcl;
|
private static DataCenterLoad dcl;
|
||||||
|
|
||||||
private static String postMsgUrl;//发送消息路径,配置文件获取,发送文件与发送消息皆需要
|
private static String singleProduceUrl;//单条发送接口
|
||||||
|
private static String batchProduceUrl; //批量发送接口
|
||||||
|
|
||||||
private String postFileUrl;//发送文件路径,配置文件获取,仅发送文件时需要---若只发送消息,则此路径与postMsgUrl设置相同即可
|
private String postFileUrl;//发送文件路径,配置文件获取,仅发送文件时需要---若只发送消息,则此路径与postMsgUrl设置相同即可
|
||||||
|
|
||||||
@@ -61,14 +57,9 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
|
|
||||||
private static boolean checkTimerStart = false;//定时获取Cookie启动器
|
private static boolean checkTimerStart = false;//定时获取Cookie启动器
|
||||||
|
|
||||||
private static boolean redirectContentsPostStart = false;//定时post重定向数据集合
|
|
||||||
|
|
||||||
private static int batchInsertNum = RealtimeCountConfig.BATCH_INSERT_NUM;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 用于存储由于服务器资源不足所造成的未发送数据
|
|
||||||
*/
|
|
||||||
public static List<String> redirectContents;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用于存放验证以及连接的url的各组成部分,方便调取
|
* 用于存放验证以及连接的url的各组成部分,方便调取
|
||||||
@@ -84,35 +75,46 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
super.start();
|
super.start();
|
||||||
dcl = new DataCenterLoad();
|
dcl = new DataCenterLoad();
|
||||||
|
|
||||||
redirectContents = new ArrayList<>();//初始化
|
|
||||||
/**
|
/**
|
||||||
* 拆解初始化获取的url后缀,用于填充urlToolHm,用于后续动态负载均衡中的url变更
|
* 拆解初始化获取的url后缀,用于填充urlToolHm,用于后续动态负载均衡中的url变更
|
||||||
*/
|
*/
|
||||||
if (StringUtils.isNotBlank(checkMsgUrl) && StringUtils.isNotBlank(postMsgUrl)) {
|
if (StringUtils.isNotBlank(checkMsgUrl)
|
||||||
|
&& StringUtils.isNotBlank(singleProduceUrl)
|
||||||
|
&& StringUtils.isNotBlank(batchProduceUrl)) {
|
||||||
urlToolHm = new HashMap<>();
|
urlToolHm = new HashMap<>();
|
||||||
makeUrlSplitMap(checkMsgUrl, "check");
|
makeUrlSplitMap(checkMsgUrl, "check");
|
||||||
makeUrlSplitMap(postMsgUrl, "post");
|
makeUrlSplitMap(singleProduceUrl, "post_single");
|
||||||
|
makeUrlSplitMap(batchProduceUrl, "post_batch");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
logger.error("Starting YbHttpAvroSinkFile is error==>checkMsgUrl and postMsgUrl can not be null!!!!");
|
logger.error("Starting YbHttpAvroSinkFile is error==>checkMsgUrl and postMsgUrl can not be null!!!!");
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.warn("启动Sink File 执行程序 ==============");
|
|
||||||
//new Thread(new Consumer()).start();
|
|
||||||
logger.warn("开启多线程消费队列数据==================");
|
|
||||||
|
|
||||||
|
new Thread(new RetrySendMessage()).start();
|
||||||
logger.warn("Starting YbHttpAvroSinkFile ... ...");
|
logger.warn("Starting YbHttpAvroSinkFile ... ...");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void configure(Context context) {
|
public void configure(Context context) {
|
||||||
try {
|
try {
|
||||||
postMsgUrl = context.getString("postMsgUrl", "");
|
singleProduceUrl = context.getString("singleProduceUrl", "");
|
||||||
Preconditions.checkNotNull("".equals(postMsgUrl), "postMsgUrl must be set!!");
|
Preconditions.checkNotNull("".equals(singleProduceUrl), "singleProduceUrl must be set!!");
|
||||||
logger.info("Read Post Message URL from configuration : " + postMsgUrl);
|
logger.info("Read Post Message URL from configuration : " + singleProduceUrl);
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
throw new IllegalArgumentException("Endpoint Message URL invalid", e);
|
throw new IllegalArgumentException("Endpoint Message URL invalid", e);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("Get postMsgUrl is error : " + e);
|
logger.error("Get singleProduceUrl is error : " + e);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
batchProduceUrl = context.getString("batchProduceUrl", "");
|
||||||
|
Preconditions.checkNotNull("".equals(batchProduceUrl), "batchProduceUrl must be set!!");
|
||||||
|
logger.info("Read Post Message URL from configuration : " + batchProduceUrl);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
throw new IllegalArgumentException("Endpoint Message URL invalid", e);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("Get batchProduceUrl is error : " + e);
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -178,7 +180,7 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
public Status process() throws EventDeliveryException {
|
public Status process() throws EventDeliveryException {
|
||||||
Status result = Status.READY;
|
Status result = Status.READY;
|
||||||
Channel channel = getChannel();
|
Channel channel = getChannel();
|
||||||
Transaction transaction = null;
|
Transaction transaction = null;
|
||||||
try {
|
try {
|
||||||
logger.debug("Current Process Thread number ID :" + Thread.currentThread().getId());
|
logger.debug("Current Process Thread number ID :" + Thread.currentThread().getId());
|
||||||
transaction = channel.getTransaction();
|
transaction = channel.getTransaction();
|
||||||
@@ -200,26 +202,24 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
switch (topicName) {
|
switch (topicName) {
|
||||||
//作为单条发送-新分类-20191219
|
//作为单条发送-新分类-20191219
|
||||||
/**
|
/**
|
||||||
* 非文件消息
|
* 非文件消息:NTC-CONN-RECORD-LOG,NTC-COLLECT-DNS-LOG,NTC-COLLECT-SSL-LOG
|
||||||
|
* 文件类消息:NTC-COLLECT-FILE-LOG(有独立文件标签)、
|
||||||
|
* NTC-COLLECT-HTTP-DOC-LOG、NTC-COLLECT-HTTP-AV-LOG、NTC-COLLECT-FTP-DOC-LOG、
|
||||||
|
* NTC-COLLECT-MAIL-LOG、NTC-COLLECT-TELNET-LOG
|
||||||
|
* 状态消息:INFLUX-SAPP-BPS-STAT-LOG(读取回写的influxDB合计数据用作状态上传)
|
||||||
*/
|
*/
|
||||||
case "NTC-CONN-RECORD-LOG":
|
case "NTC-CONN-RECORD-LOG":
|
||||||
case "NTC-COLLECT-DNS-LOG":
|
case "NTC-COLLECT-DNS-LOG":
|
||||||
case "NTC-COLLECT-SSL-LOG":
|
case "NTC-COLLECT-SSL-LOG":
|
||||||
/**
|
case "NTC-COLLECT-FILE-LOG":
|
||||||
* 文件消息
|
|
||||||
*/
|
|
||||||
case "NTC-COLLECT-FILE-LOG"://发送独立出来的文件标签
|
|
||||||
case "NTC-COLLECT-HTTP-DOC-LOG":
|
case "NTC-COLLECT-HTTP-DOC-LOG":
|
||||||
case "NTC-COLLECT-HTTP-AV-LOG"://schema等同于NTC-COLLECT-HTTP-DOC-LOG
|
case "NTC-COLLECT-HTTP-AV-LOG":
|
||||||
|
case "NTC-COLLECT-HTTP-HDR-LOG":
|
||||||
case "NTC-COLLECT-FTP-DOC-LOG":
|
case "NTC-COLLECT-FTP-DOC-LOG":
|
||||||
case "NTC-COLLECT-MAIL-LOG":
|
case "NTC-COLLECT-MAIL-LOG":
|
||||||
case "NTC-COLLECT-TELNET-LOG":
|
case "NTC-COLLECT-TELNET-LOG":
|
||||||
/**
|
case "INFLUX-SAPP-BPS-STAT-LOG":
|
||||||
* 状态消息
|
sendMsgLog(transaction, contents);
|
||||||
*/
|
|
||||||
case "INFLUX-SAPP-BPS-STAT-LOG"://读取回写的influxDB合计数据用作状态上传
|
|
||||||
sendMsgLog(transaction, contents);//20191209移除文件发送,仅处理消息
|
|
||||||
//sendMsgController(transaction, contents);
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
logger.error("YbHttpAvroSinkFile can't find this topic:" + topicName + ".Please confirm this topicName is correct!!!");
|
logger.error("YbHttpAvroSinkFile can't find this topic:" + topicName + ".Please confirm this topicName is correct!!!");
|
||||||
@@ -241,7 +241,6 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
} finally {
|
} finally {
|
||||||
if (transaction != null) {
|
if (transaction != null) {
|
||||||
transaction.close();
|
transaction.close();
|
||||||
logger.debug("close Transaction");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
@@ -260,7 +259,7 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
}
|
}
|
||||||
if (statusCode == 200) {
|
if (statusCode == 200) {
|
||||||
if (StringUtils.isNotBlank(acCheckMsgResBody.getSessionId())) {
|
if (StringUtils.isNotBlank(acCheckMsgResBody.getSessionId())) {
|
||||||
logger.warn("AC msg successfully,msg sessionId is ===>" + acCheckMsgResBody.getSessionId());
|
logger.info("AC msg successfully,msg sessionId is ===>" + acCheckMsgResBody.getSessionId());
|
||||||
msgSessionCookie = acCheckMsgResBody.getSessionId();
|
msgSessionCookie = acCheckMsgResBody.getSessionId();
|
||||||
}
|
}
|
||||||
} else if (statusCode == 0) {
|
} else if (statusCode == 0) {
|
||||||
@@ -269,8 +268,7 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
logger.error("AC msg from ZX is error,statusCode is " + statusCode + "(case)=" + acCheckMsgResBody.getCode() + "(getMethod)<===");
|
logger.error("AC msg from ZX is error,statusCode is " + statusCode + "(case)=" + acCheckMsgResBody.getCode() + "(getMethod)<===");
|
||||||
logger.error("This " + statusCode + " ResponseBody(contain sessionId) is ===>" + acCheckMsgResBody.toString() + "<===");
|
logger.error("This " + statusCode + " ResponseBody(contain sessionId) is ===>" + acCheckMsgResBody.toString() + "<===");
|
||||||
}
|
}
|
||||||
updateConfigInfo();//getMsgSessionCookie()更新
|
updateConfigInfo();
|
||||||
// return producerResBody;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -301,7 +299,9 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
|
|
||||||
private static ConfigInfo updateConfigInfo() {
|
private static ConfigInfo updateConfigInfo() {
|
||||||
configInfo.setCheckMsgUrl(checkMsgUrl);
|
configInfo.setCheckMsgUrl(checkMsgUrl);
|
||||||
configInfo.setPostMsgUrl(postMsgUrl);
|
configInfo.setSingleProduceUrl(singleProduceUrl);
|
||||||
|
configInfo.setBatchProduceUrl(batchProduceUrl);
|
||||||
|
|
||||||
configInfo.setMsgSessionCookie(msgSessionCookie);
|
configInfo.setMsgSessionCookie(msgSessionCookie);
|
||||||
|
|
||||||
configInfo.setMonitorSessionCookie(monitorSessionCookie);//缓存monitorSessionCookie
|
configInfo.setMonitorSessionCookie(monitorSessionCookie);//缓存monitorSessionCookie
|
||||||
@@ -314,17 +314,18 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
return configInfo;
|
return configInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送消息控制器
|
* 往zx发送文件数据的消息,即发送文件的message数据(结构化数据)
|
||||||
|
* 本来是作为文件消息发送,现该方法主要用于单条发送数据-20191224
|
||||||
* @param transaction
|
* @param transaction
|
||||||
* @param contents
|
* @param contents
|
||||||
*/
|
*/
|
||||||
private void sendMsgController(Transaction transaction, List<String> contents) {
|
private void sendMsgLog(Transaction transaction, List<String> contents) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
AvroMonitorTimerTask.addTotalNum(contents.size());
|
|
||||||
AvroMonitorTimerTask.addReadyPostNum(contents.size());
|
logger.debug("Current sendMsgLog Thread number ID :" + Thread.currentThread().getId());
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取状态回传sessionID,检查认证是否存在
|
* 获取状态回传sessionID,检查认证是否存在
|
||||||
*/
|
*/
|
||||||
@@ -332,145 +333,6 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
|| StringUtils.isBlank(msgSessionCookie)) {
|
|| StringUtils.isBlank(msgSessionCookie)) {
|
||||||
getMonitorSessionCookie();//sendMsgLog-首次获取monitorSessionCookie
|
getMonitorSessionCookie();//sendMsgLog-首次获取monitorSessionCookie
|
||||||
getMsgSessionCookie();//sendMsgLog-msgSessionCookie为空,首次接入验证
|
getMsgSessionCookie();//sendMsgLog-msgSessionCookie为空,首次接入验证
|
||||||
if (!checkTimerStart) {
|
|
||||||
checkCookieEveryWeek();//sendMsgLog-第一次启动检测到monitorSessionCookie为空时启动任务但不进行验证,后续间隔一段时间后开始验证,每次申请monitorSessionCookie和msgSessionCookie两个Cookie
|
|
||||||
checkTimerStart = true;
|
|
||||||
logger.warn("CheckMsgAndFileCookie Timer is started......");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!monitorStart) {//消息定时上报
|
|
||||||
AvroMonitorTimerTask.monitorMsg(monitorSessionCookie, postMsgUrl,
|
|
||||||
"monitor-msg", 1, userAgent, topicName);//sendMsgLog-日志消息
|
|
||||||
monitorStart = true;
|
|
||||||
logger.warn("MonitorMsg Timer is started......");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (!redirectContentsPostStart) {
|
|
||||||
postRedirectDataEveryMin();
|
|
||||||
redirectContentsPostStart = true;
|
|
||||||
logger.warn("RedirectContents Timer Post is started......");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (isSingle(topicName)) {
|
|
||||||
|
|
||||||
for (String content : contents) {
|
|
||||||
pool.execute(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try {
|
|
||||||
|
|
||||||
HttpClientUtil.asyncProducerAvroToZX(postMsgUrl, topicName, content,
|
|
||||||
userAgent, msgSessionCookie, 1, System.currentTimeMillis());//初始发送count计数为0
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("sendMsgLog multi-thread is error==>" + e + "<==,Thread is==>" + Thread.currentThread().getName() + "<==.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
xTag = HttpClientUtil.getXTAG(contents.get(0), topicName);
|
|
||||||
dataJson = contents.get(0);
|
|
||||||
int size = contents.size() / 100;
|
|
||||||
if (size > 0) {
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
// byte[] msgResults = HttpClientUtil.encapsulationData(topicName, contents.subList(i*1, (i+1)*1));
|
|
||||||
//concurrentLinkedQueue.add(msgResults);
|
|
||||||
pool.execute(new Producer(contents.subList(i * 100, (i + 1) * 100)));
|
|
||||||
}
|
|
||||||
if (contents.size() % 100 > 0) {
|
|
||||||
pool.execute(new Producer(contents.subList(size, contents.size())));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
pool.execute(new Producer(contents));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("YbHttpAvroSinkFile send Msg is error===>" + e + "<===");
|
|
||||||
transaction.commit();
|
|
||||||
} finally {
|
|
||||||
if (transaction != null) {
|
|
||||||
transaction.commit();
|
|
||||||
}
|
|
||||||
AvroMonitorTimerTask.subReadyPostNum(contents.size());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Producer implements Runnable {
|
|
||||||
|
|
||||||
private List<String> contents;
|
|
||||||
public Producer(List<String> contents) { ;
|
|
||||||
this.contents = contents;
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try {
|
|
||||||
logger.debug("Current Producer Thread number ID :" + Thread.currentThread().getId());
|
|
||||||
byte[] msgResults = HttpClientUtil.encapsulationData(topicName, contents);
|
|
||||||
concurrentLinkedQueue.add(msgResults);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("YbHttpAvroSinkFile send Msg is error===>" + e + "<===");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class Consumer implements Runnable {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
logger.debug("Current Consumer Thread number ID :" + Thread.currentThread().getId());
|
|
||||||
while(true) {
|
|
||||||
|
|
||||||
if (concurrentLinkedQueue.isEmpty()) {
|
|
||||||
logger.info("当前队列无数据,等待数据接入!");
|
|
||||||
} else {
|
|
||||||
byte[] result = concurrentLinkedQueue.poll();
|
|
||||||
HttpClientUtil.asyncProducerAvroMessageToZX_toBatch(postMsgUrl, topicName, result, dataJson,
|
|
||||||
userAgent, msgSessionCookie, 100, System.currentTimeMillis());//初始发送count计数为0
|
|
||||||
logger.info("生产数据,等待数据接入!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 往zx发送文件数据的消息,即发送文件的message数据(结构化数据)
|
|
||||||
* 本来是作为文件消息发送,现该方法主要用于单条发送数据-20191224
|
|
||||||
*
|
|
||||||
* @param transaction
|
|
||||||
* @param contents
|
|
||||||
*/
|
|
||||||
private void sendMsgLog(Transaction transaction, List<String> contents) {
|
|
||||||
|
|
||||||
try {
|
|
||||||
|
|
||||||
logger.info("Current sendMsgLog Thread number ID :" + Thread.currentThread().getId());
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取状态回传sessionID,检查认证是否存在
|
|
||||||
*/
|
|
||||||
if (StringUtils.isBlank(monitorSessionCookie)
|
|
||||||
|| StringUtils.isBlank(msgSessionCookie)) {
|
|
||||||
getMonitorSessionCookie();//sendMsgLog-首次获取monitorSessionCookie
|
|
||||||
getMsgSessionCookie();//sendMsgLog-msgSessionCookie为空,首次接入验证
|
|
||||||
if (!checkTimerStart) {
|
if (!checkTimerStart) {
|
||||||
checkCookieEveryWeek();//sendMsgLog-第一次启动检测到monitorSessionCookie为空时启动任务但不进行验证,后续间隔一段时间后开始验证,每次申请monitorSessionCookie和msgSessionCookie两个Cookie
|
checkCookieEveryWeek();//sendMsgLog-第一次启动检测到monitorSessionCookie为空时启动任务但不进行验证,后续间隔一段时间后开始验证,每次申请monitorSessionCookie和msgSessionCookie两个Cookie
|
||||||
checkTimerStart = true;
|
checkTimerStart = true;
|
||||||
@@ -478,33 +340,29 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!monitorStart) {//消息定时上报
|
if (!monitorStart) {//消息定时上报
|
||||||
AvroMonitorTimerTask.monitorMsg(monitorSessionCookie, postMsgUrl,
|
AvroMonitorTimerTask.monitorMsg(monitorSessionCookie, singleProduceUrl,
|
||||||
"monitor-msg", 1, userAgent, topicName);//sendMsgLog-日志消息
|
"monitor-msg", 1, userAgent, topicName);//sendMsgLog-日志消息
|
||||||
monitorStart = true;
|
monitorStart = true;
|
||||||
logger.debug("MonitorMsg Timer is started......");
|
logger.debug("MonitorMsg Timer is started......");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!redirectContentsPostStart) {
|
logger.info("AC msg sessionId already exists,msg sessionId is ===>" + msgSessionCookie);
|
||||||
postRedirectDataEveryMin();
|
|
||||||
redirectContentsPostStart = true;
|
|
||||||
logger.debug("RedirectContents Timer Post is started......");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (StringUtils.isBlank(configInfo.getMsgSessionCookie())) {
|
||||||
|
throw new RuntimeException("Get Cookie Error : " + configInfo.getCheckMsgUrl());
|
||||||
|
}
|
||||||
|
|
||||||
AvroMonitorTimerTask.addTotalNum(contents.size());
|
AvroMonitorTimerTask.addTotalNum(contents.size());
|
||||||
logger.debug("AC msg sessionId already exists,msg sessionId is ===>" + msgSessionCookie);
|
|
||||||
AvroMonitorTimerTask.addReadyPostNum(contents.size());
|
AvroMonitorTimerTask.addReadyPostNum(contents.size());
|
||||||
if (isSingle(topicName)) {
|
if (isSingle(topicName)) {
|
||||||
for (String content : contents) {
|
for (String content : contents) {
|
||||||
|
|
||||||
pool.execute(new Runnable() {
|
pool.execute(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
|
HttpClientUtil.singleAsyncProduceMessage(singleProduceUrl, topicName, content,
|
||||||
HttpClientUtil.asyncProducerAvroToZX(postMsgUrl, topicName, content,
|
|
||||||
userAgent, msgSessionCookie, 1, System.currentTimeMillis());//初始发送count计数为0
|
userAgent, msgSessionCookie, 1, System.currentTimeMillis());//初始发送count计数为0
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("sendMsgLog multi-thread is error==>" + e + "<==,Thread is==>" + Thread.currentThread().getName() + "<==.");
|
logger.error("sendMsgLog multi-thread is error==>" + e + "<==,Thread is==>" + Thread.currentThread().getName() + "<==.");
|
||||||
@@ -514,61 +372,30 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
long beginAvroTime = System.currentTimeMillis();
|
long beginAvroTime = System.currentTimeMillis();
|
||||||
|
xTag = HttpClientUtil.getXTAG(contents.get(0), topicName);
|
||||||
byte[] msgResults = HttpClientUtil.encapsulationData(topicName, contents);
|
byte[] msgResults = HttpClientUtil.encapsulationData(topicName, contents);
|
||||||
logger.debug("Batch Avro and Encapsulation Data Time(ms):"+ (System.currentTimeMillis() - beginAvroTime) );
|
|
||||||
HttpClientUtil.asyncProducerAvroMessageToZX_bk(postMsgUrl, topicName, msgResults, contents.get(0),
|
logger.info("Batch Avro and Encapsulation Data Time(ms):"+ (System.currentTimeMillis() - beginAvroTime) );
|
||||||
|
HttpClientUtil.batchAsyncProduceMessage(batchProduceUrl, topicName, msgResults, xTag,
|
||||||
userAgent, msgSessionCookie, contents.size(), System.currentTimeMillis());
|
userAgent, msgSessionCookie, contents.size(), System.currentTimeMillis());
|
||||||
/* for (String content : contents) {
|
|
||||||
HttpClientUtil.asyncProducerAvroMessageToZX_bk(postMsgUrl, topicName, msgResults, contents.get(0),
|
|
||||||
userAgent, msgSessionCookie, contents.size(), System.currentTimeMillis());//初始发送count计数为0
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
/*for (String content : contents) {
|
|
||||||
|
|
||||||
pool.execute(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try {
|
|
||||||
|
|
||||||
HttpClientUtil.asyncProducerAvroMessageToZX_bk(postMsgUrl, topicName, msgResults, contents.get(0),
|
|
||||||
userAgent, msgSessionCookie, contents.size(), System.currentTimeMillis());
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("sendMsgLog multi-thread is error==>" + e + "<==,Thread is==>" + Thread.currentThread().getName() + "<==.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}*/
|
|
||||||
|
|
||||||
/* for (String content : contents) {
|
|
||||||
|
|
||||||
pool.execute(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
try {
|
|
||||||
SinkService.getInstance().producerAvroMessageToBus(postMsgUrl, topicName, msgResults, contents.get(0),
|
|
||||||
userAgent, msgSessionCookie, contents.size());
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("sendMsgLog multi-thread is error==>" + e + "<==,Thread is==>" + Thread.currentThread().getName() + "<==.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("YbHttpAvroSinkFile send Msg is error===>" + e + "<===");
|
logger.error("YbHttpAvroSinkFile Send Msg is error===>" + e + "<===");
|
||||||
transaction.commit();
|
transaction.commit();
|
||||||
} finally {
|
} finally {
|
||||||
if (transaction != null) {
|
if (transaction != null) {
|
||||||
transaction.commit();
|
transaction.commit();
|
||||||
}
|
}
|
||||||
AvroMonitorTimerTask.subReadyPostNum(contents.size());
|
AvroMonitorTimerTask.subReadyPostNum(contents.size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单条消息发送处理逻辑
|
||||||
|
* @param topicName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
private static boolean isSingle(String topicName) {
|
private static boolean isSingle(String topicName) {
|
||||||
|
|
||||||
if (topicName.equals("NTC-COLLECT-FILE-LOG")
|
if (topicName.equals("NTC-COLLECT-FILE-LOG")
|
||||||
@@ -577,6 +404,7 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
|| topicName.equals("NTC-COLLECT-FTP-DOC-LOG")
|
|| topicName.equals("NTC-COLLECT-FTP-DOC-LOG")
|
||||||
|| topicName.equals("NTC-COLLECT-MAIL-LOG")
|
|| topicName.equals("NTC-COLLECT-MAIL-LOG")
|
||||||
|| topicName.equals("NTC-COLLECT-TELNET-LOG")
|
|| topicName.equals("NTC-COLLECT-TELNET-LOG")
|
||||||
|
|| topicName.equals(("NTC-COLLECT-HTTP-HDR-LOG"))
|
||||||
|| topicName.equals("INFLUX-SAPP-BPS-STAT-LOG")) //监控消息,几分钟1条
|
|| topicName.equals("INFLUX-SAPP-BPS-STAT-LOG")) //监控消息,几分钟1条
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -619,31 +447,25 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
}, 1000 * 60 * 60 * 24 * 7, 1000 * 60 * 60 * 24 * 7);//每隔7天执行一次
|
}, 1000 * 60 * 60 * 24 * 7, 1000 * 60 * 60 * 24 * 7);//每隔7天执行一次
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 重定向数据集上传定时器,每隔一段时间扫描并上传一次-用于上传因为服务器资源紧张暂未上传的数据
|
class RetrySendMessage implements Runnable {
|
||||||
*/
|
|
||||||
private void postRedirectDataEveryMin() {
|
@Override
|
||||||
Timer timer = new Timer();
|
public void run() {
|
||||||
timer.scheduleAtFixedRate(new TimerTask() {
|
logger.debug("Current Consumer Thread number ID :" + Thread.currentThread().getId());
|
||||||
@Override
|
while(true) {
|
||||||
public void run() {
|
if (!HttpClientUtil.getRetryQueue().isEmpty()) {
|
||||||
try {
|
logger.info("当前队列大小:" + HttpClientUtil.getRetryQueue().size());
|
||||||
if (redirectContents.size() > 0) {
|
HttpClientUtil.singleAsyncProduceMessage(singleProduceUrl, topicName,
|
||||||
List<String> tmpListFreq = new ArrayList<>(redirectContents);
|
HttpClientUtil.getRetryQueue().poll(), userAgent, msgSessionCookie, 1, System.currentTimeMillis());
|
||||||
redirectContents.clear();
|
|
||||||
AvroMonitorTimerTask.msgReadyPostSum += tmpListFreq.size();
|
|
||||||
for (String content : tmpListFreq) {
|
|
||||||
HttpClientUtil.asyncProducerAvroToZX(postMsgUrl, topicName, content, userAgent, msgSessionCookie, 0, System.currentTimeMillis());//postRedirectDataEveryMin定时器-初始发送count计数为0
|
|
||||||
}
|
|
||||||
logger.info("PostRedirectDataEveryMin post to zx RedirectData size==>" + tmpListFreq.size() + "<==.");
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
logger.error("PostRedirectDataEveryMin to zx everyMin is error===>>>" + e + "<===");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, 1000 * 60, 1000 * 60);//每隔1分钟执行一次
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 动态负载均衡变更cookie-20200818
|
* 动态负载均衡变更cookie-20200818
|
||||||
*
|
*
|
||||||
@@ -654,7 +476,8 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
/**
|
/**
|
||||||
* 变更postMsgUrl与checkMsgUrl
|
* 变更postMsgUrl与checkMsgUrl
|
||||||
*/
|
*/
|
||||||
postMsgUrl = redirectUrlPort + urlToolHm.get("post_suf_path");
|
singleProduceUrl = redirectUrlPort + urlToolHm.get("post_single_suf_path");
|
||||||
|
batchProduceUrl = redirectUrlPort + urlToolHm.get("post_batch_suf_path");
|
||||||
checkMsgUrl = redirectUrlPort + urlToolHm.get("check_suf_path");
|
checkMsgUrl = redirectUrlPort + urlToolHm.get("check_suf_path");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -662,9 +485,14 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
*/
|
*/
|
||||||
updateCookie();
|
updateCookie();
|
||||||
|
|
||||||
logger.info("YbHttpAvroSinkFile->changeUrl->change postMsgUrl:" + postMsgUrl + ",change checkMsgUrl:" + checkMsgUrl);
|
logger.warn("YbHttpAvroSinkFile->changeUrl->"
|
||||||
|
+ "change singleProduceUrl:" + singleProduceUrl
|
||||||
|
+ "change batchProduceUrl:" + batchProduceUrl
|
||||||
|
+ ",change checkMsgUrl:" + checkMsgUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 动态负载均衡更新cookie
|
* 动态负载均衡更新cookie
|
||||||
*/
|
*/
|
||||||
@@ -672,7 +500,8 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
getMonitorSessionCookie();//动态负载均衡修改url,重新获取cookie
|
getMonitorSessionCookie();//动态负载均衡修改url,重新获取cookie
|
||||||
getMsgSessionCookie();//动态负载均衡修改url,重新获取cookie
|
getMsgSessionCookie();//动态负载均衡修改url,重新获取cookie
|
||||||
|
|
||||||
logger.info("YbHttpAvroSinkFile->updateCookie update cookie,postMsgUrl:" + postMsgUrl
|
logger.warn("YbHttpAvroSinkFile->updateCookie update cookie,singleProduceUrl:" + singleProduceUrl
|
||||||
|
+ "batchProduceUrl:" + batchProduceUrl
|
||||||
+ ",checkMsgUrl:" + checkMsgUrl
|
+ ",checkMsgUrl:" + checkMsgUrl
|
||||||
+ ",获取monitorSessionCookie:" + monitorSessionCookie
|
+ ",获取monitorSessionCookie:" + monitorSessionCookie
|
||||||
+ ",获取msgSessionCookie:" + msgSessionCookie);
|
+ ",获取msgSessionCookie:" + msgSessionCookie);
|
||||||
@@ -685,7 +514,8 @@ public class YbHttpAvroSinkFile extends AbstractSink implements Configurable {
|
|||||||
* @param urlType
|
* @param urlType
|
||||||
*/
|
*/
|
||||||
private static void makeUrlSplitMap(String oldUrlPath, String urlType) {
|
private static void makeUrlSplitMap(String oldUrlPath, String urlType) {
|
||||||
String[] split = oldUrlPath.replace("http://", "").replace("https://", "").split("/", 2);
|
String[] split = oldUrlPath.replace("http://", "")
|
||||||
|
.replace("https://", "").split("/", 2);
|
||||||
|
|
||||||
if (split.length == 2) {
|
if (split.length == 2) {
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public class AvroMonitorTimerTask {
|
|||||||
if ("yb".equals(RealtimeCountConfig.MONITOR_TYPE)) {//只有当类型为一部(yb)时才进行状态上报
|
if ("yb".equals(RealtimeCountConfig.MONITOR_TYPE)) {//只有当类型为一部(yb)时才进行状态上报
|
||||||
String sendMsg = getJson(RealtimeCountConfig.MONITOR_SYSTEM_COMPONENT_CODE, RealtimeCountConfig.MONITOR_SYSTEM_COMPONENT_CODE_FLUME, topicType);//新版-20200428
|
String sendMsg = getJson(RealtimeCountConfig.MONITOR_SYSTEM_COMPONENT_CODE, RealtimeCountConfig.MONITOR_SYSTEM_COMPONENT_CODE_FLUME, topicType);//新版-20200428
|
||||||
logger.info("Send monitor message is===>>>" + sendMsg + "<<<===");
|
logger.info("Send monitor message is===>>>" + sendMsg + "<<<===");
|
||||||
HttpClientUtil.asyncProducerAvroToZX(postMonitorUrl, monitorCategory, sendMsg, userAgent, monitorSessionCookie, 0, System.currentTimeMillis());//静态方法无返回值用于多线程,初始发送count计数为0
|
HttpClientUtil.singleAsyncProduceMessage(postMonitorUrl, monitorCategory, sendMsg, userAgent, monitorSessionCookie, 0, System.currentTimeMillis());//静态方法无返回值用于多线程,初始发送count计数为0
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.error("Send monitorMsg to zx is error===>>>" + e + "<===");
|
logger.error("Send monitorMsg to zx is error===>>>" + e + "<===");
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import org.apache.http.client.protocol.HttpClientContext;
|
|||||||
import org.apache.http.config.Registry;
|
import org.apache.http.config.Registry;
|
||||||
import org.apache.http.config.RegistryBuilder;
|
import org.apache.http.config.RegistryBuilder;
|
||||||
import org.apache.http.conn.ConnectTimeoutException;
|
import org.apache.http.conn.ConnectTimeoutException;
|
||||||
|
import org.apache.http.conn.ConnectionKeepAliveStrategy;
|
||||||
import org.apache.http.conn.socket.ConnectionSocketFactory;
|
import org.apache.http.conn.socket.ConnectionSocketFactory;
|
||||||
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
|
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
|
||||||
import org.apache.http.conn.ssl.*;
|
import org.apache.http.conn.ssl.*;
|
||||||
@@ -41,6 +42,8 @@ import org.apache.http.impl.client.CloseableHttpClient;
|
|||||||
import org.apache.http.impl.client.HttpClients;
|
import org.apache.http.impl.client.HttpClients;
|
||||||
import org.apache.http.impl.client.LaxRedirectStrategy;
|
import org.apache.http.impl.client.LaxRedirectStrategy;
|
||||||
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
||||||
|
import org.apache.http.message.BasicHeaderElementIterator;
|
||||||
|
import org.apache.http.protocol.HTTP;
|
||||||
import org.apache.http.protocol.HttpContext;
|
import org.apache.http.protocol.HttpContext;
|
||||||
import org.apache.http.util.EntityUtils;
|
import org.apache.http.util.EntityUtils;
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
@@ -101,6 +104,7 @@ public class HttpManager {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
ctx.init(null, new TrustManager[]{tm}, null);
|
ctx.init(null, new TrustManager[]{tm}, null);
|
||||||
|
|
||||||
SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(ctx, NoopHostnameVerifier.INSTANCE);
|
SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(ctx, NoopHostnameVerifier.INSTANCE);
|
||||||
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
|
Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create()
|
||||||
.register("http", PlainConnectionSocketFactory.INSTANCE)
|
.register("http", PlainConnectionSocketFactory.INSTANCE)
|
||||||
@@ -120,6 +124,7 @@ public class HttpManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
httpClient = getHttpClient();
|
httpClient = getHttpClient();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//请求重试机制
|
//请求重试机制
|
||||||
@@ -166,11 +171,27 @@ public class HttpManager {
|
|||||||
RequestConfig requestConfig = RequestConfig.custom()
|
RequestConfig requestConfig = RequestConfig.custom()
|
||||||
.setConnectTimeout(3000)
|
.setConnectTimeout(3000)
|
||||||
.setSocketTimeout(3000)
|
.setSocketTimeout(3000)
|
||||||
|
.setCookieSpec(CookieSpecs.IGNORE_COOKIES)
|
||||||
//.setCookieSpec(CookieSpecs.BEST_MATCH)
|
//.setCookieSpec(CookieSpecs.BEST_MATCH)
|
||||||
.build();
|
.build();
|
||||||
// 声明重定向策略对象
|
// 声明重定向策略对象
|
||||||
LaxRedirectStrategy redirectStrategy = new LaxRedirectStrategy();
|
LaxRedirectStrategy redirectStrategy = new LaxRedirectStrategy();
|
||||||
|
|
||||||
|
|
||||||
|
/* ConnectionKeepAliveStrategy myStrategy = (response, context) -> {
|
||||||
|
HeaderElementIterator it = new BasicHeaderElementIterator
|
||||||
|
(response.headerIterator(HTTP.CONN_KEEP_ALIVE));
|
||||||
|
while (it.hasNext()) {
|
||||||
|
HeaderElement he = it.nextElement();
|
||||||
|
String param = he.getName();
|
||||||
|
String value = he.getValue();
|
||||||
|
if (value != null && param.equalsIgnoreCase("timeout")) {
|
||||||
|
return Long.parseLong(value) * 1000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 10 * 1000;//如果没有约定,则默认定义时长为60s
|
||||||
|
};*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 原版
|
* 原版
|
||||||
*/
|
*/
|
||||||
@@ -179,6 +200,7 @@ public class HttpManager {
|
|||||||
.setDefaultRequestConfig(requestConfig)
|
.setDefaultRequestConfig(requestConfig)
|
||||||
.setRedirectStrategy(redirectStrategy)
|
.setRedirectStrategy(redirectStrategy)
|
||||||
.setRetryHandler(myRetryHandler)
|
.setRetryHandler(myRetryHandler)
|
||||||
|
// .setKeepAliveStrategy(myStrategy)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
return httpClient;
|
return httpClient;
|
||||||
@@ -629,6 +651,8 @@ public class HttpManager {
|
|||||||
httpPost.addHeader("User-Agent", userAgent);
|
httpPost.addHeader("User-Agent", userAgent);
|
||||||
httpPost.addHeader("X-Tag", xTag);//根据最新文档,目前已经不需要此头-20191217
|
httpPost.addHeader("X-Tag", xTag);//根据最新文档,目前已经不需要此头-20191217
|
||||||
httpPost.addHeader("Content-Type", "application/json");
|
httpPost.addHeader("Content-Type", "application/json");
|
||||||
|
httpPost.setHeader("Cookie", "");
|
||||||
|
// httpPost.setHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE);
|
||||||
StringEntity payload = new StringEntity(data, Charset.forName("utf-8"));
|
StringEntity payload = new StringEntity(data, Charset.forName("utf-8"));
|
||||||
//payload.setContentType("text/xml; charset=UTF-8");
|
//payload.setContentType("text/xml; charset=UTF-8");
|
||||||
payload.setContentEncoding("utf-8");
|
payload.setContentEncoding("utf-8");
|
||||||
@@ -671,11 +695,12 @@ public class HttpManager {
|
|||||||
// 执行httpClient.execute(httpGet)的异常
|
// 执行httpClient.execute(httpGet)的异常
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
} finally {
|
} finally {
|
||||||
if (response != null) {
|
if (null != response) {
|
||||||
try {
|
try {
|
||||||
|
EntityUtils.consumeQuietly(response.getEntity());
|
||||||
response.close();
|
response.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
logger.error("释放链接错误: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
httpPost.abort();
|
httpPost.abort();
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package cn.ac.iie.cusflume.sink.avroUtils.avroRecord;
|
|||||||
|
|
||||||
import cn.ac.iie.cusflume.sink.CommonUtils.DecodeUtils;
|
import cn.ac.iie.cusflume.sink.CommonUtils.DecodeUtils;
|
||||||
import cn.ac.iie.cusflume.sink.bean.dataBean.NTC_COLLECT_DNS_LOG;
|
import cn.ac.iie.cusflume.sink.bean.dataBean.NTC_COLLECT_DNS_LOG;
|
||||||
|
import cn.ac.iie.cusflume.sink.bean.dataBean.NTC_COLLECT_HTTP_HDR_LOG;
|
||||||
import cn.ac.iie.cusflume.sink.bean.dataBean.NTC_COLLECT_HTTP_LOG;
|
import cn.ac.iie.cusflume.sink.bean.dataBean.NTC_COLLECT_HTTP_LOG;
|
||||||
import cn.ac.iie.cusflume.sink.bean.dataBean.NTC_COLLECT_SSL_LOG;
|
import cn.ac.iie.cusflume.sink.bean.dataBean.NTC_COLLECT_SSL_LOG;
|
||||||
import cn.ac.iie.cusflume.sink.bean.fileBean.FILE_TAG_BEAN;
|
import cn.ac.iie.cusflume.sink.bean.fileBean.FILE_TAG_BEAN;
|
||||||
@@ -9,6 +10,7 @@ import cn.ac.iie.cusflume.sink.bean.fileBean.NTC_COLLECT_MAIL_LOG;
|
|||||||
import cn.ac.iie.cusflume.sink.bean.tagBean.LOG_D_TAG_BEAN;
|
import cn.ac.iie.cusflume.sink.bean.tagBean.LOG_D_TAG_BEAN;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
//import com.sun.deploy.util.StringUtils;
|
||||||
import com.zdjizhi.utils.StringUtil;
|
import com.zdjizhi.utils.StringUtil;
|
||||||
import org.apache.avro.Schema;
|
import org.apache.avro.Schema;
|
||||||
import org.apache.avro.generic.GenericRecord;
|
import org.apache.avro.generic.GenericRecord;
|
||||||
@@ -30,12 +32,12 @@ public class GetAvroRecordByTopicUtils {
|
|||||||
switch (topic) {
|
switch (topic) {
|
||||||
case "NTC-CONN-RECORD-LOG":
|
case "NTC-CONN-RECORD-LOG":
|
||||||
return getConnRecordAvroRecord(recordAvro, dataJson, schemaStr);
|
return getConnRecordAvroRecord(recordAvro, dataJson, schemaStr);
|
||||||
// case "NTC-COLLECT-HTTP-LOG":
|
|
||||||
// return getCollHttpAvroRecord(recordAvro, dataJson);
|
|
||||||
case "NTC-COLLECT-SSL-LOG":
|
case "NTC-COLLECT-SSL-LOG":
|
||||||
return getCollSslAvroRecord(recordAvro, dataJson, schemaStr);
|
return getCollSslAvroRecord(recordAvro, dataJson, schemaStr);
|
||||||
case "NTC-COLLECT-DNS-LOG":
|
case "NTC-COLLECT-DNS-LOG":
|
||||||
return getCollDnsAvroRecord(recordAvro, dataJson, schemaStr);
|
return getCollDnsAvroRecord(recordAvro, dataJson, schemaStr);
|
||||||
|
case "NTC-COLLECT-HTTP-HDR-LOG":
|
||||||
|
return getCollHttpHdrRecord(recordAvro, dataJson, schemaStr);
|
||||||
case "NTC-COLLECT-HTTP-DOC-LOG":
|
case "NTC-COLLECT-HTTP-DOC-LOG":
|
||||||
return getCollectHttpDocPostAvroRecord(recordAvro, dataJson, schemaStr);
|
return getCollectHttpDocPostAvroRecord(recordAvro, dataJson, schemaStr);
|
||||||
case "NTC-COLLECT-HTTP-AV-LOG":
|
case "NTC-COLLECT-HTTP-AV-LOG":
|
||||||
@@ -70,6 +72,23 @@ public class GetAvroRecordByTopicUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static GenericRecord getCollFtpDocAvroRecord(GenericRecord recordAvro, String dataJson, Schema schemaStr) {
|
private static GenericRecord getCollFtpDocAvroRecord(GenericRecord recordAvro, String dataJson, Schema schemaStr) {
|
||||||
|
|
||||||
|
// NTC_COLLECT_MAIL_LOG ntcCollectMailLog = JSONObject.parseObject(dataJson, NTC_COLLECT_MAIL_LOG.class);
|
||||||
|
//
|
||||||
|
// if (StringUtil.isNotBlank(ntcCollectMailLog.getSubject())) {
|
||||||
|
// String subjectCharset = JSONObject.parseObject(dataJson).getString("subject_charset");
|
||||||
|
// ntcCollectMailLog.setSubject(DecodeUtils.base64Str(ntcCollectMailLog.getSubject(), subjectCharset));
|
||||||
|
// }
|
||||||
|
// recordAvro = converter.convertToGenericDataRecord(JSONObject.toJSONString(ntcCollectMailLog).getBytes(), schemaStr);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// NTC_COLLECT_FTP_DOC_LOG ntcCollectFtpDocLog = JSONObject.parseObject(dataJson, NTC_COLLECT_FTP_DOC_LOG.class);
|
||||||
|
//
|
||||||
|
// if (StringUtil.isNotBlank(ntcCollectFtpDocLog.getFtp_file_name())) {
|
||||||
|
// ntcCollectFtpDocLog.
|
||||||
|
// }
|
||||||
|
//
|
||||||
recordAvro = converter.convertToGenericDataRecord(dataJson.getBytes(), schemaStr);
|
recordAvro = converter.convertToGenericDataRecord(dataJson.getBytes(), schemaStr);
|
||||||
return recordAvro;
|
return recordAvro;
|
||||||
}
|
}
|
||||||
@@ -102,6 +121,12 @@ public class GetAvroRecordByTopicUtils {
|
|||||||
return recordAvro;
|
return recordAvro;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static GenericRecord getCollHttpHdrRecord(GenericRecord recordAvro, String dataJson, Schema schemaStr){
|
||||||
|
NTC_COLLECT_HTTP_HDR_LOG ntcCollectHttpHdrLog = JSONObject.parseObject(dataJson, NTC_COLLECT_HTTP_HDR_LOG.class);//用于json字段压成字符串
|
||||||
|
recordAvro = converter.convertToGenericDataRecord(JSONObject.toJSONString(ntcCollectHttpHdrLog).getBytes(), schemaStr);
|
||||||
|
return recordAvro;
|
||||||
|
}
|
||||||
|
|
||||||
private static GenericRecord getCollHttpAvroRecord(GenericRecord recordAvro, String dataJson) {
|
private static GenericRecord getCollHttpAvroRecord(GenericRecord recordAvro, String dataJson) {
|
||||||
NTC_COLLECT_HTTP_LOG ntcCollectHttpLog = JSONObject.parseObject(dataJson, NTC_COLLECT_HTTP_LOG.class);
|
NTC_COLLECT_HTTP_LOG ntcCollectHttpLog = JSONObject.parseObject(dataJson, NTC_COLLECT_HTTP_LOG.class);
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ public class GetAvroSchemaByTopicUtils {
|
|||||||
return RealtimeCountConfig.SCHEMA_NTC_COLLECT_SSL_LOG;
|
return RealtimeCountConfig.SCHEMA_NTC_COLLECT_SSL_LOG;
|
||||||
case "NTC-COLLECT-DNS-LOG":
|
case "NTC-COLLECT-DNS-LOG":
|
||||||
return RealtimeCountConfig.SCHEMA_NTC_COLLECT_DNS_LOG;
|
return RealtimeCountConfig.SCHEMA_NTC_COLLECT_DNS_LOG;
|
||||||
|
case "NTC-COLLECT-HTTP-HDR-LOG":
|
||||||
|
return RealtimeCountConfig.SCHEMA_NTC_COLLECT_HTTP_HDR_LOG;
|
||||||
case "NTC-COLLECT-MAIL-LOG":
|
case "NTC-COLLECT-MAIL-LOG":
|
||||||
return RealtimeCountConfig.SCHEMA_NTC_COLLECT_MAIL_LOG;
|
return RealtimeCountConfig.SCHEMA_NTC_COLLECT_MAIL_LOG;
|
||||||
case "NTC-COLLECT-HTTP-DOC-LOG":
|
case "NTC-COLLECT-HTTP-DOC-LOG":
|
||||||
|
|||||||
@@ -1,254 +0,0 @@
|
|||||||
//package cn.ac.iie.cusflume.sink.bean;
|
|
||||||
//
|
|
||||||
//public class CommonLog_Msg_File {
|
|
||||||
// private int cfg_id;
|
|
||||||
// private int found_time;
|
|
||||||
// private int recv_time;
|
|
||||||
// private String trans_proto;
|
|
||||||
// private int addr_type;
|
|
||||||
// private String d_ip;
|
|
||||||
// private String s_ip;
|
|
||||||
// private int d_port;
|
|
||||||
// private int s_port;
|
|
||||||
// private int entrance_id;
|
|
||||||
// private int stream_dir;
|
|
||||||
// private String cap_ip;
|
|
||||||
// private String addr_list;
|
|
||||||
// private String server_locate;
|
|
||||||
// private String client_locate;
|
|
||||||
// private String s_asn;
|
|
||||||
// private String d_asn;
|
|
||||||
// private String user_region;
|
|
||||||
// private int service;
|
|
||||||
// private String scene_file;
|
|
||||||
// private String scene_file_id;
|
|
||||||
//
|
|
||||||
// public int getCfg_id() {
|
|
||||||
// return cfg_id;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setCfg_id(int cfg_id) {
|
|
||||||
// this.cfg_id = cfg_id;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public int getFound_time() {
|
|
||||||
// return found_time;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setFound_time(int found_time) {
|
|
||||||
// this.found_time = found_time;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public int getRecv_time() {
|
|
||||||
// return recv_time;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setRecv_time(int recv_time) {
|
|
||||||
// this.recv_time = recv_time;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getTrans_proto() {
|
|
||||||
// return trans_proto;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setTrans_proto(String trans_proto) {
|
|
||||||
// this.trans_proto = trans_proto;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public int getAddr_type() {
|
|
||||||
// return addr_type;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setAddr_type(int addr_type) {
|
|
||||||
// this.addr_type = addr_type;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getD_ip() {
|
|
||||||
// return d_ip;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setD_ip(String d_ip) {
|
|
||||||
// this.d_ip = d_ip;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getS_ip() {
|
|
||||||
// return s_ip;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setS_ip(String s_ip) {
|
|
||||||
// this.s_ip = s_ip;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public int getD_port() {
|
|
||||||
// return d_port;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setD_port(int d_port) {
|
|
||||||
// this.d_port = d_port;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public int getS_port() {
|
|
||||||
// return s_port;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setS_port(int s_port) {
|
|
||||||
// this.s_port = s_port;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public int getEntrance_id() {
|
|
||||||
// return entrance_id;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setEntrance_id(int entrance_id) {
|
|
||||||
// this.entrance_id = entrance_id;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public int getStream_dir() {
|
|
||||||
// return stream_dir;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setStream_dir(int stream_dir) {
|
|
||||||
// this.stream_dir = stream_dir;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getCap_ip() {
|
|
||||||
// return cap_ip;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setCap_ip(String cap_ip) {
|
|
||||||
// this.cap_ip = cap_ip;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getAddr_list() {
|
|
||||||
// return addr_list;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setAddr_list(String addr_list) {
|
|
||||||
// this.addr_list = addr_list;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getServer_locate() {
|
|
||||||
// return server_locate;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setServer_locate(String server_locate) {
|
|
||||||
// this.server_locate = server_locate;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getClient_locate() {
|
|
||||||
// return client_locate;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setClient_locate(String client_locate) {
|
|
||||||
// this.client_locate = client_locate;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getS_asn() {
|
|
||||||
// return s_asn;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setS_asn(String s_asn) {
|
|
||||||
// this.s_asn = s_asn;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getD_asn() {
|
|
||||||
// return d_asn;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setD_asn(String d_asn) {
|
|
||||||
// this.d_asn = d_asn;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getUser_region() {
|
|
||||||
// return user_region;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setUser_region(String user_region) {
|
|
||||||
// this.user_region = user_region;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public int getService() {
|
|
||||||
// return service;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setService(int service) {
|
|
||||||
// this.service = service;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getScene_file() {
|
|
||||||
// return scene_file;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setScene_file(String scene_file) {
|
|
||||||
// this.scene_file = scene_file;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getScene_file_id() {
|
|
||||||
// return scene_file_id;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setScene_file_id(String scene_file_id) {
|
|
||||||
// this.scene_file_id = scene_file_id;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public String toString() {
|
|
||||||
// return cfg_id + "#" +
|
|
||||||
// found_time + "#" +
|
|
||||||
// recv_time + "#" +
|
|
||||||
// trans_proto + "#" +
|
|
||||||
// addr_type + "#" +
|
|
||||||
// d_ip + "#" +
|
|
||||||
// s_ip + "#" +
|
|
||||||
// d_port + "#" +
|
|
||||||
// s_port + "#" +
|
|
||||||
// entrance_id + "#" +
|
|
||||||
//// encap_type + "#" +
|
|
||||||
//// direction + "#" +
|
|
||||||
//// inner_smac + "#" +
|
|
||||||
//// inner_dmac + "#" +
|
|
||||||
// stream_dir + "#" +
|
|
||||||
// cap_ip + "#" +
|
|
||||||
// addr_list + "#" +
|
|
||||||
// server_locate + "#" +
|
|
||||||
// client_locate + "#" +
|
|
||||||
// s_asn + "#" +
|
|
||||||
// d_asn + "#" +
|
|
||||||
//// s_subscribe_id + "#" +
|
|
||||||
//// d_subscribe_id + "#" +
|
|
||||||
// user_region + "#" +
|
|
||||||
// service + "#" +
|
|
||||||
// scene_file + "#" +
|
|
||||||
// scene_file_id + "#";
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String field() {
|
|
||||||
// return cfg_id + "#" +
|
|
||||||
// found_time + "#" +
|
|
||||||
// recv_time + "#" +
|
|
||||||
// trans_proto + "#" +
|
|
||||||
// addr_type + "#" +
|
|
||||||
// d_ip + "#" +
|
|
||||||
// s_ip + "#" +
|
|
||||||
// d_port + "#" +
|
|
||||||
// s_port + "#" +
|
|
||||||
// entrance_id + "#" +
|
|
||||||
//// encap_type + "#" +
|
|
||||||
//// direction + "#" +
|
|
||||||
//// inner_smac + "#" +
|
|
||||||
//// inner_dmac + "#" +
|
|
||||||
// stream_dir + "#" +
|
|
||||||
// cap_ip + "#" +
|
|
||||||
// addr_list + "#" +
|
|
||||||
// server_locate + "#" +
|
|
||||||
// client_locate + "#" +
|
|
||||||
// s_asn + "#" +
|
|
||||||
// d_asn + "#" +
|
|
||||||
//// s_subscribe_id + "#" +
|
|
||||||
//// d_subscribe_id + "#" +
|
|
||||||
// user_region + "#" +
|
|
||||||
// service + "#" +
|
|
||||||
// scene_file + "#" +
|
|
||||||
// scene_file_id + "#";
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
@@ -9,7 +9,8 @@ package cn.ac.iie.cusflume.sink.bean.configBean;
|
|||||||
*/
|
*/
|
||||||
public class ConfigInfo {
|
public class ConfigInfo {
|
||||||
|
|
||||||
private String postMsgUrl;
|
private String singleProduceUrl;
|
||||||
|
private String batchProduceUrl;
|
||||||
private String postFileUrl;
|
private String postFileUrl;
|
||||||
|
|
||||||
private String checkMsgUrl;
|
private String checkMsgUrl;
|
||||||
@@ -26,12 +27,20 @@ public class ConfigInfo {
|
|||||||
private String xTag;
|
private String xTag;
|
||||||
private int batchSize;
|
private int batchSize;
|
||||||
|
|
||||||
public String getPostMsgUrl() {
|
public String getSingleProduceUrl() {
|
||||||
return postMsgUrl;
|
return singleProduceUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPostMsgUrl(String postMsgUrl) {
|
public void setSingleProduceUrl(String singleProduceUrl) {
|
||||||
this.postMsgUrl = postMsgUrl;
|
this.singleProduceUrl = singleProduceUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBatchProduceUrl() {
|
||||||
|
return batchProduceUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBatchProduceUrl(String batchProduceUrl) {
|
||||||
|
this.batchProduceUrl = batchProduceUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPostFileUrl() {
|
public String getPostFileUrl() {
|
||||||
@@ -126,7 +135,8 @@ public class ConfigInfo {
|
|||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "ConfigInfo{" +
|
return "ConfigInfo{" +
|
||||||
"postMsgUrl='" + postMsgUrl + '\'' +
|
", singleProduceUrl='" + singleProduceUrl + '\'' +
|
||||||
|
", batchProduceUrl='" + batchProduceUrl + '\'' +
|
||||||
", postFileUrl='" + postFileUrl + '\'' +
|
", postFileUrl='" + postFileUrl + '\'' +
|
||||||
", checkMsgUrl='" + checkMsgUrl + '\'' +
|
", checkMsgUrl='" + checkMsgUrl + '\'' +
|
||||||
", checkFileUrl='" + checkFileUrl + '\'' +
|
", checkFileUrl='" + checkFileUrl + '\'' +
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ public class CommonLog {
|
|||||||
|
|
||||||
|
|
||||||
private int cfg_id;
|
private int cfg_id;
|
||||||
private int found_time;
|
private String found_time;
|
||||||
private int recv_time;
|
private String recv_time;
|
||||||
private String trans_proto;
|
private String trans_proto;
|
||||||
private int addr_type;
|
private int addr_type;
|
||||||
private String d_ip;
|
private String d_ip;
|
||||||
@@ -32,6 +32,10 @@ public class CommonLog {
|
|||||||
private String user_region;
|
private String user_region;
|
||||||
private String scene_file;
|
private String scene_file;
|
||||||
private String scene_file_id;
|
private String scene_file_id;
|
||||||
|
private String s_mac;
|
||||||
|
private String d_mac;
|
||||||
|
private int ip_ttl; // 20210401新增
|
||||||
|
private int ip_id; // 20210401新增
|
||||||
|
|
||||||
public String getDevice_id() {
|
public String getDevice_id() {
|
||||||
return device_id;
|
return device_id;
|
||||||
@@ -49,19 +53,19 @@ public class CommonLog {
|
|||||||
this.cfg_id = cfg_id;
|
this.cfg_id = cfg_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getFound_time() {
|
public String getFound_time() {
|
||||||
return found_time;
|
return found_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFound_time(int found_time) {
|
public void setFound_time(String found_time) {
|
||||||
this.found_time = found_time;
|
this.found_time = found_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRecv_time() {
|
public String getRecv_time() {
|
||||||
return recv_time;
|
return recv_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRecv_time(int recv_time) {
|
public void setRecv_time(String recv_time) {
|
||||||
this.recv_time = recv_time;
|
this.recv_time = recv_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -249,6 +253,26 @@ public class CommonLog {
|
|||||||
this.scene_file_id = scene_file_id;
|
this.scene_file_id = scene_file_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getS_mac() {
|
||||||
|
return s_mac;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setS_mac(String s_mac) {
|
||||||
|
this.s_mac = s_mac;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getD_mac() { return d_mac; }
|
||||||
|
|
||||||
|
public void setD_mac(String d_mac) { this.d_mac = d_mac; }
|
||||||
|
|
||||||
|
public int getIp_ttl() { return ip_ttl; }
|
||||||
|
|
||||||
|
public void setIp_ttl(int ip_ttl) { this.ip_ttl = ip_ttl; }
|
||||||
|
|
||||||
|
public int getIp_id() { return ip_id; }
|
||||||
|
|
||||||
|
public void setIp_id(int ip_id) { this.ip_id = ip_id; }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return
|
return
|
||||||
@@ -278,7 +302,11 @@ public class CommonLog {
|
|||||||
d_subscribe_id + "#" +
|
d_subscribe_id + "#" +
|
||||||
user_region + "#" +
|
user_region + "#" +
|
||||||
scene_file + "#" +
|
scene_file + "#" +
|
||||||
scene_file_id + "#";
|
scene_file_id + "#" +
|
||||||
|
s_mac + "#" +
|
||||||
|
d_mac + "#" +
|
||||||
|
ip_ttl + "#" +
|
||||||
|
ip_id + "#";
|
||||||
}
|
}
|
||||||
|
|
||||||
public String field() {
|
public String field() {
|
||||||
@@ -309,6 +337,11 @@ public class CommonLog {
|
|||||||
d_subscribe_id + "#" +
|
d_subscribe_id + "#" +
|
||||||
user_region + "#" +
|
user_region + "#" +
|
||||||
scene_file + "#" +
|
scene_file + "#" +
|
||||||
scene_file_id + "#";
|
scene_file_id + "#" +
|
||||||
|
s_mac + "#" +
|
||||||
|
d_mac + "#" +
|
||||||
|
ip_ttl + "#" +
|
||||||
|
ip_id + "#";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,210 @@
|
|||||||
|
package cn.ac.iie.cusflume.sink.bean.dataBean;
|
||||||
|
|
||||||
|
public class NTC_COLLECT_HTTP_HDR_LOG extends CommonLog{
|
||||||
|
private String url;
|
||||||
|
private String referer;
|
||||||
|
private String user_agent;
|
||||||
|
private int http_seq;
|
||||||
|
private String req_line;
|
||||||
|
private String res_line;
|
||||||
|
private String cookie;
|
||||||
|
private String content_type;
|
||||||
|
private String content_len;
|
||||||
|
private String host;
|
||||||
|
private String transfer_encoding;
|
||||||
|
private String transfer_length;
|
||||||
|
private String cont_encoding;
|
||||||
|
private String cont_disposition;
|
||||||
|
private String charset;
|
||||||
|
private Long isn;
|
||||||
|
private int proxy_flag;
|
||||||
|
private String x_forward_for;
|
||||||
|
private String http_c2s_head;
|
||||||
|
private String http_s2c_head;
|
||||||
|
|
||||||
|
public String getUrl() {
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrl(String url) {
|
||||||
|
this.url = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReferer() {
|
||||||
|
return referer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReferer(String referer) {
|
||||||
|
this.referer = referer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUser_agent() {
|
||||||
|
return user_agent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUser_agent(String user_agent) {
|
||||||
|
this.user_agent = user_agent;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHttp_seq() {
|
||||||
|
return http_seq;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHttp_seq(int http_seq) {
|
||||||
|
this.http_seq = http_seq;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getReq_line() {
|
||||||
|
return req_line;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setReq_line(String req_line) {
|
||||||
|
this.req_line = req_line;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getRes_line() {
|
||||||
|
return res_line;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRes_line(String res_line) {
|
||||||
|
this.res_line = res_line;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCookie() {
|
||||||
|
return cookie;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCookie(String cookie) {
|
||||||
|
this.cookie = cookie;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContent_type() {
|
||||||
|
return content_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContent_type(String content_type) {
|
||||||
|
this.content_type = content_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContent_len() {
|
||||||
|
return content_len;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContent_len(String content_len) {
|
||||||
|
this.content_len = content_len;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHost() {
|
||||||
|
return host;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHost(String host) {
|
||||||
|
this.host = host;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTransfer_encoding() {
|
||||||
|
return transfer_encoding;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransfer_encoding(String transfer_encoding) {
|
||||||
|
this.transfer_encoding = transfer_encoding;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTransfer_length() {
|
||||||
|
return transfer_length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTransfer_length(String transfer_length) {
|
||||||
|
this.transfer_length = transfer_length;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCont_encoding() {
|
||||||
|
return cont_encoding;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCont_encoding(String cont_encoding) {
|
||||||
|
this.cont_encoding = cont_encoding;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCont_disposition() {
|
||||||
|
return cont_disposition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCont_disposition(String cont_disposition) {
|
||||||
|
this.cont_disposition = cont_disposition;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCharset() {
|
||||||
|
return charset;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCharset(String charset) {
|
||||||
|
this.charset = charset;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getIsn() {
|
||||||
|
return isn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIsn(Long isn) {
|
||||||
|
this.isn = isn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getProxy_flag() {
|
||||||
|
return proxy_flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProxy_flag(int proxy_flag) {
|
||||||
|
this.proxy_flag = proxy_flag;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getX_forward_for() {
|
||||||
|
return x_forward_for;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setX_forward_for(String x_forward_for) {
|
||||||
|
this.x_forward_for = x_forward_for;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHttp_c2s_head() {
|
||||||
|
return http_c2s_head;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHttp_c2s_head(String http_c2s_head) {
|
||||||
|
this.http_c2s_head = http_c2s_head;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHttp_s2c_head() {
|
||||||
|
return http_s2c_head;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHttp_s2c_head(String http_s2c_head) {
|
||||||
|
this.http_s2c_head = http_s2c_head;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "NTC_COLLECT_HTTP_HDR_LOG{" +
|
||||||
|
"url='" + url + '\'' +
|
||||||
|
", referer='" + referer + '\'' +
|
||||||
|
", user_agent='" + user_agent + '\'' +
|
||||||
|
", http_seq=" + http_seq +
|
||||||
|
", req_line='" + req_line + '\'' +
|
||||||
|
", res_line='" + res_line + '\'' +
|
||||||
|
", cookie='" + cookie + '\'' +
|
||||||
|
", content_type='" + content_type + '\'' +
|
||||||
|
", content_len='" + content_len + '\'' +
|
||||||
|
", host='" + host + '\'' +
|
||||||
|
", transfer_encoding='" + transfer_encoding + '\'' +
|
||||||
|
", transfer_length='" + transfer_length + '\'' +
|
||||||
|
", cont_encoding='" + cont_encoding + '\'' +
|
||||||
|
", cont_disposition='" + cont_disposition + '\'' +
|
||||||
|
", charset='" + charset + '\'' +
|
||||||
|
", isn=" + isn +
|
||||||
|
", proxy_flag=" + proxy_flag +
|
||||||
|
", x_forward_for='" + x_forward_for + '\'' +
|
||||||
|
", http_c2s_head='" + http_c2s_head + '\'' +
|
||||||
|
", http_s2c_head='" + http_s2c_head + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
//package cn.ac.iie.cusflume.sink.bean.dataBean;
|
|
||||||
//
|
|
||||||
//public class NTC_COLLECT_MAIL_LOG extends CommonLog {
|
|
||||||
//
|
|
||||||
// private String mail_proto;
|
|
||||||
// private String mail_from;
|
|
||||||
// private String mail_to;
|
|
||||||
// private String subject;
|
|
||||||
// private String eml_key;
|
|
||||||
// private String eml_file;
|
|
||||||
//
|
|
||||||
// public String getMail_proto() {
|
|
||||||
// return mail_proto;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setMail_proto(String mail_proto) {
|
|
||||||
// this.mail_proto = mail_proto;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getMail_from() {
|
|
||||||
// return mail_from;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setMail_from(String mail_from) {
|
|
||||||
// this.mail_from = mail_from;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getMail_to() {
|
|
||||||
// return mail_to;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setMail_to(String mail_to) {
|
|
||||||
// this.mail_to = mail_to;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getSubject() {
|
|
||||||
// return subject;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setSubject(String subject) {
|
|
||||||
// this.subject = subject;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getEml_key() {
|
|
||||||
// return eml_key;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setEml_key(String eml_key) {
|
|
||||||
// this.eml_key = eml_key;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public String getEml_file() {
|
|
||||||
// return eml_file;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// public void setEml_file(String eml_file) {
|
|
||||||
// this.eml_file = eml_file;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public String toString() {
|
|
||||||
// return field() +
|
|
||||||
// mail_proto + "\t" +
|
|
||||||
// mail_from + "\t" +
|
|
||||||
// mail_to + "\t" +
|
|
||||||
// subject + "\t" +
|
|
||||||
// eml_key + "\t" +
|
|
||||||
// eml_file + "\n";
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
@@ -10,17 +10,17 @@ public class NTC_COLLECT_SSL_LOG extends CommonLog {
|
|||||||
private String s2c_byte_num;
|
private String s2c_byte_num;
|
||||||
|
|
||||||
|
|
||||||
// private String SNI;//旧-废弃-20200507
|
// private String SNI;//旧-废弃-20200507
|
||||||
private String sni;//新-修改-20200507
|
private String sni;//新-修改-20200507
|
||||||
private long create_time;
|
private long create_time;
|
||||||
|
|
||||||
// private long lastmtime;//旧-废弃-20200507
|
// private long lastmtime;//旧-废弃-20200507
|
||||||
private long last_time;//新-修改-20200507
|
private long last_time;//新-修改-20200507
|
||||||
|
|
||||||
private String server_ciphersuits;
|
private String server_ciphersuits;
|
||||||
private String client_ciphersuits;
|
private String client_ciphersuits;
|
||||||
|
|
||||||
// private Collect_SSL_field_server_cert server_cert;//旧-废弃-20200507
|
// private Collect_SSL_field_server_cert server_cert;//旧-废弃-20200507
|
||||||
private String server_cert;//新-修改-压成字符串-20200507
|
private String server_cert;//新-修改-压成字符串-20200507
|
||||||
|
|
||||||
// private String version;//旧-server_cert内部字段-废弃-20200507
|
// private String version;//旧-server_cert内部字段-废弃-20200507
|
||||||
@@ -31,6 +31,13 @@ public class NTC_COLLECT_SSL_LOG extends CommonLog {
|
|||||||
private LOG_D_TAG_BEAN d_tag;//json版本-20200509
|
private LOG_D_TAG_BEAN d_tag;//json版本-20200509
|
||||||
private String x_tag;//json字符串版本,就算前端传入的为json也会强转为字符串
|
private String x_tag;//json字符串版本,就算前端传入的为json也会强转为字符串
|
||||||
|
|
||||||
|
//20210131新增
|
||||||
|
private String cert_finger;
|
||||||
|
private String pub_key;
|
||||||
|
|
||||||
|
//202104新增
|
||||||
|
private String cert_list_path;
|
||||||
|
|
||||||
public String getC2s_pkt_num() {
|
public String getC2s_pkt_num() {
|
||||||
return c2s_pkt_num;
|
return c2s_pkt_num;
|
||||||
}
|
}
|
||||||
@@ -135,24 +142,17 @@ public class NTC_COLLECT_SSL_LOG extends CommonLog {
|
|||||||
this.x_tag = x_tag;
|
this.x_tag = x_tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
// @Override
|
public String getCert_finger() { return cert_finger; }
|
||||||
// public String toString() {
|
|
||||||
// return field() +
|
|
||||||
//// version + "\t" +
|
|
||||||
// c2s_pkt_num + "\t" +
|
|
||||||
// s2c_pkt_num + "\t" +
|
|
||||||
// c2s_byte_num + "\t" +
|
|
||||||
// s2c_byte_num + "\t" +
|
|
||||||
// sni + "\t" +
|
|
||||||
// create_time + "\t" +
|
|
||||||
// last_time + "\t" +
|
|
||||||
// server_ciphersuits + "\t" +
|
|
||||||
// client_ciphersuits + "\t" +
|
|
||||||
//
|
|
||||||
// server_cert + "\t" +
|
|
||||||
// client_cert + "\n";
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
public void setCert_finger(String cert_finger) { this.cert_finger = cert_finger; }
|
||||||
|
|
||||||
|
public String getPub_key() { return pub_key; }
|
||||||
|
|
||||||
|
public void setPub_key(String pub_key) { this.pub_key = pub_key; }
|
||||||
|
|
||||||
|
public String getCert_list_path() { return cert_list_path; }
|
||||||
|
|
||||||
|
public void setCert_list_path(String cert_list_path) { this.cert_list_path = cert_list_path; }
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
@@ -170,6 +170,9 @@ public class NTC_COLLECT_SSL_LOG extends CommonLog {
|
|||||||
", client_cert='" + client_cert + '\'' +
|
", client_cert='" + client_cert + '\'' +
|
||||||
", d_tag=" + d_tag +
|
", d_tag=" + d_tag +
|
||||||
", x_tag='" + x_tag + '\'' +
|
", x_tag='" + x_tag + '\'' +
|
||||||
|
", cert_finger='" + cert_finger + '\'' +
|
||||||
|
", pub_key='" + pub_key + '\'' +
|
||||||
|
", cert_list_path='" + cert_list_path + '\'' +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,9 @@ public class NTC_CONN_RECORD_LOG extends CommonLog {
|
|||||||
private String x_tag;//json字符串版本,就算前端传入的为json也会强转为字符串
|
private String x_tag;//json字符串版本,就算前端传入的为json也会强转为字符串
|
||||||
//20191216新增
|
//20191216新增
|
||||||
|
|
||||||
|
private String s2c_data_head;
|
||||||
|
private String c2s_data_head;
|
||||||
|
|
||||||
public String getApp_label() {
|
public String getApp_label() {
|
||||||
return app_label;
|
return app_label;
|
||||||
}
|
}
|
||||||
@@ -71,6 +74,15 @@ public class NTC_CONN_RECORD_LOG extends CommonLog {
|
|||||||
this.x_tag = x_tag;
|
this.x_tag = x_tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getS2c_data_head() { return s2c_data_head; }
|
||||||
|
|
||||||
|
public void setS2c_data_head(String s2c_data_head) { this.s2c_data_head = s2c_data_head; }
|
||||||
|
|
||||||
|
public String getC2s_data_head() { return c2s_data_head; }
|
||||||
|
|
||||||
|
public void setC2s_data_head(String c2s_data_head) { this.c2s_data_head = c2s_data_head; }
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "NTC_CONN_RECORD_LOG{" +
|
return "NTC_CONN_RECORD_LOG{" +
|
||||||
@@ -81,6 +93,8 @@ public class NTC_CONN_RECORD_LOG extends CommonLog {
|
|||||||
", s2c_byte_num='" + s2c_byte_num + '\'' +
|
", s2c_byte_num='" + s2c_byte_num + '\'' +
|
||||||
", d_tag=" + d_tag +
|
", d_tag=" + d_tag +
|
||||||
", x_tag='" + x_tag + '\'' +
|
", x_tag='" + x_tag + '\'' +
|
||||||
|
", s2c_data_head='" + s2c_data_head + '\'' +
|
||||||
|
", c2s_data_head='" + c2s_data_head + '\'' +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user