From 6217eaaf64d69992c0d92acde640e44a2ac5d910 Mon Sep 17 00:00:00 2001 From: ?? ? <ulysseskao@ximple.com.tw> Date: Mon, 25 Aug 2008 16:37:32 +0800 Subject: [PATCH] update for EOFM-152 --- xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml | 8 ++-- xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java | 67 +++++++++++++++++++++++++++------ 2 files changed, 58 insertions(+), 17 deletions(-) diff --git a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml index 5f1ee59..cce905d 100644 --- a/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml +++ b/xdgnjobs/ximple-jobcarrier/src/main/resources/quartz_jobs.xml @@ -18,7 +18,7 @@ <job-data-map allows-transient-data="true"> <entry> <key>JOBDATA_DIR</key> - <value>g:\temp\JobData</value> + <value>G:\Temp\JobData\tctpc</value> </entry> <entry> <key>PGHOST</key> @@ -26,11 +26,11 @@ </entry> <entry> <key>PGDDATBASE</key> - <value>tytpc</value> + <value>tctpc</value> </entry> <entry> <key>PGPORT</key> - <value>5442</value> + <value>5432</value> </entry> <entry> <key>PGSCHEMA</key> @@ -50,7 +50,7 @@ </entry> <entry> <key>ORAINST</key> - <value>tytpc</value> + <value>tctpc</value> </entry> <entry> <key>ORAPORT</key> diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java index c62f7c3..270af88 100644 --- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java +++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java @@ -64,7 +64,7 @@ { final static Log logger = LogFactory.getLog(OracleConvertDgn2PostGISJob.class); - private static final String XGVERSION_NAME = "xgversion"; + private static final String XGVERSION_NAME = "xgeos_vsversion"; private static final String PGHOST = "PGHOST"; private static final String PGDDATBASE = "PGDDATBASE"; private static final String PGPORT = "PGPORT"; @@ -1175,19 +1175,19 @@ rs = null; StringBuilder sbSQL = new StringBuilder("SELECT "); - sbSQL.append("'vsschema', 'vsstatus' FROM "); + sbSQL.append("vsschema, vsstatus FROM "); sbSQL.append(encodeSchemaTableName(_pgSchema, XGVERSION_NAME)).append(' '); sbSQL.append("ORDER BY vsid"); stmt = connection.createStatement(); rs = stmt.executeQuery(sbSQL.toString()); ArrayList<Object[]> tmpSchemas = new ArrayList<Object[]>(); int i = 0; - int current = 0; + int current = -1; while (rs.next()) { Object[] values = new Object[2]; - values[0] = rs.getObject(1); - values[1] = rs.getObject(2); + values[0] = rs.getString("vsschema"); + values[1] = rs.getShort("vsstatus"); tmpSchemas.add(values); if ((((Short)values[1]) & DataRepositoryStatus.VSSTATUS_USING) != 0) { @@ -1196,7 +1196,11 @@ i++; } - if (current < (tmpSchemas.size() - 1)) + if (current == -1) + { + Object[] values = tmpSchemas.get(0); + targetSchema = (String) values[0]; + } else if (current < (tmpSchemas.size() - 1)) { Object[] values = tmpSchemas.get(current + 1); targetSchema = (String) values[0]; @@ -1207,10 +1211,10 @@ sbSQL = new StringBuilder("UPDATE "); sbSQL.append(encodeSchemaTableName(_pgSchema, XGVERSION_NAME)).append(' '); - sbSQL.append(" SET 'vsstatus' = "); + sbSQL.append(" SET vsstatus = "); sbSQL.append(DataRepositoryStatus.VSSTATUS_COVERT); - sbSQL.append(" WHERE 'vsschema' = "); - sbSQL.append(targetSchema); + sbSQL.append(" WHERE vsschema = '"); + sbSQL.append(targetSchema).append("'"); int count = stmt.executeUpdate(sbSQL.toString()); if (count != 1) { @@ -1258,17 +1262,21 @@ sql = new StringBuilder("INSERT INTO "); sql.append(encodeSchemaTableName(pgSchema, XGVERSION_NAME)); - sql.append(" ('vsschema', 'vsstatus' ) VALUES ("); + sql.append(" (vsschema, vsstatus) VALUES ("); sql.append("'gisrepo1', "); sql.append(DataRepositoryStatus.VSSTATUS_UNKNOWN).append(" )"); stmt.executeUpdate(sql.toString()); sql = new StringBuilder("INSERT INTO "); sql.append(encodeSchemaTableName(pgSchema, XGVERSION_NAME)); - sql.append(" ('vsschema', 'vsstatus' ) VALUES ("); + sql.append(" (vsschema, vsstatus) VALUES ("); sql.append("'gisrepo2', "); sql.append(DataRepositoryStatus.VSSTATUS_UNKNOWN).append(" )"); stmt.executeUpdate(sql.toString()); + + createIfNotExistNewSchema(connection, "gisrepo1"); + createIfNotExistNewSchema(connection, "gisrepo2"); + } finally { if (stmt != null) stmt.close(); } @@ -1285,9 +1293,9 @@ { StringBuilder sbSQL = new StringBuilder("UPDATE "); sbSQL.append(encodeSchemaTableName(_pgSchema, XGVERSION_NAME)).append(' '); - sbSQL.append(" SET 'vsstatus' = "); + sbSQL.append(" SET vsstatus = "); sbSQL.append(DataRepositoryStatus.VSSTATUS_READY); - sbSQL.append(" WHERE 'vsschema' = "); + sbSQL.append(" WHERE vsschema = "); sbSQL.append(targetSchema); connection = targetDataStore.getConnection(Transaction.AUTO_COMMIT); @@ -1309,4 +1317,37 @@ if (connection != null) try { connection.close(); } catch (SQLException e) {}; } } + + private void createIfNotExistNewSchema(Connection connection, String s) throws SQLException + { + Statement stmt = null; + ResultSet rs = null; + try + { + /* + rs = connection.getMetaData().getSchemas(null, s); + if (rs.next()) return; + rs.close(); + rs = null; + */ + + StringBuilder sbSQL = new StringBuilder("CREATE SCHEMA "); + sbSQL.append(s).append(' '); + sbSQL.append("AUTHORIZATION spatialdb"); + stmt = connection.createStatement(); + stmt.executeUpdate(sbSQL.toString()); + + sbSQL = new StringBuilder("GRANT ALL ON SCHEMA "); + sbSQL.append(s).append(' '); + sbSQL.append("TO public"); + stmt.executeUpdate(sbSQL.toString()); + } catch (SQLException e) + { + logger.info("create schema:" + s + " has exception."); + logger.info(e.getMessage(), e); + } finally { + if (rs != null) rs.close(); + if (stmt != null) stmt.close(); + } + } } -- Gitblit v0.0.0-SNAPSHOT