xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml
@@ -6,8 +6,10 @@ version="1.8"> <pre-processing-commands> <delete-jobs-in-group>*</delete-jobs-in-group> <!-- clear all jobs in scheduler --> <delete-triggers-in-group>*</delete-triggers-in-group> <!-- clear all triggers in scheduler --> <delete-jobs-in-group>*</delete-jobs-in-group> <!-- clear all jobs in scheduler --> <delete-triggers-in-group>*</delete-triggers-in-group> <!-- clear all triggers in scheduler --> </pre-processing-commands> <processing-directives> @@ -19,9 +21,10 @@ <schedule> <job> <name>ConvertDgn2PostGisIntoPostgre</name> <name>ConvertDMMS2PostGisWithGeoserver</name> <group>DEFAULT</group> <description>A job that convert dgn to postgis</description> <!--job-class>com.ximple.eofms.jobs.OracleConvertDgn2PostGISJob</job-class--> <job-class>com.ximple.eofms.jobs.GeoserverIntegrateConfigJob</job-class> <!--volatility>false</volatility--> <durability>false</durability> @@ -127,7 +130,7 @@ </entry> <entry> <key>GEOSERVER_URL</key> <value>http://www.ximple.com.tw/geoserver</value> <value>http://10.10.1.6:8080/geoserver</value> </entry> <entry> <key>GEOSERVER_USER</key> @@ -148,9 +151,9 @@ <simple> <name>convertTrigger</name> <group>DEFAULT</group> <job-name>ConvertDgn2PostGisIntoPostgre</job-name> <job-name>ConvertDMMS2PostGisWithGeoserver</job-name> <job-group>DEFAULT</job-group> <start-time>2011-03-01T18:00:00</start-time> <start-time>2013-03-01T18:00:00</start-time> <!-- repeat indefinitely every 10 seconds --> <repeat-count>0</repeat-count> <repeat-interval>500</repeat-interval> xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/DummyFeatureConvertJobContext.java
@@ -18,7 +18,7 @@ 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.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -78,7 +78,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/GeoserverIntegrateConfigJob.java
@@ -1,22 +1,28 @@ package com.ximple.eofms.jobs; import com.vividsolutions.jts.geom.*; import com.ximple.eofms.geoserver.config.XGeosDataConfig; import com.ximple.eofms.geoserver.config.XGeosDataConfigMapping; import com.ximple.eofms.jobs.context.AbstractOracleJobContext; import com.ximple.eofms.util.PrintfFormat; import com.ximple.eofms.util.XGeosConfigDigesterUtils; import it.geosolutions.geoserver.rest.GeoServerRESTManager; import it.geosolutions.geoserver.rest.GeoServerRESTPublisher; import it.geosolutions.geoserver.rest.GeoServerRESTReader; import it.geosolutions.geoserver.rest.decoder.RESTDataStore; import it.geosolutions.geoserver.rest.decoder.RESTStyleList; import it.geosolutions.geoserver.rest.encoder.GSLayerEncoder; import it.geosolutions.geoserver.rest.encoder.GSResourceEncoder; import it.geosolutions.geoserver.rest.encoder.datastore.GSPostGISDatastoreEncoder; import it.geosolutions.geoserver.rest.encoder.feature.GSFeatureTypeEncoder; import it.geosolutions.geoserver.rest.manager.GeoServerRESTStoreManager; import org.apache.commons.collections.MultiMap; 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.apache.commons.logging.LogFactory; import org.geotools.data.Transaction; import org.opengis.feature.type.FeatureType; import org.opengis.feature.type.GeometryDescriptor; import org.quartz.JobDataMap; import org.quartz.JobDetail; import org.quartz.JobExecutionContext; @@ -32,6 +38,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class GeoserverIntegrateConfigJob extends OracleConvertDgn2PostGISJob { final static Log logger = LogFactory.getLog(GeoserverIntegrateConfigJob.class); @@ -39,9 +46,8 @@ private static final String SKIPCONFIGJOB = "SKIPCONFIGJOB"; private static final String MASTERMODE = "MASTERMODE"; private static final String EPSG = "EPSG:"; private static final String DEFAULTNAMESPACE = "xtpc"; private static final String DEFAULT_NAMESPACE = "xtpc"; private static final String XGEOSDATACONFIG_PATH = "xgeosdataconfig.xml"; private static final String XGEOSRULES_NAME = "DefaultXGeosDataConfigRules.xml"; private static final String GEOSERVER_BASEURL = "GEOSERVER_URL"; private static final String GEOSERVER_USER = "GEOSERVER_USER"; private static final String GEOSERVER_PASS = "GEOSERVER_PASS"; @@ -58,6 +64,7 @@ // private static final String GRANT_VIEWSQL = "GRANT SELECT ON TABLE \"%s\" TO public"; private static final int SRSID_TWD97_ZONE119 = 3825; private static final int SRSID_TWD97_ZONE121 = 3826; public static final String DEFAULT_STORENAME = "pgDMMS"; private static XGeosDataConfigMapping xgeosDataConfigMapping = null; @@ -102,38 +109,7 @@ protected XGeosDataConfigMapping getConfigMapping() { if (xgeosDataConfigMapping == null) { final URL rulesURL = XGeosDataConfigMapping.class.getResource(XGEOSRULES_NAME); assert rulesURL != null; DigesterLoader loader = DigesterLoader.newLoader( new FromXmlRulesModule() { @Override protected void loadRules() { loadXMLRules(rulesURL); } }); Digester digester = loader.newDigester(); /* File rootDir = GeoserverDataDirectory.getGeoserverDataDirectory(); File xfmsConfigDir; try { xfmsConfigDir = GeoserverDataDirectory.findConfigDir(rootDir, "xdgnjobs"); } catch (ConfigurationException cfe) { logger.warn("no xmark dir found, creating new one"); //if for some bizarre reason we don't fine the dir, make a new one. xfmsConfigDir = new File(rootDir, "xdgnjobs"); } x File xfmsConfigFile = new File(xfmsConfigDir, XGEOSDATACONFIG_PATH); try { xgeosDataConfigMapping = (XGeosDataConfigMapping) digester.parse(xfmsConfigFile); } catch (IOException e) { logger.warn(e.getMessage(), e); } catch (SAXException e) { logger.warn(e.getMessage(), e); } */ Digester digester = XGeosConfigDigesterUtils.getXGeosConfigDigester(); final URL configDataURL = XGeosDataConfigMapping.class.getResource(XGEOSDATACONFIG_PATH); try { xgeosDataConfigMapping = (XGeosDataConfigMapping) digester.parse(configDataURL); @@ -153,10 +129,6 @@ super.execute(jobExecutionContext); createTargetDataStore(); if (getSourceDataStore() == null) { logger.warn("Cannot connect source oracle database."); throw new JobExecutionException("Cannot connect source oracle database."); } if (getTargetDataStore() == null) { logger.warn("Cannot connect source postgreSQL database."); @@ -369,7 +341,7 @@ sql = pf.sprintf(viewName); stmt.execute(sql); stmt.close(); connection.commit(); // connection.commit(); } private void createOrReplaceExtraView(Connection connection, String schemaName, String tableName, String viewName, @@ -388,7 +360,7 @@ sql = pf.sprintf(viewName); stmt.execute(sql); stmt.close(); connection.commit(); // connection.commit(); } private Timestamp retrieveCurrentSchemaTimestamp(Connection connection, short status) throws SQLException { @@ -484,6 +456,74 @@ } } private HashMap<String, String> buildDefaultStylesMapping(XGeosDataConfigMapping configMapping) { HashMap<String, String> result = new HashMap<String, String>(); for (Object key : configMapping.getMapping().keySet()) { List xgeosConfigs = (List) configMapping.getMapping().get(key); for (Object value : xgeosConfigs) { XGeosDataConfig xgeosConfig = (XGeosDataConfig) value; StringBuilder sbView = new StringBuilder("fsc-"); sbView.append(xgeosConfig.getFSC()).append("-c"); sbView.append(xgeosConfig.getCOMP()).append("-l"); sbView.append(xgeosConfig.getLEV()).append("-w"); sbView.append(xgeosConfig.getWEIGHT()); String viewName = sbView.toString(); if (!result.containsKey(viewName)) { result.put(viewName, xgeosConfig.getFTYPE()); } else { if (xgeosConfig.getFTYPE() != null) { if (!result.get(viewName).equals(xgeosConfig.getFTYPE())) logger.info("Style Define Diff:" + result.get(viewName) + " - " + xgeosConfig.getFTYPE()); } else { logger.warn("xgeosConfig getFTYPE() is null - " + xgeosConfig.toString()); } } } } return result; } private void resetFeatureTypesMapping(JobExecutionContext executionContext, GeoServerRESTReader reader) { try { Connection connection = targetDataStore.getConnection(Transaction.AUTO_COMMIT); if (!checkCurrentRepositoryStatus(connection, DataReposVersionManager.VSSTATUS_LINKVIEW)) { return; } RESTStyleList styleList = reader.getStyles(); // Map styles = dataConfig.getStyles(); XGeosDataConfigMapping mapping = getConfigMapping(); HashMap<String, String> defaultStyles = buildDefaultStylesMapping(mapping); try { /* String[] dsFTypeNames = dataStore.getTypeNames(); for (String featureTypeName : dsFTypeNames) { String ftKey = dsConf.getId() + DataConfig.SEPARATOR + featureTypeName; FeatureTypeConfig ftConfig = dataConfig.getFeatureTypeConfig(ftKey); if (ftConfig == null) { if (!createFeatureTypeConfig(dataConfig, dsConf, dataStore, styles, featureTypeName, defaultStyles)) { LOGGER.info("Create Feature Failed. [" + featureTypeName + "]"); } } else { updateFeatureTypeConfig(ftConfig, dataStore, styles, defaultStyles); } } */ } finally { // if (dataStore != null) dataStore.dispose(); } } catch (IOException e) { logger.warn(e.getMessage(), e); } } private void resetGeoServerConfig(JobExecutionContext jobExecutionContext) { try { URL geoServerURL = new URL(_geoServerURL); @@ -492,30 +532,32 @@ List<String> workSpaces = reader.getWorkspaceNames(); boolean found = false; for (String name : workSpaces) { if (name.equalsIgnoreCase(DEFAULTNAMESPACE)) { if (name.equalsIgnoreCase(DEFAULT_NAMESPACE)) { found = true; break; } } if (!found) { GeoServerRESTPublisher publisher = manager.getPublisher(); publisher.createWorkspace(DEFAULTNAMESPACE, new URI("http://tpc.ximple.com.tw/geodmms")); if (!found) { publisher.createWorkspace(DEFAULT_NAMESPACE, new URI("http://tpc.ximple.com.tw/geodmms")); } RESTDataStore dataStore = reader.getDatastore(DEFAULTNAMESPACE, "pgDMMS"); RESTDataStore dataStore = reader.getDatastore(DEFAULT_NAMESPACE, DEFAULT_STORENAME); if (dataStore == null) { GeoServerRESTStoreManager storeManager = manager.getStoreManager(); GSPostGISDatastoreEncoder store = new GSPostGISDatastoreEncoder("pgDMMS"); GSPostGISDatastoreEncoder store = new GSPostGISDatastoreEncoder(DEFAULT_STORENAME); store.setHost(_pgHost); // store.setPort(_pgPort); store.setPort(Integer.parseInt(_pgPort)); store.setDatabase(_pgDatabase); store.setSchema("public"); store.setSchema(_pgSchema); store.setUser(_pgUsername); store.setPassword(_pgPassword); storeManager.create(DEFAULTNAMESPACE, store); storeManager.create(DEFAULT_NAMESPACE, store); } resetFeatureTypesMapping(jobExecutionContext, reader); XGeosDataConfigMapping configMapping = getConfigMapping(); MultiMap configMultiMap = configMapping.getMapping(); @@ -523,6 +565,12 @@ List values = (List) configMultiMap.get(key); for (Object value : values) { XGeosDataConfig xgeosConfig = (XGeosDataConfig) value; /* publishPostGISLayer(publisher, DEFAULT_NAMESPACE, DEFAULT_STORENAME, xgeosConfig.getPG(), "EPSG:" + SRSID_TWD97_ZONE121, ""); */ } } @@ -533,4 +581,116 @@ logger.warn(e.getMessage(), e); } } public boolean publishPostGISLayer(GeoServerRESTPublisher publisher, String workspace, String storename, String layername, String srs, String defaultStyle) { final GSFeatureTypeEncoder fte = new GSFeatureTypeEncoder(); fte.setProjectionPolicy(GSResourceEncoder.ProjectionPolicy.REPROJECT_TO_DECLARED); fte.addKeyword("KEYWORD"); fte.setTitle(layername); fte.setName(layername); fte.setSRS(srs); // srs=null?"EPSG:4326":srs); final GSLayerEncoder layerEncoder = new GSLayerEncoder(); layerEncoder.setDefaultStyle(defaultStyle); return publisher.publishDBLayer(workspace, storename, fte, layerEncoder); } protected String getDefaultFeatureTypeStyleId(Map styles, HashMap<String, String> defaultStyles, FeatureType featureType) { String ftName = featureType.getName().getLocalPart(); boolean isNormalFeature = false; boolean isLandBased = false; boolean isIndex = false; boolean isSmallIndex = false; boolean isSymbol = false; GeometryDescriptor geomAttrType = featureType.getGeometryDescriptor(); Class geomType = geomAttrType.getType().getBinding(); if (defaultStyles.containsKey(ftName)) { String defaultStyleName = defaultStyles.get(ftName); String styleName = retrieveDefaultStyle(styles, defaultStyleName, "unknown"); if (!styleName.equals("unknown")) { return styleName; } } if (ftName.indexOf("fsc") != -1) { isNormalFeature = true; } if (ftName.indexOf("indexshape") != -1) { isIndex = true; } if (ftName.indexOf("indexshapes") != -1) { isSmallIndex = true; } if (ftName.indexOf("lnd") != -1) { isLandBased = true; } /* if (featureType.find("symbol") != -1) { isSymbol = true; } */ if (Point.class.equals(geomType)) { if (isSymbol) { return retrieveDefaultStyle(styles, "pgTPC_Symbol", "point"); } else if (isIndex) { return retrieveDefaultStyle(styles, "pgTPC_TpclidText", "point"); } else { return retrieveDefaultStyle(styles, "pgTPC_Text", "point"); } } else if (LineString.class.equals(geomType)) { if ((!isIndex) && (!isLandBased)) { return retrieveDefaultStyle(styles, "pgTPC_Conductor", "line"); } else if (isIndex) { if (isSmallIndex) return retrieveDefaultStyle(styles, "pgTPC_INDEXSHAPES", "line"); return retrieveDefaultStyle(styles, "pgTPC_INDEXSHAPE", "line"); } else if (isLandBased) { return retrieveDefaultStyle(styles, "pgTPC_LndcityLine", "line"); } } else if (MultiPoint.class.equals(geomType)) { if (isSymbol) { return retrieveDefaultStyle(styles, "pgTPC_Symbol", "point"); } else { return retrieveDefaultStyle(styles, "pgTPC_Text", "point"); } } else if (Polygon.class.equals(geomType)) { if ((!isIndex) && (!isLandBased)) { return retrieveDefaultStyle(styles, "polygon", "polygon"); } else if (isIndex) { return retrieveDefaultStyle(styles, "pgTPC_INDEXSHAPE", "polygon"); } else if (isLandBased) { return retrieveDefaultStyle(styles, "pgTPC_LndcityPolygon", "polygon"); } } else if (LinearRing.class.equals(geomType)) { if (!isIndex) { return retrieveDefaultStyle(styles, "polygon", "polygon"); } else { return retrieveDefaultStyle(styles, "pgTPC_INDEXSHAPE", "polygon"); } } else if (MultiLineString.class.equals(geomType)) { if ((!isIndex) && (!isLandBased)) { return retrieveDefaultStyle(styles, "pgTPC_Conductor", "line"); } else if (isLandBased) { return retrieveDefaultStyle(styles, "pgTPC_LndcityLine", "line"); } else { return retrieveDefaultStyle(styles, "pgTPC_INDEXSHAPE", "line"); } } else if (MultiPolygon.class.equals(geomType)) { return "polygon"; } return "pgTPC_Symbol"; } private static String retrieveDefaultStyle(Map styles, String styleName, String defaultStyleName) { if (styles.containsKey(styleName)) { return styleName; } else return defaultStyleName; } } xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/edbgeo/DummyFeatureConvertEdbGeoJobContext.java
@@ -10,7 +10,7 @@ import java.util.Iterator; import java.util.List; import com.ximple.eofms.util.DigesterUtils; import com.ximple.eofms.util.ElementDigesterUtils; import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -76,7 +76,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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
@@ -12,7 +12,7 @@ import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; import com.ximple.eofms.filter.ElementDispatcher; import com.ximple.eofms.util.DigesterUtils; import com.ximple.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -69,7 +69,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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
@@ -23,7 +23,7 @@ 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.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -97,7 +97,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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/DummyFeatureConvertMySQlJobContext.java
@@ -16,7 +16,7 @@ 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.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -75,7 +75,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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
@@ -12,7 +12,7 @@ import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; import com.ximple.eofms.filter.ElementDispatcher; import com.ximple.eofms.util.DigesterUtils; import com.ximple.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -68,7 +68,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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,7 +11,7 @@ import java.util.HashMap; import java.util.Iterator; import com.ximple.eofms.util.DigesterUtils; import com.ximple.eofms.util.ElementDigesterUtils; import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -91,7 +91,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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/DummyFeatureConvertOraSDOJobContext.java
@@ -16,7 +16,7 @@ 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.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -75,7 +75,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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
@@ -12,7 +12,7 @@ import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; import com.ximple.eofms.filter.ElementDispatcher; import com.ximple.eofms.util.DigesterUtils; import com.ximple.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -68,7 +68,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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
@@ -15,7 +15,7 @@ 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.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -89,7 +89,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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/DummyFeatureConvertPostGISJobContext.java
@@ -16,7 +16,7 @@ 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.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -75,7 +75,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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
@@ -12,7 +12,7 @@ import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; import com.ximple.eofms.filter.ElementDispatcher; import com.ximple.eofms.util.DigesterUtils; import com.ximple.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -69,7 +69,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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/OracleConvertPostGISJobContext.java
@@ -22,7 +22,7 @@ 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.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -35,7 +35,6 @@ import org.geotools.data.Transaction; 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 org.postgresql.util.PSQLException; @@ -96,7 +95,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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
@@ -17,7 +17,7 @@ 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.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -78,7 +78,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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
@@ -13,7 +13,7 @@ import com.ximple.eofms.filter.AbstractFLinkageDispatchableFilter; import com.ximple.eofms.filter.ElementDispatcher; import com.ximple.eofms.util.DigesterUtils; import com.ximple.eofms.util.ElementDigesterUtils; import com.ximple.io.dgn7.ComplexElement; import com.ximple.io.dgn7.Element; import com.ximple.io.dgn7.FrammeAttributeData; @@ -76,7 +76,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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,7 +13,7 @@ import java.util.Iterator; import java.util.Properties; import com.ximple.eofms.util.DigesterUtils; import com.ximple.eofms.util.ElementDigesterUtils; import org.apache.commons.digester3.Digester; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -102,7 +102,7 @@ // filterURL = this.getClass().getResource("/conf/ConvertShpFilterForLevel.xml"); } assert filterURL != null; Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.getElementDigester(); return (ElementDispatcher) digester.parse(filterURL); } catch (UnsupportedEncodingException e) { logger.info(e.getMessage(), e); xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/util/XGeosConfigDigesterUtils.java
@@ -1,11 +1,27 @@ package com.ximple.eofms.util; /** * Created with IntelliJ IDEA. * User: ulysseskao * Date: 2013/8/6 * Time: 下午 4:35 * To change this template use File | Settings | File Templates. */ import com.ximple.eofms.geoserver.config.XGeosDataConfigMapping; import org.apache.commons.digester3.Digester; import org.apache.commons.digester3.binder.DigesterLoader; import org.apache.commons.digester3.xmlrules.FromXmlRulesModule; public class XGeosConfigDigesterUtils { private static final String XGEOSRULES_NAME = "DefaultXGeosDataConfigRules.xml"; protected static Digester digester = null; protected static DigesterLoader loader = DigesterLoader.newLoader( new FromXmlRulesModule() { @Override protected void loadRules() { loadXMLRules(XGeosDataConfigMapping.class.getResource(XGEOSRULES_NAME)); } } ); static { digester = loader.newDigester(); } public static Digester getXGeosConfigDigester() { return digester; } } 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 "-//Apache Commons //DTD digester-rules XML V1.0//EN" "http://commons.apache.org/digester/dtds/digester-rules-3.0.dtd"> <!DOCTYPE digester-rules PUBLIC "-//Apache Commons //DTD digester-rules XML V1.0//EN" "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/geoserver/config/DefaultXGeosDataConfigRules.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" "digester-rules-3.0.dtd"> <digester-rules> <pattern value="dataroot"> <object-create-rule classname="com.ximple.eofms.geoserver.config.XGeosDataConfigMapping"/> xdgnjobs/ximple-spatialjob/src/test/java/com/ximple/eofms/filter/ElementDispatcherTest.java
@@ -3,7 +3,7 @@ import java.io.File; import java.io.IOException; import com.ximple.eofms.util.DigesterUtils; import com.ximple.eofms.util.ElementDigesterUtils; import org.apache.commons.digester3.Digester; import org.geotools.TestData; import org.testng.Assert; @@ -17,7 +17,7 @@ @Test public void testLoadRules() throws IOException { File rules = TestData.file(this, TestRulesName); Digester digester = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.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 = DigesterUtils.getElementDigester(); Digester digester = ElementDigesterUtils.getElementDigester(); File config = TestData.file(this, TestConfigName); ElementDispatcher ed = (ElementDispatcher) digester.parse(config); Assert.assertNotNull(ed);