From 0e078326714206abbecc185d53821e3ed5cb2236 Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Tue, 10 Jun 2008 12:44:13 +0800
Subject: [PATCH] update for EOFM-115

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractDgnToMySQLJobContext.java           |   19 ++
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/OracleConvertMySQLJobContext.java           |   14 -
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java       |   13 -
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java     |   35 ++++
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/GeneralDgnConvertOraSDOJobContext.java     |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/GeneralDgnConvertMySQLJobContext.java       |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java    |   19 ++
 xdgnjobs/pom.xml                                                                                                         |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/DummyFeatureConvertMySQlJobContext.java     |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/OracleConvertOraSDOJobContext.java         |   13 -
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractOracleToOraSDOJobContext.java      |   20 ++
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java   |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2MySQLJob.java                            |    8 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/IndexDgnConvertShpJobContext.java       |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java   |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/DummyFeatureConvertOraSDOJobContext.java   |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/FeatureDgnConvertOraSDOJobContext.java     |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/IndexDgnConvertMySQLJobContext.java         |    4 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java |    2 
 xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml                                                            |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/IndexDgnConvertOraSDOJobContext.java       |    4 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractDgnToOraSDOJobContext.java         |   19 ++
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java                               |  204 ++++++++++++------------
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractOracleToMySQLJobContext.java        |   18 ++
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/FeatureDgnConvertMySQLJobContext.java       |    2 
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java       |   19 ++
 26 files changed, 269 insertions(+), 164 deletions(-)

diff --git a/xdgnjobs/pom.xml b/xdgnjobs/pom.xml
index c7817f9..cb4aa8e 100644
--- a/xdgnjobs/pom.xml
+++ b/xdgnjobs/pom.xml
@@ -283,7 +283,7 @@
       <dependency>
         <groupId>org.postgis</groupId>
         <artifactId>postgis-driver</artifactId>
-        <version>1.3.2</version>
+        <version>1.3.3</version>
       </dependency>
         
       <dependency>
diff --git a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml
index 105329e..79528a2 100644
--- a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml
+++ b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml
@@ -80,7 +80,7 @@
         </entry>
         <entry>
           <key>CONVERTFILE</key>
-          <value>false</value>
+          <value>true</value>
         </entry>
         <entry>
           <key>CONVERTELEMIN</key>
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2MySQLJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2MySQLJob.java
index ade54b4..2ed8406 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2MySQLJob.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2MySQLJob.java
@@ -201,8 +201,7 @@
             throw new JobExecutionException("Cannot connect source postgreSQL database.");
         }
 
-        Calendar cal = Calendar.getInstance();
-        Date startTime = cal.getTime();
+        long t1 = System.currentTimeMillis();
         try
         {
             logger.info("-- step:clearOutputDatabase --");
@@ -255,11 +254,10 @@
             }
 
             disconnect();
-            Date endTime = cal.getTime();
-            Date time = new Date(endTime.getTime() - startTime.getTime());
+            long t2 = System.currentTimeMillis();
             // public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";
             // SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
-            logger.warn("use time = " + time);
+            logger.warn("use time = " + ((t2 - t1) / 60000.0) + " min");
         } catch (SQLException e)
         {
             logger.warn(e.getMessage(), e);
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractDgnToMySQLJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractDgnToMySQLJobContext.java
index 805ec8a..34b94ea 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractDgnToMySQLJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractDgnToMySQLJobContext.java
@@ -5,7 +5,9 @@
 
 import org.geotools.data.DataStore;
 import org.geotools.data.Transaction;
+import org.geotools.data.SchemaNotFoundException;
 import org.geotools.data.mysql.MySQLDataStore;
+import org.geotools.feature.FeatureType;
 
 import com.ximple.eofms.jobs.context.AbstractDgnFileJobContext;
 
@@ -43,5 +45,22 @@
         }
         return null;
     }
