From c35a6b151259c980bb1ceec57abe65a79c6f6ac8 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Fri, 23 Nov 2012 00:41:19 +0800 Subject: [PATCH] EOFM-207 and update geotools to 8.3.x --- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java | 35 xdgnjobs/ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java | 8 .gitattributes | 1 xdgnjobs/ximple-build/maven/jar-collector/pom.xml | 2 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/OracleConvertMySQLJobContext.java | 10 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java | 31 xdgnjobs/ximple-spatialjob/pom.xml | 29 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/FeatureDgnConvertShpJobContext.java | 25 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java | 24 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/OracleConvertOraSDOJobContext.java | 35 - xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractOracleToOraSDOJobContext.java | 12 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2MySQLJob.java | 16 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/DigesterUtils.java | 25 + xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2OraSDOJob.java | 34 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java | 23 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/DummyFeatureConvertOraSDOJobContext.java | 32 - xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/FeatureDgnConvertOraSDOJobContext.java | 23 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java | 40 +- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2EdbGeoJob.java | 52 +- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/AbstractDgnFileJobContext.java | 5 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java | 31 + xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/FeatureClassificationRules.xml | 2 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/OracleConvertEdbGeoJobContext.java | 32 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractOracleToMySQLJobContext.java | 12 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/OracleConvertShapefilesJobContext.java | 8 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/FeatureDgnConvertMySQLJobContext.java | 23 xdgnjobs/ximple-jobcarrier/quartz_jobs.xml | 10 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java | 29 xdgnjobs/ximple-jobcarrier/pom.xml | 31 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractDgnToMySQLJobContext.java | 10 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/AbstractOracleJobContext.java | 10 xdgnjobs/ximple-dgnio/pom.xml | 4 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java | 11 xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml | 2 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/AbstractDgnToEdbGeoJobContext.java | 22 xdgnjobs/pom.xml | 109 +++-- xdgnjobs/ximple-build/maven/pom.xml | 2 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/DummyFeatureConvertMySQlJobContext.java | 31 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java | 4 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/DummyFeatureConvertJobContext.java | 33 - xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/DummyFeatureConvertShpJobContext.java | 31 xdgnjobs/ximple-build/pom.xml | 4 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/DummyFeatureConvertEdbGeoJobContext.java | 8 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java | 125 ++++- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/AbstractOracleToEdbGeoJobContext.java | 21 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java | 31 xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml | 5 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractDgnToOraSDOJobContext.java | 10 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/FeatureDgnConvertEdbGeoJobContext.java | 21 xdgnjobs/ximple-elmparser/pom.xml | 4 50 files changed, 599 insertions(+), 539 deletions(-) diff --git a/.gitattributes b/.gitattributes index 816d1e7..bf21934 100644 --- a/.gitattributes +++ b/.gitattributes @@ -144,6 +144,7 @@ xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/ByteArrayCompressor.java svneol=native#text/plain xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/ColorTableMapping.java svneol=native#text/plain xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/DefaultColorTable.java svneol=native#text/plain +xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/DigesterUtils.java -text xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/EPSG3825GeometryConverterDecorator.java -text svneol=unset#text/plain xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/EPSG3826GeometryConverterDecorator.java svneol=native#text/plain xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java svneol=native#text/plain diff --git a/xdgnjobs/pom.xml b/xdgnjobs/pom.xml index fae559c..5242e39 100644 --- a/xdgnjobs/pom.xml +++ b/xdgnjobs/pom.xml @@ -17,9 +17,9 @@ <oracle.jdbc>true</oracle.jdbc> <test.maxHeapSize>512M</test.maxHeapSize> <src.output>${basedir}/target</src.output> - <java5>1.5</java5> - <xdgnio.version>1.2.2</xdgnio.version> - <gt2.version>2.7.5-1</gt2.version> + <java5>1.6</java5> + <xdgnio.version>1.3.0</xdgnio.version> + <gt.version>8.3.x</gt.version> <failIfNoTests>false</failIfNoTests> <stress.skip.pattern></stress.skip.pattern> <online.skip.pattern></online.skip.pattern> @@ -57,15 +57,15 @@ <scm> <connection> - scm:svn:http://www.ximple.com.tw/svn/xeofms/xspatialjob/truck/ + scm:svn:http://www.ximple.com.tw:8079/svn/xeofms/xspatialjob/truck/ </connection> - <url>http://www.ximple.com.tw/svn/xeofms/xspatialjob/truck/</url> + <url>http://www.ximple.com.tw:8079/svn/xeofms/xspatialjob/truck/</url> </scm> <groupId>com.ximple.eofms</groupId> <artifactId>ximple-dgnjobs</artifactId> <packaging>pom</packaging> - <version>1.2.2</version> + <version>1.3.0</version> <name>ximple-dgnjobs</name> <url>http://www.ximple.com.tw</url> @@ -76,7 +76,7 @@ <url>http://www.ximple.com.tw</url> </organization> - <inceptionYear>2010</inceptionYear> + <inceptionYear>2012</inceptionYear> <!-- =========================================================== --> <!-- Issue managements and mailing lists. --> @@ -134,9 +134,9 @@ <version>3.2.1</version> </dependency> <dependency> - <groupId>commons-digester</groupId> - <artifactId>commons-digester</artifactId> - <version>2.1</version> + <groupId>org.apache.commons</groupId> + <artifactId>commons-digester3</artifactId> + <version>3.2</version> </dependency> <dependency> <groupId>commons-pool</groupId> @@ -167,79 +167,84 @@ <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> - <version>3.7</version> + <version>3.8</version> </dependency> <!-- geotools --> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-api</artifactId> - <version>${gt2.version}</version> + <version>${gt.version}</version> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-main</artifactId> - <version>${gt2.version}</version> + <version>${gt.version}</version> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-shapefile</artifactId> - <version>${gt2.version}</version> + <version>${gt.version}</version> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-sample-data</artifactId> - <version>${gt2.version}</version> + <version>${gt.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-data</artifactId> - <version>${gt2.version}</version> + <version>${gt.version}</version> </dependency> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-jdbc</artifactId> - <version>${gt2.version}</version> + <version>${gt.version}</version> </dependency> <dependency> - <groupId>org.geotools</groupId> - <artifactId>gt-oracle-spatial</artifactId> - <version>${gt2.version}</version> + <groupId>org.geotools.jdbc</groupId> + <artifactId>gt-jdbc-oracle</artifactId> + <version>${gt.version}</version> </dependency> <dependency> - <groupId>org.geotools</groupId> - <artifactId>gt-postgis</artifactId> - <version>${gt2.version}</version> - <exclusions> + <groupId>org.geotools.jdbc</groupId> + <artifactId>gt-jdbc-postgis</artifactId> + <version>${gt.version}</version> + <!--exclusions> <exclusion> <groupId>org.postgis</groupId> <artifactId>postgis-driver</artifactId> </exclusion> - </exclusions> + </exclusions--> </dependency> <dependency> - <groupId>org.geotools</groupId> - <artifactId>gt-mysql</artifactId> - <version>${gt2.version}</version> + <groupId>org.geotools.jdbc</groupId> + <artifactId>gt-jdbc-mysql</artifactId> + <version>${gt.version}</version> </dependency> <!-- because main and sample-data depend on referencing we need a tie breaker --> <dependency> <groupId>org.geotools</groupId> <artifactId>gt-referencing</artifactId> - <version>${gt2.version}</version> + <version>${gt.version}</version> </dependency> <dependency> <groupId>org.geotools</groupId> - <artifactId>gt-epsg-h2</artifactId> - <version>${gt2.version}</version> - <exclusions> + <artifactId>gt-epsg-hsql</artifactId> + <version>${gt.version}</version> + <!--exclusions> <exclusion> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </exclusion> - </exclusions> + </exclusions--> + </dependency> + <dependency> + <groupId>org.geotools</groupId> + <artifactId>gt-epsg-wkt</artifactId> + <version>${gt.version}</version> </dependency> <dependency> @@ -258,7 +263,7 @@ <dependency> <groupId>org.geotools</groupId> <artifactId>gt-epsg-hsql</artifactId> - <version>${gt2.version}</version> + <version>${gt.version}</version> <scope>test</scope> </dependency> @@ -285,28 +290,28 @@ <version>11.1.0</version> </dependency> - <dependency> + <!--dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>8.4-702.jdbc3</version> - </dependency> + </dependency--> <dependency> <groupId>org.postgis</groupId> <artifactId>postgis-driver</artifactId> <version>1.5.3</version> </dependency> - <dependency> + <!--dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.18</version> - </dependency> + </dependency--> - <dependency> + <!--dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.3.163</version> - </dependency> + </dependency--> <!-- EnterpriseDB --> <dependency> @@ -319,7 +324,7 @@ <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> - <version>2.1.3</version> + <version>2.1.6</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> @@ -330,12 +335,12 @@ <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> - <version>1.6.3</version> + <version>1.6.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> - <version>1.6.3</version> + <version>1.6.6</version> </dependency> <dependency> <groupId>org.awl</groupId> @@ -352,7 +357,7 @@ <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> - <version>6.3</version> + <version>6.8</version> <scope>test</scope> </dependency> </dependencies> @@ -373,8 +378,8 @@ <groupId>commons-collections</groupId> </dependency> <dependency> - <groupId>commons-digester</groupId> - <artifactId>commons-digester</artifactId> + <groupId>org.apache.commons</groupId> + <artifactId>commons-digester3</artifactId> </dependency> <dependency> <groupId>commons-pool</groupId> @@ -403,13 +408,13 @@ </dependency> <dependency> <groupId>org.geotools</groupId> - <artifactId>gt-epsg-h2</artifactId> + <artifactId>gt-epsg-hsql</artifactId> </dependency> - <dependency> + <!--dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> - </dependency> + </dependency--> <dependency> <groupId>xerces</groupId> @@ -480,7 +485,7 @@ <dependency> <groupId>org.geotools.maven</groupId> <artifactId>gt2-build-configs</artifactId> - <version>${gt2.version}</version> + <version>${gt.version}</version> </dependency> </dependencies> --> @@ -500,7 +505,7 @@ <!-- The -target argument for the Java compiler. --> <debug>true</debug> <!-- Whether to include debugging information. --> - <encoding>ISO-8859-1</encoding> + <encoding>UTF-8</encoding> <!-- The -encoding argument for the Java compiler. --> </configuration> </plugin> @@ -566,7 +571,7 @@ <dependency> <groupId>org.geotools.maven</groupId> <artifactId>gt2-build-configs</artifactId> - <version>${gt2.version}</version> + <version>${gt.version}</version> </dependency> </dependencies> </plugin> diff --git a/xdgnjobs/ximple-build/maven/jar-collector/pom.xml b/xdgnjobs/ximple-build/maven/jar-collector/pom.xml index f9823b8..73105f2 100644 --- a/xdgnjobs/ximple-build/maven/jar-collector/pom.xml +++ b/xdgnjobs/ximple-build/maven/jar-collector/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>com.ximple.eofms.maven</groupId> <artifactId>ximple-maven</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> </parent> diff --git a/xdgnjobs/ximple-build/maven/pom.xml b/xdgnjobs/ximple-build/maven/pom.xml index 23f939f..f90eeee 100644 --- a/xdgnjobs/ximple-build/maven/pom.xml +++ b/xdgnjobs/ximple-build/maven/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>com.ximple.eofms.maven</groupId> <artifactId>ximple-build</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> </parent> diff --git a/xdgnjobs/ximple-build/pom.xml b/xdgnjobs/ximple-build/pom.xml index 1f49ed6..e71a950 100644 --- a/xdgnjobs/ximple-build/pom.xml +++ b/xdgnjobs/ximple-build/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>com.ximple.eofms</groupId> <artifactId>ximple-dgnjobs</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> </parent> @@ -16,7 +16,7 @@ <!-- =========================================================== --> <groupId>com.ximple.eofms.maven</groupId> <artifactId>ximple-build</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> <packaging>pom</packaging> <name>Build tools for Ximple DgnJobs</name> diff --git a/xdgnjobs/ximple-dgnio/pom.xml b/xdgnjobs/ximple-dgnio/pom.xml index 777eb8b..9fe8352 100644 --- a/xdgnjobs/ximple-dgnio/pom.xml +++ b/xdgnjobs/ximple-dgnio/pom.xml @@ -7,7 +7,7 @@ <parent> <groupId>com.ximple.eofms</groupId> <artifactId>ximple-dgnjobs</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> </parent> <!-- =========================================================== --> @@ -15,7 +15,7 @@ <!-- =========================================================== --> <groupId>com.ximple.eofms</groupId> <artifactId>ximple-dgnio</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> <packaging>jar</packaging> <name>ximple-dgnio</name> <url>http://www.ximple.com.tw</url> diff --git a/xdgnjobs/ximple-elmparser/pom.xml b/xdgnjobs/ximple-elmparser/pom.xml index b22d962..3608cfc 100644 --- a/xdgnjobs/ximple-elmparser/pom.xml +++ b/xdgnjobs/ximple-elmparser/pom.xml @@ -5,12 +5,12 @@ <parent> <groupId>com.ximple.eofms</groupId> <artifactId>ximple-dgnjobs</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> </parent> <groupId>com.ximple.eofms</groupId> <artifactId>ximple-elmparser</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> <packaging>jar</packaging> <name>ximple-elmparser</name> <url>http://maven.apache.org</url> diff --git a/xdgnjobs/ximple-jobcarrier/pom.xml b/xdgnjobs/ximple-jobcarrier/pom.xml index a819472..5f5a6c2 100644 --- a/xdgnjobs/ximple-jobcarrier/pom.xml +++ b/xdgnjobs/ximple-jobcarrier/pom.xml @@ -6,19 +6,19 @@ <parent> <groupId>com.ximple.eofms</groupId> <artifactId>ximple-dgnjobs</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> </parent> <groupId>com.ximple.eofms</groupId> <artifactId>ximple-jobcarrier</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> <packaging>jar</packaging> <name>ximple-jobcarrier</name> <url>http://maven.apache.org</url> <properties> - <xdgnio.version>1.2.2</xdgnio.version> + <xdgnio.version>1.3.0</xdgnio.version> </properties> <scm> @@ -37,7 +37,7 @@ <url>http://www.ximple.com.tw</url> </organization> - <inceptionYear>2010</inceptionYear> + <inceptionYear>2012</inceptionYear> <developers> <developer> @@ -119,16 +119,16 @@ <artifactId>gt-jdbc</artifactId> </dependency> <dependency> - <groupId>org.geotools</groupId> - <artifactId>gt-postgis</artifactId> + <groupId>org.geotools.jdbc</groupId> + <artifactId>gt-jdbc-postgis</artifactId> </dependency> <dependency> - <groupId>org.geotools</groupId> - <artifactId>gt-oracle-spatial</artifactId> + <groupId>org.geotools.jdbc</groupId> + <artifactId>gt-jdbc-oracle</artifactId> </dependency> <dependency> - <groupId>org.geotools</groupId> - <artifactId>gt-mysql</artifactId> + <groupId>org.geotools.jdbc</groupId> + <artifactId>gt-jdbc-mysql</artifactId> </dependency> <!-- because main and sample-data depend on referencing we need a tie breaker --> @@ -140,8 +140,7 @@ <!-- We need this to make the referencing module useful --> <dependency> <groupId>org.geotools</groupId> - <artifactId>gt-epsg-hsql</artifactId> - <scope>test</scope> + <artifactId>gt-epsg-wkt</artifactId> </dependency> <dependency> @@ -181,19 +180,19 @@ <artifactId>sdoutl</artifactId> </dependency> - <dependency> + <!--dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> </dependency> <dependency> <groupId>org.postgis</groupId> <artifactId>postgis-driver</artifactId> - </dependency> + </dependency--> - <dependency> + <!--dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> - </dependency> + </dependency--> <!-- AWL --> <dependency> diff --git a/xdgnjobs/ximple-jobcarrier/quartz_jobs.xml b/xdgnjobs/ximple-jobcarrier/quartz_jobs.xml index ad62a0a..9813c4d 100644 --- a/xdgnjobs/ximple-jobcarrier/quartz_jobs.xml +++ b/xdgnjobs/ximple-jobcarrier/quartz_jobs.xml @@ -30,7 +30,7 @@ <job-data-map> <entry> <key>JOBDATA_DIR</key> - <value>C:\Usr\Projects\XDCAD\nstpcjobs\jobdata</value> + <value>~/Projects/XDCAD/xjobrun/nntpcjobs/jobdata</value> </entry> <entry> <key>PGHOST</key> @@ -38,7 +38,7 @@ </entry> <entry> <key>PGDATBASE</key> - <value>pgNSTPC</value> + <value>pgNNTPC</value> </entry> <entry> <key>PGPORT</key> @@ -58,7 +58,7 @@ </entry> <entry> <key>ORAHOST</key> - <value>192.168.11.199</value> + <value>192.168.11.99</value> </entry> <entry> <key>ORAINST</key> @@ -70,11 +70,11 @@ </entry> <entry> <key>ORAUSER</key> - <value>basedb</value> + <value>system</value> </entry> <entry> <key>ORAPASS</key> - <value>basedb000</value> + <value>simple000</value> </entry> <entry> <key>ORGSCHEMA</key> diff --git a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml index 2974ca1..5fe5b95 100644 --- a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml +++ b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml @@ -30,7 +30,7 @@ <job-data-map> <entry> <key>JOBDATA_DIR</key> - <value>C:\Usr\Projects\XDCAD\xjobrun\nntpcjobs\jobdata</value> + <value>/Users/ulysseskao/Projects/XDCAD/xjobrun/nntpcjobs/jobdata</value> </entry> <entry> <key>PGHOST</key> @@ -78,7 +78,8 @@ </entry> <entry> <key>ORGSCHEMA</key> - <value>SPATIALDB, CMMS_SPATIALDB</value> + <value>SPATIALDB</value> + <!--value>SPATIALDB, CMMS_SPATIALDB</value--> </entry> <entry> <key>CONVERTDB</key> diff --git a/xdgnjobs/ximple-spatialjob/pom.xml b/xdgnjobs/ximple-spatialjob/pom.xml index c64016e..bdbb485 100644 --- a/xdgnjobs/ximple-spatialjob/pom.xml +++ b/xdgnjobs/ximple-spatialjob/pom.xml @@ -7,18 +7,18 @@ <parent> <groupId>com.ximple.eofms</groupId> <artifactId>ximple-dgnjobs</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> </parent> <groupId>com.ximple.eofms</groupId> <artifactId>ximple-spatialjob</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> <packaging>jar</packaging> <name>ximple-spatialjob</name> <url>http://www.ximple.com.tw</url> <properties> - <xdgnio.version>1.2.2</xdgnio.version> + <xdgnio.version>1.3.0</xdgnio.version> </properties> <description> @@ -82,16 +82,16 @@ <artifactId>gt-jdbc</artifactId> </dependency> <dependency> - <groupId>org.geotools</groupId> - <artifactId>gt-postgis</artifactId> + <groupId>org.geotools.jdbc</groupId> + <artifactId>gt-jdbc-postgis</artifactId> </dependency> <dependency> - <groupId>org.geotools</groupId> - <artifactId>gt-oracle-spatial</artifactId> + <groupId>org.geotools.jdbc</groupId> + <artifactId>gt-jdbc-oracle</artifactId> </dependency> <dependency> - <groupId>org.geotools</groupId> - <artifactId>gt-mysql</artifactId> + <groupId>org.geotools.jdbc</groupId> + <artifactId>gt-jdbc-mysql</artifactId> </dependency> <!-- because main and sample-data depend on referencing we need a tie breaker --> @@ -103,8 +103,7 @@ <!-- We need this to make the referencing module useful --> <dependency> <groupId>org.geotools</groupId> - <artifactId>gt-epsg-hsql</artifactId> - <scope>test</scope> + <artifactId>gt-epsg-wkt</artifactId> </dependency> <dependency> @@ -135,10 +134,10 @@ <artifactId>sdoutl</artifactId> </dependency> - <dependency> + <!--dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> - </dependency> + </dependency--> <dependency> <groupId>org.postgis</groupId> <artifactId>postgis-driver</artifactId> @@ -149,10 +148,10 @@ <artifactId>xedb-gt-geospatial</artifactId> </dependency> - <dependency> + <!--dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> - </dependency> + </dependency--> <!-- Ximple Library --> <dependency> diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java index bc8c675..3c9916c 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java @@ -84,7 +84,7 @@ sb.append("-"); sb.append(txtElement.getFontIndex()); - Geometry gobj; + Geometry gobj, geomOrigin = null; if (useTransform) { GeometryConverterDecorator convertDecorator = FeatureTypeBuilderUtil.lookupDefaultGeometryConverter(); convertDecorator.setConverter(txtElement); @@ -94,41 +94,10 @@ } if (gobj instanceof Point) { - Coordinate p = gobj.getCoordinate(); - double width = txtElement.getTextWidth(); - double height = txtElement.getTextHeight(); - - AffineTransform at = new AffineTransform(); - at.translate(width, height); - at.setToRotation(angle, p.x, p.y); - at.scale(1, 1); - - Envelope envelope = new Envelope(p); - envelope.expandBy(width / 2, height / 2); - - double[] srcPt = new double[8]; - double[] dstPt = new double[8]; - srcPt[0] = envelope.getMinX(); - srcPt[1] = envelope.getMinY(); - srcPt[2] = envelope.getMinX(); - srcPt[3] = envelope.getMaxY(); - srcPt[4] = envelope.getMaxX(); - srcPt[5] = envelope.getMaxY(); - srcPt[6] = envelope.getMaxX(); - srcPt[7] = envelope.getMinY(); - - at.transform(srcPt, 0, dstPt, 0, 4); - - Coordinate[] coords = new Coordinate[5]; - for (int i = 0; i < 4; i++) { - coords[i] = new Coordinate(dstPt[i*2], dstPt[i*2+1]); - } - coords[4] = new Coordinate(dstPt[0], dstPt[1]); - int srid = gobj.getSRID(); - gobj = geometryFactory.createPolygon(geometryFactory.createLinearRing(coords), null); - if (gobj.getSRID() != srid) { - gobj.setSRID(srid); - } + geomOrigin = gobj; + gobj = buildBoundaryPolygon(txtElement.getUserOrigin(), // txtElement.getOrigin() + txtElement.getTextWidth(), txtElement.getTextHeight(), + angle, txtElement.getJustification(), gobj.getSRID()); } else { gobj = null; } @@ -148,7 +117,8 @@ (float) txtElement.getTextHeight(), (float) txtElement.getTextWidth(), (float) angle, - sb.toString() + sb.toString(), + geomOrigin }, null); } else { logger.info("CreateSymbolStrategy cannot conver " + element.toString() + "to Feature"); @@ -173,5 +143,86 @@ } } } + + private Geometry buildBoundaryPolygon(Coordinate p, double symbolWidth, double symbolHeight, double rotationAngle, + int justification, int srid) { + double angle = Math.toRadians(rotationAngle); + + AffineTransform at = new AffineTransform(); + // at.translate(width, height); + at.setToRotation(angle, p.x, p.y); + at.scale(1, 1); + + double width = symbolWidth; + switch (justification) { + case TextElement.TXTJUST_LT: + case TextElement.TXTJUST_LC: + case TextElement.TXTJUST_LB: + width = width / 2; + break; + + case TextElement.TXTJUST_CT: + case TextElement.TXTJUST_CC: + case TextElement.TXTJUST_CB: + width = 0; + break; + + case TextElement.TXTJUST_RT: + case TextElement.TXTJUST_RC: + case TextElement.TXTJUST_RB: + width = -(width / 2); + break; + } + + double height = symbolHeight; + switch (justification) { + case TextElement.TXTJUST_LB: + case TextElement.TXTJUST_CB: + case TextElement.TXTJUST_RB: // bottom + height = height / 2; + break; + + case TextElement.TXTJUST_LC: + case TextElement.TXTJUST_CC: + case TextElement.TXTJUST_RC: // center + height = 0; + break; + + case TextElement.TXTJUST_LT: + case TextElement.TXTJUST_CT: + case TextElement.TXTJUST_RT: // height + height = -(height / 2); + break; + } + + + Envelope envelope = new Envelope(new Coordinate(p.x + width, p.y + height)); + envelope.expandBy(symbolWidth / 2, symbolHeight / 2); + + double[] srcPt = new double[8]; + double[] dstPt = new double[8]; + srcPt[0] = envelope.getMinX(); + srcPt[1] = envelope.getMinY(); + srcPt[2] = envelope.getMinX(); + srcPt[3] = envelope.getMaxY(); + srcPt[4] = envelope.getMaxX(); + srcPt[5] = envelope.getMaxY(); + srcPt[6] = envelope.getMaxX(); + srcPt[7] = envelope.getMinY(); + + at.transform(srcPt, 0, dstPt, 0, 4); + + Coordinate[] coords = new Coordinate[5]; + for (int i = 0; i < 4; i++) { + coords[i] = new Coordinate(dstPt[i*2], dstPt[i*2+1]); + } + coords[4] = new Coordinate(dstPt[0], dstPt[1]); + + Geometry geom = geometryFactory.createPolygon(geometryFactory.createLinearRing(coords), null); + if (geom.getSRID() != srid) { + geom.setSRID(srid); + } + return geom; + } } diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java index d941a3f..4661fab 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java @@ -14,8 +14,9 @@ import com.ximple.eofms.util.FeatureTypeBuilderUtil; import org.apache.commons.logging.Log; import org.geotools.data.DataStore; -import org.geotools.data.oracle.OracleDataStore; -import org.geotools.data.oracle.OracleDataStoreFactory; +import org.geotools.data.DataStoreFinder; +import org.geotools.data.oracle.OracleNGDataStoreFactory; +import org.geotools.jdbc.JDBCDataStore; import org.quartz.Job; import org.quartz.JobDataMap; import org.quartz.JobDetail; @@ -57,7 +58,7 @@ private static final String PROFILEMODE = "PROFILEMODE"; private static final String USEZONE121 = "USEZONE121"; - protected static OracleDataStoreFactory dataStoreFactory = new OracleDataStoreFactory(); + protected static OracleNGDataStoreFactory dataStoreFactory = new OracleNGDataStoreFactory(); protected String _dataPath; protected String _filterPath; @@ -79,7 +80,7 @@ protected boolean _useTransform = true; protected int _testCount = -1; - protected OracleDataStore sourceDataStore; + protected JDBCDataStore sourceDataStore; private boolean driverFound = true; private long _processTime; @@ -363,19 +364,19 @@ throw new JobExecutionException("Oracle JDBC Driver not found.-" + JDBC_DRIVER); } Map<String, String> map = new TreeMap<String, String>(); - map.put("host", _oracleHost); - map.put("port", _oraclePort); - map.put("instance", _oracleInstance); - map.put("user", _username); - map.put("passwd", _password); - map.put("dbtype", "oracle"); - map.put("alias", _oracleInstance); - map.put("namespace", null); - if (!map.containsKey(OracleDataStoreFactory.MAXCONN.key)) { - map.put(OracleDataStoreFactory.MAXCONN.key, "5"); + map.put(OracleNGDataStoreFactory.HOST.key, _oracleHost); + map.put(OracleNGDataStoreFactory.PORT.key, _oraclePort); + map.put(OracleNGDataStoreFactory.DATABASE.key, _oracleInstance); + map.put(OracleNGDataStoreFactory.USER.key, _username); + map.put(OracleNGDataStoreFactory.PASSWD.key, _password); + map.put(OracleNGDataStoreFactory.DBTYPE.key, "oracle"); + map.put(OracleNGDataStoreFactory.NAMESPACE.key, null); + + if (!map.containsKey(OracleNGDataStoreFactory.MAXCONN.key)) { + map.put(OracleNGDataStoreFactory.MAXCONN.key, "5"); } - if (!map.containsKey(OracleDataStoreFactory.MINCONN.key)) { - map.put(OracleDataStoreFactory.MINCONN.key, "1"); + if (!map.containsKey(OracleNGDataStoreFactory.MINCONN.key)) { + map.put(OracleNGDataStoreFactory.MINCONN.key, "1"); } if (!dataStoreFactory.canProcess(map)) { @@ -383,7 +384,7 @@ throw new JobExecutionException("cannot process properties-"); } try { - sourceDataStore = (OracleDataStore) dataStoreFactory.createDataStore(map); + sourceDataStore = dataStoreFactory.createDataStore(map); } catch (IOException e) { getLogger().warn(e.getMessage(), e); throw new JobExecutionException(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/DummyFeatureConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/DummyFeatureConvertJobContext.java index 7b80d8c..ca2e17b 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/DummyFeatureConvertJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/DummyFeatureConvertJobContext.java @@ -11,8 +11,19 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.filter.TypeCompIdDispatchableFilter; +import com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter; +import com.ximple.eofms.filter.TypeIdDispatchableFilter; +import com.ximple.eofms.jobs.context.AbstractDgnFileJobContext; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.io.dgn7.UserAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -28,20 +39,6 @@ import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.xml.sax.SAXException; - -import com.vividsolutions.jts.geom.GeometryFactory; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.eofms.filter.TypeCompIdDispatchableFilter; -import com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter; -import com.ximple.eofms.filter.TypeIdDispatchableFilter; -import com.ximple.eofms.jobs.context.AbstractDgnFileJobContext; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; -import com.ximple.io.dgn7.UserAttributeData; public class DummyFeatureConvertJobContext extends AbstractDgnFileJobContext { static final Log logger = LogFactory.getLog(DummyFeatureConvertJobContext.class); @@ -68,9 +65,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -84,6 +78,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2EdbGeoJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2EdbGeoJob.java index a24eccd..dee8809 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2EdbGeoJob.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2EdbGeoJob.java @@ -1,5 +1,27 @@ package com.ximple.eofms.jobs; +import java.io.File; +import java.io.FileFilter; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FilenameFilter; +import java.io.IOException; +import java.math.BigDecimal; +import java.nio.BufferOverflowException; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; +import java.nio.channels.FileChannel; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; +import java.sql.Types; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + import com.ximple.eofms.jobs.context.AbstractOracleJobContext; import com.ximple.eofms.jobs.context.edbgeo.FeatureDgnConvertEdbGeoJobContext; import com.ximple.eofms.jobs.context.edbgeo.GeneralDgnConvertEdbGeoJobContext; @@ -28,37 +50,15 @@ import org.apache.commons.logging.LogFactory; import org.geotools.data.DataStore; import org.geotools.data.Transaction; -import org.geotools.data.jdbc.JDBCUtils; -import org.geotools.data.edbgeo.PostgisDataStore; import org.geotools.data.edbgeo.PostgisDataStoreFactory; +import org.geotools.data.jdbc.JDBCUtils; import org.geotools.feature.SchemaException; +import org.geotools.jdbc.JDBCDataStore; import org.opengis.feature.IllegalAttributeException; import org.quartz.JobDataMap; import org.quartz.JobDetail; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; - -import java.io.File; -import java.io.FileFilter; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FilenameFilter; -import java.io.IOException; -import java.math.BigDecimal; -import java.nio.BufferOverflowException; -import java.nio.ByteBuffer; -import java.nio.ByteOrder; -import java.nio.channels.FileChannel; -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; -import java.sql.Types; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; public class OracleConvertDgn2EdbGeoJob extends AbstractOracleDatabaseJob { final static Log logger = LogFactory.getLog(OracleConvertDgn2EdbGeoJob.class); @@ -99,7 +99,7 @@ protected String _edbUseWKB; protected Map<String, String> edbProperties; - protected PostgisDataStore targetDataStore; + protected JDBCDataStore targetDataStore; // protected OracleConvertEdbGeoJobContext oracleJobContext; private long queryTime = 0; @@ -1204,7 +1204,7 @@ throw new JobExecutionException("cannot process properties-"); } try { - targetDataStore = (PostgisDataStore) dataStoreFactory.createDataStore(edbProperties); + targetDataStore = (JDBCDataStore) dataStoreFactory.createDataStore(edbProperties); } catch (IOException e) { getLogger().warn(e.getMessage(), e); throw new JobExecutionException(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2MySQLJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2MySQLJob.java index ef26b4a..960cbf0 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2MySQLJob.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2MySQLJob.java @@ -25,9 +25,9 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.geotools.data.DataStore; -import org.geotools.data.mysql.MySQLDataStore; import org.geotools.data.mysql.MySQLDataStoreFactory; import org.geotools.feature.SchemaException; +import org.geotools.jdbc.JDBCDataStore; import org.opengis.feature.IllegalAttributeException; import org.quartz.JobDataMap; import org.quartz.JobDetail; @@ -92,7 +92,7 @@ protected String _myUseWKB; protected Map<String, String> myProperties; - protected MySQLDataStore targetDataStore; + protected JDBCDataStore targetDataStore; public Log getLogger() { return logger; @@ -946,24 +946,26 @@ } */ - if (!myProperties.containsKey("max connections" /*MySQLDataStoreFactory.MAXCONN.key */)) { - myProperties.put("max connections", "2"); + if (!myProperties.containsKey(MySQLDataStoreFactory.MAXCONN.key)) { + myProperties.put(MySQLDataStoreFactory.MAXCONN.key, "2"); } - if (!myProperties.containsKey("min connections" /* MySQLDataStoreFactory.MINCONN.key */)) { - myProperties.put("min connections", "1"); + if (!myProperties.containsKey(MySQLDataStoreFactory.MINCONN.key)) { + myProperties.put(MySQLDataStoreFactory.MINCONN.key, "1"); } + /* if (!myProperties.containsKey(MySQLDataStoreFactory.WKBENABLED.key)) { myProperties.put(MySQLDataStoreFactory.WKBENABLED.key, "true"); } + */ if (!dataStoreFactory.canProcess(myProperties)) { getLogger().warn("cannot process properties-"); throw new JobExecutionException("cannot process properties-"); } try { - targetDataStore = (MySQLDataStore) dataStoreFactory.createDataStore(myProperties); + targetDataStore = dataStoreFactory.createDataStore(myProperties); } catch (IOException e) { getLogger().warn(e.getMessage(), e); throw new JobExecutionException(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2OraSDOJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2OraSDOJob.java index 07a4b03..1a3a4ee 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2OraSDOJob.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2OraSDOJob.java @@ -26,9 +26,9 @@ import org.apache.commons.logging.LogFactory; import org.geotools.data.DataStore; import org.geotools.data.jdbc.JDBCUtils; -import org.geotools.data.oracle.OracleDataStore; -import org.geotools.data.oracle.OracleDataStoreFactory; +import org.geotools.data.oracle.OracleNGDataStoreFactory; import org.geotools.feature.SchemaException; +import org.geotools.jdbc.JDBCDataStore; import org.opengis.feature.IllegalAttributeException; import org.quartz.JobDataMap; import org.quartz.JobDetail; @@ -84,7 +84,7 @@ } } - protected static OracleDataStoreFactory dataStoreFactory = new OracleDataStoreFactory(); + protected static OracleNGDataStoreFactory dataStoreFactory = new OracleNGDataStoreFactory(); protected String _sdoHost; protected String _sdoDatabase; @@ -95,7 +95,7 @@ protected String _sdoUseWKB; protected Map<String, String> sdoProperties; - protected OracleDataStore targetDataStore; + protected JDBCDataStore targetDataStore; public Log getLogger() { return logger; @@ -155,14 +155,14 @@ } Map<String, String> remote = new TreeMap<String, String>(); - remote.put("dbtype", "OraSDO"); - remote.put("charset", "UTF-8"); - remote.put("host", _sdoHost); - remote.put("port", _sdoPort); - remote.put("database", _sdoDatabase); - remote.put("user", _sdoUsername); - remote.put("passwd", _sdoPassword); - remote.put("namespace", null); + remote.put(OracleNGDataStoreFactory.DBTYPE.key, "oracle"); + // remote.put("charset", "UTF-8"); + remote.put(OracleNGDataStoreFactory.HOST.key, _sdoHost); + remote.put(OracleNGDataStoreFactory.PORT.key, _sdoPort); + remote.put(OracleNGDataStoreFactory.DATABASE.key, _sdoDatabase); + remote.put(OracleNGDataStoreFactory.USER.key, _sdoUsername); + remote.put(OracleNGDataStoreFactory.PASSWD.key, _sdoPassword); + // remote.put("namespace", null); sdoProperties = remote; } @@ -950,12 +950,12 @@ } */ - if (!sdoProperties.containsKey(OracleDataStoreFactory.MAXCONN.key)) { - sdoProperties.put(OracleDataStoreFactory.MAXCONN.key, "2"); + if (!sdoProperties.containsKey(OracleNGDataStoreFactory.MAXCONN.key)) { + sdoProperties.put(OracleNGDataStoreFactory.MAXCONN.key, "2"); } - if (!sdoProperties.containsKey(OracleDataStoreFactory.MINCONN.key)) { - sdoProperties.put(OracleDataStoreFactory.MINCONN.key, "1"); + if (!sdoProperties.containsKey(OracleNGDataStoreFactory.MINCONN.key)) { + sdoProperties.put(OracleNGDataStoreFactory.MINCONN.key, "1"); } /* @@ -970,7 +970,7 @@ throw new JobExecutionException("cannot process properties-"); } try { - targetDataStore = (OracleDataStore) dataStoreFactory.createDataStore(sdoProperties); + targetDataStore = dataStoreFactory.createDataStore(sdoProperties); } catch (IOException e) { getLogger().warn(e.getMessage(), e); throw new JobExecutionException(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java index 0f2aede..c5938a1 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java @@ -30,9 +30,9 @@ import org.geotools.data.DataStore; import org.geotools.data.Transaction; import org.geotools.data.jdbc.JDBCUtils; -import org.geotools.data.postgis.PostgisDataStore; -import org.geotools.data.postgis.PostgisDataStoreFactory; +import org.geotools.data.postgis.PostgisNGDataStoreFactory; import org.geotools.feature.SchemaException; +import org.geotools.jdbc.JDBCDataStore; import org.opengis.feature.IllegalAttributeException; import org.quartz.JobDataMap; import org.quartz.JobDetail; @@ -90,7 +90,7 @@ } } - protected static PostgisDataStoreFactory dataStoreFactory = new PostgisDataStoreFactory(); + protected static PostgisNGDataStoreFactory dataStoreFactory = new PostgisNGDataStoreFactory(); protected String _pgHost; protected String _pgDatabase; @@ -101,7 +101,7 @@ protected String _pgUseWKB; protected Map<String, String> pgProperties; - protected PostgisDataStore targetDataStore; + protected JDBCDataStore targetDataStore; // protected OracleConvertEdbGeoJobContext oracleJobContext; private long queryTime = 0; @@ -166,14 +166,14 @@ } Map<String, String> remote = new TreeMap<String, String>(); - remote.put("dbtype", "postgis"); - remote.put("charset", "UTF-8"); - remote.put("host", _pgHost); - remote.put("port", _pgPort); - remote.put("database", _pgDatabase); - remote.put("user", _pgUsername); - remote.put("passwd", _pgPassword); - remote.put("namespace", null); + remote.put(PostgisNGDataStoreFactory.DBTYPE.key, "postgis"); + // remote.put("charset", "UTF-8"); + remote.put(PostgisNGDataStoreFactory.HOST.key, _pgHost); + remote.put(PostgisNGDataStoreFactory.PORT.key, _pgPort); + remote.put(PostgisNGDataStoreFactory.DATABASE.key, _pgDatabase); + remote.put(PostgisNGDataStoreFactory.USER.key, _pgUsername); + remote.put(PostgisNGDataStoreFactory.PASSWD.key, _pgPassword); + // remote.put( "namespace", null); pgProperties = remote; } @@ -1189,24 +1189,26 @@ } */ - if (!pgProperties.containsKey(PostgisDataStoreFactory.MAXCONN.key)) { - pgProperties.put(PostgisDataStoreFactory.MAXCONN.key, "5"); + if (!pgProperties.containsKey(PostgisNGDataStoreFactory.MAXCONN.key)) { + pgProperties.put(PostgisNGDataStoreFactory.MAXCONN.key, "5"); } - if (!pgProperties.containsKey(PostgisDataStoreFactory.MINCONN.key)) { - pgProperties.put(PostgisDataStoreFactory.MINCONN.key, "1"); + if (!pgProperties.containsKey(PostgisNGDataStoreFactory.MINCONN.key)) { + pgProperties.put(PostgisNGDataStoreFactory.MINCONN.key, "1"); } - if (!pgProperties.containsKey(PostgisDataStoreFactory.WKBENABLED.key)) { - pgProperties.put(PostgisDataStoreFactory.WKBENABLED.key, "true"); + /* + if (!pgProperties.containsKey(PostgisNGDataStoreFactory.WKBENABLED.key)) { + pgProperties.put(PostgisNGDataStoreFactory.WKBENABLED.key, "true"); } + */ if (!dataStoreFactory.canProcess(pgProperties)) { getLogger().warn("cannot process properties-"); throw new JobExecutionException("cannot process properties-"); } try { - targetDataStore = (PostgisDataStore) dataStoreFactory.createDataStore(pgProperties); + targetDataStore = dataStoreFactory.createDataStore(pgProperties); } catch (IOException e) { getLogger().warn(e.getMessage(), e); throw new JobExecutionException(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/AbstractDgnFileJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/AbstractDgnFileJobContext.java index e1abbd2..28a05e0 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/AbstractDgnFileJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/AbstractDgnFileJobContext.java @@ -2,12 +2,17 @@ import java.util.Map; +import com.ximple.eofms.filter.ElementDispatcher; +import org.apache.commons.digester3.Digester; +import org.apache.commons.digester3.binder.DigesterLoader; +import org.apache.commons.digester3.xmlrules.FromXmlRulesModule; import org.apache.commons.logging.Log; import org.quartz.JobExecutionContext; import com.ximple.io.dgn7.Dgn7fileReader; public abstract class AbstractDgnFileJobContext { + // ------------------------------ FIELDS ------------------------------ /** diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/AbstractOracleJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/AbstractOracleJobContext.java index 408aeab..9d0e097 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/AbstractOracleJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/AbstractOracleJobContext.java @@ -8,7 +8,7 @@ import org.geotools.data.DataStore; import org.geotools.data.Transaction; import org.geotools.data.jdbc.JDBCUtils; -import org.geotools.data.oracle.OracleDataStore; +import org.geotools.jdbc.JDBCDataStore; public abstract class AbstractOracleJobContext { /** @@ -248,7 +248,7 @@ * Encoding of URL path. */ protected static final String ENCODING = "UTF-8"; - protected OracleDataStore sourceDataStore; + protected JDBCDataStore sourceDataStore; protected String _dataPath; protected Properties properties; @@ -267,13 +267,13 @@ this.useTransform = useTransform; } - public OracleDataStore getSourceDataStore() { + public JDBCDataStore getSourceDataStore() { return sourceDataStore; } public void setSourceDataStore(DataStore sourceDataStore) { - if ((sourceDataStore != null) && (sourceDataStore instanceof OracleDataStore)) { - this.sourceDataStore = (OracleDataStore) sourceDataStore; + if ((sourceDataStore != null) && (sourceDataStore instanceof JDBCDataStore)) { + this.sourceDataStore = (JDBCDataStore) sourceDataStore; } else { assert sourceDataStore != null; getLogger().warn("setSourceDataStore(datastore) need OracleDataStore but got " + diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/AbstractDgnToEdbGeoJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/AbstractDgnToEdbGeoJobContext.java index 3172de7..8bddca6 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/AbstractDgnToEdbGeoJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/AbstractDgnToEdbGeoJobContext.java @@ -10,14 +10,15 @@ import java.sql.Statement; import java.util.*; +import com.vividsolutions.jts.geom.LinearRing; import com.ximple.eofms.util.FeatureTypeBuilderUtil; import org.geotools.data.DataSourceException; import org.geotools.data.DataStore; import org.geotools.data.SchemaNotFoundException; import org.geotools.data.Transaction; import org.geotools.data.jdbc.JDBCUtils; -import org.geotools.data.edbgeo.PostgisDataStore; import org.geotools.filter.LengthFunction; +import org.geotools.jdbc.JDBCDataStore; import org.geotools.referencing.NamedIdentifier; import org.geotools.referencing.crs.DefaultGeographicCRS; import org.opengis.feature.simple.SimpleFeature; @@ -25,7 +26,6 @@ import org.opengis.feature.type.AttributeDescriptor; import org.opengis.feature.type.AttributeType; import org.opengis.feature.type.GeometryDescriptor; -import org.opengis.feature.type.GeometryType; import org.opengis.feature.type.PropertyType; import org.opengis.filter.BinaryComparisonOperator; import org.opengis.filter.Filter; @@ -121,7 +121,7 @@ protected static WKTWriter geometryWriter = new WKTWriter(); protected static JtsBinaryWriter binaryWriter = new JtsBinaryWriter(); - private PostgisDataStore targetDataStore; + private JDBCDataStore targetDataStore; // protected Connection connection; protected String targetSchema = "public"; @@ -130,8 +130,8 @@ public AbstractDgnToEdbGeoJobContext(String dataPath, DataStore targetDataStore, String targetSchema, boolean profileMode, boolean useTransform) { super(dataPath, profileMode, useTransform); - if ((targetDataStore != null) && (targetDataStore instanceof PostgisDataStore)) { - this.targetDataStore = (PostgisDataStore) targetDataStore; + if ((targetDataStore != null) && (targetDataStore instanceof JDBCDataStore)) { + this.targetDataStore = (JDBCDataStore) targetDataStore; } else { getLogger().info("targetDataStore has wrong."); } @@ -139,11 +139,11 @@ setTargetSchema(targetSchema); } - public PostgisDataStore getTargetDataStore() { + public JDBCDataStore getTargetDataStore() { return targetDataStore; } - public void setTargetDataStore(PostgisDataStore targetDataStore) { + public void setTargetDataStore(JDBCDataStore targetDataStore) { this.targetDataStore = targetDataStore; } @@ -484,6 +484,7 @@ return "null"; } + /* if (targetDataStore.isWKBEnabled()) { //String wkb = WKBEncoder.encodeGeometryHex(geom); String wkb = WKBWriter.bytesToHex(new WKBWriter().write(geom)); @@ -496,8 +497,13 @@ } String geoText = geometryWriter.write(geom); - return "GeometryFromText('" + geoText + "', " + srid + ")"; + */ + if (geom instanceof LinearRing) { + //postgis does not handle linear rings, convert to just a line string + geom = geom.getFactory().createLineString(((LinearRing) geom).getCoordinateSequence()); + } + return "ST_GeomFromText('" + geom.toText() + "', " + srid + ")"; } protected String makeInsertSql(SimpleFeature feature, int srid) // throws IOException diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/AbstractOracleToEdbGeoJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/AbstractOracleToEdbGeoJobContext.java index 03c27fe..3723cf1 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/AbstractOracleToEdbGeoJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/AbstractOracleToEdbGeoJobContext.java @@ -10,12 +10,13 @@ import java.sql.Statement; import java.util.*; +import com.vividsolutions.jts.geom.LinearRing; import com.ximple.eofms.util.FeatureTypeBuilderUtil; import org.geotools.data.DataSourceException; import org.geotools.data.DataStore; import org.geotools.data.SchemaNotFoundException; -import org.geotools.data.edbgeo.PostgisDataStore; import org.geotools.filter.LengthFunction; +import org.geotools.jdbc.JDBCDataStore; import org.geotools.referencing.NamedIdentifier; import org.geotools.referencing.crs.DefaultGeographicCRS; import org.opengis.feature.simple.SimpleFeature; @@ -120,14 +121,14 @@ protected boolean schemaEnabled = true; - private PostgisDataStore targetDataStore; + private JDBCDataStore targetDataStore; private String targetSchema = "public"; public AbstractOracleToEdbGeoJobContext(String dataPath, DataStore targetDataStore, String targetSchema, boolean profileMode, boolean useTransform) { super(profileMode, useTransform); - if ((targetDataStore != null) && (targetDataStore instanceof PostgisDataStore)) { - this.targetDataStore = (PostgisDataStore) targetDataStore; + if ((targetDataStore != null) && (targetDataStore instanceof JDBCDataStore)) { + this.targetDataStore = (JDBCDataStore) targetDataStore; } else { getLogger().info("targetDataStore has wrong."); } @@ -135,11 +136,11 @@ setTargetSchema(targetSchema); } - public PostgisDataStore getTargetDataStore() { + public JDBCDataStore getTargetDataStore() { return targetDataStore; } - public void setTargetDataStore(PostgisDataStore targetDataStore) { + public void setTargetDataStore(JDBCDataStore targetDataStore) { this.targetDataStore = targetDataStore; } @@ -506,6 +507,7 @@ return "null"; } + /* if (targetDataStore.isWKBEnabled()) { //String wkb = WKBEncoder.encodeGeometryHex(geom); String wkb = WKBWriter.bytesToHex(new WKBWriter().write(geom)); @@ -518,8 +520,13 @@ } String geoText = geometryWriter.write(geom); - return "GeometryFromText('" + geoText + "', " + srid + ")"; + */ + if (geom instanceof LinearRing) { + //postgis does not handle linear rings, convert to just a line string + geom = geom.getFactory().createLineString(((LinearRing) geom).getCoordinateSequence()); + } + return "ST_GeomFromText('" + geom.toText() + "', " + srid + ")"; } protected String makeInsertSql(SimpleFeature feature, int srid) // throws IOException diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/DummyFeatureConvertEdbGeoJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/DummyFeatureConvertEdbGeoJobContext.java index 1cd0adb..9f19654 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/DummyFeatureConvertEdbGeoJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/DummyFeatureConvertEdbGeoJobContext.java @@ -10,8 +10,8 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.util.DigesterUtils; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -63,9 +63,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -79,6 +76,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/FeatureDgnConvertEdbGeoJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/FeatureDgnConvertEdbGeoJobContext.java index 826253b..20d1aca 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/FeatureDgnConvertEdbGeoJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/FeatureDgnConvertEdbGeoJobContext.java @@ -10,8 +10,14 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.io.dgn7.UserAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -25,13 +31,6 @@ import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.xml.sax.SAXException; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; -import com.ximple.io.dgn7.UserAttributeData; public class FeatureDgnConvertEdbGeoJobContext extends AbstractDgnToEdbGeoJobContext { static final Log logger = LogFactory.getLog(FeatureDgnConvertEdbGeoJobContext.class); @@ -57,9 +56,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -73,6 +69,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/OracleConvertEdbGeoJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/OracleConvertEdbGeoJobContext.java index 9191594..311a91b 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/OracleConvertEdbGeoJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/OracleConvertEdbGeoJobContext.java @@ -15,35 +15,33 @@ import java.util.HashMap; import java.util.Iterator; +import com.edb.util.PSQLException; import com.vividsolutions.jts.geom.Geometry; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.vividsolutions.jts.util.Assert; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.CreateFeatureTypeEventListener; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.filter.FeatureTypeEvent; +import com.ximple.eofms.jobs.OracleElementLogger; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.util.CommonsLoggingLogger; import org.apache.commons.transaction.util.LoggerFacade; import org.geotools.data.DataStore; import org.geotools.data.Transaction; -import org.geotools.data.jdbc.JDBCUtils; import org.geotools.data.edbgeo.PostgisDataStoreFactory; +import org.geotools.data.jdbc.JDBCUtils; import org.geotools.feature.SchemaException; import org.geotools.feature.type.FeatureTypeImpl; import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; -import com.edb.util.PSQLException; import org.quartz.JobExecutionContext; import org.xml.sax.SAXException; - -import com.vividsolutions.jts.util.Assert; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.CreateFeatureTypeEventListener; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.eofms.filter.FeatureTypeEvent; -import com.ximple.eofms.jobs.OracleElementLogger; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; public class OracleConvertEdbGeoJobContext extends AbstractOracleToEdbGeoJobContext implements CreateFeatureTypeEventListener { @@ -86,9 +84,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -102,6 +97,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractDgnToMySQLJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractDgnToMySQLJobContext.java index fbc8c44..1dc6ee4 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractDgnToMySQLJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractDgnToMySQLJobContext.java @@ -6,25 +6,25 @@ import org.geotools.data.DataStore; import org.geotools.data.SchemaNotFoundException; import org.geotools.data.Transaction; -import org.geotools.data.mysql.MySQLDataStore; import com.ximple.eofms.jobs.context.AbstractDgnFileJobContext; +import org.geotools.jdbc.JDBCDataStore; import org.opengis.feature.simple.SimpleFeatureType; public abstract class AbstractDgnToMySQLJobContext extends AbstractDgnFileJobContext { - protected MySQLDataStore targetDataStore; + protected JDBCDataStore targetDataStore; public AbstractDgnToMySQLJobContext(String dataPath, DataStore targetDataStore, boolean profileMode, boolean useTransform) { super(dataPath, profileMode, useTransform); - this.targetDataStore = (MySQLDataStore) targetDataStore; + this.targetDataStore = (JDBCDataStore) targetDataStore; } - public MySQLDataStore getTargetDataStore() { + public JDBCDataStore getTargetDataStore() { return targetDataStore; } - public void setTargetDataStore(MySQLDataStore targetDataStore) { + public void setTargetDataStore(JDBCDataStore targetDataStore) { this.targetDataStore = targetDataStore; } diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractOracleToMySQLJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractOracleToMySQLJobContext.java index e901bd5..d319071 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractOracleToMySQLJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractOracleToMySQLJobContext.java @@ -6,30 +6,30 @@ import org.geotools.data.DataStore; import org.geotools.data.SchemaNotFoundException; import org.geotools.data.Transaction; -import org.geotools.data.mysql.MySQLDataStore; import com.ximple.eofms.jobs.context.AbstractOracleJobContext; +import org.geotools.jdbc.JDBCDataStore; import org.opengis.feature.simple.SimpleFeatureType; public abstract class AbstractOracleToMySQLJobContext extends AbstractOracleJobContext { - protected MySQLDataStore targetDataStore; + protected JDBCDataStore targetDataStore; public AbstractOracleToMySQLJobContext(String dataPath, DataStore targetDataStore, boolean profileMode, boolean useTransform) { super(profileMode, useTransform); - if ((targetDataStore != null) && (targetDataStore instanceof MySQLDataStore)) { - this.targetDataStore = (MySQLDataStore) targetDataStore; + if ((targetDataStore != null) && (targetDataStore instanceof JDBCDataStore)) { + this.targetDataStore = (JDBCDataStore) targetDataStore; } else { getLogger().info("targetDataStore has wrong."); } setDataPath(dataPath); } - public MySQLDataStore getTargetDataStore() { + public JDBCDataStore getTargetDataStore() { return targetDataStore; } - public void setTargetDataStore(MySQLDataStore targetDataStore) { + public void setTargetDataStore(JDBCDataStore targetDataStore) { this.targetDataStore = targetDataStore; } diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/DummyFeatureConvertMySQlJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/DummyFeatureConvertMySQlJobContext.java index 750b695..ba88010 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/DummyFeatureConvertMySQlJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/DummyFeatureConvertMySQlJobContext.java @@ -10,8 +10,18 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.filter.TypeCompIdDispatchableFilter; +import com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter; +import com.ximple.eofms.filter.TypeIdDispatchableFilter; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.io.dgn7.UserAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -25,19 +35,6 @@ import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.xml.sax.SAXException; - -import com.vividsolutions.jts.geom.GeometryFactory; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.eofms.filter.TypeCompIdDispatchableFilter; -import com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter; -import com.ximple.eofms.filter.TypeIdDispatchableFilter; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; -import com.ximple.io.dgn7.UserAttributeData; public class DummyFeatureConvertMySQlJobContext extends AbstractDgnToMySQLJobContext { static final Log logger = LogFactory.getLog(DummyFeatureConvertMySQlJobContext.class); @@ -65,9 +62,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -81,6 +75,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/FeatureDgnConvertMySQLJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/FeatureDgnConvertMySQLJobContext.java index 72465b9..426840b 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/FeatureDgnConvertMySQLJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/FeatureDgnConvertMySQLJobContext.java @@ -10,8 +10,14 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.io.dgn7.UserAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -25,15 +31,6 @@ import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.xml.sax.SAXException; - -import com.vividsolutions.jts.geom.GeometryFactory; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; -import com.ximple.io.dgn7.UserAttributeData; public class FeatureDgnConvertMySQLJobContext extends AbstractDgnToMySQLJobContext { static final Log logger = LogFactory.getLog(FeatureDgnConvertMySQLJobContext.class); @@ -58,9 +55,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -74,6 +68,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/OracleConvertMySQLJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/OracleConvertMySQLJobContext.java index 7815432..8bb5c69 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/OracleConvertMySQLJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/OracleConvertMySQLJobContext.java @@ -11,8 +11,8 @@ import java.util.HashMap; import java.util.Iterator; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.util.DigesterUtils; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -78,9 +78,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -94,6 +91,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); @@ -112,7 +110,7 @@ public void putFeatureCollection(Element element) { assert elementDispatcher != null; - // �P�_�O�_�ũM��� + SimpleFeature feature = elementDispatcher.execute(element, isTransformed()); if (feature == null) { boolean isEmptySize = false; diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractDgnToOraSDOJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractDgnToOraSDOJobContext.java index 2647b46..cc0761d 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractDgnToOraSDOJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractDgnToOraSDOJobContext.java @@ -6,25 +6,25 @@ import org.geotools.data.DataStore; import org.geotools.data.SchemaNotFoundException; import org.geotools.data.Transaction; -import org.geotools.data.oracle.OracleDataStore; import com.ximple.eofms.jobs.context.AbstractDgnFileJobContext; +import org.geotools.jdbc.JDBCDataStore; import org.opengis.feature.simple.SimpleFeatureType; public abstract class AbstractDgnToOraSDOJobContext extends AbstractDgnFileJobContext { - protected OracleDataStore targetDataStore; + protected JDBCDataStore targetDataStore; public AbstractDgnToOraSDOJobContext(String dataPath, DataStore targetDataStore, boolean profileMode, boolean useTransform) { super(dataPath, profileMode, useTransform); - this.targetDataStore = (OracleDataStore) targetDataStore; + this.targetDataStore = (JDBCDataStore) targetDataStore; } - public OracleDataStore getTargetDataStore() { + public JDBCDataStore getTargetDataStore() { return targetDataStore; } - public void setTargetDataStore(OracleDataStore targetDataStore) { + public void setTargetDataStore(JDBCDataStore targetDataStore) { this.targetDataStore = targetDataStore; } diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractOracleToOraSDOJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractOracleToOraSDOJobContext.java index dec4d5d..9535bba 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractOracleToOraSDOJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractOracleToOraSDOJobContext.java @@ -6,31 +6,31 @@ import org.geotools.data.DataStore; import org.geotools.data.SchemaNotFoundException; import org.geotools.data.Transaction; -import org.geotools.data.oracle.OracleDataStore; import com.ximple.eofms.jobs.context.AbstractOracleJobContext; +import org.geotools.jdbc.JDBCDataStore; import org.opengis.feature.simple.SimpleFeatureType; public abstract class AbstractOracleToOraSDOJobContext extends AbstractOracleJobContext { protected boolean profileMode = false; - protected OracleDataStore targetDataStore; + protected JDBCDataStore targetDataStore; public AbstractOracleToOraSDOJobContext(String dataPath, DataStore targetDataStore, boolean profileMode, boolean useTransform) { super(profileMode, useTransform); - if ((targetDataStore != null) && (targetDataStore instanceof OracleDataStore)) { - this.targetDataStore = (OracleDataStore) targetDataStore; + if ((targetDataStore != null) && (targetDataStore instanceof JDBCDataStore)) { + this.targetDataStore = (JDBCDataStore) targetDataStore; } else { getLogger().info("targetDataStore has wrong."); } setDataPath(dataPath); } - public OracleDataStore getTargetDataStore() { + public JDBCDataStore getTargetDataStore() { return targetDataStore; } - public void setTargetDataStore(OracleDataStore targetDataStore) { + public void setTargetDataStore(JDBCDataStore targetDataStore) { this.targetDataStore = targetDataStore; } diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/DummyFeatureConvertOraSDOJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/DummyFeatureConvertOraSDOJobContext.java index 1ba19b3..9b1bf26 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/DummyFeatureConvertOraSDOJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/DummyFeatureConvertOraSDOJobContext.java @@ -10,8 +10,18 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.filter.TypeCompIdDispatchableFilter; +import com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter; +import com.ximple.eofms.filter.TypeIdDispatchableFilter; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.io.dgn7.UserAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -22,23 +32,9 @@ import org.geotools.data.Transaction; import org.geotools.feature.IllegalAttributeException; import org.geotools.feature.SchemaException; -import org.geotools.geometry.jts.JTSFactoryFinder; import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.xml.sax.SAXException; - -import com.vividsolutions.jts.geom.GeometryFactory; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.eofms.filter.TypeCompIdDispatchableFilter; -import com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter; -import com.ximple.eofms.filter.TypeIdDispatchableFilter; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; -import com.ximple.io.dgn7.UserAttributeData; public class DummyFeatureConvertOraSDOJobContext extends AbstractDgnToOraSDOJobContext { static final Log logger = LogFactory.getLog(DummyFeatureConvertOraSDOJobContext.class); @@ -66,9 +62,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -82,6 +75,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/FeatureDgnConvertOraSDOJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/FeatureDgnConvertOraSDOJobContext.java index 3de2377..1c3ebd6 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/FeatureDgnConvertOraSDOJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/FeatureDgnConvertOraSDOJobContext.java @@ -10,8 +10,14 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.io.dgn7.UserAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -25,15 +31,6 @@ import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.xml.sax.SAXException; - -import com.vividsolutions.jts.geom.GeometryFactory; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; -import com.ximple.io.dgn7.UserAttributeData; public class FeatureDgnConvertOraSDOJobContext extends AbstractDgnToOraSDOJobContext { static final Log logger = LogFactory.getLog(FeatureDgnConvertOraSDOJobContext.class); @@ -58,9 +55,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -74,6 +68,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/OracleConvertOraSDOJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/OracleConvertOraSDOJobContext.java index c112330..c7b85f1 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/OracleConvertOraSDOJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/OracleConvertOraSDOJobContext.java @@ -11,8 +11,15 @@ import java.util.HashMap; import java.util.Iterator; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.vividsolutions.jts.util.Assert; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.jobs.OracleElementLogger; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -21,27 +28,18 @@ import org.geotools.data.DataStore; import org.geotools.data.FeatureWriter; import org.geotools.data.Transaction; -import org.geotools.data.oracle.OracleDataStoreFactory; +import org.geotools.data.oracle.OracleNGDataStoreFactory; import org.geotools.feature.IllegalAttributeException; import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.quartz.JobExecutionContext; import org.xml.sax.SAXException; -import com.vividsolutions.jts.util.Assert; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.eofms.jobs.OracleElementLogger; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; - public class OracleConvertOraSDOJobContext extends AbstractOracleToOraSDOJobContext { static Log logger = LogFactory.getLog(OracleConvertOraSDOJobContext.class); static final LoggerFacade sLogger = new CommonsLoggingLogger(logger); - static OracleDataStoreFactory dataStoreFactory = new OracleDataStoreFactory(); + static OracleNGDataStoreFactory dataStoreFactory = new OracleNGDataStoreFactory(); private OracleElementLogger elmLogger = null; @@ -78,9 +76,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -94,6 +89,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); @@ -112,7 +108,7 @@ public void putFeatureCollection(Element element) { assert elementDispatcher != null; - // �P�_�O�_�ũM��� + SimpleFeature feature = elementDispatcher.execute(element, isTransformed()); if (feature == null) { boolean isEmptySize = false; @@ -224,11 +220,6 @@ executionContext = context; } - /** - * �����]�Ƽg�J�� - * - * @throws IOException IO�o�Ϳ�~ - */ public void closeFeatureWriter() throws IOException { for (FeatureWriter featureWriter : this.featuresWriterContext.values()) { diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java index c0e2e5a..9bbc42a 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java @@ -10,14 +10,16 @@ import java.sql.Statement; import java.util.*; +import com.vividsolutions.jts.geom.LinearRing; import com.ximple.eofms.util.FeatureTypeBuilderUtil; import org.geotools.data.DataSourceException; import org.geotools.data.DataStore; import org.geotools.data.SchemaNotFoundException; import org.geotools.data.Transaction; import org.geotools.data.jdbc.JDBCUtils; -import org.geotools.data.postgis.PostgisDataStore; +import org.geotools.data.postgis.PostGISDialect; import org.geotools.filter.LengthFunction; +import org.geotools.jdbc.JDBCDataStore; import org.geotools.referencing.NamedIdentifier; import org.geotools.referencing.crs.DefaultGeographicCRS; import org.opengis.feature.simple.SimpleFeature; @@ -25,7 +27,6 @@ import org.opengis.feature.type.AttributeDescriptor; import org.opengis.feature.type.AttributeType; import org.opengis.feature.type.GeometryDescriptor; -import org.opengis.feature.type.GeometryType; import org.opengis.feature.type.PropertyType; import org.opengis.filter.BinaryComparisonOperator; import org.opengis.filter.Filter; @@ -118,10 +119,10 @@ /** * Well Known Text writer (from JTS). */ - protected static WKTWriter geometryWriter = new WKTWriter(); + // protected static WKTWriter geometryWriter = new WKTWriter(); protected static JtsBinaryWriter binaryWriter = new JtsBinaryWriter(); - private PostgisDataStore targetDataStore; + private JDBCDataStore targetDataStore; // protected Connection connection; protected String targetSchema = "public"; @@ -130,8 +131,8 @@ public AbstractDgnToPostGISJobContext(String dataPath, DataStore targetDataStore, String targetSchema, boolean profileMode, boolean useTransform) { super(dataPath, profileMode, useTransform); - if ((targetDataStore != null) && (targetDataStore instanceof PostgisDataStore)) { - this.targetDataStore = (PostgisDataStore) targetDataStore; + if ((targetDataStore != null) && (targetDataStore instanceof JDBCDataStore)) { + this.targetDataStore = (JDBCDataStore) targetDataStore; } else { getLogger().info("targetDataStore has wrong."); } @@ -139,11 +140,11 @@ setTargetSchema(targetSchema); } - public PostgisDataStore getTargetDataStore() { + public JDBCDataStore getTargetDataStore() { return targetDataStore; } - public void setTargetDataStore(PostgisDataStore targetDataStore) { + public void setTargetDataStore(JDBCDataStore targetDataStore) { this.targetDataStore = targetDataStore; } @@ -153,12 +154,12 @@ public void setTargetSchema(String schemaName) { targetSchema = schemaName; + targetDataStore.setDatabaseSchema(targetSchema); } public Connection getConnection() { try { return targetDataStore.getConnection(Transaction.AUTO_COMMIT); - } catch (IOException e) { getLogger().warn(e.getMessage(), e); @@ -237,7 +238,7 @@ private String addGeometryColumn(String dbSchema, String tableName, GeometryDescriptor geometryDescriptor, int srid) { StringBuilder sql; - String typeName = getGeometrySQLTypeName(((AttributeType) geometryDescriptor.getType()).getBinding()); + String typeName = getGeometrySQLTypeName((geometryDescriptor.getType()).getBinding()); if (typeName == null) { getLogger().warn("Error: " + geometryDescriptor.getLocalName() + " unknown type!!!"); throw new RuntimeException("Error: " + geometryDescriptor.getLocalName() + " unknown type!!!"); @@ -484,6 +485,7 @@ return "null"; } + /* if (targetDataStore.isWKBEnabled()) { //String wkb = WKBEncoder.encodeGeometryHex(geom); String wkb = WKBWriter.bytesToHex(new WKBWriter().write(geom)); @@ -496,8 +498,13 @@ } String geoText = geometryWriter.write(geom); - return "GeometryFromText('" + geoText + "', " + srid + ")"; + */ + if (geom instanceof LinearRing) { + //postgis does not handle linear rings, convert to just a line string + geom = geom.getFactory().createLineString(((LinearRing) geom).getCoordinateSequence()); + } + return "ST_GeomFromText('" + geom.toText() + "', " + srid + ")"; } protected String makeInsertSql(SimpleFeature feature, int srid) // throws IOException diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java index d88fabd..9f78c89 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java @@ -10,12 +10,13 @@ import java.sql.Statement; import java.util.*; +import com.vividsolutions.jts.geom.LinearRing; import com.ximple.eofms.util.FeatureTypeBuilderUtil; import org.geotools.data.DataSourceException; import org.geotools.data.DataStore; import org.geotools.data.SchemaNotFoundException; -import org.geotools.data.postgis.PostgisDataStore; import org.geotools.filter.LengthFunction; +import org.geotools.jdbc.JDBCDataStore; import org.geotools.referencing.NamedIdentifier; import org.geotools.referencing.crs.DefaultGeographicCRS; import org.opengis.feature.simple.SimpleFeature; @@ -115,19 +116,19 @@ /** * Well Known Text writer (from JTS). */ - protected static WKTWriter geometryWriter = new WKTWriter(); + // protected static WKTWriter geometryWriter = new WKTWriter(); protected static JtsBinaryWriter binaryWriter = new JtsBinaryWriter(); protected boolean schemaEnabled = true; - private PostgisDataStore targetDataStore; + private JDBCDataStore targetDataStore; private String targetSchema = "public"; public AbstractOracleToPostGISJobContext(String dataPath, DataStore targetDataStore, String targetSchema, boolean profileMode, boolean useTransform) { super(profileMode, useTransform); - if ((targetDataStore != null) && (targetDataStore instanceof PostgisDataStore)) { - this.targetDataStore = (PostgisDataStore) targetDataStore; + if ((targetDataStore != null) && (targetDataStore instanceof JDBCDataStore)) { + this.targetDataStore = (JDBCDataStore) targetDataStore; } else { getLogger().info("targetDataStore has wrong."); } @@ -135,11 +136,11 @@ setTargetSchema(targetSchema); } - public PostgisDataStore getTargetDataStore() { + public JDBCDataStore getTargetDataStore() { return targetDataStore; } - public void setTargetDataStore(PostgisDataStore targetDataStore) { + public void setTargetDataStore(JDBCDataStore targetDataStore) { this.targetDataStore = targetDataStore; } @@ -149,6 +150,7 @@ public void setTargetSchema(String schemaName) { targetSchema = schemaName; + targetDataStore.setDatabaseSchema(targetSchema); } public Connection getConnection() { @@ -506,6 +508,7 @@ return "null"; } + /* if (targetDataStore.isWKBEnabled()) { //String wkb = WKBEncoder.encodeGeometryHex(geom); String wkb = WKBWriter.bytesToHex(new WKBWriter().write(geom)); @@ -518,8 +521,13 @@ } String geoText = geometryWriter.write(geom); - return "GeometryFromText('" + geoText + "', " + srid + ")"; + */ + if (geom instanceof LinearRing) { + //postgis does not handle linear rings, convert to just a line string + geom = geom.getFactory().createLineString(((LinearRing) geom).getCoordinateSequence()); + } + return "ST_GeomFromText('" + geom.toText() + "', " + srid + ")"; } protected String makeInsertSql(SimpleFeature feature, int srid) // throws IOException diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java index a0fd81e..aa20926 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java @@ -10,8 +10,18 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.filter.TypeCompIdDispatchableFilter; +import com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter; +import com.ximple.eofms.filter.TypeIdDispatchableFilter; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.io.dgn7.UserAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -25,19 +35,6 @@ import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.xml.sax.SAXException; - -import com.vividsolutions.jts.geom.GeometryFactory; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.eofms.filter.TypeCompIdDispatchableFilter; -import com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter; -import com.ximple.eofms.filter.TypeIdDispatchableFilter; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; -import com.ximple.io.dgn7.UserAttributeData; public class DummyFeatureConvertPostGISJobContext extends AbstractDgnToPostGISJobContext { static final Log logger = LogFactory.getLog(DummyFeatureConvertPostGISJobContext.class); @@ -65,9 +62,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -81,6 +75,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java index cabcb83..60dc83d 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java @@ -10,8 +10,14 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.io.dgn7.UserAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -25,15 +31,6 @@ import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.xml.sax.SAXException; - -import com.vividsolutions.jts.geom.GeometryFactory; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; -import com.ximple.io.dgn7.UserAttributeData; public class FeatureDgnConvertPostGISJobContext extends AbstractDgnToPostGISJobContext { static final Log logger = LogFactory.getLog(FeatureDgnConvertPostGISJobContext.class); @@ -59,9 +56,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -75,6 +69,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java index a2f3aae..9c2d2ef 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java @@ -195,6 +195,10 @@ } catch (SQLException e) { JDBCUtils.close(conn, Transaction.AUTO_COMMIT, e); logger.error(e.getMessage(), e); + Exception nextE = e.getNextException(); + if (nextE != null) { + logger.error("getNextException:" + nextE.getMessage(), nextE); + } } finally { if (isProfileMode()) accumulateUpdateTime(); } diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java index bb27d52..605bfea 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java @@ -48,6 +48,7 @@ import com.ximple.io.dgn7.UserAttributeData; public class IndexDgnConvertPostGISJobContext extends AbstractDgnToPostGISJobContext { + static final Log logger = LogFactory.getLog(IndexDgnConvertPostGISJobContext.class); static final LoggerFacade sLogger = new CommonsLoggingLogger(logger); static final GeometryFactory geometryFactory = JTSFactoryFinder.getGeometryFactory(null); @@ -86,7 +87,7 @@ protected void putTextFeatureCollection(TextElement element) throws SchemaException, IllegalAttributeException { SimpleFeature feature = createFeature(element); if (feature == null) { - logger.info("cannot craete feature." + element.toString() + "'" + + logger.info("cannot craete feature. " + element.toString() + "'" + element.getText() + "'"); return; } @@ -99,7 +100,7 @@ feature = createFeature2(element); if (feature == null) { - logger.info("cannot craete feature2." + element.toString() + "'" + + logger.info("cannot craete feature2. " + element.toString() + "'" + element.getText() + "'"); return; } @@ -134,12 +135,12 @@ if (feature == null) { Polygon polygon = (Polygon) element.toGeometry(geometryFactory); if (polygon == null) { - logger.info("cannot craete feature." + element.toString() + "'" + + logger.info("cannot craete feature. " + element.toString() + "'" + "linear is null" + "'"); } else { Coordinate pt = polygon.getEnvelopeInternal().centre(); String id = TPCLIDConverter.CoordinateToTpclId(pt); - logger.info("cannot craete feature." + element.toString() + "'" + + logger.info("cannot craete feature. " + element.toString() + "'" + id + "'- from pt=" + pt); } return; @@ -286,7 +287,7 @@ logger.error(e.getMessage(), e); Exception nextE = e.getNextException(); if (nextE != null) { - logger.error(nextE.getMessage(), nextE); + logger.error("getNextException:" + nextE.getMessage(), nextE); } } finally { if (isProfileMode()) this.accumulateUpdateTime(); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java index b41674a..8fdced2 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java @@ -16,8 +16,17 @@ import java.util.Iterator; import com.vividsolutions.jts.geom.Geometry; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.vividsolutions.jts.util.Assert; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.CreateFeatureTypeEventListener; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.filter.FeatureTypeEvent; +import com.ximple.eofms.jobs.OracleElementLogger; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.util.CommonsLoggingLogger; @@ -25,7 +34,6 @@ import org.geotools.data.DataStore; import org.geotools.data.Transaction; import org.geotools.data.jdbc.JDBCUtils; -import org.geotools.data.postgis.PostgisDataStoreFactory; import org.geotools.feature.SchemaException; import org.geotools.feature.type.FeatureTypeImpl; import org.opengis.feature.simple.SimpleFeature; @@ -34,23 +42,12 @@ import org.quartz.JobExecutionContext; import org.xml.sax.SAXException; -import com.vividsolutions.jts.util.Assert; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.CreateFeatureTypeEventListener; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.eofms.filter.FeatureTypeEvent; -import com.ximple.eofms.jobs.OracleElementLogger; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; - public class OracleConvertPostGISJobContext extends AbstractOracleToPostGISJobContext implements CreateFeatureTypeEventListener { static Log logger = LogFactory.getLog(OracleConvertPostGISJobContext.class); static final LoggerFacade sLogger = new CommonsLoggingLogger(logger); - static PostgisDataStoreFactory dataStoreFactory = new PostgisDataStoreFactory(); + // static PostgisNGDataStoreFactory dataStoreFactory = new PostgisNGDataStoreFactory(); private OracleElementLogger elmLogger = null; @@ -86,9 +83,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -102,6 +96,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/DummyFeatureConvertShpJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/DummyFeatureConvertShpJobContext.java index d34314e..0e86fbb 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/DummyFeatureConvertShpJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/DummyFeatureConvertShpJobContext.java @@ -11,8 +11,18 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.filter.TypeCompIdDispatchableFilter; +import com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter; +import com.ximple.eofms.filter.TypeIdDispatchableFilter; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.io.dgn7.UserAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -28,19 +38,6 @@ import org.opengis.feature.simple.SimpleFeature; import org.opengis.feature.simple.SimpleFeatureType; import org.xml.sax.SAXException; - -import com.vividsolutions.jts.geom.GeometryFactory; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.eofms.filter.TypeCompIdDispatchableFilter; -import com.ximple.eofms.filter.TypeCompLevelIdDispatchableFilter; -import com.ximple.eofms.filter.TypeIdDispatchableFilter; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; -import com.ximple.io.dgn7.UserAttributeData; public class DummyFeatureConvertShpJobContext extends AbstractDgnToShapefileJobContext { static final Log logger = LogFactory.getLog(DummyFeatureConvertShpJobContext.class); @@ -68,9 +65,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -84,6 +78,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/FeatureDgnConvertShpJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/FeatureDgnConvertShpJobContext.java index 0208b29..5825139 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/FeatureDgnConvertShpJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/FeatureDgnConvertShpJobContext.java @@ -11,8 +11,14 @@ import java.util.Iterator; import java.util.List; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; +import com.ximple.eofms.filter.ElementDispatcher; +import com.ximple.eofms.util.DigesterUtils; +import com.ximple.io.dgn7.ComplexElement; +import com.ximple.io.dgn7.Element; +import com.ximple.io.dgn7.FrammeAttributeData; +import com.ximple.io.dgn7.UserAttributeData; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -29,18 +35,11 @@ import org.opengis.feature.simple.SimpleFeatureType; import org.xml.sax.SAXException; -import com.vividsolutions.jts.geom.GeometryFactory; - -import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; -import com.ximple.eofms.filter.ElementDispatcher; -import com.ximple.io.dgn7.ComplexElement; -import com.ximple.io.dgn7.Element; -import com.ximple.io.dgn7.FrammeAttributeData; -import com.ximple.io.dgn7.UserAttributeData; - public class FeatureDgnConvertShpJobContext extends AbstractDgnToShapefileJobContext { + static final Log logger = LogFactory.getLog(FeatureDgnConvertShpJobContext.class); static final LoggerFacade sLogger = new CommonsLoggingLogger(logger); + static final String SHPOUTPATH = "shpout"; private String dataOut = null; @@ -64,9 +63,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -80,6 +76,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/OracleConvertShapefilesJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/OracleConvertShapefilesJobContext.java index 72a1796..ea60c5a 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/OracleConvertShapefilesJobContext.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/OracleConvertShapefilesJobContext.java @@ -13,8 +13,8 @@ import java.util.Iterator; import java.util.Properties; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.util.DigesterUtils; +import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.transaction.memory.PessimisticMapWrapper; @@ -89,9 +89,6 @@ private ElementDispatcher createElementDispatcher() { try { - URL rulesURL = ElementDispatcher.class.getResource("ElementDispatcherRules.xml"); - assert rulesURL != null; - Digester digester = DigesterLoader.createDigester(rulesURL); URL filterURL = null; if (_filterConfig != null) { File config = new File(_filterConfig); @@ -105,6 +102,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; + Digester digester = DigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/DigesterUtils.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/DigesterUtils.java new file mode 100644 index 0000000..65cc217 --- /dev/null +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/DigesterUtils.java @@ -0,0 +1,25 @@ +package com.ximple.eofms.util; + +import com.ximple.eofms.filter.ElementDispatcher; +import org.apache.commons.digester3.Digester; +import org.apache.commons.digester3.binder.DigesterLoader; +import org.apache.commons.digester3.xmlrules.FromXmlRulesModule; + +public class DigesterUtils { + protected static Digester digester = null; + protected static DigesterLoader loader = DigesterLoader.newLoader( new FromXmlRulesModule() { + @Override + protected void loadRules() { + loadXMLRules(ElementDispatcher.class.getResource("ElementDispatcherRules.xml")); + } + + } ); + + static { + digester = loader.newDigester(); + } + + public static Digester getElementDigester() { + return digester; + } +} diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java index 9e31c73..5ab01fc 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java @@ -1,32 +1,36 @@ package com.ximple.eofms.util; -import com.vividsolutions.jts.geom.*; +import java.util.ArrayList; +import java.util.TreeMap; + +import com.vividsolutions.jts.geom.LineString; +import com.vividsolutions.jts.geom.MultiLineString; +import com.vividsolutions.jts.geom.MultiPoint; +import com.vividsolutions.jts.geom.Point; +import com.vividsolutions.jts.geom.Polygon; +import com.ximple.eofms.filter.ElementDispatcher; +import org.apache.commons.digester3.Digester; +import org.apache.commons.digester3.binder.DigesterLoader; +import org.apache.commons.digester3.xmlrules.FromXmlRulesModule; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import org.geotools.feature.AttributeTypeBuilder; import org.geotools.feature.simple.SimpleFeatureTypeBuilder; -import org.geotools.geometry.jts.JTSFactoryFinder; import org.geotools.referencing.CRS; -import org.geotools.referencing.ReferencingFactoryFinder; -import org.geotools.referencing.factory.epsg.ThreadedH2EpsgFactory; import org.opengis.feature.type.AttributeDescriptor; import org.opengis.feature.type.AttributeType; import org.opengis.feature.type.GeometryType; import org.opengis.referencing.FactoryException; -import org.opengis.referencing.crs.CRSFactory; import org.opengis.referencing.crs.CoordinateReferenceSystem; -import org.opengis.referencing.cs.CSFactory; -import org.opengis.referencing.cs.CoordinateSystem; import org.opengis.referencing.operation.MathTransform; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.TreeMap; - public final class FeatureTypeBuilderUtil { + + protected static final String DEFAULTNAMESPACE = "http://www.ximple.com.tw/tpc/"; + private static final Logger LOGGER = LogManager.getLogger(FeatureTypeBuilderUtil.class); private static boolean notAllowNull = false; - protected static final String DEFAULTNAMESPACE = "http://www.ximple.com.tw/tpc/"; + private static boolean allowNull = true; public static boolean isNotAllowNull() { return notAllowNull; @@ -476,6 +480,9 @@ attrBuilder = new AttributeTypeBuilder(); attrDescs.add(attrBuilder.buildDescriptor( "symbol", createAttributeType(attrBuilder, "StringType", String.class, notAllowNull, 20))); + attrBuilder = new AttributeTypeBuilder(); + attrDescs.add(attrBuilder.buildDescriptor( + "origin", createGeometryType(attrBuilder, "PointType", Point.class, notAllowNull, lookupCRS(defaultSRID)))); typeBuilder.addAll(attrDescs); return typeBuilder; diff --git a/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml b/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml index 6719421..635cd5c 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml +++ b/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding="big5"?> -<!DOCTYPE digester-rules PUBLIC "-//Jakarta Apache //DTD digester-rules XML V1.0//EN" "digester-rules.dtd"> +<!DOCTYPE digester-rules PUBLIC "-//Apache Commons //DTD digester-rules XML V1.0//EN" "http://commons.apache.org/digester/dtds/digester-rules-3.0.dtd"> <digester-rules> <pattern value="ElementDispatcherRules"> <object-create-rule classname="com.ximple.eofms.filter.ElementDispatcher"/> diff --git a/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/FeatureClassificationRules.xml b/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/FeatureClassificationRules.xml index e925ce6..ea1e91b 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/FeatureClassificationRules.xml +++ b/xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/FeatureClassificationRules.xml @@ -1,5 +1,5 @@ <?xml version='1.0' encoding="big5"?> -<!DOCTYPE digester-rules PUBLIC "-//Jakarta Apache //DTD digester-rules XML V1.0//EN" "digester-rules.dtd"> +<!DOCTYPE digester-rules PUBLIC "-//Apache Commons //DTD digester-rules XML V1.0//EN" "http://commons.apache.org/digester/dtds/digester-rules-3.0.dtd"> <digester-rules> <pattern value="FeatureClassificationRules"> <object-create-rule classname="com.ximple.eofms.collector.FeatureClassification"/> diff --git a/xdgnjobs/ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java b/xdgnjobs/ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java index c25783a..6d351fb 100644 --- a/xdgnjobs/ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java +++ b/xdgnjobs/ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java @@ -3,8 +3,8 @@ import java.io.File; import java.io.IOException; -import org.apache.commons.digester.Digester; -import org.apache.commons.digester.xmlrules.DigesterLoader; +import com.ximple.eofms.util.DigesterUtils; +import org.apache.commons.digester3.Digester; import org.geotools.TestData; import org.testng.Assert; import org.testng.annotations.Test; @@ -17,7 +17,7 @@ @Test public void testLoadRules() throws IOException { File rules = TestData.file(this, TestRulesName); - Digester digester = DigesterLoader.createDigester(rules.toURI().toURL()); + Digester digester = DigesterUtils.getElementDigester(); // File config = TestData.file(this, TestConfigName); // ElementDispatcher ed = (ElementDispatcher) digester.parse(config); Assert.assertNotNull(digester); @@ -26,7 +26,7 @@ @Test public void testLoadConfig() throws IOException, SAXException { File rules = TestData.file(this, TestRulesName); - Digester digester = DigesterLoader.createDigester(rules.toURI().toURL()); + Digester digester = DigesterUtils.getElementDigester(); File config = TestData.file(this, TestConfigName); ElementDispatcher ed = (ElementDispatcher) digester.parse(config); Assert.assertNotNull(ed); -- Gitblit v0.0.0-SNAPSHOT