Release History

Version Date Description
3.3 2008-02-29  
3.3-RC2 2007-02-26  
3.3-RC1 2006-11-23  
3.2-rc3 2005-11-13  
3.2-rc2 2005-09-13  
3.2-rc1 2005-07-19  
3.1.1 2005-00-26  
3.1.1-RC3 2005-00-16  
3.1.1-RC2 2004-08-27  
3.1.1-RC1 2004-08-26  
3.1 2003-09-01  
3.1-RC1 2003-08-25  
3.1-BETA1 2003-08-19  
3.1-ALPHA2 2003-06-28  
3.1-ALPHA1 2003-05-07  
3.0 2002-12-03  
3.0-RC2 2002-11-20  
3.0-RC1 2002-10-26  
3.0-B4 2002-08-22  
3.0-B3 2002-07-17  

Release 3.3 – 2008-02-29

Type Changes By
Remove maven2 plugin: removed the property idTableXmlFile from the sql and id-table-init-sql goals. The property never was passed by the mojo and also does not work correctly in the generator. Use the goal id-table-init-sql to create sql for id tables instead. tfischer
Update maven2 plugin: changed the default value of the property schemaExcludes in the sql goal from "id-table-schema.xml" to "". So the default property settings also work if the idMethod is idbroker. tfischer
Fix Added better handling in Village for BigDecimal values. Double and Float types will be converted using appropriate constructors rather than the somewhat buggy BigDecimal(String) constructor. Fixes TORQUE-53. gmonroe
Add Removed Village meta data check for read only column status. This is not fully supported by a lot of JDBC drivers and causes Torque to fail with Derby's JDBC network driver. gmonroe
Add Maven 2 plugin: Added the attribute delimiterType for the sqlExec goal. tfischer
Update Maven 2 plugin: changed the default value of the parameter "suffix" in the id-table-init-sql goal to "-idtable-init" (was: ""). This allows for automatic execution of the id-table-init-sql files in the sqlExec goal with default settings. tfischer
Update Sybase: Columns where the attribute "required" is not set or set to false are now created explicitly with suffix "NULL". Fixes TORQUE-105. Thanks to Sylvain Benoist. tfischer
Update Changed Type Mappings for Sybase: Torque type TIME is now mapped to SQL type TIME (was: SQL type TIMESTAMP) Torque type CLOB is now mapped to SQL type TEXT (was: SQL type CLOB, which does not exist in Sybase) Torque type BLOB is now mapped to SQL type IMAGE (was: SQL type BLOB, which does not exist in Sybase) tfischer
Update Criterions with an integer value will now be set using PreparedStatemet#setInt() when doing a PsSelect. tfischer
Update Integrated Village into Torque. Thanks to Henning, Jean, Jon and Scott for the paperwork. tv
Update The SQL statements generated for MS SQL by the torque:datasql target will now be wrapped in SET IDENTITY_INSERT...ON /OFF statements if the idMethod is native and autogenerate is set on one or more fields. Fixes TORQUE-86. Thanks to Will Glass-Husain. gmonroe
Update An exception is now thrown on an attempt to update a modified object without a primary key. The previous behaviour was to fail silently. Fixes TORQUE-69. tfischer
Fix Corrected invalid cast in TorqueRuntimeException.splitStackTrace. Fixes TORQUE-103. Thanks to Jonathan Purvis. tfischer
Fix Remove 'COMMENT ON...' output from generated SQL for Sybase as these commands do not exist in Sybase's sql. Fixes TORQUE-104. Thanks to Sylvain Benoist. tfischer
Update Deprecated the attribute size in the element index-column in the dtd. The attribute is currently not used. It will be removed from the dtd in a future version of Torque. Fixes TORQUE-91. tfischer
Update Create nicely trimmed output in the generator. Fixes TORQUE-71. Thanks to Thoralf Rickert. tfischer
Add Implemented the goal id-broker-init-sql in the Maven2 plugin. Fixes TORQUE-101. Thanks to Marc Kannegiesser. tfischer
Fix The suffix parameter to the Maven2-plugin's sql task now works. Thanks to Marc Kannegiesser. tfischer
Add Added copy(..) and add<ForeignKey>(..) methods with a connection parameter. Fixes TORQUE-99. Thanks to Tobias Hilka. tfischer
Update Updated JCS dependency to version 1.3 and fixed related deprecation issues. tv
Fix Avoid to call JDK 1.5 code when creating BigDecimals. Fixes TORQUE-97. Thanks to Markus Müller. tv
Add OrderBy now accepts column names without a dot. No additional processing is made for these. Fixes TORQUE-89. Thanks to Stefan Birrer. tfischer
Fix Fixed Null Pointer Exceptions in Criteria.equals() and Criteria.hashCode() if joins are null. Fixes TORQUE-90. Thanks to Sean Gilligan. tfischer
Fix Changed the maven2 plugin's datadump goal to accept only a single schema xml. Multiple schema xmls produced illegal output. tfischer
Fix Fixed the maven2 plugin's datasql goal to do the same as the ant and maven1 datasql task. tfischer
Add Added a datadtd goal to the maven2 plugin. tfischer
Update changed the artifact id of some maven2 artifacts: runtime -> torque-runtime, generator -> torque-generator, templates -> torque-templates. This change only affects maven2 users. tfischer
Update Changed the group id of the maven2 artifacts from org.apache.db.torque to org.apache.torque. This change only affects maven2 users. tfischer
Fix Fixed problem with somePeer.doDelete(Criteria) if criteria contains a join. Fixes TORQUE-93. tfischer
Add Added torque.beanExtendsClass property that defines a fully qualified class name (e.g. org.apache.struts.action.ActionForm) that the base bean classes will extend. gmonroe
Fix Fixed handling of the enableJava5Features config parameter in the maven 2 plugin. Fixes TORQUE-88. tfischer
Fix Fixed handling of select statements in mysql and postgresql if offset is set but limit is not set in a query. Fixes TORQUE-87. tfischer

