cgen task

From: Marco Gattei (marco.gatte..mail.com)
Date: Fri Feb 26 2010 - 11:40:34 EST

  • Next message: Mike Kienenberger: "Re: cgen task"

    Hi everyone,
        i'm trying to play a bit with CAyenne cgen task, to see if i can
    automate the geration of pojo counterparts to my data objects, to use as
    dto in a JAX-WS service.

    i've created mi pojo.vm template file and placed it in same directory
    with the ant script

    project
        +---- generate_pojo.xml
         |
        +---- pojo.vm
        |
        +---- src

    generate_pojo.xml looks like :

    <?xml version="1.0" encoding="UTF-8"?>
    <project name="changeme" default="all" basedir=".">
      
    <target name="generate pojos" >
     <path id="classpath">
          <!-- my local cayenne directory -->
            <fileset dir="D:/java/cayenne-3.0RC2-win/lib" >
                <include name="cayenne-tools-3.0RC2.jar" />
                <include name="cayenne-server-3.0RC2.jar" />
                <include name="third-party/ashwood-2.0.jar" />
                <include name="third-party/commons-collections-3.1.jar" />
                <include name="third-party/commons-logging-1.1.jar" />
                <include name="third-party/velocity-1.3.jar" />
                <include name="third-party/vpp-2.2.1.jar" />

            </fileset>
        </path>

        <echo message="classpath setup " />

        <typedef resource="org/apache/cayenne/tools/antlib.xml">
            <classpath refid="classpath"/>
        </typedef>

            <echo message="task inited" />

            <delete dir="src/com/sapidata/piemme/pojo" />

            <mkdir dir="src/com/sapidata/piemme/pojo" />

            <cgen map="src/PMMap.map.xml"
                  destDir="src/com/sapidata/piemme/pojo"
                  makepairs="false"
                  usepkgpath="false"
                  includeEntities="*"
                  template="pojo.vm"
                  outputPattern="*.java"/>

        </target>
    </project>

    but executing results in

    D:\java\click-click\clickclick\pm-test\GeneraPojo.xml:39:
    org.apache.velocity.exception.ResourceNotFoundException: Unable to find
    resource 'pojo.vm'
            at
    org.apache.velocity.runtime.resource.ResourceManagerImpl.loadResource(ResourceManagerImpl.java:501)
            at
    org.apache.velocity.runtime.resource.ResourceManagerImpl.getResource(ResourceManagerImpl.java:384)
            at
    org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:814)
            at
    org.apache.velocity.runtime.RuntimeInstance.getTemplate(RuntimeInstance.java:796)
            at
    org.apache.velocity.app.VelocityEngine.getTemplate(VelocityEngine.java:512)
            at
    org.apache.cayenne.gen.ClassGenerationAction.getTemplate(ClassGenerationAction.java:275)
            at
    org.apache.cayenne.gen.ClassGenerationAction.execute(ClassGenerationAction.java:241)
            at
    org.apache.cayenne.gen.ClassGenerationAction.execute(ClassGenerationAction.java:213)
            at
    org.apache.cayenne.tools.CayenneGeneratorTask.execute(CayenneGeneratorTask.java:163)

    removing the attributes template="pojo.vm" generates the classes, but
    using default templates.

    Where should be put pojo.vm ?

    Marco



    This archive was generated by hypermail 2.0.0 : Fri Feb 26 2010 - 11:41:31 EST