From 068dadebf60870668d86ad9bc4ba85d2751582e3 Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Mon, 05 May 2008 15:06:01 +0800
Subject: [PATCH] update for EOFM-72

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java |    2 
 xdgnjobs/ximple-jobcarrier/src/main/resources/log4j.properties                                |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java   |    6 +-
 xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml                |   14 +++++++
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2ShpJob.java   |   44 +++++++++++++++-------
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java  |   17 ++++++++
 6 files changed, 66 insertions(+), 19 deletions(-)

diff --git a/xdgnjobs/ximple-jobcarrier/src/main/resources/log4j.properties b/xdgnjobs/ximple-jobcarrier/src/main/resources/log4j.properties
index b844eb1..e53077e 100644
--- a/xdgnjobs/ximple-jobcarrier/src/main/resources/log4j.properties
+++ b/xdgnjobs/ximple-jobcarrier/src/main/resources/log4j.properties
@@ -12,4 +12,4 @@
 
 # Print messages of level INFO or above for examples
 log4j.logger.org.cavaness.quartzbook=INFO
-log4j.logger.com.ximple.eofms=DEBUG
\ No newline at end of file
+log4j.logger.com.ximple.eofms=INFO
\ No newline at end of file
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java
index 5416a5f..ae14638 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/filter/CreateLineTextStrategy.java
@@ -23,6 +23,7 @@
 import com.ximple.io.dgn7.LineStringElement;
 import com.ximple.io.dgn7.TextElement;
 import com.ximple.io.dgn7.UserAttributeData;
+import com.ximple.io.dgn7.ComplexChainElement;
 
 public class CreateLineTextStrategy  implements CreateFeatureTypeStrategy
 {
@@ -118,6 +119,22 @@
                     txtElement.getLineStyle()
             });
             return feature;
+        } else if (element instanceof ComplexChainElement)
+        {
+            ComplexChainElement complexChain = (ComplexChainElement) element;
+            convertDecordator.setConverter(complexChain);
+            Feature feature = featureType.create(new Object[]{
+                    convertDecordator.toGeometry(geometryFactory),
+                    (int) fLinkage.getFsc(),
+                    (long) fLinkage.getUfid(),
+                    (int) fLinkage.getComponentID(),
+                    0,
+                    complexChain.getLevelIndex(),
+                    colorTable.getColor(complexChain.getColorIndex()).getRGB(),
+                    complexChain.getWeight(),
+                    complexChain.getLineStyle()
+            });
+            return feature;
         } else if (element instanceof LineElement)
         {
             LineElement lineElement = (LineElement) element;
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java
index 3e0aaea..9df1ba5 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/AbstractOracleDatabaseJob.java
@@ -62,7 +62,7 @@
         StringTokenizer st = new StringTokenizer(strSchema, ",");
         while (st.hasMoreTokens())
         {
-            String aSchema = st.nextToken();
+            String aSchema = st.nextToken().trim();
             _orgSchema.add(aSchema);
         }
         _testMode = dataMap.getBooleanFromString(TESTMODE);
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2ShpJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2ShpJob.java
index eb57abf..7cf0442 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2ShpJob.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2ShpJob.java
@@ -82,17 +82,23 @@
         logger.info(jobName + " fired at " + new Date());
         extractJobConfiguration(jobDetail);
 
-        OracleConvertJobContext jobContext = (OracleConvertJobContext) prepareJobContext(_filterPath);
-        jobContext.setConnectionInfo(_oracleHost, _oraclePort, _oracleInstance);
-        jobContext.setLogin(_username, _password);
-        jobContext.setShapeData(_dataPath);
-        jobContext.setExecutionContext(context);
-
         try
         {
-            copyConnectivity(jobContext);
+            boolean bFirst = true;
             for (String orgSchema : _orgSchema)
             {
+                OracleConvertJobContext jobContext = (OracleConvertJobContext) prepareJobContext(_filterPath);
+                jobContext.setConnectionInfo(_oracleHost, _oraclePort, _oracleInstance);
+                jobContext.setLogin(_username, _password);
+                jobContext.setShapeData(_dataPath);
+                jobContext.setExecutionContext(context);
+
+                if (bFirst)
+                    copyConnectivity(jobContext);
+                else
+                    bFirst = false;
+
+                logger.info("----- start schema:" + orgSchema + " -----");
                 exetcuteConvert(jobContext, orgSchema, _dataPath);
 
                 //close all open filewriter instance
@@ -101,12 +107,12 @@
         } catch (SQLException e)
         {
             logger.warn(e.getMessage(), e);
-            throw new JobExecutionException("Database error.", e);
+            throw new JobExecutionException("Database error. " + e.getMessage(), e);
         } catch (IOException ex)
         {
-            ex.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+            logger.warn(ex.getMessage(), ex);
+            throw new JobExecutionException("IO error. " + ex.getMessage(), ex);
         }
-
     }
 
     //Connectivity�ƻs�@�Ӫ����A�b�d�߹q�y��V�ɥΨӤ��OMS��Ʈw���q���s����(Connectivity)
@@ -185,10 +191,13 @@
         PrintfFormat spf = new PrintfFormat(fetchStmtFmt);
         String fetchStmt = spf.sprintf(new Object[]{schemaSrc, tableSrc});
         Statement stmt = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
+        ResultSet rs = null;
 
         stmt.setFetchSize(FETCHSIZE);
 
-        ResultSet rs = stmt.executeQuery(fetchStmt);
+        try
+        {
+            rs = stmt.executeQuery(fetchStmt);
 
         while (rs.next())
         {
@@ -209,9 +218,16 @@
             else
                 pair.first = name;
         }
-
-        rs.close();
-        stmt.close();
+        } catch (SQLException e)
+        {
+            logger.error(e.toString(), e);
+            logger.error("stmt=" + fetchStmt);
+            throw e;
+        } finally
+        {
+            if (rs != null) rs.close();
+            stmt.close();
+        }
 
         return orderedMap;
     }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java