Release 3.3-RC2 – 2007-02-26

Type Changes By
Fix Fix the handling of interfaces while keeping backward compatibility. Add documentation and test cases. Fixes TORQUE-76. Thanks to Ronny Völker. tv
Fix In the JdbcTransformTask of the generator, the attribute "default" is only added to the generated schema if its value is not empty. Fixes TORQUE-80. Thanks to Brian Telintelo. tfischer
Add Added check whether Torque is initialized in Torque.getConnection(). If Torque is not initialized, a corresponding TorqueException is thrown;. Fixes TORQUE-79. tfischer
Add The maven 2 plugin generates the non-base classes into a different directory than the base classes. This behaviour can also be configured for maven 1 and ant by setting the property to another directory than tfischer
Fix Fixed the lifecycle integration and dependency resolution of the om goal in the maven 2 plugin. Thanks to Jeffrey D. Brekke. tfischer
Fix Allow repeated lookups to the Torque Avalon Component. The component now registers the existing MapBuilders with the new instance so that they are re-built during initialization. This is considered a temporary hack until the static constructors of the generated Peer classes go away. Fixes TORQUE-68. tv
Update Centralized the handling of MapBuilders in the TorqueInstance class. This allows for repeated initialization of different instances of Torque. The method BasePeer.getMapBuilder(className) is now deprecated. tv
Fix Set autocommit=true as default for the sqlexec task in the maven 2 plugin. Some databases (e.g. postgresql) need this to proceed if a statement execution fails. tfischer
Fix Added the TEXT sql type in postgresql to the list of types where size and scale is silently dropped in sql generation. tfischer
Fix Made the password parameter optional in the sqlexec task in the maven2 plugin. Empty passwords work for some databases. tfischer
Fix Added missing log4j jar to generator dependencies. Fixes TORQUE-73. tfischer
Fix Improved Derby generator platform implimentation to support correctly sized BINARY and VARBINARY using the SizedAsBitDataDomain. Also fixed problems with the BIT and TINYINT mappings. gmonroe
Add Added a new Generator model Domain subclass called SizedForBitDataDomain to support the DB2/Derby CHAR/VARCHAR (size) AS BIT DATA format. gmonroe
Fix Fixed template package references that caused bad code to be generated if non-default packages were used. gmonroe

Release 3.3-RC1 – 2006-11-23

