multiple thread mode

This commit is contained in:
rails -v 2015-08-26 13:40:20 +08:00
parent c4b72b1636
commit 401e4a9d5d
61 changed files with 1566 additions and 19 deletions

View File

@ -19,6 +19,15 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>

1
.idea/.name Normal file
View File

@ -0,0 +1 @@
osseanextractor

32
.idea/compiler.xml Normal file
View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<resourceExtensions />
<wildcardResourcePatterns>
<entry name="!?*.java" />
<entry name="!?*.form" />
<entry name="!?*.class" />
<entry name="!?*.groovy" />
<entry name="!?*.scala" />
<entry name="!?*.flex" />
<entry name="!?*.kt" />
<entry name="!?*.clj" />
<entry name="!?*.aj" />
</wildcardResourcePatterns>
<annotationProcessing>
<profile default="true" name="Default" enabled="false">
<processorPath useClasspath="true" />
</profile>
<profile default="false" name="Annotation profile for osseanextractor" enabled="true">
<sourceOutputDir name="target\generated-sources\annotations" />
<sourceTestOutputDir name="target\generated-test-sources\test-annotations" />
<outputRelativeToContentRoot value="true" />
<processorPath useClasspath="true" />
<module name="osseanextractor" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="osseanextractor" target="1.7" />
</bytecodeTargetLevel>
</component>
</project>

View File

@ -0,0 +1,3 @@
<component name="CopyrightManager">
<settings default="" />
</component>

6
.idea/encodings.xml Normal file
View File

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

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: aopalliance:aopalliance:1.0">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

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

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.google.guava:guava:15.0">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/com/google/guava/guava/15.0/guava-15.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/com/google/guava/guava/15.0/guava-15.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/com/google/guava/guava/15.0/guava-15.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: com.jayway.jsonpath:json-path:0.8.1">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/com/jayway/jsonpath/json-path/0.8.1/json-path-0.8.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/com/jayway/jsonpath/json-path/0.8.1/json-path-0.8.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/com/jayway/jsonpath/json-path/0.8.1/json-path-0.8.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: commons-codec:commons-codec:1.6">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/commons-codec/commons-codec/1.6/commons-codec-1.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/commons-codec/commons-codec/1.6/commons-codec-1.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/commons-codec/commons-codec/1.6/commons-codec-1.6-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: commons-collections:commons-collections:3.2.1">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: commons-dbcp:commons-dbcp:1.4">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/commons-dbcp/commons-dbcp/1.4/commons-dbcp-1.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/commons-dbcp/commons-dbcp/1.4/commons-dbcp-1.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/commons-dbcp/commons-dbcp/1.4/commons-dbcp-1.4-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: commons-io:commons-io:1.3.2">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/commons-io/commons-io/1.3.2/commons-io-1.3.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/commons-io/commons-io/1.3.2/commons-io-1.3.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/commons-io/commons-io/1.3.2/commons-io-1.3.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: commons-lang:commons-lang:2.6">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: commons-logging:commons-logging:1.1.3">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: commons-pool:commons-pool:1.5.4">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/commons-pool/commons-pool/1.5.4/commons-pool-1.5.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/commons-pool/commons-pool/1.5.4/commons-pool-1.5.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/commons-pool/commons-pool/1.5.4/commons-pool-1.5.4-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

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

View File

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

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: mysql:mysql-connector-java:5.1.18">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/mysql/mysql-connector-java/5.1.18/mysql-connector-java-5.1.18.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/mysql/mysql-connector-java/5.1.18/mysql-connector-java-5.1.18-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/mysql/mysql-connector-java/5.1.18/mysql-connector-java-5.1.18-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

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

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.commons:commons-lang3:3.1">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/apache/commons/commons-lang3/3.1/commons-lang3-3.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/apache/commons/commons-lang3/3.1/commons-lang3-3.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.httpcomponents:httpclient:4.3.3">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/apache/httpcomponents/httpclient/4.3.3/httpclient-4.3.3-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.apache.httpcomponents:httpcore:4.3.2">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/apache/httpcomponents/httpcore/4.3.2/httpcore-4.3.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.assertj:assertj-core:1.5.0">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/assertj/assertj-core/1.5.0/assertj-core-1.5.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/assertj/assertj-core/1.5.0/assertj-core-1.5.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/assertj/assertj-core/1.5.0/assertj-core-1.5.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.hamcrest:hamcrest-core:1.1">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

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

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.mybatis:mybatis:3.1.1">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/mybatis/mybatis/3.1.1/mybatis-3.1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/mybatis/mybatis/3.1.1/mybatis-3.1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/mybatis/mybatis/3.1.1/mybatis-3.1.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.mybatis:mybatis-spring:1.1.1">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/mybatis/mybatis-spring/1.1.1/mybatis-spring-1.1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/mybatis/mybatis-spring/1.1.1/mybatis-spring-1.1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/mybatis/mybatis-spring/1.1.1/mybatis-spring-1.1.1-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

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

