You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by jv...@apache.org on 2001/10/27 21:04:39 UTC
cvs commit: jakarta-turbine-torque/src/java/org/apache/torque/task TorqueCreateDatabase.java TorqueDataDTDTask.java TorqueDataDumpTask.java TorqueDataModelTask.java TorqueDataSQLTask.java TorqueJDBCTransformTask.java TorqueObjectModelTask.java TorqueSQLTask.java TorqueSQLTransformTask.java
jvanzyl 01/10/27 12:04:39
Modified: src/java/org/apache/torque/task TorqueCreateDatabase.java
TorqueDataDTDTask.java TorqueDataDumpTask.java
TorqueDataModelTask.java TorqueDataSQLTask.java
TorqueJDBCTransformTask.java
TorqueObjectModelTask.java TorqueSQLTask.java
TorqueSQLTransformTask.java
Log:
- all the changes in the tasks that have occured in the 2.x branch
and in the decoupled torque have now been merged together and placed
in the decoupled torque.
once i am finished checking in all the changes i will attempt to
get turbine 2.x to work with the decoupled torque as it will become
impossible to maintain both trees.
i have tested all the changes i have made with scarab who is the
primary consumer of the decoupled torque so their build shouldn't
be affected by the changes i've made.
i used the a newly created torque.zip file and the a build of velocity
from CVS which includes fixes to correct contextProperties attribute
processing.
Revision Changes Path
1.4 +14 -58 jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueCreateDatabase.java
Index: TorqueCreateDatabase.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueCreateDatabase.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TorqueCreateDatabase.java 2001/09/25 20:57:48 1.3
+++ TorqueCreateDatabase.java 2001/10/27 19:04:37 1.4
@@ -25,13 +25,13 @@
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache Turbine" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
+ * 4. The names "Apache" and "Apache Software Foundation" and
+ * "Apache Turbine" must not be used to endorse or promote products
+ * derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
- * "Apache Turbine", nor may "Apache" appear in their name, without
+ * "Apache Turbine", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
@@ -56,33 +56,18 @@
import org.apache.velocity.context.Context;
import org.apache.velocity.VelocityContext;
-import org.apache.velocity.texen.ant.TexenTask;
-import org.apache.torque.engine.database.model.AppData;
-import org.apache.torque.engine.database.transform.XmlToAppData;
-
/**
* An extended Texen task used for generating simple scripts
* for creating databases on various platforms.
*
- * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
- * @version $Id: TorqueCreateDatabase.java,v 1.3 2001/09/25 20:57:48 jvanzyl Exp $
+ * @author <a href="mailto:jvanzyl@zenplex.com">Jason van Zyl</a>
+ * @version $Id: TorqueCreateDatabase.java,v 1.4 2001/10/27 19:04:37 jvanzyl Exp $
*/
-public class TorqueCreateDatabase
- extends TexenTask
+public class TorqueCreateDatabase
+ extends TorqueDataModelTask
{
/**
- * Application model. In this case a database model.
- */
- private AppData app;
-
- /**
- * XML that describes the database model, this is transformed
- * into the application model object.
- */
- private String xmlFile;
-
- /**
* The target database vendor: MySQL, Oracle.
*/
private String targetDatabase;
@@ -98,40 +83,18 @@
* Database user.
*/
private String databaseUser;
-
+
/**
* Password for specified database user.
*/
private String databasePassword;
-
+
/**
* Host on which specified database resides.
*/
private String databaseHost;
/**
- * Get the xml schema describing the application
- * model.
- *
- * @return String xml schema file.
- */
- public String getXmlFile ()
- {
- return xmlFile;
- }
-
- /**
- * Set the xml schema describing the application
- * model.
- *
- * @param String xml schema file.
- */
- public void setXmlFile(String v)
- {
- xmlFile = v;
- }
-
- /**
* Get the target database.
*
* @return String target database.
@@ -237,23 +200,16 @@
* templates.
*/
public Context initControlContext()
- {
- // Create a new Velocity context.
- Context context = new VelocityContext();
+ throws Exception
+ {
+ super.initControlContext();
- // Transform the XML database schema into an object that
- // represents our model.
- XmlToAppData xmlParser = new XmlToAppData();
- app = xmlParser.parseFile(xmlFile);
-
- // Place our model in the context.
- context.put("appData", app);
-
context.put("targetDatabase", targetDatabase);
context.put("targetPlatform", targetPlatform);
context.put("databaseUser", databaseUser);
context.put("databasePassword", databasePassword);
context.put("databaseHost", databaseHost);
+
return context;
}
}
1.3 +7 -76 jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueDataDTDTask.java
Index: TorqueDataDTDTask.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueDataDTDTask.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TorqueDataDTDTask.java 2001/08/10 12:23:03 1.2
+++ TorqueDataDTDTask.java 2001/10/27 19:04:38 1.3
@@ -54,85 +54,16 @@
* <http://www.apache.org/>.
*/
-import java.util.Date;
-import org.apache.velocity.context.Context;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.texen.ant.TexenTask;
-import org.apache.torque.engine.database.model.AppData;
-import org.apache.torque.engine.database.transform.XmlToAppData;
-
/**
- * An extended Texen task used for generating data DTD from
- * an XML schema describing a database structure.
+ * An extended Texen task used for generating data DTD from
+ * an XML schema describing a database structure.
*
- * @author <a href="mailto:fedor.karpelevitch@home.com"> Fedor Karpelevitch </a>
- * @version $Id: TorqueDataDTDTask.java,v 1.2 2001/08/10 12:23:03 knielsen Exp $
+ * @author <a href="mailto:fedor.karpelevitch@home.com"> Fedor Karpelevitch </a>
+ * @author <a href="mailto:jvanzyl@zenplex.com">Jason van Zyl</a>
+ * @version $Id: TorqueDataDTDTask.java,v 1.3 2001/10/27 19:04:38 jvanzyl Exp $
*/
-public class TorqueDataDTDTask
- extends TexenTask
+public class TorqueDataDTDTask
+ extends TorqueDataModelTask
{
- /**
- * Application model. In this case a database model.
- */
- private AppData app;
-
- /**
- * XML that describes the database model, this is transformed
- * into the application model object.
- */
- private String xmlFile;
-
-
- /**
- * Get the xml schema describing the application
- * model.
- *
- * @return String xml schema file.
- */
- public String getXmlFile()
- {
- return xmlFile;
- }
-
-
- /**
- * Set the xml schema describing the application
- * model.
- *
- * @param v The new XmlFile value
- */
- public void setXmlFile(String v)
- {
- xmlFile = v;
- }
-
-
- /**
- * Set up the initialial context for generating the
- * SQL from the XML schema.
- *
- * @return Description of the Returned Value
- */
- public Context initControlContext()
- {
- /*
- * Create a new Velocity context.
- */
- Context context = new VelocityContext();
-
- /*
- * Transform the XML database schema into an
- * object that represents our model.
- */
- XmlToAppData xmlParser = new XmlToAppData();
- app = xmlParser.parseFile(xmlFile);
-
- /*
- * Place our model in the context.
- */
- context.put("appData", app);
-
- return context;
- }
}
1.3 +8 -70 jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueDataDumpTask.java
Index: TorqueDataDumpTask.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueDataDumpTask.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TorqueDataDumpTask.java 2001/08/10 12:23:03 1.2
+++ TorqueDataDumpTask.java 2001/10/27 19:04:38 1.3
@@ -72,26 +72,19 @@
/**
* An extended Texen task used for dumping data from db into XML
*
- * @author <a href="mailto:fedor.karpelevitch@home.com"> Fedor Karpelevitch </a>
- * @version $Id: TorqueDataDumpTask.java,v 1.2 2001/08/10 12:23:03 knielsen Exp $
+ * @author <a href="mailto:fedor.karpelevitch@home.com"> Fedor Karpelevitch </a>
+ * @author <a href="jvanzyl@zenplex.com">Jason van Zyl</a>
+ * @version $Id: TorqueDataDumpTask.java,v 1.3 2001/10/27 19:04:38 jvanzyl Exp $
*/
public class TorqueDataDumpTask
- extends TexenTask
+ extends TorqueDataModelTask
{
/**
- * Application model. In this case a database model.
+ * Database name.
*/
- private AppData app;
-
private String databaseName;
/**
- * XML that describes the database model, this is transformed
- * into the application model object.
- */
- private String xmlFile;
-
- /**
* Database URL used for JDBC connection.
*/
private String databaseUrl;
@@ -111,32 +104,7 @@
*/
private String databasePassword;
-
/**
- * Get the xml schema describing the application
- * model.
- *
- * @return String xml schema file.
- */
- public String getXmlFile()
- {
- return xmlFile;
- }
-
-
- /**
- * Set the xml schema describing the application
- * model.
- *
- * @param v The new XmlFile value
- */
- public void setXmlFile(String v)
- {
- xmlFile = v;
- }
-
-
- /**
* Get the database name to dump
*
* @return The DatabaseName value
@@ -146,7 +114,6 @@
return databaseName;
}
-
/**
* Set the database name
*
@@ -157,7 +124,6 @@
databaseName = v;
}
-
/**
* Get the database url
*
@@ -168,7 +134,6 @@
return databaseUrl;
}
-
/**
* Set the database url
*
@@ -179,7 +144,6 @@
databaseUrl = v;
}
-
/**
* Get the database driver name
*
@@ -190,7 +154,6 @@
return databaseDriver;
}
-
/**
* Set the database driver name
*
@@ -201,7 +164,6 @@
databaseDriver = v;
}
-
/**
* Get the database user
*
@@ -212,7 +174,6 @@
return databaseUser;
}
-
/**
* Set the database user
*
@@ -223,7 +184,6 @@
databaseUser = v;
}
-
/**
* Get the database password
*
@@ -234,7 +194,6 @@
return databasePassword;
}
-
/**
* Set the database password
*
@@ -245,36 +204,16 @@
databasePassword = v;
}
-
/**
* Initializes initial context
*
* @return Description of the Returned Value
*/
public Context initControlContext()
+ throws Exception
{
- /*
- * Create a new Velocity context.
- */
- Context context = new VelocityContext();
-
- /*
- * Transform the XML database schema into an
- * object that represents our model.
- */
- XmlToAppData xmlParser = new XmlToAppData();
- app = xmlParser.parseFile(xmlFile);
-
- /*
- * Place our model in the context.
- */
- Database dbm = app.getDatabase(databaseName);
- if (dbm == null)
- {
- dbm = app.getDatabases()[0];
- }
- context.put("databaseModel", dbm);
-
+ super.initControlContext();
+
context.put("dataset", "all");
System.err.println("Your DB settings are:");
@@ -309,7 +248,6 @@
return context;
}
-
/**
* A nasty do-it-all tool class. It serves as:
1.4 +10 -8 jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueDataModelTask.java
Index: TorqueDataModelTask.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueDataModelTask.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TorqueDataModelTask.java 2001/10/25 00:19:52 1.3
+++ TorqueDataModelTask.java 2001/10/27 19:04:38 1.4
@@ -1,4 +1,4 @@
-package org.apache.torque;
+package org.apache.torque.task;
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -180,9 +180,9 @@
*
* @param v The new XmlFile value
*/
- public void setXmlFile(String v)
+ public void setXmlFile(String xmlFile)
{
- xmlFile = v;
+ this.xmlFile = project.resolveFile(xmlFile).toString();
}
/**
@@ -217,7 +217,10 @@
xmlParser = new XmlToAppData();
AppData ad = xmlParser.parseFile(xmlFile);
xmlParser.parseFile(xmlFile);
- //FIXME: ad.setName(xmlFile.substring(0,xmlFile.indexOf(".")));
+ String name = xmlFile.substring(
+ xmlFile.lastIndexOf(System.getProperty("file.separator"))+1,
+ xmlFile.indexOf("."));
+ ad.setName(name);
dataModels.addElement(ad);
}
else
@@ -240,7 +243,7 @@
xmlParser.parseFile(
new File(srcDir, dataModelFiles[j]).toString());
- //FIXME: ad.setName(dataModelFiles[j].substring(0,dataModelFiles[j].indexOf(".")));
+ ad.setName(dataModelFiles[j].substring(0,dataModelFiles[j].indexOf(".")));
dataModels.addElement(ad);
}
}
@@ -255,10 +258,9 @@
while (i.hasNext())
{
AppData ad = (AppData) i.next();
- //FIXME: Database database = ad.getDatabase();
- Database database = null;
+ Database database = ad.getDatabase();
databaseNames.put(database.getName(), database.getName());
- //FIXME: dataModelDbMap.put(ad.getName(), database.getName());
+ dataModelDbMap.put(ad.getName(), database.getName());
}
// Create a new Velocity context.
1.3 +27 -99 jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueDataSQLTask.java
Index: TorqueDataSQLTask.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueDataSQLTask.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TorqueDataSQLTask.java 2001/08/10 12:23:03 1.2
+++ TorqueDataSQLTask.java 2001/10/27 19:04:38 1.3
@@ -54,41 +54,31 @@
* <http://www.apache.org/>.
*/
-import java.util.Date;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.util.List;
+import java.util.Properties;
import org.apache.velocity.context.Context;
import org.apache.velocity.VelocityContext;
-import org.apache.velocity.texen.ant.TexenTask;
import org.apache.torque.engine.database.model.AppData;
import org.apache.torque.engine.database.model.Database;
-import org.apache.torque.engine.database.transform.XmlToAppData;
import org.apache.torque.engine.database.transform.XmlToData;
/**
* An extended Texen task used for generating SQL source from
* an XML data file
*
- * @author <a href="mailto:jvanzyl@apache.org"> Jason van Zyl </a>
+ * @author <a href="mailto:jvanzyl@periapt.com"> Jason van Zyl </a>
* @author <a href="mailto:jmcnally@collab.net"> John McNally </a>
* @author <a href="mailto:fedor.karpelevitch@home.com"> Fedor Karpelevitch </a>
- * @version $Id: TorqueDataSQLTask.java,v 1.2 2001/08/10 12:23:03 knielsen Exp $
+ * @version $Id: TorqueDataSQLTask.java,v 1.3 2001/10/27 19:04:38 jvanzyl Exp $
*/
public class TorqueDataSQLTask
- extends TexenTask
+ extends TorqueDataModelTask
{
- /**
- * Application model. In this case a database model.
- */
- private AppData app;
-
- /**
- * XML that describes the database model, this is transformed
- * into the application model object.
- */
- private String xmlFile;
private String dataXmlFile;
private String dataDTD;
-
+
/**
* The target database(s) we are generating SQL
* for. Right now we can only deal with a single
@@ -97,33 +87,6 @@
*/
private String targetDatabase;
- private String databaseName;
-
-
- /**
- * Get the xml schema describing the application
- * model.
- *
- * @return String xml schema file.
- */
- public String getXmlFile()
- {
- return xmlFile;
- }
-
-
- /**
- * Set the xml schema describing the application
- * model.
- *
- * @param v The new XmlFile value
- */
- public void setXmlFile(String v)
- {
- xmlFile = v;
- }
-
-
/**
* Sets the DataXmlFile attribute of the TorqueDataSQLTask object
*
@@ -134,7 +97,6 @@
dataXmlFile = v;
}
-
/**
* Gets the DataXmlFile attribute of the TorqueDataSQLTask object
*
@@ -145,7 +107,6 @@
return dataXmlFile;
}
-
/**
* Get the current target database.
*
@@ -156,7 +117,6 @@
return targetDatabase;
}
-
/**
* Set the current target database. This is where
* generated java classes will live.
@@ -168,30 +128,7 @@
targetDatabase = v;
}
-
- /**
- * Gets the DatabaseName attribute of the TorqueDataSQLTask object
- *
- * @return The DatabaseName value
- */
- public String getDatabaseName()
- {
- return databaseName;
- }
-
-
/**
- * Sets the DatabaseName attribute of the TorqueDataSQLTask object
- *
- * @param v The new DatabaseName value
- */
- public void setDatabaseName(String v)
- {
- databaseName = v;
- }
-
-
- /**
* Gets the DataDTD attribute of the TorqueDataSQLTask object
*
* @return The DataDTD value
@@ -201,7 +138,6 @@
return dataDTD;
}
-
/**
* Sets the DataDTD attribute of the TorqueDataSQLTask object
*
@@ -211,8 +147,7 @@
{
dataDTD = v;
}
-
-
+
/**
* Set up the initialial context for generating the
* SQL from the XML schema.
@@ -220,24 +155,13 @@
* @return Description of the Returned Value
*/
public Context initControlContext()
+ throws Exception
{
- /*
- * Create a new Velocity context.
- */
- Context context = new VelocityContext();
-
- /*
- * Transform the XML database schema into an
- * object that represents our model.
- */
- XmlToAppData xmlParser = new XmlToAppData();
- app = xmlParser.parseFile(xmlFile);
-
- Database db = app.getDatabase(databaseName);
- if (db == null)
- {
- db = app.getDatabases()[0];
- }
+ super.initControlContext();
+
+ AppData app = (AppData) getDataModels().elementAt(0);
+ Database db = app.getDatabase();
+
try
{
XmlToData dataXmlParser = new XmlToData(db, dataDTD);
@@ -246,19 +170,23 @@
}
catch (Exception e)
{
- System.err.println("Exception parsing data XML:");
- e.printStackTrace();
+ throw new Exception("Exception parsing data XML:");
}
- /*
- * Place our model in the context.
- */
+
+ // Place our model in the context.
context.put("appData", app);
- /*
- * Place the target database in the context.
- */
+ // Place the target database in the context.
context.put("targetDatabase", targetDatabase);
-
+
+ Properties p = new Properties();
+ FileInputStream fis = new FileInputStream(getSqlDbMap());
+ p.load(fis);
+ fis.close();
+
+ p.setProperty(getOutputFile(), db.getName());
+ p.store(new FileOutputStream(getSqlDbMap()),"Sqlfile -> Database map");
+
return context;
}
}
1.2 +23 -2 jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueJDBCTransformTask.java
Index: TorqueJDBCTransformTask.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueJDBCTransformTask.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TorqueJDBCTransformTask.java 2001/08/02 05:08:37 1.1
+++ TorqueJDBCTransformTask.java 2001/10/27 19:04:38 1.2
@@ -90,9 +90,9 @@
* This class generates an XML schema of an existing database from
* JDBC metadata.
*
- * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
+ * @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a>
* @author <a href="mailto:fedor.karpelevitch@barra.com">Fedor Karpelevitch</a>
- * @version $Id: TorqueJDBCTransformTask.java,v 1.1 2001/08/02 05:08:37 jvanzyl Exp $
+ * @version $Id: TorqueJDBCTransformTask.java,v 1.2 2001/10/27 19:04:38 jvanzyl Exp $
*/
public class TorqueJDBCTransformTask extends Task
{
@@ -288,6 +288,7 @@
/* int columnNullableUnknown = 2; */
Integer nullType = (Integer) v.elementAt(3);
+ String defValue = (String)v.elementAt(4);
Element column = doc.createElement("column");
column.setAttribute("name", name);
@@ -316,6 +317,24 @@
column.setAttribute("primaryKey", "true");
}
+ if (defValue!=null)
+ {
+ // trim out parens & quotes out of def value.
+ // makes sense for MSSQL. not sure about others.
+
+ if (defValue.startsWith("(") && defValue.endsWith(")"))
+ {
+ defValue = defValue.substring(1, defValue.length()-1);
+ }
+
+ if (defValue.startsWith("'") && defValue.endsWith("'"))
+ {
+ defValue = defValue.substring(1, defValue.length()-1);
+ }
+
+ column.setAttribute("default", defValue);
+ }
+
table.appendChild(column);
}
@@ -397,12 +416,14 @@
Integer sqlType = new Integer(columnSet.getString(5));
Integer size = new Integer(columnSet.getInt(7));
Integer nullType = new Integer(columnSet.getInt(11));
+ String defValue = columnSet.getString(13);
Vector v = new Vector();
v.addElement (name);
v.addElement (sqlType);
v.addElement (size);
v.addElement (nullType);
+ v.addElement (defValue);
columns.addElement (v);
}
return columns;
1.3 +5 -107 jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueObjectModelTask.java
Index: TorqueObjectModelTask.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueObjectModelTask.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TorqueObjectModelTask.java 2001/08/22 20:11:08 1.2
+++ TorqueObjectModelTask.java 2001/10/27 19:04:38 1.3
@@ -54,67 +54,26 @@
* <http://www.apache.org/>.
*/
-import java.util.Date;
-
import org.apache.velocity.context.Context;
-import org.apache.velocity.texen.ant.TexenTask;
-import org.apache.torque.engine.database.model.AppData;
-import org.apache.torque.engine.database.transform.XmlToAppData;
+import org.apache.velocity.VelocityContext;
/**
* An ant task for generating output by using Velocity
*
- * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
+ * @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a>
* @author <a href="mailto:jmcnally@collab.net>John McNally</a>
- * @version $Id: TorqueObjectModelTask.java,v 1.2 2001/08/22 20:11:08 dlr Exp $
+ * @version $Id: TorqueObjectModelTask.java,v 1.3 2001/10/27 19:04:38 jvanzyl Exp $
*/
-public class TorqueObjectModelTask extends TexenTask
+public class TorqueObjectModelTask
+ extends TorqueDataModelTask
{
/**
- * Application model.
- */
- private AppData app;
-
- /**
- * XML schema file.
- */
- private String xmlFile;
-
- /**
* Target Java package to place the generated
* files in.
*/
private String targetPackage;
/**
- * The target database(s) we are generating SQL
- * for. Right now we can only deal with a single
- * target, but we will support multiple targets
- * soon.
- */
- private String targetDatabase;
-
- /**
- * Get the current xml file.
- *
- * @return String xml schema file.
- */
- public String getXmlFile ()
- {
- return xmlFile;
- }
-
- /**
- * Set the xml file.
- *
- * @param String xml schema file.
- */
- public void setXmlFile(String v)
- {
- xmlFile = v;
- }
-
- /**
* Get the current target package.
*
* @return return target java package.
@@ -133,66 +92,5 @@
public void setTargetPackage (String v)
{
targetPackage = v;
- }
-
- /**
- * Get the current target database.
- *
- * @return String target database(s)
- */
- public String getTargetDatabase ()
- {
- return targetDatabase;
- }
-
- /**
- * Set the current target database.
- *
- * @param String target database(s)
- */
- public void setTargetDatabase (String v)
- {
- targetDatabase = v;
- }
-
- /**
- * Populates the initialial context with the model used to
- * generate SQL from a XML schema.
- *
- * @param context The initial context, ripe for population.
- * @exception Exception None expected.
- */
- protected void populateInitialContext(Context context)
- throws Exception
- {
- super.populateInitialContext(context);
-
- /*
- * Build our application model from the
- * XML schema. Can someone document the
- * double pass here?
- */
- XmlToAppData xmlParser = new XmlToAppData();
-
- app = xmlParser.parseFile(xmlFile);
- xmlParser.parseFile(xmlFile);
-
- /*
- * Place some initial values in the context.
- * most of these could be automatically fed
- * into the context with the contextProperties
- * option.
- */
- context.put("appData", app);
-
- /*
- * Place the target database in the context.
- */
- context.put("targetDatabase", targetDatabase);
-
- /*
- * Place the target package in the context.
- */
- context.put("targetPackage", targetPackage);
}
}
1.7 +92 -65 jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueSQLTask.java
Index: TorqueSQLTask.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueSQLTask.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TorqueSQLTask.java 2001/09/25 20:57:48 1.6
+++ TorqueSQLTask.java 2001/10/27 19:04:38 1.7
@@ -25,13 +25,13 @@
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
- * 4. The names "Apache" and "Apache Software Foundation" and
- * "Apache Turbine" must not be used to endorse or promote products
- * derived from this software without prior written permission. For
+ * 4. The names "Apache" and "Apache Software Foundation" and
+ * "Apache Turbine" must not be used to endorse or promote products
+ * derived from this software without prior written permission. For
* written permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
- * "Apache Turbine", nor may "Apache" appear in their name, without
+ * "Apache Turbine", nor may "Apache" appear in their name, without
* prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
@@ -54,39 +54,26 @@
* <http://www.apache.org/>.
*/
-import org.apache.commons.util.StringUtils;
-
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.util.Properties;
+import java.util.Iterator;
import org.apache.velocity.context.Context;
-import org.apache.velocity.texen.ant.TexenTask;
-
-import org.apache.torque.Torque;
-import org.apache.torque.engine.database.model.AppData;
-import org.apache.torque.engine.database.transform.XmlToAppData;
+import org.apache.velocity.VelocityContext;
/**
* An extended Texen task used for generating SQL source from
* an XML schema describing a database structure.
*
- * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
+ * @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a>
* @author <a href="mailto:jmcnally@collab.net>John McNally</a>
- * @author <a href="mailto:dlr@finemaltcoding.com>Daniel Rall</a>
- * @version $Id: TorqueSQLTask.java,v 1.6 2001/09/25 20:57:48 jvanzyl Exp $
+ * @version $Id: TorqueSQLTask.java,v 1.7 2001/10/27 19:04:38 jvanzyl Exp $
*/
-public class TorqueSQLTask
- extends TexenTask
+public class TorqueSQLTask
+ extends TorqueDataModelTask
{
/**
- * Application model. In this case a database model.
- */
- private AppData app;
-
- /**
- * XML that describes the database model, this is transformed
- * into the application model object.
- */
- private String xmlFile;
-
- /**
* The target database(s) we are generating SQL
* for. Right now we can only deal with a single
* target, but we will support multiple targets
@@ -94,34 +81,41 @@
*/
private String targetDatabase;
- /**
- * Get the xml schema describing the application
- * model.
- *
- * @return String xml schema file.
- */
- public String getXmlFile ()
+ // if the database is set than all generated sql files
+ // will be placed in the specified database, the database
+ // will not be taken from the data model schema file.
+
+ private String database;
+ private String suffix = "";
+
+ public void setDatabase(String database)
{
- return xmlFile;
+ this.database = database;
}
+
+ public String getDatabase()
+ {
+ return database;
+ }
- /**
- * Set the xml schema describing the application
- * model.
- *
- * @param String xml schema file.
- */
- public void setXmlFile(String v)
+ public void setSuffix(String suffix)
{
- xmlFile = v;
+ this.suffix = suffix;
}
+
+ public String getSuffix()
+ {
+ return suffix;
+ }
+
+
/**
* Get the current target package.
*
* @return String target database(s)
*/
- public String getTargetDatabase()
+ public String getTargetDatabase ()
{
return targetDatabase;
}
@@ -132,34 +126,67 @@
*
* @param String target database(s)
*/
- public void setTargetDatabase(String v)
+ public void setTargetDatabase (String v)
{
targetDatabase = v;
}
- /**
- * Populates the initialial context with the model used to
- * generate SQL from a XML schema.
- *
- * @param context The initial context, ripe for population.
- * @exception Exception None expected.
- */
- protected void populateInitialContext(Context context)
+ private void createSqlDbMap()
throws Exception
{
- // Adds $now.
- super.populateInitialContext(context);
-
- // Transform the XML database schema into an object that
- // represents our model.
- XmlToAppData xmlParser = new XmlToAppData
- (getTargetDatabase(), getTemplatePath() + "/sql/base/");
- app = xmlParser.parseFile(xmlFile);
-
- // Place our model in the context.
- context.put("appData", app);
+ if (getSqlDbMap() == null)
+ {
+ return;
+ }
+
+ // Produce the sql -> database map
+ Properties sqldbmap = new Properties();
+
+ // Check to see if the sqldbmap has already been created.
+ File file = new File(getSqlDbMap());
+
+ if (file.exists())
+ {
+ FileInputStream fis = new FileInputStream(file);
+ sqldbmap.load(fis);
+ fis.close();
+ }
+
+ Iterator i = getDataModelDbMap().keySet().iterator();
+
+ while (i.hasNext())
+ {
+ String dataModelName = (String) i.next();
+ String sqlFile = dataModelName + suffix + ".sql";
+
+ String databaseName;
+
+ if (getDatabase() == null)
+ {
+ databaseName = (String) getDataModelDbMap().get(dataModelName);
+ }
+ else
+ {
+ databaseName = getDatabase();
+ }
+
+ sqldbmap.setProperty(sqlFile,databaseName);
+ }
+
+ sqldbmap.store(new FileOutputStream(getSqlDbMap()),"Sqlfile -> Database map");
+ }
- // Place the target database in the context.
+ /**
+ * Place our target database and target platform
+ * values into the context for use in the
+ * templates.
+ */
+ public Context initControlContext()
+ throws Exception
+ {
+ super.initControlContext();
context.put("targetDatabase", targetDatabase);
+ createSqlDbMap();
+ return context;
}
}
1.3 +21 -6 jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueSQLTransformTask.java
Index: TorqueSQLTransformTask.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueSQLTransformTask.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TorqueSQLTransformTask.java 2001/08/10 12:23:03 1.2
+++ TorqueSQLTransformTask.java 2001/10/27 19:04:38 1.3
@@ -66,14 +66,21 @@
/**
* An ant task for creating an xml schema from an sql schema
*
- * @author <a href="mailto:leon@opticode.co.za>Leon Messerschmidt</a>
- * @version $Id: TorqueSQLTransformTask.java,v 1.2 2001/08/10 12:23:03 knielsen Exp $
+ * @author <a href="mailto:leon@opticode.co.za">Leon Messerschmidt</a>
+ * @author <a href="jvanzyl@zenplex.com">Jason van Zyl</a>
+ * @version $Id: TorqueSQLTransformTask.java,v 1.3 2001/10/27 19:04:38 jvanzyl Exp $
*/
public class TorqueSQLTransformTask
extends Task
{
-
+ /**
+ * SQL input file.
+ */
private String inputFile;
+
+ /**
+ * XML descriptor output file.
+ */
private String outputFile;
/**
@@ -92,7 +99,6 @@
inputFile = v;
}
-
/**
* Get the current output file.
*/
@@ -111,7 +117,13 @@
outputFile = v;
}
- public void execute () throws BuildException
+ /**
+ * Execute the task.
+ *
+ * @throws BuildException
+ */
+ public void execute()
+ throws BuildException
{
try
{
@@ -133,7 +145,10 @@
}
catch (Throwable e)
{
- e.printStackTrace ();
+ // Propagate the error up the stack so that
+ // the stacktrace will appear in the standard
+ // ant output.
+ throw new BuildException(e);
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org