Type Changes By
Fix Fixed a synchronisation issue in the getDateString() method in the database adapter for postgresql. tfischer
Fix Wrong caching of method calls with more than three arguments in MethodResultCache. Fixes TORQUE-63. Thanks to Ronny Völker. tv
Add The Column names TABLE_NAME and DATABASE_NAME are now legal column names. Fixes TORQUE-44. Thanks to Greg Monroe. tfischer
Add Added a maven 2 plugin. Fixes TORQUE-2. Thanks to Raphael Pieroni. tfischer
Fix Fixed handling of escaping (by backslashes) for LIKE clauses. This included fixing the general handling of backslashes for several databases. Fixes TORQUE-57. tfischer
Fix Booleanchar and Booleanint now work for chained (and'ed, or'ed) Criterions. Fixes TORQUE-59. tfischer
Add Added support for option tags for most elements in the database.xml for usage with custom templates. Fixes TORQUE-27. Thanks to Greg Monroe. tfischer
Fix Limit and Offset work now correctly if applied to joined tables which contain the same column name in oracle. Fixes TORQUE-10. tfischer
Fix The variable CLASS_NAME in the map builders is now filled correctly if the build property is set. Fixes TORQUE-56. Thanks to Gustavo Fernandez. tfischer
Add Added support for customizing generator templates. Fixes TORQUE-50. Thanks to Greg Monroe. tfischer
Add Add a "serialVersionUID" to the generated classes that implement Serializable. The entry is generated if "addTimeStamp" is true. This should remove quite a number of warnings when using Torque generated classes. tv
Fix Use encoding in the header of schema.xml files instead of default encoding to parse the schema.xml files. Fixes TORQUE-49. tfischer
Update Provided generic typed wrappers for methods in BasePeer when torque.enableJava5Features is set to true. Fixes TORQUE-31. Thanks to Thoralf Rickert. tfischer
Update The default package for generated classes was changed from org.apache.torque to torque.generated. Fixes TORQUE-37. Thanks to Greg Monroe. tfischer
Fix Selects for BOOLEANCHAR and BOOLEANINT now work for aliased tablenames and joined tables.
Fix Preserved case when generating the constants for column names in the Peers and the database maps. For example, for a table named book and a column namend author_id, the constant BaseBookPeer.AUTHOR_ID is now set to book.author_id, whereas in former versions, this constant would have been set to book.AUTHOR_ID. The old behaviour can be regained by setting the generator property torque.deprecated.uppercasePeer to true. Fixes TORQUE-44. Thanks to Thoralf Rickert and Greg Monroe. tfischer
Update Simplified the Torque Avalon component. tv
Add Provided support for user-loadable DB adapters. tv
Fix Fixed MS-SQL failure in LargeSelect. Fixes TORQUE-20. Thanks to Greg Monroe. tv
Fix Fixed several methods not using JavaName in Peer.vm. Thanks to Thoralf Rickert for the patch. Fixes TORQUE-43. Thanks to Thoralf Rickert. tv
Fix Fixed Criteria.andDate() methods to call getTime() like the addDate methods do. Added a test case to check this. Thanks to Federico Fissore for the Criteria patch. Fixes TORQUE-42. Thanks to Federico Fissore. tv
Update Made DB an interface and changed all database adapters to extend AbstractDBAdapter. Moved generateLimits methods to the adapters and deprecated getLimitStyle and associated constants because this should be handled transparently for the user. tv
Fix Caught SQL exception when foreign keys for a table or view cannot be retrieved in the jdbc ant task in the generator. Now a warning is printed instead of stopping execution. Fixes TORQUE-41. Thanks to Thoralf Rickert. tfischer
Add Refined guesswork for detecting column names out of functions, clauses etc. This is important e.g. for orderBy Statements like "order by table.column in (1,2,3)" or "order by 100 < table.column". Fixes TORQUE-33. Thanks to Jacob Champlin. tfischer
Add Added the CASCADE option to drop table statements for HSQLDB. This will not work with HSQLDB 1.7. Consult the HSQLDB Howto for information about reverting to the old behaviour. Fixes TORQUE-30. Thanks to Patrick Carl. tfischer
Add Added setByName and setByPosition methods in the generated object classes that match the already existing getByName and getByPosition methods. Fixes TORQUE-26. Thanks to Greg Monroe. tfischer
Fix Fixed wrong constant CLASS_DEFAULT_NAME in generated peer classes. The error occurred only if the option torque.subpackage.object was set in the generator properties. Fixes TORQUE-28. Thanks to Mojmir Hanes. tfischer
Add A database map can now load all contained tableMaps using its method databaseMap.initialize(). Fixes TORQUE-22. Thanks to Greg Monroe. tfischer
Add The database maps now provide all information from the schema.xml. Fixes TORQUE-22. Thanks to Greg Monroe. tfischer
Add Improved performance for sybase limit using SET ROWCOUNT. Fixes TORQUE-25. Thanks to Martin Goulet. tfischer
Add Added methods for shallow copies into the generated objects. Fixes TORQUE-23. Thanks to Thoralf Rickert. tfischer
Fix Fixed foreign key constraint generation for Firebird. Fixes TORQUE-6. Thanks to Joerg Friedrich. tfischer
Add Added createdb-template for MS-SQL. Fixes TORQUE-18. Thanks to Greg Monroe. tfischer
Fix Corrected datatype Mapping for MS-SQL: Torque type BLOB is now mapped to MS-SQL type IMAGE (was BLOB in Torque 3.2, not working). Torque type CLOB is now mapped to MS-SQL type TEXT (was CLOB in Torque 3.2, not working). Fixes TORQUE-19. Thanks to Greg Monroe. tfischer
Fix Fixed bug in bean generation when a table has several references to another table. Fixes TORQUE-21. Thanks to Nicolas Le Griel. tfischer
Fix Added new firebird database adapter. Date Strings returned by the interbase and firebird adapters are now escaped. Fixes TORQUE-4. Thanks to Joerg Friedrich. tfischer
Fix Corrected datatype Mappings for firebird: Torque type char is now mapped to firebird type char (was varchar). Torque type double is now mapped to firebird type double precision (was double). Torque type booleanchar is now mapped to firebird type char(1) (was varchar(1)). Fixes TORQUE-4. Thanks to Joerg Friedrich. tfischer
Fix Corrected Mapping for Type LONGVARCHAR for Derby. Fixes TRQS356. tfischer
Fix Added dummy template for DB creation for DB2. Fixes TRQS362. tfischer
Fix Mapped the Torque type INTEGER to the SQL type INTEGER in Mysql. (In Torque 3.2, this was changed unintentionally to MEDIUMINT. MEDIUMINT does not cover the full data range of java integers.) Thanks to Joerg Friedrich for reporting the error. Fixes TORQUE-5. tfischer
Add Added a new convenience method, Transaction.begin(), which is the same as Transaction.begin(Torque.getDefaultDb()). tfischer
Update Centralized the information the runtime keeps about underlying databases in a singe class called Database. Deprecated the decentralized methods to access information about the databases. tfischer
Update The IdBroker is now only started for a database if the IdMethod idBroker is used in that database. tfischer
Fix Use BigDecimal(double) constructor so as to help code compiled under JDK 1.5 execute correctly under earlier JDKs (See for the related Eclipse bug). seade
Update Update to the Avalon components of Torque. The component now understands Merlin- and YAAFI-type context entries and provides again all methods from TorqueInstance. tv
Fix HSQL's autoincrement columns now start with one instead of zero. Thanks to Patrick Carl for an early version of the patch. Fixes TRQS335. tfischer
Fix IgnoreCase in PsSelects now also takes into account Criterion's setIgnoreCase(). Thanks to Robert Dietrick for an early version of the patch. Fixes TRQS345. tfischer
Update If no DTD is given, in the schema.xml, no dtd is used to validate the schema.xml. The old behaviour was to use the dtd from the generator jar. tfischer
Fix Changed behaviour for a limit of zero: (criteria.setLimit(0)): If the db supports native limit, a limit of zero returns zero datasets. if the db does not support native limit, a limit of zero causes a TorqueException (thanks to village :-() The former behaviour was: A limit of zero returns all datasets. tfischer
Fix Fixed case-insensitive order by for hsqldb. tfischer
Add Added the table descriptions from the schema.xml to the comments of the generated classes. Thanks to Thoralf Rickert for the patch. tfischer
Add Added Java5 generics support for the generated classes. Thanks to Thoralf Rickert for the patch. tfischer
Add Formatting of the html documentation generated by the generator is now done by css stylesheets. tfischer
Add Subqueries are now supported. This has caused Criterion.appendTo(StringBuffer) to declare throwing a Torque Exception. Fixes TRQS305. tfischer
Fix BaseObject.equals() does not return true anymore if the objects do not have the same class. Thanks to Patrick Carl for the patch. Fixes TRQS133. tfischer
Add Extended support for derby: IdMethod native is now supported. Added mappings for Torque types LONGVARCHAR, BINARY and VARBINARY. Implemented the methods getMaxColumnNameLength(), hasScale() and hasSize() in PlatformDerbyImpl. Foreign keys are now declared outside the CREATE TABLE statement, allowing to create foreign references independent of the order of tables in the schema.xml. The SQL for the creation of Indices is now generated correctly (a CRLF was missing at the end). Thanks to Johnny Macchione for the patches. tfischer
Fix Fixed foreign key support in mysql to allow the referenced table to be declared before the referencing table. This is done by defining the foreign keys in an extra "CREATE TABLE" statement instead of defining them in the "CREATE TABLE" statement. Note that foreign keys are ignored by mysql except in InnoDB tables. Thanks to Thoralf Rickert for suggesting the patch. Fixes also TRQS278. tfischer

Release 3.2-rc3 – 2005-11-13

Type Changes By
Fix Fixed support for limit and offset for Derby in the runtime. tfischer
Add Added hyperlinks to foreign key in the documentation to point to the referenced table. Thanks to Hilco Wijbenga for an early version of the patch. tfischer
Fix Corrected serialization of Criteria objects. While there also fixed equals() and added hashCode(). Thanks to Martin Goulet for a very early version of the serialization fix. seade
Add Added scale (i.e number of digits after the decimal point) support for the sql data types NUMERIC and DECIMAL in the JDBCTransformTask (creating schema.xml from the database). Only scales which are > 0 are added as an extra attribute to the generated schema.xml. Thanks to Hilco Wijbenga for the patch. tfischer
Fix Fixed importing references for foreign keys if the object for the foreign key is in another package. Thanks to Robert Dietrick for the patch. Fixes TRQS325. tfischer
Update The default values of the generator options torque.subpackage.base.bean, torque.subpackage.bean, and are now defined in the property files (for maven) and (for ant) instead of in the templates tfischer
Fix The DataSourceFactory with the name "default" is created automatically again. This was removed when fixing TRQS308, but is required by Turbine. Fixes TRQS322. tfischer
Add The size and scale attributes from the schema.xml are now used to fill the fields size and scale in the column objects created by the generated map builder objects. Fixes TRQS323. tfischer

Release 3.2-rc2 – 2005-09-13

Type Changes By
Fix LargeSelect now also works for databases which do not support native limit and offset. Fixes TRQS318. tfischer
Fix Added necessary addJoin() statenments to the generated Methods XXXPeer.doSelectAllExceptYYY(). Thanks to Thomas Vandahl for the patch. Fixes TRQS320. tfischer
Add Added the methods getCachedInstance() and getCachedInstanceImpl() to the BaseManager.vm template. Added the method getXXX(Connection) for associated objects to the ObjectWithManager.vm template. Thanks to Thomas Vandahl for the patch. tfischer
Fix For HSQLDB, the generator now generates NULL/NOT NULL, DEFAULT and IDENTITY declarations tfischer
Add The generated beans are now serializable. tfischer
Add Added a method getXXX(connection) to retrieve associated objects in the n->1 direction, which uses the provided connection if a db hit is necessary tfischer
Add Added a generator property torque.silentDbFetch, which is true by default. If set to false, the getXXX() methods without arguments will not access the db silently, but return null if the associated objects has not been read yet. Also, the method does not throw a Torque exception any more. tfischer
Add Added templates site reference to menus in runtime, generator, maven-plugin. henning
Add Added Findbugs report to the site. henning
Add Updated mailing list references to point to mod_mbox. henning
Add Updated all SCM references to point to Subversion. henning
Add Added the following generator properties to allow detailed control where the target classes are generated: torque.subpackage.peer, torque.subpackage.object,, torque.subpackage.manager, torque.subpackage.bean, torque.subpackage.base, torque.subpackage.base.bean. See the reference for the generator properties for more information. Fixes TRQS306. tfischer

Release 3.2-rc1 – 2005-07-19

Type Changes By
Add Added the build-torque.xml again to the generator release. In order to use the same default directory structure for maven and ant, the default directory for the schema files was changed from ${torque.home}/schema to ${torque.home}/src/schema tfischer
Update The generator templates are now packed in a separate jar file, torque-gen-templates.jar, which is included in the generator tar.gz and zip distributions. To build the jar from source, change into src/generator/src/templates and run maven jar:install. tfischer
Update Changed runtime configuration checking. It is now required having set the following properties: torque.database.default, torque.database.<defaultDbName>.adapter, torque.dsfactory.<defaultDbName>.factory. This was done in order to detect misconfiguration more easily. Fixes TRQS308. tfischer
Update The runtime does not configure the DataSourveFactory with the name "default" any more automatically. If you need a DataSourceFactory with that name, you have to configure it manually from now on. tfischer
Update If Torque is not yet initialized, it does now return null as name of the default database (not "default" as it was before). tfischer
Update The asColumns in a Criteria are now added to the SQL select clause in the same order as they were added to a Criteria. To achieve this, the return type of the method Criteria.getAsColumns() had to be changed from Hashtable to Map. Fixes TRQS252. tfischer
Fix Torque.shutdown() now closes the datasourcee initialized by Torque, except the Datasource obtained via a JndiDataSourceFactory. Fixes TRQS294. tfischer
Add Added a "protected" attribute to the column. If set to true, the getters and setters of a column are protected rather than public. Fixes TRQS306. tfischer
Fix If a Peer class cannot instantiate its Map Builder, a Runtime Exception is now thrown (instead of just logging the error). Fixes TRQS304. tfischer
Add The database schema.xml is now validated against the DTD. The generator stops and displays an error message if the schema.xml does not satisfy the DTD. tfischer
Fix The TorqueJDBCTransformTask now creates a name attribute for the database element. The attribute value is the name of the database user used to connect to the database. Fixes TRQS286. tfischer
Add For db2, msaccess, oracle, postgresql and sybase, the description attributes from the schema.xml are inserted as comments into the database. Fixes TRQS266. tfischer
Fix Changed the length of the tablename column from 255 to 250 in the idbroker schema for the runtimetest. This is necessary because the firebird database cannot create an index on a varchar column which has the length 255. tfischer
Fix Fixed a few things in the interbase implementation for compliance with Firebird 1.5: Tables are dropped before they are created in the create-db task. The style of comments in the db scripts is changed from /* */ to --. Column names are no longer put into double quotes by the create-db task. The template createdb.vm was added to be able to run the create-db task. Also, a firebird profile was added for the runtimetest, and firebird was added to the list of supported databases on the homepage. tfischer
Fix Changed the name attribute of the database tag from #IMPLIED to #REQUIRED in the dtd. Fixes TRQS287. tfischer
Add Added a database-layout-Howto to the docs. Fixes TRQS273. tfischer
Fix In Torque 3.1.1, BIT columns were treated as Strings with the value 0 and 1. This caused problems in various DBs which natively support BOOLEAN columns but do not support implicit String conversion.(e.g. HSQLDB). Reverted to the old behaviour, i.e. the adapter chooses the query for selects. The db driver uses booleans instead of integers for inserts/updates of BIT columns. However, this behavior breaks BIT support for Databases which do not have a native boolean datatype (like Oracle). For these Databases, use BOOLEANINT (or BOOLEANCHAR) column types for Booleans. tfischer
Update Changed Postgres handling of boolean Values to use FALSE,TRUE instead of '0','1' while selecting from columns of Torque type BIT. Fixes TRQS221. tfischer
Add Added support for using SQL functions in "order by". Fixes TRQS251. tfischer
Update Unify the behaviour of primary key columns. Until now, primary key columns were not filled automatically for idMethod=native and for platforms with default idMethod=identity (i.e. all databases exept oracle, postgresql and sapdb). Now, the default is that primary key columns are always filled automatically by default. tfischer
Fix Use the cascade option for dropping tables in PostgreSQL. This allows to drop tables which have foreign keys. Cascade is supported since PostgreSQL 7.3. tfischer
Fix Added missing templates for msaccess. I did not test it, so no idea whether msaccess is actually supported. tfischer
Add It is now possible to generate simple Beans for Torque data objects. Methods are supplied to create Beans from Data object and vice versa. tfischer
Add Added Thomas Vandahl's Patch to synchronize Object.vm with ObjectWithManager.vm. This contains the following: The interface attribute is now supported for objects without managers. The correctSetters now also work for objects with managers. The behavior for objectIsCaching=false for objects with managers now matches the behaviour of objects without managers. tabs and spaces formatting. Fixes TRQS289. tfischer
Add Add support for oracle datatype timestamp; limit number of digits for saving integers in oracle to 10. Fixes TRQS263. tfischer
Fix Fix escaping of single quotes in datasql task. Fixes TRQS267. tfischer
Add Added support for schema support at generate time. See the Schema Support Howto. tfischer
Remove Removed Oracle Update patch again. Creates invalid scripts and causes ant to fail. See Scarab for further details. Fixes TRQS222. tfischer
Remove Remove support for old properties (properties without 'torque.' prefix) mpoeschl
Remove Remove support for idMethod=sequence and autoincrement. mpoeschl
Add Added support for scale. Fixes TRQS146. mpoeschl
Remove Remove support for stratum lifecycle interfaces. mpoeschl
Add Add domain element to schema.xml. Domains are used to define attributes for columns. Fixes TRQS163. mpoeschl
Update Refactored generator model (removed AppData class) mpoeschl
Fix NumberKey long constructor introduces rounding errors. Fixes TRQS180. mpoeschl
Remove Removed the deprecated connection pool (commons-dbcp is used as default since 3.1) mpoeschl
Add Changed ojb-model task to generate Object + BaseObject (like for the torque om). mpoeschl
Fix Fix package name for TorqueComponent in roleConfiguration.xml mpoeschl
Add Make sure that JNDI datasources are only bound if they are also configured. Patch suggested by M. Sean Gilligan and Roger A. Caron. henning
Add Add rudimentary schema support (see the Schema Support Howto). henning
Add Add Support for Apache Derby henning
Add Explicitly set the name of the ID Broker thread. Suggested by Martin Goulet. Fixes TRQS255. henning
Add Creates doSelectJoinXYZ methods that take a connection object as parameter in the Peer objects. Suggested by Martin Goulet. Fixes TRQS254. henning
Add Patch to allow aliases columns in groupBy clauses. Patch suggested by Tarlika Elisabeth Schmitz. Fixes TRQS250. henning
Add Merged Thomas Fischers' patch which supports left joins, right joins and explicit inner joins. I communicated with Thomas to make sure that his patch goes in ok. Fixes TRQS219. henning
Update Started reworking the BasePeer class, factored out some code into SQLBuilder and VillageUtils. henning
Add Make the getter names for the table column values configurable. Torque did generate non-Bean-Spec compliant getter names for boolean columns (get<xxx> instead of is<xxx>). By setting torque.correctGetters to true, this can be changed. This is a generator-only change, the resulting peers still run with the 3.1.1 runtime. henning
Update SQL generation for PostgreSQL now generates ID columns without default values, inserting the sequence values through the ID generator. The generated SQL now also contains sequence definitions for the tables. henning

Release 3.1.1 – 2005-00-26

Type Changes By
Update Change PostgreSQL ID generation to use select nextval instead of select currval. henning
Update Generated code contains Javadoc error "sentence is different...". Fixes TRQS235. seade
Update Generated code contains Javadoc error "@param tags incorrect". Fixes TRQS236. seade
Update Remove a few unused variables from the generated Object templates. Fixes TRQS237. henning
Update Do not output binary column when invoking toString() from the generated objects. Fixes TRQS231. henning
Update When building a criteria to represent an object, skip binary columns. Their content will not help much anyway and if you really insist on building an object that differs from an existing object only by the contents of a binary column (which implies that such a column might be a primary key), then you deserve to suffer. Don't do this. For everyone else, this change might actually make doDelete(object) work if your object contains a binary column. Fixes TRQS230. henning
Update Add Oracle Update patch from Thierry Lach. I don't use Oracle so I rely on Thierry that he knows what he is doing. Ant users: please not the changes mentioned in the Oracle Howto. Fixes TRQS222. henning
Update Add Torque Reporting to the Maven plugin. Patch contributed by Thierry Lach. Fixes TRQS215. henning
Update Make org.apache.torque.util.SqlEnum public visible. The C'tor is still private, so this should be no problem. Fixes TRQS207. henning
Update Fix a typo in the reworked Limit / Offset Code for Oracle and DB2. Confused pre and post. Fixes TRQS239. henning
Update Fix offset and limit swap for DB2 and Oracle. Fixes TRQS240. henning

Release 3.1.1-RC3 – 2005-00-16

Type Changes By
Update Add maven-generated ant-buildfiles as a courtesy to those that are still stuck with ant. No warranty, no support. It works for me, though. henning
Update cleaned up versioning for maven plugin (sorry for that). henning
Update Upgrade to commons-configuration-1.0. Note that all applications that use Torque 3.1 and want to use commons-configuration 1.0 now must also use commons-collections 3.x!. Fixes TRQS229. henning
Update Update the POMs to reflect the current style of artifact declaration. henning
Update Changed the release-changes.xml file into a maven compliant changes.xml file. Activated the maven-changes-report. henning
Update Changed the default property value for torque.output.dir from to This means many of the generated files will now appear in the target rather than the target/classes directory. The properties reference was updated accordingly (a few missing properties were also documented).
Update Add missing method retrieveByPK(native type, Connection) method to the generated peer classes henning
Add Patrick Carl donated an XSL style sheet to convert Torque schema files into mogwai ERDesigner ( files. henning
Update Restructured maven project files based on HEAD to gain improved control over dependencies. seade
Update Upgrade to commons-pool-1.2 and commons-dbcp-1.2.1. seade
Fix Restored sql statement logging (DEBUG level) that was lost in RC2.
Fix TIME should be enclosed in single quotes for SQL Loader. Thanks to Matt Finn for the patch. Fixes TRQS154.
Fix Remove unneeded code in Torque maven plugin. Thanks to Thierry Lach for the patch. Fixes TRQS226.
Fix Torque maven plugin om zip goal doesn't work. Thanks to Dan Price for the patch. Fixes TRQS220.
Fix Deleting an Object containing a timestamp didn't work with PostgreSQL (the adapter was missing the necessary method to convert the timestamp into a value that is understood by the databases).

Release 3.1.1-RC2 – 2004-08-27

Type Changes By
Fix limit and offset handling for all databases other than DB2 was broken. limit and offset handling for all databases has been revamped and should now work correctly. henning

Release 3.1.1-RC1 – 2004-08-26

Type Changes By
Update Addressed a number of issues highlighted by FindBugs in generated source code.
Update Upgrade to stratum-1.0-b5 and xerces-2.4.0.
Update Upgrade to commons-collections-3.0, commons-configuration-1.0-rc1, commons-lang-2.0 and commons-logging-1.0.4.
Fix HSQL adapter enhancements/fixes: added support for case-insensitive queries, added support for cascading deletes, correction to the generated CREATE TABLE DDL when using IDENTITY columns. Thanks to Patrick Carl for the patch.
Update The adapter property is now used in preference to driver when building the database map. This allows Torque to work when the driver setting is not what it expects - e.g. if using com.mysql driver instead of the or when using">P6Spy ( pass through driver for performance monitoring. Thanks to Ben Hogan for the patch.
Add DB2 limit and offset support. Thanks to Augustin Vidovic for the patch.
Update Upgraded to commons-pool-1.1 and commons-dbcp-1.1
Update Case insensitive LIKE comparisons now use ILIKE for PostgreSQL.
Fix Corrected handling of BIT with PostgreSQL. Note that the solution implemented has been tested under MySLQ and PostgreSQL only. Fixes TRQS185.
Fix Multiple unique constraints and indexes on a single table are now allocated sequential names (previously duplicate names were being allocated).
Fix Backported a few template fixes from Serge Huber that were committed to HEAD some time ago.
Fix Generate sequences correctly for PostgreSQL (i.e. leave it to PostgreSQL). Note that schemas produced from the database using the torque:jdbc goal are not yet handling sequences correctly.
Fix Problems with Torque tutorial. The Torque tutorial has been updated to reflect the separated generator and runtime components and to use the Maven plugin. Fixes TRQD26.
Fix The generator logging configuration has been changed from DEBUG to INFO - this will make the day of all those people that for some reason have the torque-gen jar in their classpath at runtime. Hint: You don't need this jar to use the Torque generated object model classes.
Fix The maven-plugin now provides default values for torque.initialIDValue and torque.initialIDStep so that the id table initialization sql is now generated correctly.
Fix The get${pVarName} method in the Object.vm template does not return related objects with a negative PK. Thanks to Nick Curry for the patch. Fixes TRQS223.
Fix Fix NOT_LIKE with no wildcard bug.
Fix Fix bad syntax in generated model when using primary keys of short or byte. Fixes TRQS97.
Fix For PostgreSQL the LONGVARCHAR datatype now maps to text rather than bytea. Fixes TRQS149.
Fix Error on "byte" data type generation rules. Fixes TRQS190.
Fix A minor template change has been made to correctly allow Base[TableName]Peer.doDelete(criteria, connection) to be overridden in [TableName]Peer.
Fix Apply MAVEN-690 to the Maven plugin dion
Update updated maven-plugin to torque-3.1 mpoeschl
Fix Fix prereqs of torque:om-zip goal in the maven plugin. evenisse
Update Move to log4j 1.2.8 in the maven-plugin. dion
Update Move to latest xerces in the maven plugin. dion

Release 3.1 – 2003-09-01

Type Changes By
Fix SqlExpression: replace UniqueList with HashSet to improve performace for large IN clause.

Release 3.1-RC1 – 2003-08-25

Type Changes By
Fix JdbcTrasformTask: error fetching foreign keys using an ODBC source.
Fix new version of village.jar fixes BOOLEANCHAR handling.
Fix Transaction mismanagement in IDBroker. Fixes TRQ4.

Release 3.1-BETA1 – 2003-08-19

Type Changes By
Update Introduced the TorqueInstance class to do away with static initialization woes and allow multiple instances of Torque per ClassLoader.
Update The generated schema-data.dtd has been changed to allow any order of table data entries.
Update The old Torque connection pool is deprecated. You should use the commons-dbcp pool.
Update Upgraded to latest commons-dbcp snapshot. The new SharedPoolDatasourceFactory is now used by default. Don't forget to upgrade your property file!
Fix Datadump does not recognize null columns properly. Fixes TRQS51.
Fix Torque.initialize not reentrant. Fixes TRQS85.
Fix name conflict in generated java sources when using java reserved words (like "class") as column names. Column.UncapitalisedJavaName is now used as member name instead of Column.Name.toLowerCase(). Fixes TRQS87.
Fix MySQL will not accept a size definition for TEXT and BLOB fields. Fixes TRQS136.
Fix Oracle DB using Criteria to select by Data doesn't work. Fixes TRQS152.
Fix Problems on DB2 with BINARY, VARBINARY and INTEGER. Fixes TRQS174.
Fix use sql autoincrement only if idMethod native. So you have to set idMethod="native" (table) plus autoincrement="true" (column) to generate the autoincrement code in your sql. Fixes TRQS178.

Release 3.1-ALPHA2 – 2003-06-28

Type Changes By
Update use commons-logging. BaseObject.log() and .getLog() now return a Log object. Fixes TRQS2.
Update The DTD resolver will now use the database.dtd from the classpath if the DTD is
Update LargeSelect now implements Serializable, provides better debugging information and further methods for maintaining search parameters.
Update LargeSelect is now thread safe when calling invalidateResult (thanks to Soteri Panagou <>).
Update Updated ojb tasks to work for OJB 1.0(rc3). The generated modell is very simple. Support for advanced features will be added in the future.
Fix mysql: "on delete cascade" not generated. Fixes TRQS20.
Fix Sql2Xml task should generate a dtd compliant xml. Fixes TRQS101.
Fix native limit and offset breaks on postgresql 7.3. Fixes TRQS121.
Fix NullPointer Exception When not setting the DbName explicitly. Fixes TRQS138.
Fix wrong invocation of populateObject in peer class. Fixes TRQS139.
Fix Table with no primary key results an empty ADD PRIMARY KEY (). Fixes TRQS141.
Fix BasePeer.doSelect(Criteria, Connection) calls executeQuery without offset and limit. Fixes TRQS153.
Fix Invalid syntaxes for Hypersonic when using indexes. Fixes TRQS159.
Fix columns in an external schema caused Manager imports to be generated. Fixes TRQS165.
Fix Corrected deadly multi-CPU thread deadlock problem discovered by Ed Korthof <> and John McNally <>. The problem was due to emulation of synchronization using an int counter (to improve performance by avoiding Java "synchronized" keyword). Post-increment and decrement operators compile to three op codes (with Sun's JDK 1.3.1 for Linux), unsafe on a multi-CPU box.

Release 3.1-ALPHA1 – 2003-05-07

Type Changes By
Update Removed all deprecated stuff from the java code. Make sure to not get any deprecation warnings before you switch to 3.1!
Update The generator was separated.
Update Replace StringStack as it is deprecated. The return type for some public methods changed (but as they are only used internally you should not need to change anything in your code). Fixes TRQS145.
Update Junit tests for sql2xml task (SQLToAppDataTest). Fixes TRQS95.
Update Package names for generated java classes are now handled in the model (not the templates)
Update The DTD resolver will now use the database.dtd from the classpath if the DTD is This change allows XML editor to use the proper version of the DTD.
Fix Criteria.addDate is broken. Fixes TRQ18.
Fix recursive external schemas fail. Fixes TRQ19.
Fix limit and offset patch for Oracle. Fixes TRQ47.
Fix torque schema-reference.html bug: unique-column. Fixes TRQD21.
Fix fix endless loop in Monitor. Fixes TRQS29.
Fix fix endless loop in Monitor. Fixes TRQS93.
Fix id-table-schema.xml has no database name. Fixes TRQS35.
Fix bug in torque generated copy() method. Fixes TRQS47.
Fix SQLScanner reports wrong line numbers in Window platforms and behaves incorrectly when finding the minus sign. Fixes TRQS90.
Fix Documentation changes in Fixes TRQS98.
Fix Use of null Object. Fixes TRQS104.
Fix NPEs on bad foreign key. Fixes TRQS116.
Fix Generated OM doesn't compile when using FLOAT as primary key. Fixes TRQS118.
Fix Join methods are not generated. Fixes TRQS122.
Fix using null object. Fixes TRQS132.

Release 3.0 – 2002-12-03

Type Changes By
Fix torque-jdbc-transform should not show password. Fixes TRQS59.
Fix uses @DATABASE@ variable for default database adapter instead of mysql. Fixes TRQS86.
Fix more concise name on Criteria.setSingleRecord. Fixes TRQS61.
Fix Criteria.toString() modifies the Criteria object. Fixes TRQS73.
Fix getPrimaryKey() throws NullPointerException is pk is Object type and null. Fixes TRQS81.
Fix Constructor for DateKey and StringKey will throw NullPointer exception if passed null value. Fixes TRQS82.
Fix sql-generation: create foreign keys for hsqldb

Release 3.0-RC2 – 2002-11-20

Type Changes By
Update the TorqueSQLExec task ignores lines starting with '//', '--' or 'REM ' (notice the space!!). Fixes TRQ2.
Update added doDelete(ObjectKey) methods to the generated Peers. Fixes TRQ24.
Update Added a Maven plugin for executing Torque commands and updated the Maven Howto to reflect the addition.
Update Added support for MS Access (using the JDBC-ODBC Bridge driver).
Update Upgraded village to 2.0-dev.
Fix Problem retrieving object/row count using Criteria. Fixes TRQ37.
Fix update README (ant 1.5 is required). Fixes TRQD6.
Fix remove invalid pathelement in build-torque.xml. Fixes TRQS68.
Fix Object.vm generates files which will not compile. Fixes TRQS75.
Fix postgres - Incosistent generation errors. Fixes TRQS77.
Fix When generating an XML schema from a SQL Schema, the output xml contains a javaname attribute (notice the lowercase "n" in javaname)
Fix Doc generation (anakia format): escape characters not allowed in XML

Release 3.0-RC1 – 2002-10-26

Type Changes By
Update make getPrimaryKey return ObjectKey but getPkField return the type it is. Fixes TRQ41.
Update Torque 3.0 doesn't work with Intake in Turbine 2.x's Retrievable interface. Added a property torque.retrievableInterface (defaults to the turbine-2 version). Fulcrum users have to set the property to org.apache.fulcrum.intake.Retrievable. Fixes TRQS37.
Update Added static factory methods to create instances of SimpleKey. Fixes TRQ45.
Update minor corrections for OJB template. Fixes TRQS7.
Update torque.overloadKeySetters obsoleted. Fixes TRQS13.
Update added support for the new com.mysql.jdbc.Driver
Update improved JDBC to DB2 mappings.
Update improved JDBC to SAPDB mappings. Fixes TRQ35.
Update peers: do not create the JoinAll method if any of the foreign keys reference external tables.
Update new property 'torque.generateDeprecated' ( = 'true'). if set to 'false' deprecated methods in the om/peer classes are not generated
Fix Fix ComboKey.setValue(String) to avoid infinite loop. Fixes TRQ44.
Fix string to date conversion in MSSQL/Sybase. Fixes TRQ26.
Fix booleanint/booleanchar fails with javaType="object". Fixes TRQ28.
Fix ComboKey(String) ctor out-of-memory error. Fixes TRQ31.
Fix Data Dump task may generate invalid XML output. Fixes TRQ39.
Fix add a NumberKey(Number key) constructor and added methods to get native datatypes (byte, int, long, float, double). Fixes TRQ44.
Fix add static keyFor methods to generate appropriate SimpleKey instance. Fixes TRQ45.
Fix several small patches to correct db2 sql generation. Fixes TRQS1.
Fix Torque gererated code does not compile. Fixes TRQS15.
Fix fix foreign key generation statements for db2. Fixes TRQS33.
Fix id-table-init-sql creates empty .sql file. Fixes TRQS40.
Fix bugzilla #12626: Peer.vm was missing the DateKey import.
Fix postgres: Unable to identify an operator '=' for types 'smallint' and 'boolean'
Fix sapdb: generate valid sql for primary keys
Fix objects: avoid npe and set id to null if the object was null
Fix objects: the generation of the BaseClass and the Interface is working even if the Interface is empty.

Release 3.0-B4 – 2002-08-22

Type Changes By
Update jdbc2pool package dissolved (the old Torque pool is back in the torque codebase, the new pool is part of commons-dbcp now)
Update torque uses maven-1.0-beta-6 as default build system.
Update renamed all properties (torque prefix added). the old property names still work but they are deprecated and support will be removed after the 3.0 release.
Fix aliases not recognized in orderBy column

Release 3.0-B3 – 2002-07-17

Type Changes By
Update New Package names are now in use.