View File

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

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-aop:3.1.1.RELEASE">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-aop/3.1.1.RELEASE/spring-aop-3.1.1.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-aop/3.1.1.RELEASE/spring-aop-3.1.1.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-aop/3.1.1.RELEASE/spring-aop-3.1.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-asm:3.1.1.RELEASE">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-asm/3.1.1.RELEASE/spring-asm-3.1.1.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-asm/3.1.1.RELEASE/spring-asm-3.1.1.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-asm/3.1.1.RELEASE/spring-asm-3.1.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-beans:3.1.1.RELEASE">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-beans/3.1.1.RELEASE/spring-beans-3.1.1.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-beans/3.1.1.RELEASE/spring-beans-3.1.1.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-beans/3.1.1.RELEASE/spring-beans-3.1.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-context:3.1.1.RELEASE">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-context/3.1.1.RELEASE/spring-context-3.1.1.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-context/3.1.1.RELEASE/spring-context-3.1.1.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-context/3.1.1.RELEASE/spring-context-3.1.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-core:3.1.1.RELEASE">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-core/3.1.1.RELEASE/spring-core-3.1.1.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-core/3.1.1.RELEASE/spring-core-3.1.1.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-core/3.1.1.RELEASE/spring-core-3.1.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-expression:3.1.1.RELEASE">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-expression/3.1.1.RELEASE/spring-expression-3.1.1.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-expression/3.1.1.RELEASE/spring-expression-3.1.1.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-expression/3.1.1.RELEASE/spring-expression-3.1.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-jdbc:3.1.1.RELEASE">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-jdbc/3.1.1.RELEASE/spring-jdbc-3.1.1.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-jdbc/3.1.1.RELEASE/spring-jdbc-3.1.1.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-jdbc/3.1.1.RELEASE/spring-jdbc-3.1.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: org.springframework:spring-tx:3.1.1.RELEASE">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-tx/3.1.1.RELEASE/spring-tx-3.1.1.RELEASE.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-tx/3.1.1.RELEASE/spring-tx-3.1.1.RELEASE-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/org/springframework/spring-tx/3.1.1.RELEASE/spring-tx-3.1.1.RELEASE-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: redis.clients:jedis:2.0.0">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/redis/clients/jedis/2.0.0/jedis-2.0.0.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/redis/clients/jedis/2.0.0/jedis-2.0.0-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/redis/clients/jedis/2.0.0/jedis-2.0.0-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: us.codecraft:webmagic-core:0.5.2">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/us/codecraft/webmagic-core/0.5.2/webmagic-core-0.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/us/codecraft/webmagic-core/0.5.2/webmagic-core-0.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/us/codecraft/webmagic-core/0.5.2/webmagic-core-0.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: us.codecraft:webmagic-extension:0.5.2">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/us/codecraft/webmagic-extension/0.5.2/webmagic-extension-0.5.2.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/us/codecraft/webmagic-extension/0.5.2/webmagic-extension-0.5.2-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/us/codecraft/webmagic-extension/0.5.2/webmagic-extension-0.5.2-sources.jar!/" />
</SOURCES>
</library>
</component>

View File

@ -0,0 +1,13 @@
<component name="libraryTable">
<library name="Maven: us.codecraft:xsoup:0.2.4">
<CLASSES>
<root url="jar://$USER_HOME$/.m2/repository/us/codecraft/xsoup/0.2.4/xsoup-0.2.4.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$USER_HOME$/.m2/repository/us/codecraft/xsoup/0.2.4/xsoup-0.2.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$USER_HOME$/.m2/repository/us/codecraft/xsoup/0.2.4/xsoup-0.2.4-sources.jar!/" />
</SOURCES>
</library>
</component>

42
.idea/misc.xml Normal file
View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="EntryPointsManager">
<entry_points version="2.0" />
</component>
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
<component name="masterDetails">
<states>
<state key="ProjectJDKs.UI">
<settings>
<last-edited>1.8</last-edited>
<splitter-proportions>
<option name="proportions">
<list>
<option value="0.2" />
</list>
</option>
</splitter-proportions>
</settings>
</state>
</states>
</component>
</project>

8
.idea/modules.xml Normal file
View File

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

6
.idea/vcs.xml Normal file
View File

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

400
.idea/workspace.xml Normal file
View File