+
+
+    protected boolean isExistFeature(FeatureType featureType)
+    {
+        try
+        {
+            FeatureType existFeatureType = targetDataStore.getSchema(featureType.getTypeName());
+            return existFeatureType != null && existFeatureType.equals(featureType);
+        } catch (SchemaNotFoundException e)
+        {
+            return false;
+        } catch (IOException e)
+        {
+            getLogger().info(e.getMessage(), e);
+            return false;
+        }
+    }
 }
 
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractOracleToMySQLJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractOracleToMySQLJobContext.java
index 6db750d..8fb18fc 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractOracleToMySQLJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/AbstractOracleToMySQLJobContext.java
@@ -5,7 +5,9 @@
 
 import org.geotools.data.DataStore;
 import org.geotools.data.Transaction;
+import org.geotools.data.SchemaNotFoundException;
 import org.geotools.data.mysql.MySQLDataStore;
+import org.geotools.feature.FeatureType;
 
 import com.ximple.eofms.jobs.context.AbstractOracleJobContext;
 
@@ -49,4 +51,20 @@
         }
         return null;
     }
+
+    protected boolean isExistFeature(FeatureType featureType)
+    {
+        try
+        {
+            FeatureType existFeatureType = targetDataStore.getSchema(featureType.getTypeName());
+            return existFeatureType != null && existFeatureType.equals(featureType);
+        } catch (SchemaNotFoundException e)
+        {
+            return false;
+        } catch (IOException e)
+        {
+            getLogger().info(e.getMessage(), e);
+            return false;
+        }
+    }
 }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/DummyFeatureConvertMySQlJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/DummyFeatureConvertMySQlJobContext.java
index e60f5d8..d67239c 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/DummyFeatureConvertMySQlJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/DummyFeatureConvertMySQlJobContext.java
@@ -207,7 +207,7 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
-                    if (targetDataStore.getSchema(featureType.getTypeName()) == null)
+                    if (!isExistFeature(featureType))
                     {
                         targetDataStore.createSchema(featureType);
                         writer = targetDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT);
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/FeatureDgnConvertMySQLJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/FeatureDgnConvertMySQLJobContext.java
index f22761d..3f5a0f6 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/FeatureDgnConvertMySQLJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/FeatureDgnConvertMySQLJobContext.java
@@ -185,7 +185,7 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
-                    if (targetDataStore.getSchema(featureType.getTypeName()) == null)
+                    if (!isExistFeature(featureType))
                     {
                         targetDataStore.createSchema(featureType);
                         writer = targetDataStore.getFeatureWriter(featureType.getTypeName(),
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/GeneralDgnConvertMySQLJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/GeneralDgnConvertMySQLJobContext.java
index 506777d..7e3e342 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/GeneralDgnConvertMySQLJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/GeneralDgnConvertMySQLJobContext.java
@@ -155,7 +155,7 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
-                    if (targetDataStore.getSchema(featureType.getTypeName()) != null)
+                    if (!isExistFeature(featureType))
                     {
                         targetDataStore.createSchema(featureType);
                         writer = targetDataStore.getFeatureWriter(featureType.getTypeName(),
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/IndexDgnConvertMySQLJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/IndexDgnConvertMySQLJobContext.java
index 089a6ed..c825407 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/IndexDgnConvertMySQLJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/IndexDgnConvertMySQLJobContext.java
@@ -146,7 +146,7 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
-                    if (targetDataStore.getSchema(featureType.getTypeName()) == null)
+                    if (!isExistFeature(featureType))
                     {
                         targetDataStore.createSchema(featureType);
                         writer = targetDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT);
@@ -202,7 +202,7 @@
     {
         if (typeBuilderPnt == null)
         {
-            typeBuilderRect = FeatureTypeBuilderUtil.createNormalIndexTextFeatureTypeBuilder(featureName);
+            typeBuilderPnt = FeatureTypeBuilderUtil.createNormalIndexTextFeatureTypeBuilder(featureName);
         }
         return typeBuilderPnt.getFeatureType();
     }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/OracleConvertMySQLJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/OracleConvertMySQLJobContext.java
index 2bbc898..d0eb000 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/OracleConvertMySQLJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/mysql/OracleConvertMySQLJobContext.java
@@ -21,6 +21,7 @@
 import org.geotools.data.FeatureWriter;
 import org.geotools.data.DataStore;
 import org.geotools.data.Transaction;
+import org.geotools.data.SchemaNotFoundException;
 import org.geotools.data.mysql.MySQLDataStoreFactory;
 import org.geotools.feature.Feature;
 import org.geotools.feature.FeatureType;
@@ -250,19 +251,6 @@
             logger.error(e.getMessage(), e);
         }
 
-    }
-
-    private boolean isExistFeature(FeatureType featureType)
-    {
-        try
-        {
-            FeatureType existFeatureType = targetDataStore.getSchema(featureType.getTypeName());
-            return existFeatureType != null && existFeatureType.equals(featureType);
-        } catch (IOException e)
-        {
-            logger.info(e.getMessage(), e);
-            return false;
-        }
     }
 
     public JobExecutionContext getExecutionContext()
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractDgnToOraSDOJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractDgnToOraSDOJobContext.java
index 23fce14..2596fc8 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractDgnToOraSDOJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractDgnToOraSDOJobContext.java
@@ -5,7 +5,9 @@
 
 import org.geotools.data.DataStore;
 import org.geotools.data.Transaction;
+import org.geotools.data.SchemaNotFoundException;
 import org.geotools.data.oracle.OracleDataStore;
+import org.geotools.feature.FeatureType;
 
 import com.ximple.eofms.jobs.context.AbstractDgnFileJobContext;
 
@@ -43,4 +45,21 @@
         }
         return null;
     }
