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