openjpa-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From allee8...@apache.org
Subject svn commit: r1396145 - /openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java
Date Tue, 09 Oct 2012 18:09:37 GMT
Author: allee8285
Date: Tue Oct  9 18:09:37 2012
New Revision: 1396145

URL: http://svn.apache.org/viewvc?rev=1396145&view=rev
Log:
OPENJPA-2275 - Enhancements for SchemaTool extension. Contributed by Francesco Chicchiriccò.

Modified:
    openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java

Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java?rev=1396145&r1=1396144&r2=1396145&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java
(original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/schema/SchemaTool.java
Tue Oct  9 18:09:37 2012
@@ -43,8 +43,6 @@ import org.apache.openjpa.jdbc.identifie
 import org.apache.openjpa.jdbc.sql.DBDictionary;
 import org.apache.openjpa.jdbc.sql.SQLExceptions;
 import org.apache.openjpa.lib.conf.Configurations;
-import org.apache.openjpa.lib.identifier.IdentifierUtil;
-import org.apache.openjpa.lib.jdbc.DecoratingDataSource;
 import org.apache.openjpa.lib.jdbc.DelegatingDataSource;
 import org.apache.openjpa.lib.log.Log;
 import org.apache.openjpa.lib.meta.MetaDataSerializer;
@@ -90,12 +88,12 @@ public class SchemaTool {
         ACTION_DELETE_TABLE_CONTENTS,
     };
 
-    private static final Localizer _loc = Localizer.forPackage(SchemaTool.class);
+    protected static final Localizer _loc = Localizer.forPackage(SchemaTool.class);
 
-    private final JDBCConfiguration _conf;
-    private final DataSource _ds;
-    private final Log _log;
-    private final DBDictionary _dict;
+    protected final JDBCConfiguration _conf;
+    protected final DataSource _ds;
+    protected final Log _log;
+    protected final DBDictionary _dict;
     private final String _action;
     private boolean _ignoreErrs = false;
     private boolean _openjpaTables = false;
@@ -108,8 +106,8 @@ public class SchemaTool {
     private PrintWriter _writer = null;
     private SchemaGroup _group = null;
     private SchemaGroup _db = null;
-    private boolean _fullDB = false;
-    private String _sqlTerminator = ";";
+    protected boolean _fullDB = false;
+    protected String _sqlTerminator = ";";
     
     /**
      * Default constructor. Tools constructed this way will not have an
@@ -359,27 +357,27 @@ public class SchemaTool {
 
     /**
      * Adds any components present in the schema repository but absent from
-     * the database. Package-private for testing.
+     * the database.
      */
-    void add()
+    protected void add()
         throws SQLException {
         add(getDBSchemaGroup(false), assertSchemaGroup());
     }
 
     /**
      * Drops all schema components in the schema repository that also exist
-     * in the database. Package-private for testing.
+     * in the database.
      */
-    void drop()
+    protected void drop()
         throws SQLException {
         drop(getDBSchemaGroup(false), assertSchemaGroup());
     }
 
     /**
      * Drops database components that are not mentioned in the schema
-     * repository. Package-private for testing.
+     * repository.
      */
-    void retain()
+    protected void retain()
         throws SQLException {
         retain(getDBSchemaGroup(true), assertSchemaGroup(),
             getDropTables(), getDropSequences());
@@ -388,9 +386,8 @@ public class SchemaTool {
     /**
      * Adds any components present in the schema repository but absent from
      * the database, and drops unused database components.
-     * Package-private for testing.
      */
-    void refresh()
+    protected void refresh()
         throws SQLException {
         SchemaGroup local = assertSchemaGroup();
         SchemaGroup db = getDBSchemaGroup(true);
@@ -401,9 +398,8 @@ public class SchemaTool {
     /**
      * Re-execute all SQL used for the creation of the current database;
      * this action is usually used when creating SQL scripts.
-     * Package-private for testing.
      */
-    void createDB()
+    protected void createDB()
         throws SQLException {
         SchemaGroup group = new SchemaGroup();
         group.addSchema();
@@ -413,9 +409,8 @@ public class SchemaTool {
     /**
      * Re-execute all SQL used for the creation of the current database;
      * this action is usually used when creating SQL scripts.
-     * Package-private for testing.
      */
-    void build()
+    protected void build()
         throws SQLException {
         SchemaGroup group = new SchemaGroup();
         group.addSchema();
@@ -423,9 +418,9 @@ public class SchemaTool {
     }
 
     /**
-     * Drop the current database. Package-private for testing.
+     * Drop the current database.
      */
-    void dropDB()
+    protected void dropDB()
         throws SQLException {
         retain(getDBSchemaGroup(true), new SchemaGroup(), true, true);
     }
@@ -433,7 +428,7 @@ public class SchemaTool {
     /**
      * Issue DELETE statement against all known tables.
      */
-    private void deleteTableContents() 
+    protected void deleteTableContents() 
         throws SQLException {
         SchemaGroup group = getSchemaGroup();
         Schema[] schemas = group.getSchemas();
@@ -462,7 +457,7 @@ public class SchemaTool {
      * Adds all database components in the repository schema that are not
      * present in the given database schema to the database.
      */
-    private void add(SchemaGroup db, SchemaGroup repos)
+    protected void add(SchemaGroup db, SchemaGroup repos)
         throws SQLException {
         // add sequences
         Schema[] schemas = repos.getSchemas();
@@ -643,7 +638,7 @@ public class SchemaTool {
      * Drops all database components that are in the given database schema
      * but not in the repository schema.
      */
-    private void retain(SchemaGroup db, SchemaGroup repos, boolean tables,
+    protected void retain(SchemaGroup db, SchemaGroup repos, boolean tables,
         boolean sequences)
         throws SQLException {
         Schema[] schemas = db.getSchemas();
@@ -769,7 +764,7 @@ public class SchemaTool {
     /**
      * Drops all database components in the given repository schema.
      */
-    private void drop(SchemaGroup db, SchemaGroup repos)
+    protected void drop(SchemaGroup db, SchemaGroup repos)
         throws SQLException {
         // drop sequences
         Schema[] schemas = repos.getSchemas();
@@ -902,7 +897,7 @@ public class SchemaTool {
     /**
      * Return true if the table is droppable.
      */
-    private boolean isDroppable(Table table) {
+    protected boolean isDroppable(Table table) {
         return _openjpaTables
             || (!DBIdentifier.toUpper(table.getIdentifier()).getName().startsWith("OPENJPA_")
             && !DBIdentifier.toUpper(table.getIdentifier()).getName().startsWith("JDO_"));
// legacy
@@ -911,7 +906,7 @@ public class SchemaTool {
     /**
      * Return true if the sequence is droppable.
      */
-    private boolean isDroppable(Sequence seq) {
+    protected boolean isDroppable(Sequence seq) {
         return _openjpaTables
             || (!DBIdentifier.toUpper(seq.getIdentifier()).getName().startsWith("OPENJPA_")
             && !DBIdentifier.toUpper(seq.getIdentifier()).getName().startsWith("JDO_"));
// legacy
@@ -920,7 +915,7 @@ public class SchemaTool {
     /**
      * Find an index in the given table that matches the given one.
      */
-    private Index findIndex(Table dbTable, Index idx) {
+    protected Index findIndex(Table dbTable, Index idx) {
         Index[] idxs = dbTable.getIndexes();
         for (int i = 0; i < idxs.length; i++)
             if (idx.columnsMatch(idxs[i].getColumns()))
@@ -931,7 +926,7 @@ public class SchemaTool {
     /**
      * Find a foreign key in the given table that matches the given one.
      */
-    private ForeignKey findForeignKey(Table dbTable, ForeignKey fk) {
+    protected ForeignKey findForeignKey(Table dbTable, ForeignKey fk) {
         if (fk.getConstantColumns().length > 0
             || fk.getConstantPrimaryKeyColumns().length > 0)
             return null;
@@ -947,7 +942,7 @@ public class SchemaTool {
      * Remove the given collection of tables from the database schema. Orders
      * the removals according to foreign key constraints on the tables.
      */
-    private void dropTables(Collection<Table> tables, SchemaGroup change)
+    protected void dropTables(Collection<Table> tables, SchemaGroup change)
         throws SQLException {
         if (tables.isEmpty())
             return;
@@ -1133,7 +1128,7 @@ public class SchemaTool {
      * @param full if false, only the tables named in the set schema
      * repository will be generated
      */
-    private SchemaGroup getDBSchemaGroup(boolean full)
+    protected SchemaGroup getDBSchemaGroup(boolean full)
         throws SQLException {
         if (_db == null || (full && !_fullDB)) {
             SchemaGenerator gen = new SchemaGenerator(_conf);
@@ -1171,7 +1166,7 @@ public class SchemaTool {
         return _db;
     }
 
-    private SchemaGroup assertSchemaGroup() {
+    protected SchemaGroup assertSchemaGroup() {
         SchemaGroup local = getSchemaGroup();
         if (local == null)
             throw new InvalidStateException(_loc.get("tool-norepos"));
@@ -1189,7 +1184,7 @@ public class SchemaTool {
      * @return true if there was SQL to execute and the calls were
      * successful, false otherwise
      */
-    private boolean executeSQL(String[] sql)
+    protected boolean executeSQL(String[] sql)
         throws SQLException {
         // if no sql, probably b/c dictionary doesn't support operation
         if (sql.length == 0)
@@ -1265,7 +1260,7 @@ public class SchemaTool {
      * Handle the given exception, logging it and optionally ignoring it,
      * depending on the flags this SchemaTool was created with.
      */
-    private void handleException(SQLException sql)
+    protected void handleException(SQLException sql)
         throws SQLException {
         if (!_ignoreErrs)
             throw sql;



Mime
View raw message