+
+
+    protected boolean isExistFeature(FeatureType featureType)
+    {
+        try
+        {
+            FeatureType existFeatureType = targetDataStore.getSchema(featureType.getTypeName());
+            return existFeatureType != null && existFeatureType.equals(featureType);
+        } catch (SchemaNotFoundException e)
+        {
+            return false;
+        } catch (IOException e)
+        {
+            getLogger().info(e.getMessage(), e);
+            return false;
+        }
+    }
 }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractOracleToOraSDOJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractOracleToOraSDOJobContext.java
index 78dfc8b..d535cb6 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractOracleToOraSDOJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/AbstractOracleToOraSDOJobContext.java
@@ -5,9 +5,12 @@
 
 import org.geotools.data.DataStore;
 import org.geotools.data.Transaction;
+import org.geotools.data.SchemaNotFoundException;
 import org.geotools.data.oracle.OracleDataStore;
+import org.geotools.feature.FeatureType;
 
 import com.ximple.eofms.jobs.context.AbstractOracleJobContext;
+import com.ximple.eofms.jobs.context.mysql.OracleConvertMySQLJobContext;
 
 public abstract class AbstractOracleToOraSDOJobContext extends AbstractOracleJobContext
 {
@@ -49,4 +52,21 @@
         }
         return null;
     }
+
+
+    protected boolean isExistFeature(FeatureType featureType)
+    {
+        try
+        {
+            FeatureType existFeatureType = targetDataStore.getSchema(featureType.getTypeName());
+            return existFeatureType != null && existFeatureType.equals(featureType);
+        } catch (SchemaNotFoundException e)
+        {
+            return false;
+        } catch (IOException e)
+        {
+            getLogger().info(e.getMessage(), e);
+            return false;
+        }
+    }
 }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/DummyFeatureConvertOraSDOJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/DummyFeatureConvertOraSDOJobContext.java