@ -0,0 +1,400 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="08302292-1670-461c-87ed-da9c7726ec87" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.classpath" afterPath="$PROJECT_DIR$/.classpath" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/net/trustie/extractor/CNblogNews_Extractor.java" afterPath="$PROJECT_DIR$/src/main/java/net/trustie/extractor/CNblogNews_Extractor.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/net/trustie/comment/model/CsdnAsk_Comment_Model.java" afterPath="$PROJECT_DIR$/src/main/java/net/trustie/comment/model/CsdnAsk_Comment_Model.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/main/java/net/trustie/extractor/CsdnAsk_Extractor.java" afterPath="$PROJECT_DIR$/src/main/java/net/trustie/extractor/CsdnAsk_Extractor.java" />
</list>
<ignored path="osseanextractor.iws" />
<ignored path=".idea/workspace.xml" />
<ignored path="$PROJECT_DIR$/target/" />
<ignored path=".idea/dataSources.local.xml" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
<component name="CreatePatchCommitExecutor">
<option name="PATCH_PATH" value="" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
<component name="FavoritesManager">
<favorites_list name="osseanextractor" />
</component>
<component name="FileEditorManager">
<leaf>
<file leaf-file-name="CNblogNews_Extractor.java" pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/src/main/java/net/trustie/extractor/CNblogNews_Extractor.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.7441253">
<caret line="30" column="27" selection-start-line="30" selection-start-column="27" selection-end-line="30" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
</file>
</leaf>
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="GradleLocalSettings">
<option name="externalProjectsViewState">
<projects_view />
</option>
</component>
<component name="IdeDocumentHistory">
<option name="CHANGED_PATHS">
<list>
<option value="$PROJECT_DIR$/src/main/java/net/trustie/extractor/CNblogNews_Extractor.java" />
</list>
</option>
</component>
<component name="JsBuildToolGruntFileManager" detection-done="true" />
<component name="JsGulpfileManager">
<detection-done>true</detection-done>
</component>
<component name="MavenImportPreferences">
<option name="generalSettings">
<MavenGeneralSettings>
<option name="mavenHome" value="Bundled (Maven 3)" />
</MavenGeneralSettings>
</option>
</component>
<component name="NamedScopeManager">
<order />
</component>
<component name="ProjectFrameBounds">
<option name="x" value="-53" />
<option name="y" value="218" />
<option name="width" value="1382" />
<option name="height" value="744" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
<OptionsSetting value="true" id="Add" />
<OptionsSetting value="true" id="Remove" />
<OptionsSetting value="true" id="Checkout" />
<OptionsSetting value="true" id="Update" />
<OptionsSetting value="true" id="Status" />
<OptionsSetting value="true" id="Edit" />
<ConfirmationsSetting value="1" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1">
<flattenPackages />
<showMembers />
<showModules />
<showLibraryContents />
<hideEmptyPackages />
<abbreviatePackageNames />
<autoscrollToSource />
<autoscrollFromSource />
<sortByType />
</navigator>
<panes>
<pane id="ProjectPane">
<subPane>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="osseanextractor" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="Scope" />
<pane id="Scratches" />
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
<property name="aspect.path.notification.shown" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="110" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="140" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder1" value="1" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="140" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder2" value="2" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="933" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder3" value="3" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth0" value="128" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder0" value="0" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth1" value="134" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder1" value="1" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth2" value="134" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder2" value="2" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="927" />
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder3" value="3" />
<property name="FullScreen" value="false" />
</component>
<component name="RunManager">
<configuration default="true" type="AndroidRunConfigurationType" factoryName="Android Application">
<module name="" />
<option name="ACTIVITY_CLASS" value="" />
<option name="MODE" value="default_activity" />
<option name="DEPLOY" value="true" />
<option name="ARTIFACT_NAME" value="" />
<option name="TARGET_SELECTION_MODE" value="EMULATOR" />
<option name="USE_LAST_SELECTED_DEVICE" value="false" />
<option name="PREFERRED_AVD" value="" />
<option name="USE_COMMAND_LINE" value="true" />
<option name="COMMAND_LINE" value="" />
<option name="WIPE_USER_DATA" value="false" />
<option name="DISABLE_BOOT_ANIMATION" value="false" />
<option name="NETWORK_SPEED" value="full" />
<option name="NETWORK_LATENCY" value="none" />
<option name="CLEAR_LOGCAT" value="false" />
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
<option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" />
<method />
</configuration>
<configuration default="true" type="AndroidTestRunConfigurationType" factoryName="Android Tests">
<module name="" />
<option name="TESTING_TYPE" value="0" />
<option name="INSTRUMENTATION_RUNNER_CLASS" value="" />
<option name="METHOD_NAME" value="" />
<option name="CLASS_NAME" value="" />
<option name="PACKAGE_NAME" value="" />
<option name="TARGET_SELECTION_MODE" value="EMULATOR" />
<option name="USE_LAST_SELECTED_DEVICE" value="false" />
<option name="PREFERRED_AVD" value="" />
<option name="USE_COMMAND_LINE" value="true" />
<option name="COMMAND_LINE" value="" />
<option name="WIPE_USER_DATA" value="false" />
<option name="DISABLE_BOOT_ANIMATION" value="false" />
<option name="NETWORK_SPEED" value="full" />
<option name="NETWORK_LATENCY" value="none" />
<option name="CLEAR_LOGCAT" value="false" />
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="true" />
<option name="FILTER_LOGCAT_AUTOMATICALLY" value="true" />
<method />
</configuration>
<configuration default="true" type="Applet" factoryName="Applet">
<option name="WIDTH" value="400" />
<option name="HEIGHT" value="300" />
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
<module />
<method />
</configuration>
<configuration default="true" type="Application" factoryName="Application">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="" />
<envs />
<method />
</configuration>
<configuration default="true" type="CucumberJavaRunConfigurationType" factoryName="Cucumber java">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<option name="myFilePath" />
<option name="GLUE" />
<option name="myNameFilter" />
<option name="myGeneratedName" />
<option name="MAIN_CLASS_NAME" />
<option name="VM_PARAMETERS" />
<option name="PROGRAM_PARAMETERS" />
<option name="WORKING_DIRECTORY" />
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
<option name="ALTERNATIVE_JRE_PATH" />
<option name="ENABLE_SWING_INSPECTOR" value="false" />
<option name="ENV_VARIABLES" />
<option name="PASS_PARENT_ENVS" value="true" />
<module name="" />
<envs />
<method />
</configuration>
<configuration default="true" type="FlashRunConfigurationType" factoryName="Flash App">
<option name="BCName" value="" />
<option name="IOSSimulatorSdkPath" value="" />
<option name="adlOptions" value="" />
<option name="airProgramParameters" value="" />
<option name="appDescriptorForEmulator" value="Android" />
<option name="debugTransport" value="USB" />
<option name="debuggerSdkRaw" value="BC SDK" />
<option name="emulator" value="NexusOne" />
<option name="emulatorAdlOptions" value="" />
<option name="fastPackaging" value="true" />
<option name="fullScreenHeight" value="0" />
<option name="fullScreenWidth" value="0" />
<option name="launchUrl" value="false" />
<option name="launcherParameters">
<LauncherParameters>
<option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
<option name="launcherType" value="OSDefault" />
<option name="newPlayerInstance" value="false" />
<option name="playerPath" value="FlashPlayerDebugger.exe" />
</LauncherParameters>
</option>
<option name="mobileRunTarget" value="Emulator" />
<option name="moduleName" value="" />
<option name="overriddenMainClass" value="" />
<option name="overriddenOutputFileName" value="" />
<option name="overrideMainClass" value="false" />
<option name="runTrusted" value="true" />
<option name="screenDpi" value="0" />
<option name="screenHeight" value="0" />
<option name="screenWidth" value="0" />
<option name="url" value="http://" />
<option name="usbDebugPort" value="7936" />
<method />
</configuration>
<configuration default="true" type="FlexUnitRunConfigurationType" factoryName="FlexUnit" appDescriptorForEmulator="Android" class_name="" emulatorAdlOptions="" method_name="" package_name="" scope="Class">
<option name="BCName" value="" />
<option name="launcherParameters">
<LauncherParameters>
<option name="browser" value="a7bb68e0-33c0-4d6f-a81a-aac1fdb870c8" />
<option name="launcherType" value="OSDefault" />
<option name="newPlayerInstance" value="false" />
<option name="playerPath" value="FlashPlayerDebugger.exe" />
</LauncherParameters>
</option>
<option name="moduleName" value="" />
<option name="trusted" value="true" />
<method />
</configuration>
<configuration default="true" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list />
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<method />
</configuration>
<configuration default="true" type="GrailsRunConfigurationType" factoryName="Grails">
<module name="" />
<setting name="vmparams" value="" />
<setting name="cmdLine" value="run-app" />
<setting name="depsClasspath" value="false" />
<setting name="passParentEnv" value="true" />
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<setting name="launchBrowser" value="false" />
<method />
</configuration>
<configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
<method />
</configuration>
<configuration default="true" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot">
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
<module name="" />
<envs />
<method />
</configuration>
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
<node-options />
<gulpfile />
<tasks />
<arguments />
<pass-parent-envs>true</pass-parent-envs>
<envs />
<method />
</configuration>
<configuration default="true" type="osgi.bnd.run" factoryName="Run Launcher">
<method />
</configuration>
<configuration default="true" type="osgi.bnd.run" factoryName="Test Launcher (JUnit)">
<method />
</configuration>
</component>
<component name="ShelveChangesManager" show_recycled="false" />
<component name="SvnConfiguration">
<configuration />
</component>
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="08302292-1670-461c-87ed-da9c7726ec87" name="Default" comment="" />
<created>1432444136539</created>
<option name="number" value="Default" />
<updated>1432444136539</updated>
<workItem from="1432444138435" duration="203000" />
<workItem from="1436271132941" duration="1652000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="1855000" />
</component>
<component name="ToolWindowManager">
<frame x="-53" y="218" width="1382" height="744" extended-state="0" />
<editor active="true" />
<layout>
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
<window_info id="Palette&#9;" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
<window_info id="Application Servers" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.32789558" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
<window_info id="Designer" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24281392" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
</layout>
</component>
<component name="Vcs.Log.UiProperties">
<option name="RECENTLY_FILTERED_USER_GROUPS">
<collection />
</option>
<option name="RECENTLY_FILTERED_BRANCH_GROUPS">
<collection />
</option>
</component>
<component name="VcsContentAnnotationSettings">
<option name="myLimit" value="2678400000" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager />
<watches-manager />
</component>
<component name="editorHistoryManager">
<entry file="file://$PROJECT_DIR$/src/main/java/net/trustie/extractor/CNblogNews_Extractor.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.0">
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/src/main/java/net/trustie/extractor/CNblogNews_Extractor.java">
<provider selected="true" editor-type-id="text-editor">
<state vertical-scroll-proportion="0.7441253">
<caret line="30" column="27" selection-start-line="30" selection-start-column="27" selection-end-line="30" selection-end-column="27" />
<folding />
</state>
</provider>
</entry>
</component>
</project>

