mpoeschl 02/04/11 10:10:40
Modified: src/conf build-torque.xml
Added: src/templates/ojb/repository Control.vm MainRepository.vm
Repository.vm
src/templates/ojb/model Control.vm Object.vm
src/ojbtest ojbcore-schema.xml ojbtest-schema.xml
Log:
added some generation stuff for ojb
(not fully working)
the torque generation stuff will be separated later, but i'll add the ojb stuuf here
for now
Revision Changes Path
1.23 +66 -0 jakarta-turbine-torque/src/conf/build-torque.xml
Index: build-torque.xml
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/conf/build-torque.xml,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- build-torque.xml 10 Apr 2002 22:24:46 -0000 1.22
+++ build-torque.xml 11 Apr 2002 17:10:40 -0000 1.23
@@ -676,5 +676,71 @@
</javadoc>
</target>
+ <!-- =================================================================== -->
+ <!-- =================================================================== -->
+ <!-- O J B S T U F F -->
+ <!-- =================================================================== -->
+ <!-- =================================================================== -->
+
+ <target
+ name="project-ojb-repository">
+
+ <echo message="+------------------------------------------+"/>
+ <echo message="| |"/>
+ <echo message="| Generating OJB repository |"/>
+ <echo message="| |"/>
+ <echo message="+------------------------------------------+"/>
+
+ <taskdef
+ name="ojb-repository"
+ classname="org.apache.torque.task.TorqueObjectModelTask">
+ <classpath refid="torque-classpath"/>
+ </taskdef>
+
+ <ojb-repository
+ contextProperties="${build.properties}"
+ controlTemplate="ojb/repository/Control.vm"
+ targetPackage="${targetPackage}.om"
+ targetDatabase="${database}"
+ outputDirectory="${torque.home}/${outputDirectory}/ojb"
+ templatePath="${templatePath}"
+ sqldbmap="${torque.home}/${outputDirectory}/sql/sqldb.map"
+ outputFile="report.${project}.ojb.generation">
+ <fileset dir="${torque.home}/${schemaDirectory}">
+ <include name="*-schema.xml"/>
+ </fileset>
+ </ojb-repository>
+ </target>
+
+ <target
+ name="project-ojb-model">
+
+ <echo message="+------------------------------------------+"/>
+ <echo message="| |"/>
+ <echo message="| Generating OJB model |"/>
+ <echo message="| |"/>
+ <echo message="+------------------------------------------+"/>
+
+ <taskdef
+ name="ojb-model"
+ classname="org.apache.torque.task.TorqueObjectModelTask">
+ <classpath refid="torque-classpath"/>
+ </taskdef>
+
+ <ojb-model
+ contextProperties="${build.properties}"
+ controlTemplate="ojb/model/Control.vm"
+ targetPackage="${targetPackage}.om"
+ targetDatabase="${database}"
+ outputDirectory="${torque.home}/${outputDirectory}/ojb"
+ templatePath="${templatePath}"
+ sqldbmap="${torque.home}/${outputDirectory}/sql/sqldb.map"
+ outputFile="report.${project}.ojb.generation">
+ <fileset dir="${torque.home}/${schemaDirectory}">
+ <include name="*-schema.xml"/>
+ </fileset>
+ </ojb-model>
+ </target>
+
</project>
1.1 jakarta-turbine-torque/src/templates/ojb/repository/Control.vm
Index: Control.vm
===================================================================
#set ( $basepath = $generator.OutputPath)
$generator.parse("ojb/repository/MainRepository.vm","repository.xml","dataModels",$dataModels)
#foreach ($dataModel in $dataModels)
#set ( $outFile = "repository_${dataModel.name}.xml" )
File to be created: $outFile
$generator.parse("ojb/repository/Repository.vm",$outFile,"dataModel",$dataModel)
#end
1.1
jakarta-turbine-torque/src/templates/ojb/repository/MainRepository.vm
Index: MainRepository.vm
===================================================================
#set ( $database = $dataModel.database )
<?xml version="1.0" encoding="UTF-8"?>
<!-- defining entities for include-files -->
<!DOCTYPE MappingRepository SYSTEM "repository.dtd" [
<!ENTITY user SYSTEM "repository_user.xml">
<!ENTITY junit SYSTEM "repository_junit.xml">
<!ENTITY internal SYSTEM "repository_internal.xml">
]>
<MappingRepository>
<!-- The Default JDBC Connection. If a Class does not specify its own JDBC
Connection,
the Connection specified here will be used. -->
<JdbcConnectionDescriptor id="default">
<dbms.name>Hsqldb</dbms.name>
<driver.name>org.hsqldb.jdbcDriver</driver.name>
<url.protocol>jdbc</url.protocol>
<url.subprotocol>hsqldb</url.subprotocol>
<url.dbalias>../OJB</url.dbalias>
<!--url.dbalias>ojb-1-0/build/test/OJB</url.dbalias-->
<user.name>sa</user.name>
<user.passwd></user.passwd>
</JdbcConnectionDescriptor>
<!-- include user defined mappings here -->
&user;
<!-- include mappings for JUnit tests and sample apps here -->
&junit;
<!-- include ojb internal mappings here -->
&internal;
</MappingRepository>
1.1
jakarta-turbine-torque/src/templates/ojb/repository/Repository.vm
Index: Repository.vm
===================================================================
#set ( $database = $dataModel.database )
#foreach ($table in $database.tables)
<ClassDescriptor id="$velocityCount">
<class.name>${table.getDatabase().getPackage()}${table.JavaName}</class.name>
<class.proxy>dynamic</class.proxy>
<class.extent>test.ojb.broker.BookArticle</class.extent>
<class.extent>test.ojb.broker.CdArticle</class.extent>
<table.name>$table.Name</table.name>
<conversionStrategy>test.ojb.broker.ArticleConversionStrategy</conversionStrategy>
#foreach ($col in $table.Columns)
<FieldDescriptor id="$velocityCount">
<field.name>$col.JavaName</field.name>
<column.name>$col.Name</column.name>
<jdbc_type>INTEGER</jdbc_type>
<PrimaryKey>$col.isPrimaryKey()</PrimaryKey>
<autoincrement>true</autoincrement>
</FieldDescriptor>
#end
</ClassDescriptor>
#end
1.1 jakarta-turbine-torque/src/templates/ojb/model/Control.vm
Index: Control.vm
===================================================================
#set ( $basepath = $generator.OutputPath)
#foreach ($dataModel in $dataModels)
#foreach ($database in $dataModel.Databases)
#if ($database.Package)
#set ($package = $database.Package)
#else
#set ($package = $targetPackage)
#end
#set ( $path = $strings.getPackageAsPath($package) )
$files.mkdir("$outputDirectory/$path")
#foreach ($tbl in $database.Tables)
$tbl.Name
#set ( $firstcap=$tbl.JavaName )
#set ( $fname = "${firstcap}.java" )
#set ( $path = "${strings.getPackageAsPath($package)}$fname" )
$generator.parse("ojb/model/Object.vm",$path,"table",$tbl)
#end
#end
#end
1.1 jakarta-turbine-torque/src/templates/ojb/model/Object.vm
Index: Object.vm
===================================================================
#set ($db = $table.Database)
#if ($db.Package)
#set ($package = $db.Package)
#else
#set ($package = $targetPackage)
#end
package ${package};
#if ($table.BaseClass == "")
#set ($extendsBaseClass = "" )
#else
#set ($extendsBaseClass = "extends $table.BaseClass" )
#end
import java.io.Serializable;
/**
* $table.Name
*
* [$now]
*/
public class $table.JavaName $extendsBaseClass
implements Serializable
{
#foreach ($col in $table.Columns)
private $col.JavaNative $col.Name.toLowerCase() = null;
#end
#foreach ($col in $table.Columns)
#set ( $cfc=$col.JavaName )
#set ( $clo=$col.Name.toLowerCase() )
#set ( $cjtype = $col.JavaNative )
/**
* Get the $cfc
* @return $cjtype
*/
public $cjtype get${cfc}()
{
return $clo;
}
/**
* Set the value of $cfc
*/
public void set${cfc}($cjtype v )
{
this.$clo = v;
}
#end
}
1.1 jakarta-turbine-torque/src/ojbtest/ojbcore-schema.xml
Index: ojbcore-schema.xml
===================================================================
<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE database SYSTEM "http://jakarta.apache.org/turbine/dtd/database.dtd">
<database
name="@DATABASE_DEFAULT@"
defaultIdMethod="@DATABASE_ID_METHOD@">
<table name="OJB_SEQ" description="OJB SequenceManager table">
<column name="CLASSNAME" required="true" primaryKey="true" type="VARCHAR"
size="175"/>
<column name="FIELDNAME" required="true" primaryKey="true" type="VARCHAR"
size="70"/>
<column name="LAST_NUM" type="INTEGER"/>
</table>
<table name="OJB_HL_SEQ" description="HIGH/LOW SequenceManager table">
<column name="CLASSNAME" required="true" primaryKey="true" type="VARCHAR"
size="175"/>
<column name="FIELDNAME" required="true" primaryKey="true" type="VARCHAR"
size="70"/>
<column name="MAX_KEY" type="INTEGER"/>
<column name="GRAB_SIZE" type="INTEGER"/>
</table>
<table name="OJB_LOCKENTRY" description="OJB Lock table">
<column name="OID_" required="true" primaryKey="true" type="VARCHAR" size="250"/>
<column name="TX_ID" required="true" primaryKey="true" type="VARCHAR" size="50"/>
<column name="TIMESTAMP_" type="DECIMAL"/>
<column name="ISOLATIONLEVEL" type="INTEGER"/>
<column name="LOCKTYPE" type="INTEGER"/>
</table>
<table name="OJB_NRM" description="OJB NAMED ROOTS Table">
<column name="NAME" required="true" primaryKey="true" type="VARCHAR" size="250"/>
<column name="OID_" type="VARCHAR" size="1024"/>
</table>
<table name="OJB_DLIST" description="DLIST IMPLEMENTATION">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="SIZE_" type="INTEGER"/>
</table>
<table name="OJB_DLIST_ENTRIES" description="DList entry table">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="DLIST_ID" required="true" type="INTEGER"/>
<column name="POSITION_" type="INTEGER"/>
<column name="OID_" type="VARCHAR" size="1024"/>
</table>
<table name="OJB_DSET" description="DSET IMPLEMENTATION">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="SIZE_" type="INTEGER"/>
</table>
<table name="OJB_DSET_ENTRIES" description="DSet entry table">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="DLIST_ID" required="true" type="INTEGER"/>
<column name="POSITION_" type="INTEGER"/>
<column name="OID_" type="VARCHAR" size="1024"/>
</table>
<table name="OJB_DMAP" description="DMap table">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="SIZE_" type="INTEGER"/>
</table>
<table name="OJB_DMAP_ENTRIES" description="DMap entry table">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="DMAP_ID" required="true" type="INTEGER"/>
<column name="KEY_OID" type="VARCHAR" size="1024"/>
<column name="VALUE_OID" type="VARCHAR" size="1024"/>
</table>
</database>
1.1 jakarta-turbine-torque/src/ojbtest/ojbtest-schema.xml
Index: ojbtest-schema.xml
===================================================================
<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE database SYSTEM "http://jakarta.apache.org/turbine/dtd/database.dtd">
<database
name="@DATABASE_DEFAULT@"
defaultIdMethod="@DATABASE_ID_METHOD@">
<!-- =================================================== -->
<!-- B O O K T A B L E -->
<!-- =================================================== -->
<!--
<table name="">
<column name="" required="true" primaryKey="true" type="INTEGER"/>
<column name="" required="true" type=""/>
<foreign-key foreignTable="">
<reference local="" foreign=""/>
</foreign-key>
</table>
-->
<table name="Artikel">
<column name="Artikel_Nr" required="true" primaryKey="true" type="INTEGER"/>
<column name="Artikelname" type="VARCHAR" size="60"/>
<column name="Lieferanten_Nr" type="INTEGER"/>
<column name="Kategorie_Nr" type="INTEGER"/>
<column name="Liefereinheit" type="VARCHAR" size="30"/>
<column name="Einzelpreis" type="FLOAT"/>
<column name="Lagerbestand" type="INTEGER"/>
<column name="BestellteEinheiten" type="INTEGER"/>
<column name="MindestBestand" type="INTEGER"/>
<column name="Auslaufartikel" type="INTEGER"/>
</table>
<table name="BOOKS">
<column name="Artikel_Nr" required="true" primaryKey="true" type="INTEGER"/>
<column name="Artikelname" type="VARCHAR" size="60"/>
<column name="Lieferanten_Nr" type="INTEGER"/>
<column name="Kategorie_Nr" type="INTEGER"/>
<column name="Liefereinheit" type="VARCHAR" size="30"/>
<column name="Einzelpreis" type="FLOAT"/>
<column name="Lagerbestand" type="INTEGER"/>
<column name="BestellteEinheiten" type="INTEGER"/>
<column name="MindestBestand" type="INTEGER"/>
<column name="Auslaufartikel" type="INTEGER"/>
<column name="ISBN" type="CHAR" size="10"/>
<column name="AUHOR" type="VARCHAR" size="50"/>
</table>
<table name="CDS">
<column name="Artikel_Nr" required="true" primaryKey="true" type="INTEGER"/>
<column name="Artikelname" type="VARCHAR" size="60"/>
<column name="Lieferanten_Nr" type="INTEGER"/>
<column name="Kategorie_Nr" type="INTEGER"/>
<column name="Liefereinheit" type="VARCHAR" size="30"/>
<column name="Einzelpreis" type="FLOAT"/>
<column name="Lagerbestand" type="INTEGER"/>
<column name="BestellteEinheiten" type="INTEGER"/>
<column name="MindestBestand" type="INTEGER"/>
<column name="Auslaufartikel" type="INTEGER"/>
<column name="LABEL" type="VARCHAR" size="50"/>
<column name="MUSICIANS" type="VARCHAR" size="250"/>
</table>
<table name="Kategorien">
<column name="Kategorie_Nr" required="true" primaryKey="true" type="INTEGER"/>
<column name="KategorieName" type="VARCHAR" size="20"/>
<column name="Beschreibung" type="VARCHAR" size="60"/>
</table>
<table name="ORDER_POSITION">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="ORDER_ID" type="INTEGER"/>
<column name="ARTICLE_ID" type="INTEGER"/>
</table>
<table name="TREE">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="DATA" type="VARCHAR" size="50"/>
<column name="PARENT_ID" type="INTEGER"/>
</table>
<table name="TREEGROUP">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="DATA" type="VARCHAR" size="50"/>
<column name="PARENT_ID" type="INTEGER"/>
<column name="GROUP_ID" type="INTEGER"/>
</table>
<table name="AB_TABLE">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="CLASS_NAME" type="VARCHAR" size="60"/>
<column name="VALUE_" type="INTEGER"/>
</table>
<!-- Product Table for Tutorial 1 & 2 -->
<table name="PRODUCT">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="NAME" type="VARCHAR" size="100"/>
<column name="PRICE" type="FLOAT"/>
<column name="STOCK" type="INTEGER"/>
</table>
<table name="PERSON">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="FIRSTNAME" type="VARCHAR" size="50"/>
<column name="LASTNAME" type="VARCHAR" size="50"/>
</table>
<table name="PROJECT">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="TITLE" type="VARCHAR" size="50"/>
<column name="DESCRIPTION" type="VARCHAR" size="250"/>
</table>
<table name="PERSON_PROJECT">
<column name="PERSON_ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="PROJECT_ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="ROLENAME" type="VARCHAR" size="20"/>
</table>
<table name="FAMILY_MEMBER">
<column name="ID" required="true" primaryKey="true" type="INTEGER"/>
<column name="FIRSTNAME" type="VARCHAR" size="50"/>
<column name="LASTNAME" type="VARCHAR" size="50"/>
<column name="MOTHER_ID" type="INTEGER"/>
<column name="FATHER_ID" type="INTEGER"/>
</table>
<!--
e CREATE TABLE LOCKED_BY_VERSION (
ID INT NOT NULL PRIMARY KEY,
VALUE_ VARCHAR(60),
VERSION_ INT
);
e CREATE TABLE LOCKED_BY_TIMESTAMP (
ID INT NOT NULL PRIMARY KEY,
VALUE_ VARCHAR(60),
TIMESTAMP_ TIMESTAMP
);
e CREATE TABLE BLOB_TEST (
ID INT NOT NULL PRIMARY KEY,
BLOB_VALUE_ LONGVARBINARY,
CLOB_VALUE_ LONGVARCHAR
);
e CREATE TABLE MDTEST_MASTER (
MASTERID INT NOT NULL PRIMARY KEY,
MASTER_TEXT VARCHAR(255)
);
;
e CREATE TABLE MDTEST_DETAIL_FKINPK (
MASTERID INT NOT NULL,
DETAILID INT NOT NULL,
DETAIL_TEXT VARCHAR(255),
PRIMARY KEY (MASTERID, DETAILID),
FOREIGN KEY (MASTERID) REFERENCES MDTEST_MASTER(MASTERID)
);
;
e CREATE TABLE MDTEST_DETAIL_FKNOPK (
DETAILID INT NOT NULL PRIMARY KEY,
MASTERID INT NOT NULL,
DETAIL_TEXT VARCHAR(255),
FOREIGN KEY (MASTERID) REFERENCES MDTEST_MASTER(MASTERID)
);
;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;
; OJB internal tables, do not modify !!!
; create the OJB SequenceManager table
e CREATE TABLE OJB_SEQ (
CLASSNAME VARCHAR(175) NOT NULL,
FIELDNAME VARCHAR(70) NOT NULL,
LAST_NUM INT,
PRIMARY KEY (CLASSNAME, FIELDNAME)
);
; create the HIGH/LOW SequenceManager table
e CREATE TABLE OJB_HL_SEQ (
CLASSNAME VARCHAR(175) NOT NULL,
FIELDNAME VARCHAR(70) NOT NULL,
MAX_KEY INT,
GRAB_SIZE INT,
PRIMARY KEY (CLASSNAME, FIELDNAME)
);
; create the OJB Lock table
e CREATE TABLE OJB_LOCKENTRY (
OID_ VARCHAR(250) NOT NULL,
TX_ID VARCHAR(50) NOT NULL,
TIMESTAMP_ DECIMAL,
ISOLATIONLEVEL INT,
LOCKTYPE INT,
PRIMARY KEY (OID_, TX_ID)
);
; create the OJB NAMED ROOTS Table
e CREATE TABLE OJB_NRM (
NAME VARCHAR(250) NOT NULL PRIMARY KEY,
OID_ VARCHAR(1024)
);
;;;; THE DLIST IMPLEMENTATION
;;;;
; create DList table
e CREATE TABLE OJB_DLIST (
ID INT NOT NULL PRIMARY KEY,
SIZE_ INT
);
; create DList entry table
e CREATE TABLE OJB_DLIST_ENTRIES (
ID INT NOT NULL PRIMARY KEY,
DLIST_ID INT NOT NULL,
POSITION_ INT,
OID_ VARCHAR(1024)
);
;;;; THE DSET IMPLEMENTATION
;;;;
; create DSet table
e CREATE TABLE OJB_DSET (
ID INT NOT NULL PRIMARY KEY,
SIZE_ INT
);
; create DSet entry table
e CREATE TABLE OJB_DSET_ENTRIES (
ID INT NOT NULL PRIMARY KEY,
DLIST_ID INT NOT NULL,
POSITION_ INT,
OID_ VARCHAR(1024)
);
;;;; THE DMAP IMPLEMENTATION
;;;;
; create DMap table
e CREATE TABLE OJB_DMAP (
ID INT NOT NULL PRIMARY KEY,
SIZE_ INT
);
; create DMap entry table
e CREATE TABLE OJB_DMAP_ENTRIES (
ID INT NOT NULL PRIMARY KEY,
DMAP_ID INT NOT NULL,
KEY_OID VARCHAR(1024),
VALUE_OID VARCHAR(1024)
);
-->
</database>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>