Helge Weissig wrote:

> I forgot about the HTML filter this group uses… pardon the crappy formatting. 
> Here is a text-only version:
>
> Our code base is heavily invested in some of the functionality removed from 
> torque 4.0 
> and I was wondering if any one had some advice on a migration path:
>
>       1. We make extensive use of village records obtained via 
>          BasePeer.doSelect(Criteria), for example. 
>          Those results could probably be considered a view of the data
>          and I am wondering if that would be the correct/recommended/best 
> approach.

If you are using this to read data only, have a look at the RecordMapper 
functionality. A record mapper maps DB Columns to an object. You can use 
different record mappers for the same table (e.g. it can be passed in through 
SomePeer.doSelect(Criteria, RecordMapper<TT>), so have different object 
representations. For a generic village-record-like representation, see 
org.apache.torque.om.mapper.ObjectListMapper (personally I do not like this 
representation, put perhaps it serves your needs). Views (now supported !) are 
also a more db-centric option. 

>       2. We have added our own caching implementation 
>          (configurable via the schema definition) to the Object.vm 
>          and Peer.vm templates. I have read through the new generator 
> documentation 
>          and the customization part of the OR Mapping Reference 
>          
> (https://db.apache.org/torque/torque-4.0/documentation/orm-reference/customizing-generation.html)
>          but I don’t seem to be able to find the relevant information 
>          to put it all together. Basically, I would like to override one or 
> more templates.
>          I think I know how to specify that in an outlet, but do I also need 
> the control configuration
>          in the conf directory? The maven plugin (we use maven) has 
> configuration parameters 
>          for overrideConfigDir and overrideConfigPackage… do I need to set 
> those?

Have you checked the code-gen tutorial 
(http://db.apache.org/torque/torque-4.0/documentation/tutorial/orm/index.html) 
for a basic understanding ?
Also, there is an example in the torque test project 
(https://svn.apache.org/repos/asf/db/torque/torque4/trunk/torque-test/src/main/torque-gen)
 which basically does what you want, i.e. overrides the Peer template (adding 
@SuppressWarnings annotations). The torque generation config which invokes this 
can be found in 
https://svn.apache.org/repos/asf/db/torque/torque4/trunk/torque-test/pom.xml 
lines 183ff.
To be more specific:
Yes, you need at least an empty control configuration.
You need to set either overrideConfigDir or overrideConfigPackage, depending 
whether the additional templates can be found in the file sytsem or in the 
classpath.
Please ask again if you cannot get it working. Although more complicated :-(, 
the new generator is much more extensible than the old one. In the current 
trunk, you can even use groovy templates :-)

>       3. This is more of a maven question, maybe, alas I have the feeling
>          it isn’t actually possible to implement through it, but is there a 
> way
>          to skip the code generation steps if the schema sources have not 
> changed?

Sorry, this is not any more possible. The problem is to reliably find out 
whether the file has changed (e.g. some OS do not change the change date of a 
file when it is copied). I have seen more than one situation where schema 
changes did not get picked up because of this option, so my personal 
recommendation is not to rely on such a mechanism. Also, mvn generate is 
typically not executed often while developing, so long generation times should 
not slow down development too much.
However, if you still want to use it, you can patch the Mojo class in the 
Torque maven plugin, this should not be too difficult (please share if you 
choose to do it).

>       4. I know how to configure logging for the generator, but the switch 
> between loglevel
>          WARN and INFO is quite severe. Is there a way to log at INFO level 
> but only to a file, 
>          not to the console? We use log4j throughout our project.

Yes, check the log4j configuration documentation. Basically you need to 
override the log4j configuration file and use two appenders, one file appender 
and one console appender, with different log levels. The log4j configuration 
needs to be in the classpath /org/apache/torque/generator/log4j.properties and 
it must have a higher classpath priority than the torque-generator.jar (I am 
currently not sure how to achieve this using maven, the last resort is patching 
the generator)

Good luck!

   Thomas

---------------------------------------------------------------------
To unsubscribe, e-mail: torque-user-unsubscr...@db.apache.org
For additional commands, e-mail: torque-user-h...@db.apache.org

Reply via email to