25
config/configuration.txt Normal file
View File

@ -0,0 +1,25 @@
51cto_blog 51cto_blog_html_detail
apache apache_html_detail
cnblog_q_solve cnblogs_q_solved_html_detail
cnblog_q_unsolve cnblogs_q_unsolved_html_detail
codeproject codeproject_html_detail
csdn_ask csdn_ask_html_detail
csdn_blogs csdn_blog_html_detail
csdn_topic csdn_topic_html_detail
deWen_question dewen_question_html_detail
freecode freecode_html_detail
gna gna_html_detail
iteye_ask iteye_ask_html_detail
iteye_Blog iteye_blog_html_detail
lagou lagou_html_detail
linuxtone linuxtone_html_detail
lupaworld lupaworld_html_detail
neitui neitui_html_detail
OpenHubProject openhub_html_detail
oschina_project oschina_project_html_detail
oschina_question oschina_question_html_detail
phpChina_post phpchina_html_detail
SFProject softpedia_html_detail
slashdot_news slashdot_html_detail
softpedia softpedia_html_detail
stackoverflow_q stackoverflow_html_detail

52
osseanextractor.iml Normal file
View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: junit:junit-dep:4.10" level="project" />
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
<orderEntry type="library" name="Maven: us.codecraft:webmagic-core:0.5.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.3.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.3.2" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.3" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.6" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:15.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.1" level="project" />
<orderEntry type="library" name="Maven: us.codecraft:xsoup:0.2.4" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.6" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-log4j12:1.7.6" level="project" />
<orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
<orderEntry type="library" name="Maven: org.assertj:assertj-core:1.5.0" level="project" />
<orderEntry type="library" name="Maven: org.jsoup:jsoup:1.7.2" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:1.3.2" level="project" />
<orderEntry type="library" name="Maven: com.jayway.jsonpath:json-path:0.8.1" level="project" />
<orderEntry type="library" name="Maven: net.minidev:json-smart:1.1.1" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.1.37" level="project" />
<orderEntry type="library" name="Maven: us.codecraft:webmagic-extension:0.5.2" level="project" />
<orderEntry type="library" name="Maven: redis.clients:jedis:2.0.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:3.1.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:3.1.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: aopalliance:aopalliance:1.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:3.1.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:3.1.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:3.1.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-asm:3.1.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.1.1" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.1.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:3.1.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:3.1.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: commons-dbcp:commons-dbcp:1.4" level="project" />
<orderEntry type="library" name="Maven: commons-pool:commons-pool:1.5.4" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.18" level="project" />
</component>
</module>