index 70ba052..b892399 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/DummyFeatureConvertOraSDOJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/DummyFeatureConvertOraSDOJobContext.java
@@ -206,7 +206,7 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
-                    if (targetDataStore.getSchema(featureType.getTypeName()) == null)
+                    if (!isExistFeature(featureType))
                     {
                         targetDataStore.createSchema(featureType);
                         writer = targetDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT);
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/FeatureDgnConvertOraSDOJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/FeatureDgnConvertOraSDOJobContext.java
index aae85fd..19c149a 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/FeatureDgnConvertOraSDOJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/FeatureDgnConvertOraSDOJobContext.java
@@ -185,7 +185,7 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
-                    if (targetDataStore.getSchema(featureType.getTypeName()) == null)
+                    if (!isExistFeature(featureType))
                     {
                         targetDataStore.createSchema(featureType);
                         writer = targetDataStore.getFeatureWriter(featureType.getTypeName(),
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/GeneralDgnConvertOraSDOJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/GeneralDgnConvertOraSDOJobContext.java
index a2f58c0..fcdcece 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/GeneralDgnConvertOraSDOJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/GeneralDgnConvertOraSDOJobContext.java
@@ -155,7 +155,7 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
-                    if (targetDataStore.getSchema(featureType.getTypeName()) != null)
+                    if (!isExistFeature(featureType))
                     {
                         targetDataStore.createSchema(featureType);
                         writer = targetDataStore.getFeatureWriter(featureType.getTypeName(),
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/IndexDgnConvertOraSDOJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/IndexDgnConvertOraSDOJobContext.java
index 5e72094..5db125b 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/IndexDgnConvertOraSDOJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/IndexDgnConvertOraSDOJobContext.java
@@ -146,7 +146,7 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
-                    if (targetDataStore.getSchema(featureType.getTypeName()) == null)
+                    if (!isExistFeature(featureType))
                     {
                         targetDataStore.createSchema(featureType);
                         writer = targetDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT);
@@ -202,7 +202,7 @@
     {
         if (typeBuilderPnt == null)
         {
-            typeBuilderRect = FeatureTypeBuilderUtil.createNormalIndexTextFeatureTypeBuilder(featureName);
+            typeBuilderPnt = FeatureTypeBuilderUtil.createNormalIndexTextFeatureTypeBuilder(featureName);
         }
         return typeBuilderPnt.getFeatureType();
     }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/OracleConvertOraSDOJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/OracleConvertOraSDOJobContext.java
index e34ef0b..fa2a07e 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/OracleConvertOraSDOJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/orasdo/OracleConvertOraSDOJobContext.java
@@ -252,19 +252,6 @@
 
     }
 
-    private boolean isExistFeature(FeatureType featureType)
-    {
-        try
-        {
-            FeatureType existFeatureType = targetDataStore.getSchema(featureType.getTypeName());
-            return existFeatureType != null && existFeatureType.equals(featureType);
-        } catch (IOException e)
-        {
-            logger.info(e.getMessage(), e);
-            return false;
-        }
-    }
-
     public JobExecutionContext getExecutionContext()
     {
         return executionContext;
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java
index 9878e8e..68aa3cc 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractDgnToPostGISJobContext.java
@@ -5,7 +5,9 @@
 
 import org.geotools.data.DataStore;
 import org.geotools.data.Transaction;
+import org.geotools.data.SchemaNotFoundException;
 import org.geotools.data.postgis.PostgisDataStore;
+import org.geotools.feature.FeatureType;
 
 import com.ximple.eofms.jobs.context.AbstractDgnFileJobContext;
 
@@ -43,4 +45,21 @@
         }
         return null;
     }
+
+
+    protected boolean isExistFeature(FeatureType featureType)
+    {
+        try
+        {
+            FeatureType existFeatureType = targetDataStore.getSchema(featureType.getTypeName());
+            return existFeatureType != null && existFeatureType.equals(featureType);
+        } catch (SchemaNotFoundException e)
+        {
+            return false;
+        } catch (IOException e)
+        {
+            getLogger().info(e.getMessage(), e);
+            return false;
+        }
+    }
 }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java
index 68c5c3e..5cf53db 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java
@@ -5,7 +5,9 @@
 
 import org.geotools.data.DataStore;
 import org.geotools.data.Transaction;
+import org.geotools.data.SchemaNotFoundException;
 import org.geotools.data.postgis.PostgisDataStore;
+import org.geotools.feature.FeatureType;
 
 import com.ximple.eofms.jobs.context.AbstractOracleJobContext;
 
@@ -49,4 +51,21 @@
         }
         return null;
     }
+
+
+    protected boolean isExistFeature(FeatureType featureType)
+    {
+        try
+        {
+            FeatureType existFeatureType = targetDataStore.getSchema(featureType.getTypeName());
+            return existFeatureType != null && existFeatureType.equals(featureType);
+        } catch (SchemaNotFoundException e)
+        {
+            return false;
+        } catch (IOException e)
+        {
+            getLogger().info(e.getMessage(), e);
+            return false;
+        }
+    }
 }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java
