users@jaxb.java.net

Re: JAXB compilation plugin

From: Malachi de Ælfweald <malachid_at_gmail.com>
Date: Mon, 27 Feb 2006 22:48:14 -0800

I'm glad to hear that this was done. I had recently just wrote one of my own
because of the others I found not working. I had emailed Kohsuke about it,
but didn't think about getting it up on java.net.

A quick question... Why did you have it interact with the XJC2Task instead
of with Driver.run?

Also, one of the things that I implemented that might be useful for yours
was adding codemodel extensions so that we could add custom 'implements',
etc. The specific one that I did added a .toJAXBElement() method to
whichever class ObjectFactory created an JAXBElement for....

Is there actually a dev.java.net project for this specific piece? I would be
more than willing to be a contributor on it.

Malachi


On 2/27/06, Jonathan Johnson <jonjohnson_at_mail.com> wrote:
>
> Kohsuke and all,
>
> A new, working version 1.0 of the JAXB xjc compiler for Maven 2 has been
> submitted to java.net
>
> https://jaxb.dev.java.net/issues/show_bug.cgi?id=118
>
> If you are a maven 2 user this means you can invoke the xjc compiler using
> the Sun implementation of JAXB.
>
> There are two (2) dependent jars that are not yet in the maven repository.
> activation.jar and jsr173. My understanding is Kohsuke is working on
> getting these posted. In the meantime you can manually download and
> install
> them in your local repository. Kohsuke may also be adding this plugin to
> the java.net repository, in the meantime you will have to get the plugin
> source from java.net cvs.
>
> These instructions will be refined and posted with the plugin once the
> dust
> settles.
>
> To execute the JAXB xjc compiler for Maven 2 do the following:
>
> 1. Install activation.jar and jsr173 in your local repository
>
> 2. In your maven project create a directory \src\main\schemas and place
> one
> or more schemas there.
>
> 3. Add to your M2 pom.xml the following dependencies. These dependencies
> are discussed here:
> http://weblogs.java.net/blog/kohsuke/archive/2006/01/jaxb_jars_are_a.html
>
> <dependencies>
> <dependency>
> <groupId>jaxb</groupId>
> <artifactId>jaxb-api</artifactId>
> <version>2.0-SNAPSHOT</version>
> </dependency>
> <dependency>
> <groupId>jaxb</groupId>
> <artifactId>jaxb-impl</artifactId>
> <version>2.0-SNAPSHOT</version>
> </dependency>
> <dependency>
> <groupId>jaxb</groupId>
> <artifactId>jaxb-xjc</artifactId>
> <version>2.0-SNAPSHOT</version>
> </dependency>
> </dependencies>
>
> 4. Add to your M2 pom.xml the following plugin. This plugin will not
> automatically download from the java.net repository yet but you can get
> the
> source from
>
> <plugin>
> <groupId>com.sun.tools.xjc.maven2</groupId>
> <artifactId>maven-jaxb-plugin</artifactId>
> <executions>
> <execution>
> <phase>generate-sources</phase>
> <goals>
> <goal>generate</goal>
> </goals>
> </execution>
> </executions>
> <configuration>
> <includeSchemas>
> <includeSchema>catalog.xsd</includeSchema>
> </includeSchemas>
> <generatePackage>com.foo</generatePackage>
> <verbose>true</verbose>
> </configuration>
> <dependencies>
> <!--activation.jar can be manually installed in your
> local-->
> <!--Maven 2 repository from
> http://java.sun.com/products/javabeans/glasgow/jaf.html-->
> <dependency>
> <groupId>javax.activation</groupId>
> <artifactId>activation</artifactId>
> <version>1.0.2</version>
> </dependency>
>
> <!--jsr173.jar can be manually installed in your
> local-->
> <!--Maven 2 repository from
> http://www.ibiblio.org/maven/xmlbeans/jars-->
> <dependency>
> <groupId>javax.xml</groupId>
> <artifactId>jsr173</artifactId>
> <version>1.0</version>
> </dependency>
> </dependencies>
> </plugin>
>
> 4. In the above example change the <includeSchema> to one or more of your
> source schemas. Set the <generatePackage> to your desired package to
> generate.
>
> 5. From the command line execute the xjc compiler by invoking the maven 2
> lifecycle phase 'generate-sources' or the goal 'compile'.
>
> mvn generate-sources
>
> The xjc compiler will generate the java source files based on the xsd
> files
> found in includeSchemas.
>
>
>
> Additional information...
>
> This Maven 2 plugin is an adapter to the class com.sun.tools.xjc.XJC2Task.
> Most of its settings are passed from this plugin.
>
> https://jaxb-architecture-document.dev.java.net/nonav/doc/com/sun/tools/xjc/
> XJC2Task.html
>
> This plugin configuration settings are:
>
> <configuration>
> <!-- The source directory containing *.xsd schema and *.xjb binding
> files.
> <schemaDirectory></schemaDirectory>
>
> <!-- A list of regular expression file search patterns to specify
> the
> schemas
> to be processed. Searching is based from the root of
> schemaDirectory. If
> this is not set then all .xsd files in schemaDirectory will
> be
> processed. -->
> <includeSchemas></includeSchemas>
>
> <!-- A list of regular expression file search patterns to specify
> the
> schemas
> to be excluded from the includeSchemas list. Searching is
> based from
> the
> root of schemaDirectory. -->
> <excludeSchemas></excludeSchemas>
>
> <!-- A list of regular expression file search patterns to specify
> the
> binding
> files to be processed. Searching is based from the root of
> schemaDirectory. If this is not set then all .xjb files in
> schemaDirectory will be processed. The binding file that
> will be applied
> to the schema file. -->
> <bindings></bindings>
>
> <!-- If specified, generated code will be placed under this Java
> package. -->
> <generatePackage></generatePackage>
>
> <!-- Generated code will be written under this directory. If you
> specify
> target="doe/ray" and generatePackage="org.here", then files
> are generated
> to doe/ray/org/here. -->
> <generateDirectory></generateDirectory>
>
> <!-- Generate Java source files in the read-only mode if true is
> specified.
> false by default. -->
> <readOnly></readOnly>
>
> <!-- If set to true, the XJC binding compiler will run in the
> extension
> mode.
> Otherwise, it will run in the strict conformance mode. The
> default is
> false. -->
> <extension></extension>
>
> <!-- Specify the catalog file to resolve external entity
> references.
> Support
> TR9401, XCatalog, and OASIS XML Catalog format. See the
> catalog-resolver
> sample and this article for details. -->
> <catalog></catalog>
>
> <!-- Used in pair with nested <produces> elements. When this
> attribute is
> specified as "true", the files pointed to by the <produces>
> elements will
> be all deleted before the XJC binding compiler recompiles
> the source
> files. See the up-to-date check section for
> details. Default is
> false. -->
> <removeOldOutput></removeOldOutput>
>
> <!-- If verbose all the configured settings that are to be passed
> to the
> xjc
> compiler are logged. -->
> <verbose></verbose>
> </configuration>
>
>
>
> References
>
> Maven 2
> http://maven.apache.org/
>
> Maven 2 plugin matrix
> http://docs.codehaus.org/display/MAVEN/Maven+Plugin+Matrix
>
> Kohsuke Kawaguchi's Blog on JAXB jars are available on Maven repository
> http://weblogs.java.net/blog/kohsuke/archive/2006/01/jaxb_jars_are_a.html
>
> JAXB xjc compiler for Maven 2. Java.net issue tracking
> https://jaxb.dev.java.net/issues/show_bug.cgi?id=118
>
> Java.net Maven Repository
> https://maven-repository.dev.java.net/
>
> JavaBeans Activation Framework
> http://java.sun.com/products/javabeans/glasgow/jaf.html
>
> jsr173.jar
> http://www.ibiblio.org/maven/xmlbeans/jars-->
>
> The XJC2Task JavaDoc
>
> https://jaxb-architecture-document.dev.java.net/nonav/doc/com/sun/tools/xjc/
> XJC2Task.html
>
> The java.net maven repository.
> https://maven-repository.dev.java.net/nonav/repository/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>
>