?? ?
2012-11-23 c35a6b151259c980bb1ceec57abe65a79c6f6ac8
EOFM-207	and update geotools to 8.3.x
49 files modified
1 files added
1130 ■■■■ changed files
.gitattributes 1 ●●●● patch | view | raw | blame | history
xdgnjobs/pom.xml 109 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-build/maven/jar-collector/pom.xml 2 ●●● patch | view | raw | blame | history
xdgnjobs/ximple-build/maven/pom.xml 2 ●●● patch | view | raw | blame | history
xdgnjobs/ximple-build/pom.xml 4 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-dgnio/pom.xml 4 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-elmparser/pom.xml 4 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-jobcarrier/pom.xml 31 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-jobcarrier/quartz_jobs.xml 10 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml 5 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/pom.xml 29 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateSymbolStrategy.java 125 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java 35 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/DummyFeatureConvertJobContext.java 33 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2EdbGeoJob.java 52 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2MySQLJob.java 16 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2OraSDOJob.java 34 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java 40 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/AbstractDgnFileJobContext.java 5 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/AbstractOracleJobContext.java 10 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/AbstractDgnToEdbGeoJobContext.java 22 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/AbstractOracleToEdbGeoJobContext.java 21 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/DummyFeatureConvertEdbGeoJobContext.java 8 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/FeatureDgnConvertEdbGeoJobContext.java 21 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/OracleConvertEdbGeoJobContext.java 32 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractDgnToMySQLJobContext.java 10 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractOracleToMySQLJobContext.java 12 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/DummyFeatureConvertMySQlJobContext.java 31 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/FeatureDgnConvertMySQLJobContext.java 23 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/OracleConvertMySQLJobContext.java 10 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractDgnToOraSDOJobContext.java 10 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractOracleToOraSDOJobContext.java 12 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/DummyFeatureConvertOraSDOJobContext.java 32 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/FeatureDgnConvertOraSDOJobContext.java 23 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/OracleConvertOraSDOJobContext.java 35 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java 29 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java 24 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java 31 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java 23 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java 4 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java 3 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java 31 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/DummyFeatureConvertShpJobContext.java 31 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/FeatureDgnConvertShpJobContext.java 25 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/OracleConvertShapefilesJobContext.java 8 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/DigesterUtils.java 25 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java 31 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/ElementDispatcherRules.xml 2 ●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/resources/com/ximple/eofms/filter/FeatureClassificationRules.xml 2 ●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java 8 ●●●● patch | view | raw | blame | history
.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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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;
    }
}
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);
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);
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);
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);
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);
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);
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 ------------------------------
    /**
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 " +
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
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
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);
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);
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);
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;
    }
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;
    }
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);
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);
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;
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;
    }
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;
    }
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);
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);
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()) {
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
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
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);
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);
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();
        }
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);
@@ -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();
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);
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);
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);
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);
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/DigesterUtils.java
New file
@@ -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;
    }
}
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;
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"/>
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"/>
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);