index 4cc09f5..66e41ce 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertJobContext.java
@@ -91,7 +91,7 @@
             {
                 // config = new File("conf/DefaultConvertShpFilter.xml");
                 filterURL = this.getClass().getResource("/conf/DefaultConvertShpFilter.xml");
-               //filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml");
+               // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml");
             }
             assert filterURL != null;
             return (ElementDispatcher) digester.parse(filterURL);
@@ -122,7 +122,7 @@
         {
             FrammeAttributeData linkage =
                     AbstractFLinkageDispatchableFilter.getFeatureLinkage(element);
-            logger.debug("Unknown Element:" + element.getElementType().toString() +
+            logger.warn("Unknown Element:" + element.getElementType().toString() +
                     ":type=" + element.getType() + ":lv=" + element.getLevelIndex() + ":id=" +
                     (linkage == null ? "NULL" : (linkage.getFsc() + "|" + linkage.getComponentID())));
 
@@ -182,7 +182,7 @@
                 logger.debug("Begin Save shapefile:" + sfile.toURI());
 
                 FeatureWriter writer = null;
-                if(featuresWriterContext.containsKey( featureType.getTypeName()))
+                if(featuresWriterContext.containsKey(featureType.getTypeName()))
                 {
                     writer = (FeatureWriter) featuresWriterContext.get(featureType.getTypeName()) ;
                 }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml b/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml
index 104f4d3..ac99d89 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml
+++ b/xdgnjobs/ximple-spatialjob/src/main/resources/conf/DefaultConvertShpFilter.xml
@@ -6,6 +6,7 @@
     <cid>0</cid>
     <description>�D�����u</description>
     <elementCriterion>
+      <elementType>4</elementType>
       <elementType>12</elementType>
     </elementCriterion>
     <LineCreateStrategy/>
@@ -34,6 +35,7 @@
     <description>�ܹq�Ҥ�����O</description>
     <elementCriterion>
       <elementType>7</elementType>
+      <elementType>17</elementType>
     </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
@@ -154,6 +156,7 @@
     <description>�����s��</description>
     <elementCriterion>
       <elementType>4</elementType>
+      <elementType>12</elementType>
       <elementType>17</elementType>
     </elementCriterion>
     <LineTextCreateStrategy/>
@@ -164,6 +167,7 @@
     <description>�����s�����O</description>
     <elementCriterion>
       <elementType>7</elementType>
+      <elementType>17</elementType>
     </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
@@ -182,6 +186,7 @@
     <description>�����Τᤤ����O</description>
     <elementCriterion>
       <elementType>7</elementType>
+      <elementType>17</elementType>
     </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
@@ -322,6 +327,15 @@
     </elementCriterion>
     <TextCreateStrategy/>
   </TypeCompFilter>
+  <TypeCompFilter name="FSC-118.C-0">
+    <tid>118</tid>
+    <cid>0</cid>
+    <description>�D������</description>
+    <elementCriterion>
+      <elementType>17</elementType>
+    </elementCriterion>
+    <TextCreateStrategy/>
+  </TypeCompFilter>
   <TypeCompFilter name="FSC-102.C-0">
     <tid>102</tid>
     <cid>0</cid>

--
Gitblit v0.0.0-SNAPSHOT