View File

@ -13,7 +13,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
@ -77,7 +77,11 @@
<artifactId>mysql-connector-java</artifactId>
<version>5.1.18</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
</project>

View File

@ -8,9 +8,9 @@
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://192.168.80.104:3306/pages?characterEncoding=UTF-8" />
<property name="username" value="influx" />
<property name="password" value="influx1234" />
value="jdbc:mysql://localhost:3306/pages?characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
<bean id="sqlSessionFactoryOne" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSourceOne" />
@ -25,9 +25,9 @@
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://192.168.80.104:3306/extract_result?characterEncoding=UTF-8" />
<property name="username" value="influx" />
<property name="password" value="influx1234" />
value="jdbc:mysql://localhost:3306/extract_result?characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
<bean id="sqlSessionFactoryTwo" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSourceTwo" />

View File

@ -0,0 +1,8 @@
package core;
public interface ExtractorBegin {
public void threadRun();
public boolean check();
}

View File

@ -0,0 +1,243 @@
package extension;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import javax.annotation.Resource;
import net.trustie.downloader.PageDao;
import net.trustie.one.Configuration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import core.ConsolePipeline;
import core.ModelPageProcessor;
import core.ModelPipeline;
import core.PageModelPipeline;
import core.Pipeline;
import core.Site;
public class OneExtractor {
private Site site;
protected Logger logger = LoggerFactory.getLogger(getClass());
private String uuid;
private PageDownloader downloader;
private Timer timer;
private ReadCursor readCursor;
private ModelPipeline modelPipeline;
protected List<Pipeline> pipelines = new ArrayList<Pipeline>();
private ModelPageProcessor modelPageProcessor;
private String cursorPath;
public String defaultPath = "./cursor/";
public List<String> modelName = new ArrayList<String>();
private PageErrorOutPut pageErrorOutPut;
private int recordId = 0;
/**
* add by houxiang
*/
private Configuration config = new Configuration();
@Resource
private PageDao pagedao;
private Map<String,String> tables = null ;
protected OneExtractor(ModelPageProcessor modelPageProcessor) {
this.modelPageProcessor = modelPageProcessor;
}
public OneExtractor(Site site, PageModelPipeline<?> pageModelPipeline,
Class<?>... pageModels) {
this(ModelPageProcessor.create(pageModels));
this.site = site;
this.modelPipeline = new ModelPipeline();
this.addPipeline(modelPipeline);
for (Class<?> pageModel : pageModels) {
modelName.add(pageModel.getCanonicalName());
if (pageModelPipeline != null) {
this.modelPipeline.put(pageModel, pageModelPipeline);
}
}
}
public static OneExtractor create(Site site,
PageModelPipeline<?> modelPipeline, Class<?>... pageModels) {
return new OneExtractor(site, modelPipeline, pageModels);
}
public OneExtractor setDownloader(PageDownloader downloader) {
this.downloader = downloader;
return this;
}
public OneExtractor setUUID(String uuid) {
this.uuid = uuid;
return this;
}
public OneExtractor setPageErrorOutPut(PageErrorOutPut errorOutPut) {
this.pageErrorOutPut = errorOutPut;
return this;
}
public OneExtractor setCursorPath(String cursorPath) {
this.cursorPath = cursorPath;
return this;
}
public OneExtractor addPipeline(Pipeline pipeline) {
this.pipelines.add(pipeline);
return this;
}
public OneExtractor setPipelines(List<Pipeline> pipelines) {
this.pipelines = pipelines;
return this;
}
public OneExtractor clearPipeline() {
pipelines = new ArrayList<Pipeline>();
return this;
}
public void run() {
logger.info("One Extraction Task Started!");
if (readCursor.getValue(uuid) != null)
recordId = Integer.parseInt(readCursor.getValue(uuid).trim());
else
recordId = downloader.getMinId();
List<RawPage> rawList = this.downloader.downloadPages(recordId,
this.site.getResultNum());
createPageList(rawList);
for (RawPage rawPage : rawList) {
if (rawPage.getPage() != null
&& !rawPage.getPage().getResultItems().isSkip()) {
try {
modelPageProcessor.process(rawPage.getPage());
rawPage.setExtracted(true);
if (!rawPage.getPage().getResultItems().isSkip()) {
for (Pipeline pipeline : pipelines)
pipeline.process(
rawPage.getPage().getResultItems(), null);
if (!rawPage.getPage()
.isAllResultSkip(
modelName.toArray(new String[modelName
.size()]))) {
logger.info(rawPage.toString()
+ " Extracted And Stored Successed!");
rawPage.setStored(true);
}
}
if (!rawPage.isExtracted() || !rawPage.isStored())
pageErrorOutPut.returnErrorPage(rawPage,
"May Caused By Model Problem! Or Page Error!");
} catch (Exception e) {
pageErrorOutPut.returnErrorPage(rawPage, e);
}
}
}
// if(rawList.size()==this.site.getResultNum()){
// recordId = this.downloader.getBeginId(recordId,
// this.site.getResultNum());
// readCursor.setValue(uuid, String.valueOf(recordId));
// }else{
//
// }
if (rawList.size() > 0) {
// 每次在所选取的最大的limit的表中找到最大的id号
int num = rawList.size()-1;
recordId = rawList.get(num).getId()+1;
// recordId = this.downloader.getBeginId(recordId,
// this.site.getResultNum())+1;
readCursor.setValue(uuid, String.valueOf(recordId));
}
}
// public void start() {
// init();
// logger.info(this.uuid + " Extractor Started!");
// timer.schedule(this, site.getFirstTime(), site.getPeriod());
// }
public void start(){
int recordId ;
//int tableId = pagedao.getMaxId(tables.get(uuid));
int tableId = 24;
init();
if(readCursor.getValue(uuid) != null){
recordId = Integer.parseInt(readCursor.getValue(uuid).trim());
}else{
recordId = pagedao.getMinId(tables.get(uuid));
}
while(recordId < tableId){
recordId = Integer.parseInt(readCursor.getValue(uuid).trim());
System.out.println(recordId);
logger.info(this.uuid + " Extractor Started!");
this.run();
}
}
protected void init() {
if (downloader == null) {
logger.error("No Page Source!");
System.exit(0);
}
if (timer == null) {
timer = new Timer();
}
if (cursorPath == null) {
this.cursorPath = defaultPath + uuid + ".txt";
}
if (readCursor == null) {
readCursor = new ReadCursor(cursorPath);
}
if (pipelines.isEmpty()) {
pipelines.add((Pipeline) new ConsolePipeline());
}
if (pageErrorOutPut == null) {
pageErrorOutPut = new DefaultPageErrorOutPut();
}
if (tables == null){
tables = Configuration.tables;
}
}
protected void createPageList(List<RawPage> rawPages) {
for (RawPage rawPage : rawPages) {
rawPage.generatPage();
}
}
}

