Author: bpoussin Date: 2010-06-02 19:31:16 +0200 (Wed, 02 Jun 2010) New Revision: 84 Url: http://nuiton.org/repositories/revision/wikitty/84 Log: modification suite a la suppression des "IF NOT EXISTS" qui n'est pas dans le sql standard on teste avec un Select avant d'essayer de faire la creation Modified: trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyExtensionStorageJDBC.java trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java trunk/wikitty-jdbc-impl/src/main/resources/wikitty-jdbc-query.properties Modified: trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyExtensionStorageJDBC.java =================================================================== --- trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyExtensionStorageJDBC.java 2010-06-02 16:48:29 UTC (rev 83) +++ trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyExtensionStorageJDBC.java 2010-06-02 17:31:16 UTC (rev 84) @@ -24,7 +24,9 @@ import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_VERSION; import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.JDBC_DRIVER; import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CLEAR_EXTENSION; +import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_EXTENSION_ADMIN_TEST; import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_EXTENSION_ADMIN; +import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_EXTENSION_DATA_TEST; import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_EXTENSION_DATA; import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_EXTENSION_ADMIN; import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_INSERT_EXTENSION_DATA; @@ -104,13 +106,24 @@ Connection connection = getJDBCConnection(conf); try { - Statement statement = connection.createStatement(); - statement.execute(conf.getProperty(QUERY_CREATION_EXTENSION_ADMIN)); - statement.execute(conf.getProperty(QUERY_CREATION_EXTENSION_DATA)); - commitJDBCConnection(connection); - } catch(SQLException eee) { - rollbackJDBCConnection(connection); - throw new WikittyException(eee); + // If test of existance work, no exception and do nothing + // if exception try to create databse + Statement statementTest = connection.createStatement(); + statementTest.execute(conf.getProperty(QUERY_CREATION_EXTENSION_ADMIN_TEST)); + statementTest.execute(conf.getProperty(QUERY_CREATION_EXTENSION_DATA_TEST)); + } catch(SQLException silentError) { + if (log.isInfoEnabled()) { + log.info("try to create extension database"); + } + try { + Statement statement = connection.createStatement(); + statement.execute(conf.getProperty(QUERY_CREATION_EXTENSION_ADMIN)); + statement.execute(conf.getProperty(QUERY_CREATION_EXTENSION_DATA)); + commitJDBCConnection(connection); + } catch (SQLException eee) { + rollbackJDBCConnection(connection); + throw new WikittyException(eee); + } } finally { WikittyJDBCUtil.closeQuietly(connection); } Modified: trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java =================================================================== --- trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java 2010-06-02 16:48:29 UTC (rev 83) +++ trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyJDBCUtil.java 2010-06-02 17:31:16 UTC (rev 84) @@ -85,9 +85,15 @@ static final public String QUERY_SELECT_WHERE_NOTDELETED = "jdbc.queries.select.where.notdeleted"; /** wikitty_admin table creation query property name */ - static final public String QUERY_CREATION_WIKITTY_ADMIN = "jdbc.queries.creation.wikitty.admin"; + static final public String QUERY_CREATION_WIKITTY_ADMIN_TEST = + "jdbc.queries.creation.wikitty.admin.test"; + static final public String QUERY_CREATION_WIKITTY_ADMIN = + "jdbc.queries.creation.wikitty.admin"; /** wikitty_admin table creation query property name */ - static final public String QUERY_CREATION_WIKITTY_DATA = "jdbc.queries.creation.wikitty.data"; + static final public String QUERY_CREATION_WIKITTY_DATA_TEST = + "jdbc.queries.creation.wikitty.data.test"; + static final public String QUERY_CREATION_WIKITTY_DATA = + "jdbc.queries.creation.wikitty.data"; /** insertion in the admin table query property name */ static final public String QUERY_INSERT_WIKITTY_ADMIN = "jdbc.queries.insert.wikitty.admin"; /** update in the admin table query property name */ @@ -105,13 +111,21 @@ static final public String QUERY_CLEAR_WIKITTY = "jdbc.queries.clear.wikitty"; /** extension_admin table creation query property name */ - static final public String QUERY_CREATION_EXTENSION_ADMIN = "jdbc.queries.creation.extension.admin"; + static final public String QUERY_CREATION_EXTENSION_ADMIN_TEST = + "jdbc.queries.creation.extension.admin.test"; + static final public String QUERY_CREATION_EXTENSION_ADMIN = + "jdbc.queries.creation.extension.admin"; /** extension_data table creation query property name */ - static final public String QUERY_CREATION_EXTENSION_DATA = "jdbc.queries.creation.extension.data"; + static final public String QUERY_CREATION_EXTENSION_DATA_TEST = + "jdbc.queries.creation.extension.data.test"; + static final public String QUERY_CREATION_EXTENSION_DATA = + "jdbc.queries.creation.extension.data"; /** insertion in the admin table query property name */ - static final public String QUERY_INSERT_EXTENSION_ADMIN = "jdbc.queries.insert.extension.admin"; + static final public String QUERY_INSERT_EXTENSION_ADMIN = + "jdbc.queries.insert.extension.admin"; /** insertion in the data table query property name */ - static final public String QUERY_INSERT_EXTENSION_DATA = "jdbc.queries.insert.extension.data"; + static final public String QUERY_INSERT_EXTENSION_DATA = + "jdbc.queries.insert.extension.data"; /** JDBC JDBC_DRIVER property name */ static final public String JDBC_DRIVER = "jdbc.con.driver"; Modified: trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java =================================================================== --- trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java 2010-06-02 16:48:29 UTC (rev 83) +++ trunk/wikitty-jdbc-impl/src/main/java/org/nuiton/wikitty/jdbc/WikittyStorageJDBC.java 2010-06-02 17:31:16 UTC (rev 84) @@ -27,7 +27,9 @@ import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.COL_VERSION; import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.JDBC_DRIVER; import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CLEAR_WIKITTY; +import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_ADMIN_TEST; import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_ADMIN; +import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_DATA_TEST; import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_CREATION_WIKITTY_DATA; import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_DELETE_WIKITTY_ADMIN; import static org.nuiton.wikitty.jdbc.WikittyJDBCUtil.QUERY_DELETE_WIKITTY_DATA; @@ -119,13 +121,24 @@ Connection connection = getJDBCConnection(conf); try { - Statement statement = connection.createStatement(); - statement.execute(conf.getProperty(QUERY_CREATION_WIKITTY_ADMIN)); - statement.execute(conf.getProperty(QUERY_CREATION_WIKITTY_DATA)); - commitJDBCConnection(connection); - } catch(SQLException eee) { - rollbackJDBCConnection(connection); - throw new WikittyException(eee); + // If test of existance work, no exception and do nothing + // if exception try to create databse + Statement statementTest = connection.createStatement(); + statementTest.execute(conf.getProperty(QUERY_CREATION_WIKITTY_ADMIN_TEST)); + statementTest.execute(conf.getProperty(QUERY_CREATION_WIKITTY_DATA_TEST)); + } catch (SQLException silentError) { + if (log.isInfoEnabled()) { + log.info("try to create wikitty database"); + } + try { + Statement statement = connection.createStatement(); + statement.execute(conf.getProperty(QUERY_CREATION_WIKITTY_ADMIN)); + statement.execute(conf.getProperty(QUERY_CREATION_WIKITTY_DATA)); + commitJDBCConnection(connection); + } catch (SQLException eee) { + rollbackJDBCConnection(connection); + throw new WikittyException(eee); + } } finally { WikittyJDBCUtil.closeQuietly(connection); } Modified: trunk/wikitty-jdbc-impl/src/main/resources/wikitty-jdbc-query.properties =================================================================== --- trunk/wikitty-jdbc-impl/src/main/resources/wikitty-jdbc-query.properties 2010-06-02 16:48:29 UTC (rev 83) +++ trunk/wikitty-jdbc-impl/src/main/resources/wikitty-jdbc-query.properties 2010-06-02 17:31:16 UTC (rev 84) @@ -1,4 +1,5 @@ #table extension_admin creation query +jdbc.queries.creation.extension.admin.test=SELECT * FROM extension_admin LIMIT 1; jdbc.queries.creation.extension.admin=CREATE TABLE extension_admin (\ id text NOT NULL,\ name text NOT NULL,\ @@ -8,6 +9,7 @@ PRIMARY KEY (id)); #table extension_data creation query +jdbc.queries.creation.extension.data.test=SELECT * FROM extension_data LIMIT 1; jdbc.queries.creation.extension.data=CREATE TABLE extension_data (\ id text NOT NULL,\ fieldName text NOT NULL,\ @@ -16,6 +18,7 @@ FOREIGN KEY (id) REFERENCES extension_admin (id)); #table wikitty_admin creation query +jdbc.queries.creation.wikitty.admin.test=SELECT * FROM wikitty_admin LIMIT 1; jdbc.queries.creation.wikitty.admin=CREATE TABLE wikitty_admin (\ id varchar(64) NOT NULL,\ version varchar(8) NOT NULL,\ @@ -24,6 +27,7 @@ PRIMARY KEY (id)); #table wikitty_data creation query +jdbc.queries.creation.wikitty.data.test=SELECT * FROM wikitty_data LIMIT 1; jdbc.queries.creation.wikitty.data=CREATE TABLE wikitty_data (\ id varchar(64) NOT NULL,\ fieldName text NOT NULL,\
participants (1)
-
bpoussin@users.nuiton.org