Hi Werner

I am running the schema compiler from maven or ant.

I could not get the maven plugin to pass in the flags jclassPrintingType or classPrinter. Looking at the code there is no option in the plugin.

However the ant task below does work and I got all the velocity stuff working - the problem was that I had not set up the path to src/main/resources in ant.

When I made a mistake in the velocity script I got an error and a velocity.log file!

It would be good to get the classPrinter flag into the maven plugin - happy to give a hand if you want.

What I am actually doing is put JPA annotations (@ID, @Entity, @Column etc) into xsd annotations; it all works but it would be nice if I could put this information into appinfo subelement of annotation; this would feel a bit neater. Is it possible to get access the appinfo sub element via the model passed to through the veclotiy context? Currently I am just extracting e.g @Entity from $jClass.getJDocComment() with crude assumption that the annotations are at the end of the comment.

James

<java
    classname="org.exolab.castor.builder.SourceGenerator"
    classpath="${p_classpath_resources};${p_classpath}" fork="true">
     <arg value="-i"/>
     <arg value="${p_schema}"/>
     <arg value="-f"/>
     <arg value="-verbose"/>
     <arg value="-types"/>
     <arg value="arraylist"/>
     <arg value="-package"/>
     <arg value="${p_package}"/>
     <arg value="-dest"/>
     <arg value="${p_dest_dir}"/>
     <arg value="${p_nodesc}"/>
     <arg value="${p_nomarshall}"/>
<!--
     <arg value="-jclassPrintingType"/>
-->
     <arg value="-classPrinter"/>
     <arg value="velocity"/>
  </java>



----- Original Message ----- From: "Werner Guttmann" <[email protected]>
To: <[email protected]>
Sent: Wednesday, August 26, 2009 10:25 PM
Subject: Re: [castor-user] velocity templates


Hi James,

James Cowan wrote:
Hi

I am a bit unclear on how to get the velocity template source code
generation working. I am using castor 1.3.

I have tried org.exolab.castor.builder.SourceGenerator with the
option -jclassPrintingType (as per manual) but get

Invalid command line option -jclassPrintingType.
This is not an option on the SourceGenerator class, but a simple setter
that should be used as follows (taken from a sample test case):

SourceGenerator generator = new SourceGenerator();
String xmlSchema = getClass().getResource("test.xsd").toExternalForm();
InputSource inputSource = new InputSource(xmlSchema);
generator.setDestDir("./codegen/src/test/java");
generator.setSuppressNonFatalWarnings(true);

// uncomment to use Velocity for code generation
generator.setJClassPrinterType("velocity");

Does this address your question ?

I then looked at the source code and tried
org.exolab.castor.builder.SourceGeneratorMain with the option
-classPrinter velocity

I get the error Invalid command line option -classPrinter but then
get the message -- Using JClass printing type velocity which seems to
indicate it is using velocity but I am not sure.
Can you supply me with a short JUnit test case ? I just had a look at
the sources, and this does not make sense.

How do tell whether it is using velocity or not. I switched on log4j
logging to debug but it was not obvious.
If it's not, we should definitely improve logging output. But you can
definitely tell by having a look at the files generated. If you use
'standard' mode, you would still see this old


     //--------------------------/
    //- Class/Member Variables -/
   //--------------------------/

output all over the files.

In addition, I think we should add additional output to the Velocity
macros so that it is apparent what version of Castor has been used to
create the files (and that Velocity has been used).

I also want to make changes main.vm. If I put a copy of main.vm in
target\classes\org\exolab\castor\builder\printing\templates should it
 pick up this version of main.vm instead of the one embedded in the
jar file? It does not seem to..
Not really sure. But for starters, why don't you get Castor sources from
SVN trunk, and amend the files locally, and build Castor yourself ?

James
Werner






---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email




---------------------------------------------------------------------
To unsubscribe from this list, please visit:

   http://xircles.codehaus.org/manage_email


Reply via email to