index 12332b6..fc9d981 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/DummyFeatureConvertPostGISJobContext.java
@@ -206,7 +206,7 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
-                    if (targetDataStore.getSchema(featureType.getTypeName()) == null)
+                    if (!isExistFeature(featureType))
                     {
                         targetDataStore.createSchema(featureType);
                         writer = targetDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT);
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java
index b6426a8..e7c4d07 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/FeatureDgnConvertPostGISJobContext.java
@@ -187,7 +187,7 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
-                    if (targetDataStore.getSchema(featureType.getTypeName()) == null)
+                    if (!isExistFeature(featureType))
                     {
                         targetDataStore.createSchema(featureType);
                         writer = targetDataStore.getFeatureWriter(featureType.getTypeName(),
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java
index f7b8580..44bad78 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/GeneralDgnConvertPostGISJobContext.java
@@ -155,7 +155,7 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
-                    if (targetDataStore.getSchema(featureType.getTypeName()) != null)
+                    if (!isExistFeature(featureType))
                     {
                         targetDataStore.createSchema(featureType);
                         writer = targetDataStore.getFeatureWriter(featureType.getTypeName(),
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java
index 9a1da31..7515934 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/IndexDgnConvertPostGISJobContext.java
@@ -17,6 +17,7 @@
 import org.geotools.data.DataStore;
 import org.geotools.data.FeatureWriter;
 import org.geotools.data.Transaction;
+import org.geotools.data.DefaultTransaction;
 import org.geotools.feature.Feature;
 import org.geotools.feature.FeatureType;
 import org.geotools.feature.FeatureTypeBuilder;
@@ -102,8 +103,12 @@
         arrayList.add(feature);
     }
 
+    private Transaction transaction;
+
     public void startTransaction()
     {
+        if (transaction == null)
+            transaction = new DefaultTransaction(getClass().getName());
     }
 
     public void commitTransaction()
@@ -121,6 +126,18 @@
         {
             updateDataStore();
         }
+
+        try
+        {
+            transaction.commit();
+            transaction.close();
+        } catch (IOException e)
+        {
+            logger.warn(e.getMessage(), e);
+        } finally
+        {
+            transaction = null;
+        }
     }
 
     public void rollbackTransaction()
@@ -129,6 +146,18 @@
         if (!featuresContext.isEmpty())
         {
             updateDataStore();
+        }
+        
+        try
+        {
+            transaction.rollback();
+            transaction.close();
+        } catch (IOException e)
+        {
+            logger.warn(e.getMessage(), e);
+        } finally
+        {
+            transaction = null;
         }
     }
 
@@ -149,7 +178,7 @@
                     writer = featuresWriterContext.get(featureType.getTypeName());
                 } else
                 {
-                    if (targetDataStore.getSchema(featureType.getTypeName()) == null)
+                    if (!isExistFeature(featureType))
                     {
                         targetDataStore.createSchema(featureType);
                         writer = targetDataStore.getFeatureWriter(featureType.getTypeName(), Transaction.AUTO_COMMIT);
@@ -166,6 +195,8 @@
                     ((SimpleFeature) writer.next()).setAttributes(feature1.getAttributes(null));
                 }
                 //writer.close();
+                writer.write();
+
                 logger.debug("End Save PostGIS:" + featureType.getTypeName());
             }
             featuresContext.clear();
@@ -205,7 +236,7 @@
     {
         if (typeBuilderPnt == null)
         {
-            typeBuilderRect = FeatureTypeBuilderUtil.createNormalIndexTextFeatureTypeBuilder(featureName);
+            typeBuilderPnt = FeatureTypeBuilderUtil.createNormalIndexTextFeatureTypeBuilder(featureName);
         }
         return typeBuilderPnt.getFeatureType();
     }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java
index c4e47cf..86bf599 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java
@@ -251,19 +251,6 @@
 
     }
 
