You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by tf...@apache.org on 2012/08/22 05:51:01 UTC
svn commit: r1375888 - in /db/torque/torque4/trunk:
torque-runtime/src/main/java/org/apache/torque/
torque-runtime/src/main/java/org/apache/torque/avalon/
torque-runtime/src/main/java/org/apache/torque/map/
torque-runtime/src/main/java/org/apache/torqu...
Author: tfischer
Date: Wed Aug 22 03:51:00 2012
New Revision: 1375888
URL: http://svn.apache.org/viewvc?rev=1375888&view=rev
Log:
TORQUE-220 fix serialisation issue in DatabaseMap
Fixed some corner cases in Torque initialisation
Modified:
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/Database.java
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/Torque.java
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/TorqueInstance.java
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/avalon/TorqueComponent.java
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/DatabaseMap.java
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/MapHelper.java
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/TableMap.java
db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/util/BasePeerImpl.java
db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/BaseTestCase.java
db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderOldCriteriaTest.java
db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/initDatabaseMap.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplCreator.vm
db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/staticInit.vm
Modified: db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/Database.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/Database.java?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/Database.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/Database.java Wed Aug 22 03:51:00 2012
@@ -75,17 +75,23 @@ public class Database
/**
* Creates a new Database with the given name.
*
- * @param aName the name of the database, not null.
+ * @param name the name of the database, not null.
+ *
+ * @throws NullPointerException if name is null.
*/
- Database(String aName)
+ Database(String name)
{
- this.name = aName;
+ if (name == null)
+ {
+ throw new NullPointerException("name is null");
+ }
+ this.name = name;
}
/**
- * returns the name of the database.
+ * Rturns the name of the database.
*
- * @return the name of the database. May be null.
+ * @return the name of the database, not null.
*/
public String getName()
{
@@ -197,15 +203,36 @@ public class Database
}
/**
- * Creates the IDBroker for this Database and starts it.
+ * Creates the IDBroker for this Database and registers it with Torque.
+ * so it is either started instantly if Torque is already initialized
+ * or it is started when Torque is initialized.
* The information about the IdTable is stored in the databaseMap.
- * If an IDBroker already exists for the DatabaseMap, the method
+ * If an IDBroker already exists for this Database, the method
* does nothing.
*
* @return true if a new IDBroker was created, false otherwise.
+ *
+ * @deprecated This method will be removed in a future version of Torque.
+ * Please use createAndRegisterIdBroker() instead.
*/
+ @Deprecated
public synchronized boolean startIdBroker()
{
+ return createAndRegisterIdBroker();
+ }
+
+ /**
+ * Creates the IDBroker for this Database and registers it with Torque.
+ * so it is either started instantly if Torque is already initialized
+ * or it is started when Torque is initialized.
+ * The information about the IdTable is stored in the databaseMap.
+ * If an IDBroker already exists for this Database, the method
+ * does nothing.
+ *
+ * @return true if a new IDBroker was created, false otherwise.
+ */
+ public synchronized boolean createAndRegisterIdBroker()
+ {
if (idBroker != null)
{
return false;
Modified: db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/Torque.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/Torque.java?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/Torque.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/Torque.java Wed Aug 22 03:51:00 2012
@@ -206,7 +206,8 @@ public final class Torque
*
* @return a Manager
*/
- public static <T extends AbstractBaseManager<? extends Persistent>> T getManager(String name,
+ public static <T extends AbstractBaseManager<? extends Persistent>> T getManager(
+ String name,
String defaultClassName)
{
return getInstance().getManager(name, defaultClassName);
@@ -224,7 +225,7 @@ public final class Torque
* exceptions are logged but ignored.
*/
public static void shutdown()
- throws TorqueException
+ throws TorqueException
{
getInstance().shutdown();
}
@@ -233,18 +234,17 @@ public final class Torque
* Returns the default database map information.
*
* @return A DatabaseMap.
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
+ *
+ * @throws TorqueException if Torque is not initialized.
*/
public static DatabaseMap getDatabaseMap()
- throws TorqueException
+ throws TorqueException
{
return getInstance().getDatabaseMap();
}
/**
- * Returns the database map information. Name relates to the name
- * of the connection pool to associate with the map.
+ * Returns the database map information for a given database.
*
* @param name The name of the database corresponding to the
* <code>DatabaseMap</code> to retrieve, or null
@@ -252,9 +252,10 @@ public final class Torque
*
* @return The named <code>DatabaseMap</code>, not null.
*
- * @throws NullPointerException if name is null.
+ * @throws TorqueException if Torque is not initialized and name is null.
*/
public static DatabaseMap getDatabaseMap(String name)
+ throws TorqueException
{
return getInstance().getDatabaseMap(name);
}
@@ -384,11 +385,9 @@ public final class Torque
* @param name The database name.
* @param schema The current schema name.
*
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
+ * @throws NullPointerException if databaseName is null.
*/
public static void setSchema(String name, String schema)
- throws TorqueException
{
getInstance().setSchema(name, schema);
}
@@ -426,6 +425,23 @@ public final class Torque
}
/**
+ * Returns the database for the key <code>databaseName</code>.
+ * If no database is associated to the specified key,
+ * a new database is created, mapped to the specified key, and returned.
+ *
+ * @param name the key to get the database for, not null.
+ *
+ * @return the database associated with specified key, or the newly created
+ * database, never null.
+ *
+ * @throws IllegalArgumentException if databaseName is null.
+ */
+ public static Database getOrCreateDatabase(String name)
+ {
+ return getInstance().getOrCreateDatabase(name);
+ }
+
+ /**
* Returns a Map containing all Databases registered to Torque.
* The key of the Map is the name of the database, and the value is the
* database instance. <br/>
Modified: db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/TorqueInstance.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/TorqueInstance.java?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/TorqueInstance.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/TorqueInstance.java Wed Aug 22 03:51:00 2012
@@ -908,18 +908,21 @@ public class TorqueInstance
*
* @return the requested DatabaseMap, not null.
*
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
+ * @throws TorqueException if Torque is not initialized.
*/
public DatabaseMap getDatabaseMap()
throws TorqueException
{
+ String name = getDefaultDB();
+ if (name == null)
+ {
+ throw new TorqueException("Torque is not initialized");
+ }
return getDatabaseMap(getDefaultDB());
}
/**
- * Returns the database map information. Name relates to the name
- * of the connection pool to associate with the map.
+ * Returns the database map information for the given database name.
*
* @param name The name of the database corresponding to the
* <code>DatabaseMap</code> to retrieve, or null
@@ -927,15 +930,19 @@ public class TorqueInstance
*
* @return The named <code>DatabaseMap</code>, not null.
*
- * @throws NullPointerException if name is null.
+ * @throws TorqueException if Torque is not initialized and name is null.
*/
public DatabaseMap getDatabaseMap(String name)
+ throws TorqueException
{
if (name == null)
{
+ if (!Torque.isInit())
+ {
+ throw new TorqueException("Torque is not initialized");
+ }
name = getDefaultDB();
}
-
Database database = getOrCreateDatabase(name);
return database.getDatabaseMap();
}
@@ -980,7 +987,8 @@ public class TorqueInstance
*
* @return a database connection to the named database, never null.
*
- * @throws TorqueException If no DataSourceFactory is configured for the
+ * @throws TorqueException if Torque is not initialized,
+ * if no DataSourceFactory is configured for the
* named database, the connection information is wrong, or the
* connection cannot be returned for any other reason.
*/
@@ -1018,6 +1026,11 @@ public class TorqueInstance
public DataSourceFactory getDataSourceFactory(String name)
throws TorqueException
{
+ if (!isInit())
+ {
+ throw new TorqueException("Torque is not initialized");
+ }
+
Database database = getDatabase(name);
DataSourceFactory dsf = null;
@@ -1077,8 +1090,7 @@ public class TorqueInstance
* @return The corresponding database adapter, or null if no database
* adapter is defined for the given database.
*
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
+ * @throws TorqueException if Torque is not initialized.
*
* @deprecated use getAdapter(String) instead.
* This method will be removed in a future version of Torque.
@@ -1086,6 +1098,10 @@ public class TorqueInstance
@Deprecated
public Adapter getDB(String name) throws TorqueException
{
+ if (!isInit())
+ {
+ throw new TorqueException("Torque is not initialized");
+ }
Database database = getDatabase(name);
if (database == null)
{
@@ -1102,10 +1118,14 @@ public class TorqueInstance
* @return The corresponding database adapter, or null if no database
* adapter is defined for the given database.
*
- * @throws TorqueException If Torque is not initialized.
+ * @throws TorqueException if Torque is not initialized.
*/
public Adapter getAdapter(String name) throws TorqueException
{
+ if (!isInit())
+ {
+ throw new TorqueException("Torque is not initialized");
+ }
Database database = getDatabase(name);
if (database == null)
{
@@ -1149,14 +1169,12 @@ public class TorqueInstance
/**
* Sets the current schema for a database connection
*
- * @param name The database name.
+ * @param name The database name, not null.
* @param schema The current schema name.
*
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
+ * @throws NullPointerException if databaseName is null.
*/
public void setSchema(String name, String schema)
- throws TorqueException
{
getOrCreateDatabase(name).setSchema(schema);
}
@@ -1166,14 +1184,18 @@ public class TorqueInstance
*
* @param name The database name.
*
- * @return The current schema name. Null means, no schema has been set.
+ * @return The current schema name. Null means, no schema has been set
+ * or no database with the given name exists.
*
- * @throws TorqueException Any exceptions caught during processing will be
- * rethrown wrapped into a TorqueException.
+ * @throws TorqueException if Torque is not yet initialized.
*/
public String getSchema(String name)
- throws TorqueException
+ throws TorqueException
{
+ if (!isInit())
+ {
+ throw new TorqueException("Torque is not initialized");
+ }
Database database = getDatabase(name);
if (database == null)
{
@@ -1233,12 +1255,19 @@ public class TorqueInstance
* If no database is associated to the specified key,
* a new database is created, mapped to the specified key, and returned.
*
- * @param databaseName the key to get the database for.
+ * @param databaseName the key to get the database for, not null.
+ *
* @return the database associated with specified key, or the newly created
* database, never null.
+ *
+ * @throws NullPointerException if databaseName is null.
*/
public Database getOrCreateDatabase(String databaseName)
{
+ if (databaseName == null)
+ {
+ throw new NullPointerException("databaseName is null");
+ }
synchronized (databases)
{
Database result = databases.get(databaseName);
Modified: db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/avalon/TorqueComponent.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/avalon/TorqueComponent.java?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/avalon/TorqueComponent.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/avalon/TorqueComponent.java Wed Aug 22 03:51:00 2012
@@ -189,7 +189,7 @@ public class TorqueComponent
Database database = getDatabase(otherDatabase.getName());
if (otherDatabase.getIdBroker() != null)
{
- database.startIdBroker();
+ database.createAndRegisterIdBroker();
}
}
}
Modified: db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/DatabaseMap.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/DatabaseMap.java?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/DatabaseMap.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/DatabaseMap.java Wed Aug 22 03:51:00 2012
@@ -88,8 +88,11 @@ public class DatabaseMap implements Seri
"Invalid Torque OM setup for Database \"{0}\".\n"
+ "An error occured invoking the init() method in class, \"{1}\"";
- /** The database where this databaseMap belongs to. */
- private final Database database;
+ /**
+ * The name of the database where this databaseMap belongs to,
+ * for internal purposes only.
+ */
+ private final String name;
/** Name of the tables in the database. */
private final Map<String, TableMap> tables
@@ -114,7 +117,17 @@ public class DatabaseMap implements Seri
{
throw new NullPointerException("database must not be null");
}
- this.database = database;
+ this.name = database.getName();
+ }
+
+ /**
+ * The name of the database to which this database map belongs.
+ *
+ * @return the database name, not null.
+ */
+ String getName()
+ {
+ return name;
}
/**
@@ -149,16 +162,6 @@ public class DatabaseMap implements Seri
}
/**
- * Get the associated database object.
- *
- * @return the associated database, not null.
- */
- public Database getDatabase()
- {
- return database;
- }
-
- /**
* Get a TableMap for the table by name. <p>
*
* Note that by default Torque uses lazy initialization to minimize
@@ -317,7 +320,7 @@ public class DatabaseMap implements Seri
}
String initClassName = MessageFormat.format(INIT_CLASS_NAME_FORMAT,
new Object[] {
- javanameMethod(getDatabase().getName())
+ javanameMethod(name)
});
Class<?> initClass = null;
@@ -330,8 +333,8 @@ public class DatabaseMap implements Seri
throw new TorqueException(MessageFormat.format(
ERROR_MESSAGES_CLASS_NOT_FOUND,
new Object[] {
- getDatabase().getName(),
- initClassName
+ name,
+ initClassName
}),
e);
}
@@ -340,7 +343,8 @@ public class DatabaseMap implements Seri
throw new TorqueException(MessageFormat.format(
ERROR_MESSAGES_DEPENDENT_CLASS_NOT_FOUND,
new Object[] {
- getDatabase().getName(), initClassName
+ name,
+ initClassName
}),
e);
}
@@ -349,7 +353,8 @@ public class DatabaseMap implements Seri
throw new TorqueException(MessageFormat.format(
ERROR_MESSAGES_CLASS_FOR_NAME,
new Object[] {
- getDatabase().getName(), initClassName
+ name,
+ initClassName
}),
e);
}
@@ -363,7 +368,8 @@ public class DatabaseMap implements Seri
throw new TorqueException(MessageFormat.format(
ERROR_MESSAGES_INIT,
new Object[] {
- getDatabase().getName(), initClassName
+ name,
+ initClassName
}),
e);
}
@@ -424,8 +430,8 @@ public class DatabaseMap implements Seri
public String toString()
{
StringBuilder result = new StringBuilder();
- result.append("DatabaseMap[database.name=")
- .append(database.getName())
+ result.append("DatabaseMap[name=")
+ .append(name)
.append(", tables=(");
boolean first = true;
for (TableMap table : tables.values())
Modified: db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/MapHelper.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/MapHelper.java?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/MapHelper.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/MapHelper.java Wed Aug 22 03:51:00 2012
@@ -23,6 +23,7 @@ import java.util.Map;
import org.apache.torque.Column;
import org.apache.torque.Torque;
+import org.apache.torque.TorqueException;
import org.apache.torque.criteria.CriteriaInterface;
/**
@@ -52,11 +53,14 @@ public final class MapHelper
*
* @return the table map, or null if possibleColumn does not implement
* the column interface or if the table name cannot be resolved.
+ *
+ * @throws TorqueException possibly if Torque is not initialized.
*/
public static TableMap getTableMap(
- Object possibleColumn,
- CriteriaInterface<?> criteria,
- TableMap defaultTableMap)
+ Object possibleColumn,
+ CriteriaInterface<?> criteria,
+ TableMap defaultTableMap)
+ throws TorqueException
{
if (!(possibleColumn instanceof Column))
{
@@ -111,11 +115,16 @@ public final class MapHelper
* @param column the column to get the column map for.
* @param criteria A criteria containing the database name and perhaps
* aliases for the column and table name, not null.
+ *
* @return the column map, or null if the column name cannot be resolved.
+ *
+ * @throws TorqueException if Torque is not initialized and criteria's
+ * databaseName is null.
*/
public static ColumnMap getColumnMap(
- Column column,
- CriteriaInterface<?> criteria)
+ Column column,
+ CriteriaInterface<?> criteria)
+ throws TorqueException
{
String tableName = column.getTableName();
{
Modified: db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/TableMap.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/TableMap.java?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/TableMap.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/map/TableMap.java Wed Aug 22 03:51:00 2012
@@ -32,6 +32,8 @@ import java.util.Set;
import java.util.StringTokenizer;
import org.apache.commons.lang.StringUtils;
+import org.apache.torque.Database;
+import org.apache.torque.Torque;
import org.apache.torque.TorqueException;
import org.apache.torque.adapter.IDMethod;
@@ -401,7 +403,9 @@ public class TableMap implements Seriali
primaryKeyMethod = method;
if (IDMethod.ID_BROKER == method)
{
- getDatabaseMap().getDatabase().startIdBroker();
+ Database database = Torque.getOrCreateDatabase(
+ getDatabaseMap().getName());
+ database.createAndRegisterIdBroker();
}
}
Modified: db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/util/BasePeerImpl.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/util/BasePeerImpl.java?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/util/BasePeerImpl.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/main/java/org/apache/torque/util/BasePeerImpl.java Wed Aug 22 03:51:00 2012
@@ -745,7 +745,7 @@ public class BasePeerImpl<T> implements
String fullTableName = SqlBuilder.getFullTableName(
getTableMap().getName(),
- getTableMap().getDatabaseMap().getDatabase().getName());
+ databaseNameFromInsertValues);
StringBuilder query = new StringBuilder("INSERT INTO ")
.append(fullTableName)
.append("(")
Modified: db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/BaseTestCase.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/BaseTestCase.java?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/BaseTestCase.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/BaseTestCase.java Wed Aug 22 03:51:00 2012
@@ -46,6 +46,9 @@ public abstract class BaseTestCase exten
protected DatabaseMap databaseMap;
/** A Reference to the postgresql (default) database. */
+ protected Database database;
+
+ /** A Reference to the postgresql (default) database. */
protected Database databasePostgresql;
/** A Reference to the mysql database. */
@@ -66,15 +69,17 @@ public abstract class BaseTestCase exten
*
* @throws Exception if initialisation fails.
*/
+ @Override
public void setUp() throws Exception
{
Torque.setInstance(null);
Torque.init(CONFIG_FILE);
- databaseMap = Torque.getDatabaseMap("postgresql");
- databasePostgresql = databaseMap.getDatabase();
- databaseMysql = Torque.getDatabaseMap("mysql").getDatabase();
- databaseOracle = Torque.getDatabaseMap("oracle").getDatabase();
+ databaseMap = Torque.getDatabaseMap(Torque.getDefaultDB());
+ database = Torque.getDatabase(Torque.getDefaultDB());
+ databasePostgresql = Torque.getDatabase("postgresql");
+ databaseMysql = Torque.getDatabase("mysql");
+ databaseOracle = Torque.getDatabase("oracle");
tableMap = databaseMap.addTable("TABLE");
{
stringColumnMap = new ColumnMap("COLUMN1", tableMap);
Modified: db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderOldCriteriaTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderOldCriteriaTest.java?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderOldCriteriaTest.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderOldCriteriaTest.java Wed Aug 22 03:51:00 2012
@@ -137,14 +137,21 @@ public class SqlBuilderOldCriteriaTest e
{
Criteria criteria = new Criteria();
criteria.addAscendingOrderByColumn("table.column1");
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT table.column1 FROM schema1.table "
- + "ORDER BY table.column1 ASC",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT table.column1 FROM schema1.table "
+ + "ORDER BY table.column1 ASC",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testOrderByAscendingIgnoreCaseString() throws Exception
@@ -267,13 +274,20 @@ public class SqlBuilderOldCriteriaTest e
Criteria criteria = new Criteria();
criteria.addAlias("alias", "table");
criteria.addSelectColumn("alias.column1");
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT alias.column1 FROM schema1.table alias",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT alias.column1 FROM schema1.table alias",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testAliasWithIgnoreCaseUnknownColumnType() throws Exception
@@ -326,14 +340,21 @@ public class SqlBuilderOldCriteriaTest e
criteria.addSelectColumn("alias.COLUMN1");
criteria.add("alias.COLUMN1", "1");
criteria.setIgnoreCase(true);
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT alias.COLUMN1 FROM schema1.TABLE alias "
- + "WHERE UPPER(alias.COLUMN1)=UPPER(?)",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT alias.COLUMN1 FROM schema1.TABLE alias "
+ + "WHERE UPPER(alias.COLUMN1)=UPPER(?)",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testAliasWithIgnoreCaseIntegerColumnTypeAndDefaultSchema()
@@ -344,14 +365,21 @@ public class SqlBuilderOldCriteriaTest e
criteria.addSelectColumn("alias.COLUMN4");
criteria.add("alias.COLUMN4", "1");
criteria.setIgnoreCase(true);
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT alias.COLUMN4 FROM schema1.TABLE alias "
- + "WHERE alias.COLUMN4=?",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT alias.COLUMN4 FROM schema1.TABLE alias "
+ + "WHERE alias.COLUMN4=?",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testAsColumn() throws Exception
@@ -411,14 +439,21 @@ public class SqlBuilderOldCriteriaTest e
criteria.addSelectColumn("columnAlias");
criteria.add("columnAlias", "1");
criteria.setIgnoreCase(true);
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT TABLE.COLUMN1 AS columnAlias FROM schema1.TABLE"
- + " WHERE UPPER(columnAlias)=UPPER(?)",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT TABLE.COLUMN1 AS columnAlias FROM schema1.TABLE"
+ + " WHERE UPPER(columnAlias)=UPPER(?)",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testAsColumnWithIgnoreCaseIntegerColumnAndDefaultSchema()
@@ -429,14 +464,21 @@ public class SqlBuilderOldCriteriaTest e
criteria.addSelectColumn("columnAlias");
criteria.add("columnAlias", "1");
criteria.setIgnoreCase(true);
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT TABLE.COLUMN4 AS columnAlias FROM schema1.TABLE"
- + " WHERE columnAlias=?",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT TABLE.COLUMN4 AS columnAlias FROM schema1.TABLE"
+ + " WHERE columnAlias=?",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testInnerJoinImplicit()
@@ -611,15 +653,22 @@ public class SqlBuilderOldCriteriaTest e
Criteria criteria = new Criteria();
criteria.addSelectColumn("*");
criteria.addJoin("table1.column", "table2.column");
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT *"
- + " FROM schema1.table1, schema1.table2"
- + " WHERE table1.column=table2.column",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT *"
+ + " FROM schema1.table1, schema1.table2"
+ + " WHERE table1.column=table2.column",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testInnerJoinImplicitWithAliasAndDefaultSchema()
@@ -629,14 +678,22 @@ public class SqlBuilderOldCriteriaTest e
criteria.addSelectColumn("alias.column1");
criteria.addAlias("alias", "table1");
criteria.addJoin("alias.column", "table2.column");
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT alias.column1 FROM schema1.table1 alias, schema1.table2"
- + " WHERE alias.column=table2.column",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT alias.column1 "
+ + "FROM schema1.table1 alias, schema1.table2"
+ + " WHERE alias.column=table2.column",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testInnerJoinImplicitWithAliasAndSchema()
Modified: db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java (original)
+++ db/torque/torque4/trunk/torque-runtime/src/test/java/org/apache/torque/sql/SqlBuilderTest.java Wed Aug 22 03:51:00 2012
@@ -506,14 +506,21 @@ public class SqlBuilderTest extends Base
{
Criteria criteria = new Criteria();
criteria.addAscendingOrderByColumn(new ColumnImpl("table.column1"));
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT table.column1 FROM schema1.table "
- + "ORDER BY table.column1 ASC",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT table.column1 FROM schema1.table "
+ + "ORDER BY table.column1 ASC",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testOrderByWithFunction() throws Exception
@@ -690,13 +697,20 @@ public class SqlBuilderTest extends Base
Criteria criteria = new Criteria();
criteria.addAlias("alias", "table");
criteria.addSelectColumn(new ColumnImpl("alias.column1"));
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT alias.column1 FROM schema1.table alias",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT alias.column1 FROM schema1.table alias",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testAliasWithIgnoreCaseUnknownColumnType() throws Exception
@@ -793,14 +807,21 @@ public class SqlBuilderTest extends Base
criteria.addSelectColumn(new ColumnImpl("alias.COLUMN1"));
criteria.where(new ColumnImpl("alias.COLUMN1"), "1");
criteria.setIgnoreCase(true);
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT alias.COLUMN1 FROM schema1.TABLE alias "
- + "WHERE UPPER(alias.COLUMN1)=UPPER(?)",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT alias.COLUMN1 FROM schema1.TABLE alias "
+ + "WHERE UPPER(alias.COLUMN1)=UPPER(?)",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testAliasWithIgnoreCaseIntegerColumnTypeAndDefaultSchema()
@@ -811,14 +832,21 @@ public class SqlBuilderTest extends Base
criteria.addSelectColumn(new ColumnImpl("alias.COLUMN4"));
criteria.where(new ColumnImpl("alias.COLUMN4"), "1");
criteria.setIgnoreCase(true);
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT alias.COLUMN4 FROM schema1.TABLE alias "
- + "WHERE alias.COLUMN4=?",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT alias.COLUMN4 FROM schema1.TABLE alias "
+ + "WHERE alias.COLUMN4=?",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testAsColumn() throws Exception
@@ -878,14 +906,21 @@ public class SqlBuilderTest extends Base
criteria.addSelectColumn(new ColumnImpl("columnAlias"));
criteria.where(new ColumnImpl("columnAlias"), "1");
criteria.setIgnoreCase(true);
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT TABLE.COLUMN1 AS columnAlias FROM schema1.TABLE"
- + " WHERE UPPER(columnAlias)=UPPER(?)",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT TABLE.COLUMN1 AS columnAlias FROM schema1.TABLE"
+ + " WHERE UPPER(columnAlias)=UPPER(?)",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testAsColumnWithIgnoreCaseIntegerColumnAndDefaultSchema()
@@ -896,14 +931,21 @@ public class SqlBuilderTest extends Base
criteria.addSelectColumn(new ColumnImpl("columnAlias"));
criteria.where(new ColumnImpl("columnAlias"), "1");
criteria.setIgnoreCase(true);
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT TABLE.COLUMN4 AS columnAlias FROM schema1.TABLE"
- + " WHERE columnAlias=?",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT TABLE.COLUMN4 AS columnAlias FROM schema1.TABLE"
+ + " WHERE columnAlias=?",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testInnerJoinImplicit()
@@ -1203,15 +1245,22 @@ public class SqlBuilderTest extends Base
criteria.addJoin(
new ColumnImpl("table1.column"),
new ColumnImpl("table2.column"));
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT *"
- + " FROM schema1.table1, schema1.table2"
- + " WHERE table1.column=table2.column",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT *"
+ + " FROM schema1.table1, schema1.table2"
+ + " WHERE table1.column=table2.column",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testInnerJoinImplicitWithAliasAndDefaultSchema()
@@ -1223,14 +1272,21 @@ public class SqlBuilderTest extends Base
criteria.addJoin(
new ColumnImpl("alias.column"),
new ColumnImpl("table2.column"));
- Database database = databaseMap.getDatabase();
- database.setSchema("schema1");
- criteria.setDbName(database.getName());
- Query query = SqlBuilder.buildQuery(criteria);
- assertEquals(
- "SELECT alias.column1 FROM schema1.table1 alias, schema1.table2"
- + " WHERE alias.column=table2.column",
- query.toString());
+ String oldSchema = database.getSchema();
+ try
+ {
+ database.setSchema("schema1");
+ criteria.setDbName(database.getName());
+ Query query = SqlBuilder.buildQuery(criteria);
+ assertEquals(
+ "SELECT alias.column1 FROM schema1.table1 alias, schema1.table2"
+ + " WHERE alias.column=table2.column",
+ query.toString());
+ }
+ finally
+ {
+ database.setSchema(oldSchema);
+ }
}
public void testInnerJoinImplicitWithAliasAndSchema()
@@ -1454,12 +1510,12 @@ public class SqlBuilderTest extends Base
assertEquals(0, query.getPreparedStatementReplacements().size());
}
- public void testCriterionCustom() throws Exception
+ public void testCriterionCustomSql() throws Exception
{
Criteria criteria = new Criteria();
criteria.addSelectColumn(new ColumnImpl("table.column"));
Criterion criterion
- = new Criterion("A", "A = functionOf(B)", SqlEnum.CUSTOM);
+ = new Criterion("A", null, null, "A = functionOf(B)", null);
criteria.where(criterion);
Query query = SqlBuilder.buildQuery(criteria);
assertEquals("SELECT table.column FROM table WHERE A = functionOf(B)",
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/initDatabaseMap.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/initDatabaseMap.vm?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/initDatabaseMap.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/initDatabaseMap.vm Wed Aug 22 03:51:00 2012
@@ -39,7 +39,8 @@
## TODO the following needs not be executed for every table
## but it causes no harm
#if (${databaseOptionElements.size()} > 0)
- DatabaseMap databaseMap = Torque.getDatabaseMap("$databaseName");
+ DatabaseMap databaseMap = Torque.getOrCreateDatabase("$databaseName")
+ .getDatabaseMap();
#end
#foreach($databaseOptionElement in $databaseOptionElements)
#set ( $key = $databaseOptionElement.getAttribute("key") )
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplCreator.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplCreator.vm?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplCreator.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/peerImplCreator.vm Wed Aug 22 03:51:00 2012
@@ -34,9 +34,7 @@
{
${peerImplClassName} instance = new ${peerImplClassName}();
instance.setRecordMapper(new $recordMapperClassName());
- instance.setTableMap(
- Torque.getDatabaseMap(${peerClassName}.DATABASE_NAME)
- .getTable(${peerClassName}.TABLE_NAME));
+ instance.setTableMap(${peerClassName}.TABLE);
instance.setDatabaseName(${peerClassName}.DATABASE_NAME);
return instance;
Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/staticInit.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/staticInit.vm?rev=1375888&r1=1375887&r2=1375888&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/staticInit.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/om/templates/peer/base/staticInit.vm Wed Aug 22 03:51:00 2012
@@ -31,7 +31,8 @@
#set ( $databaseName = $databaseElement.getAttribute("name") )
static
{
- DatabaseMap dbMap = Torque.getDatabaseMap("$databaseName");
+ DatabaseMap dbMap = Torque.getOrCreateDatabase("$databaseName")
+ .getDatabaseMap();
if (dbMap.getTable("$name") == null)
{
dbMap.addTable("$name");
---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org