View File

@ -41,6 +41,7 @@ public class OsseanExtractor extends TimerTask {
private PageErrorOutPut pageErrorOutPut;
private int recordId = 0;
protected OsseanExtractor(ModelPageProcessor modelPageProcessor) {
this.modelPageProcessor = modelPageProcessor;

View File

@ -1,5 +1,14 @@
package net.trustie.comment.model;
import net.trustie.utils.StringHandler;
public class CsdnAsk_Comment_Model {
public static void main(String[] args) {
String str = "<]ljhjihid89898fsdf>dfsfs<dfsdf>";
String regix = "<.[^>]+>";
String ans = StringHandler.matchRightString(str,regix);
System.out.println(ans);
}
}

View File

@ -17,6 +17,9 @@ public interface PageDao {
@Select("select Min(id) from ${table_name}")
public int getMinId(@Param("table_name") String table_name);
@Select("select Max(id) from ${table_name}")
public int getMaxId(@Param("table_name") String table_name);
// @Select("select MAX(id) FROM ${table_name} where id in (SELECT t.id FROM (SELECT id FROM ${table_name} WHERE id >${begin_id} limit #{interval}) AS t);")
// public int getMaxBeginId(@Param("table_name")String table_name,@Param("begin_id") int begin_id, @Param("interval") int interval);

View File

@ -5,6 +5,7 @@ import java.sql.SQLException;
import net.trustie.downloader.DataBasePageErrorOutPut;
import net.trustie.downloader.GenerateRawPage;
import net.trustie.model.CNblogsNews_Model;
import net.trustie.one.Configuration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
@ -48,7 +49,7 @@ public class CNblogNews_Extractor {
ApplicationContext aContext = new ClassPathXmlApplicationContext(
"classpath:/spring/applicationContext*.xml");
final CNblogNews_Extractor extractor = aContext
final CNblogNews_Extractor extractor = Configuration.aContext
.getBean(CNblogNews_Extractor.class);
extractor.begin();

View File

@ -8,6 +8,7 @@ import net.trustie.downloader.DataBasePageErrorOutPut;
import net.trustie.downloader.GenerateRawPage;
import net.trustie.downloader.PageDao;
import net.trustie.model.CNblogsQ_Model;
import net.trustie.one.Configuration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
@ -15,12 +16,18 @@ import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.stereotype.Component;
import core.ExtractorBegin;
import core.PageModelPipeline;
import core.Site;
import extension.OneExtractor;
import extension.OsseanExtractor;
import extension.ReadCursor;
@Component
public class CNblogQSolve_Extractor {
public class CNblogQSolve_Extractor implements ExtractorBegin {
private ReadCursor readCursor = new ReadCursor("./cursor/cnblog_q_solve.txt");
@SuppressWarnings("rawtypes")
@Qualifier("cnblogsQPipeline")
@Autowired
@ -49,15 +56,48 @@ public class CNblogQSolve_Extractor {
.setPageErrorOutPut(dbPageErrorOutPut).start();
}
public static void main(String[] args) throws SQLException {
ApplicationContext aContext = new ClassPathXmlApplicationContext(
"classpath:/spring/applicationContext*.xml");
/**
* 为多线程任务调用准备
*/
@Override
public void threadRun() {
// TODO Auto-generated method stub
generateRawPage.setTable("cnblogs_q_solved_html_detail");
dbPageErrorOutPut.setTableName("cnblogs_q_solved_error_page");
final CNblogQSolve_Extractor extractor = aContext
.getBean(CNblogQSolve_Extractor.class);
extractor.begin();
OneExtractor
.create(Site.me().setResultNum(100), modelPipeline,
CNblogsQ_Model.class).setUUID("cnblog_q_solve")
.setDownloader(generateRawPage)
.setPageErrorOutPut(dbPageErrorOutPut).start();
}
@Override
public boolean check() {
// TODO Auto-generated method stub
int cursor = Integer.parseInt(readCursor.getValue("cnblog_q_solve"));
int maxId = pagedao.getMaxId("cnblogs_q_solved_html_detail");
if(cursor >= maxId){
return true ;
}
return false;
}
public static void main(String[] args) throws SQLException {
// ApplicationContext aContext = new ClassPathXmlApplicationContext(
// "classpath:/spring/applicationContext*.xml");
//
// final CNblogQSolve_Extractor extractor = aContext
// .getBean(CNblogQSolve_Extractor.class);
Configuration config = new Configuration();
CNblogQSolve_Extractor extractor = Configuration.aContext.getBean(CNblogQSolve_Extractor.class);
//extractor.begin();
extractor.threadRun();
}
}

View File

@ -29,6 +29,7 @@ public class CsdnAsk_Extractor {
private DataBasePageErrorOutPut dbPageErrorOutPut;
public void begin() {
generateRawPage.setTable("csdn_ask_html_detail");
dbPageErrorOutPut.setTableName("csdn_ask_error_page");

View File

@ -0,0 +1,50 @@
package net.trustie.one;
import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Configuration {
public static ApplicationContext aContext = null;
public static Map<String, String> tables = new HashMap();
//hashmap不是线程安全的要用Collections.synchronizedMap来进行封装
@SuppressWarnings("unchecked")
public static Map<String, Boolean> flags = Collections
.synchronizedMap(new HashMap());
private File file = null;
static {
aContext = new ClassPathXmlApplicationContext(
"classpath:/spring/applicationContext*.xml");
}
public Configuration() {
file = new File("./config/configuration.txt");
try {
LineIterator litr = FileUtils.lineIterator(file);
while (litr.hasNext()) {
String[] strs = litr.next().split(" ");
String site = strs[0];
String tableName = strs[1];
flags.put(site, false);
tables.put(site, tableName);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

View File

@ -0,0 +1,36 @@
package net.trustie.one;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import core.ExtractorBegin;
public class MyThread extends Thread {
private String site;
protected Logger logger = LoggerFactory.getLogger(getClass());
public MyThread() {
}
public MyThread(String site) {
this.site = site;
}
public void run() {
ExtractorBegin eb = (ExtractorBegin) Configuration.aContext
.getBean(site);
try {
while (!Thread.currentThread().isInterrupted()
&& Configuration.flags.get(site) == true) {
eb.threadRun();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
Configuration.flags.put(site, false);
}
}
}

View File

@ -0,0 +1,86 @@
package net.trustie.one;
import java.io.File;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.annotation.Resource;
import net.trustie.downloader.PageDao;
import net.trustie.extractor.CNblogQSolve_Extractor;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator;
import extension.ReadCursor;
public class OneEx extends TimerTask{
private ReadCursor readCursor = null ;
private ExecutorService pool = null ;
private Configuration config ;
@Resource
private PageDao pagedao;
public OneEx(){
//初始化一些配置
config = new Configuration();
}
public void begin(){
initPool();
//logger.info(this.uuid + " Extractor Started!");
//timer.schedule(this, site.getFirstTime(), site.getPeriod());
}
public void initPool(){
pool = Executors.newFixedThreadPool(20);
}
public static void main(String[] args) {
//System.out.println("hello ");
// ExecutorService pool = Executors.newCachedThreadPool();
// Thread t1 = new MyThread();
// Thread t2 = new MyThread();
// Thread t3 = new MyThread();
// Thread t4 = new MyThread();
// Thread t5 = new MyThread();
// Thread t6 = new MyThread();
//
// pool.execute(t1);
// pool.execute(t2);
// pool.execute(t3);
// pool.execute(t4);
// pool.execute(t5);
// pool.execute(t6);
//
// pool.shutdown();
//Configuration ccf = new Configuration();
}
@Override
public void run() {
// TODO Auto-generated method stub
Set<String> sites = config.flags.keySet();
for(String site : sites){
readCursor = new ReadCursor("./cursor/"+site+".txt");
int recordId = Integer.parseInt(readCursor.getValue(site));
int maxId =pagedao.getMaxId(Configuration.tables.get(site));
if(recordId <= maxId && Configuration.flags.get(site) == false ){
Thread t = new MyThread(site);
pool.execute(t);
}
}
}
}