-    private boolean isExistFeature(FeatureType featureType)
-    {
-        try
-        {
-            FeatureType existFeatureType = targetDataStore.getSchema(featureType.getTypeName());
-            return existFeatureType != null && existFeatureType.equals(featureType);
-        } catch (IOException e)
-        {
-            logger.info(e.getMessage(), e);
-            return false;
-        }
-    }
-
     public JobExecutionContext getExecutionContext()
     {
         return executionContext;
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/IndexDgnConvertShpJobContext.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/IndexDgnConvertShpJobContext.java
index e90fb0f..c1806cf 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/IndexDgnConvertShpJobContext.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/shapefile/IndexDgnConvertShpJobContext.java
@@ -226,7 +226,7 @@
     {
         if (typeBuilderPnt == null)
         {
-            typeBuilderRect = FeatureTypeBuilderUtil.createNormalIndexTextFeatureTypeBuilder(featureName);
+            typeBuilderPnt = FeatureTypeBuilderUtil.createNormalIndexTextFeatureTypeBuilder(featureName);
         }
         return typeBuilderPnt.getFeatureType();
     }
diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java
index 7b1b7ad..5936abc 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/FeatureTypeBuilderUtil.java
@@ -10,24 +10,24 @@
     public static FeatureTypeBuilder createNormalPointFeatureTypeBuilder(String featureName)
     {
         FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("FONT", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("JUST", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("HEIGHT", Float.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("WIDTH", Float.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("ANGLE", Float.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("CONTEXT", String.class, false, 254));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("font", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("context", String.class, true, 254));
         return typeBuilder;
     }
 
     public static FeatureTypeBuilder createNormalLineFeatureTypeBuilder(String featureName)
     {
         FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
         return typeBuilder;
     }
 
@@ -36,10 +36,10 @@
         return createNormalLineFeatureTypeBuilder(featureName);
         /*
         FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
         return typeBuilder;
         */
     }
@@ -49,10 +49,10 @@
         return createNormalLineFeatureTypeBuilder(featureName);
         /*
         FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
         return typeBuilder;
         */
     }
@@ -60,15 +60,15 @@
     public static FeatureTypeBuilder createNormalIndexFeatureTypeBuilder(String featureName)
     {
         FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("X1", Double.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("Y1", Double.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("X2", Double.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("Y2", Double.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("TPCID", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("x1", Double.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("y1", Double.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("x2", Double.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("y2", Double.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tpclid", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
         return typeBuilder;
     }
 
@@ -76,55 +76,55 @@
     {
         FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
         typeBuilder = FeatureTypeBuilder.newInstance(featureName);
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("JUST", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("HEIGHT", Float.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("WIDTH", Float.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("ANGLE", Float.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("TPCID", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tpclid", String.class, false, 12));
         return typeBuilder;
     }
 
     public static FeatureTypeBuilder createPointFeatureTypeBuilder(String featureName)
     {
         FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("CID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("LID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("LEVEL", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("JUST", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("HEIGHT", Float.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("WIDTH", Float.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("ANGLE", Float.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("CONTEXT", String.class, false, 254));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("context", String.class, true, 254));
         return typeBuilder;
     }
 
     public static FeatureTypeBuilder createSymbolFeatureTypeBuilder(String featureName)
     {
         FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("CID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("LID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("LEVEL", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("JUST", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("HEIGHT", Float.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("WIDTH", Float.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("ANGLE", Float.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMBOL", String.class, false, 20));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("just", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("height", Float.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("width", Float.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("angle", Float.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symbol", String.class, false, 20));
         return typeBuilder;
     }
 
@@ -133,15 +133,15 @@
         return createLineStringFeatureTypeBuilder(featureName);
         /*
         FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("CID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("LID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("LEVEL", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
         return typeBuilder;
         */
     }
@@ -149,15 +149,15 @@
     public static FeatureTypeBuilder createLineStringFeatureTypeBuilder(String featureName)
     {
         FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("CID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("LID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("LEVEL", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
         return typeBuilder;
     }
 
@@ -166,15 +166,15 @@
         return createLineStringFeatureTypeBuilder(featureName);
         /*
         FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("CID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("LID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("LEVEL", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
         return typeBuilder;
         */
     }
@@ -184,15 +184,15 @@
         return createLineStringFeatureTypeBuilder(featureName);
         /*
         FeatureTypeBuilder typeBuilder = FeatureTypeBuilder.newInstance(featureName);
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("GEOM", Geometry.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("TID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("OID", Long.class));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("CID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("LID", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("LEVEL", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMCOLOR", String.class, false, 12));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMWEIGHT", Short.class, false));
-        typeBuilder.addType(AttributeTypeFactory.newAttributeType("SYMSTYLE", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("geom", Geometry.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("tid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("oid", Long.class));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("cid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("lid", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("level", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symcolor", String.class, false, 12));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symweight", Short.class, false));
+        typeBuilder.addType(AttributeTypeFactory.newAttributeType("symstyle", Short.class, false));
         return typeBuilder;
         */
     }

--
Gitblit v0.0.0-SNAPSHOT