users@jersey.java.net

RE: [Jersey] Generating WADL's with references to XSD of JAXB schema

From: Rabick, Mark A (IS) <"Rabick,>
Date: Tue, 28 Apr 2009 18:13:24 -0500

I'll take a look at the example your attached files shortly. I just
wanted to reply and mention some progress I've made. I found the wiki
page:

http://wikis.sun.com/display/Jersey/HowToConfigureExtendedWADL

And it has been helpful. I ran into some classpath issues with ANT so I
ended up actually installing Maven and running the sampe successfully
finally. The benefit of that is that I can find jars in the maven
repository in my $USER_HOME directory or out on a maven online
repository. For example:

C:\Documents and
Settings\${USER.HOME}\.m2\repository\com\sun\jersey\contribs\maven-wadl-
plugin\1.0.3\maven-wadl-plugin-1.0.3.jar
http://download.java.net/maven/2/com/sun/jersey/contribs/wadl-resourcedo
c-doclet/1.0.3/wadl-resourcedoc-doclet-1.0.3.jar

Anyway, I'm generating the scheme from JAXB beans and I've got it
generating the resourcedoc.xml. I'm working on getting the
maven-wadl-plugin-1.0.3.jar incorporated to generate the WADL.

I realize creating samples can be very wash/rinse/repeat but as to your
question:

> Would you say this gets clearer when the sample would be
> reduced to only generate the application.wadl, removing the
> stuff with mvn exec:java that starts jersey with the example
> resources?

I little more info in the readme would probably suffice.

I was also distracted because I don't see in the generate-wadl example a
modified WadlGeneratorConfig so I was wondering how it was producing a
similar 'online' WADL to the 'offline' generated WADL? Ie. I have:

public class CnodbRestWadlGeneratorConfig extends WadlGeneratorConfig {

        @Override
        public List<WadlGeneratorDescription> configure() {
                
                return super.generator(
WadlGeneratorApplicationDoc.class )
                .prop( "applicationDocsFile",
"classpath:/application-doc.xml" )
                .generator( WadlGeneratorGrammarsSupport.class )
                .prop( "grammarsFile",
"classpath:/application-grammars.xml" )
                .generator( WadlGeneratorResourceDocSupport.class )
                .prop( "resourceDocFile", "classpath:/resourcedoc.xml" )
                .descriptions();

        }

}

Then I realized that it is in the Main.java class.

I'm a big fan of having the samples include a 'run' target/goal that
deploys the resources. It's just a little hard to read the mvn command
lines without a little more background. I did notice that if I call:

mvn compile

It appears to also run javadoc:javadoc as you mention before that it is
bound to the compile 'phase' which made it confusing for a non-Maven
guy. I thought compile would just 'compile' and the javadoc:javadoc
would create the resourcedoc.xml and then finally, the maven-wadl-plugin
would create the wadl 'offline'.

There are just a lot of 'moving parts' to keep track of in Jersey that
are more declarative then imperative to get from point A to B. Keeping
my web.xml com.sun.jersey.config.property.WadlGeneratorConfig in synch
with your Main.java config creation without remembering that I have to
gets a little crazy.

It is like a general complaint I have with earlier Struts versions.
There are a lot of string literals that have to 'match' for things to
work and I can usually find a couple of different ways to do the same
thing, ie. Annotations vs. external descriptor files.

--mark

_______________________________________________
Mark A. Rabick - Software Engineer
Em: mark.rabick_at_ngc.com

 

> -----Original Message-----
> From: Martin Grotzke [mailto:martin.grotzke_at_freiheit.com]
> Sent: Tuesday, April 28, 2009 4:14 PM
> To: users_at_jersey.dev.java.net
> Subject: RE: [Jersey] Generating WADL's with references to
> XSD of JAXB schema
>
> Hi Mark,
>
> once I started to create an ant sample that shows how to
> generate wadl with ant (using the GenerateWadlTask provided
> by Andrew Ochsner).
> However, creating an ant build that supports both java 1.5
> and java 1.6 and beeing platform independent prevented me
> from finishing this. I attach the stuff I have, you can have
> a look at the "wadl" target in the build.xml.
>
> But your question was also, what the generate-wadl sample is
> doing to create the application.wadl:
>
> - generate jaxb-beans from the schema.xml (the is done in the
> generate-sources phase before compile, in ant terms compile depends on
> generate-sources)
> - generate the resourcedoc.xml using the javadoc plugin with
> the ResourceDoclet (this is bound to the compile phase)
> - generate the application.wadl using the maven-wadl-plugin
> (this is also bound to the compile phase)
>
> The maven-wadl-plugin is configured to use several
> WadlGenerators, one of them is the
> WadlGeneratorGrammarsSupport that allows to include the grammars file.
>
> As you say that it's not clear what's done 'online' and what
> is needed to generate 'offline': The maven-wadl-plugin was
> created to allow generating the application.wadl completely
> offline - no runtime required at all.
> >
>
> Cheers,
> Martin
>
>
> On Tue, 2009-04-28 at 15:32 -0500, Rabick, Mark A (IS) wrote:
> > My problem with the generate-wadl example is that I've
> never used mvn
> > before. I can get the example to 'do stuff' according to the
> > readme.txt but I can't interpret the mvn output or the
> pom.xml file to
> > determine what it is actually doing. I setup my build process to
> > generate the XSD from my JAXB beans and now I'm trying to
> generate the
> > wadl with the application-grammars.xml support to include
> that schema
> > info. It's hard to distinguish in the sample code what is 'online'
> > and is used to generate the
> > http://host:port/<resource-base>/application.wadl and what
> is needed
> > to generate the WADL 'offline'. I'd like to use ANT so if
> someone can decipher the pom.xml directives into ant tasks/targets.
> >
> > The mvn plugins are confusing to me and I don't see a
> 1-to-1 mapping
> > of mvn instructions to ant tasks/targets.
> >
> > -mark
> >
> > _______________________________________________
> > Mark A. Rabick - Software Engineer
> > Em: mark.rabick_at_ngc.com
> >
> >
> >
> > > -----Original Message-----
> > > From: Arul Dhesiaseelan [mailto:arul_at_fluxcorp.com]
> > > Sent: Wednesday, April 22, 2009 6:32 PM
> > > To: users_at_jersey.dev.java.net
> > > Subject: Re: [Jersey] Generating WADL's with references to
> > > XSD of JAXB schema
> > >
> > > Hi Mark,
> > >
> > > I would suggest you to statically create your XSD from your
> > > JAXB beans.
> > > You could do this by schemagen utility bundled with JAXB RI.
> > > I think it is not a good idea to generate your schema at
> > > runtime just for the purposes of documentation.
> > >
> > > You could use the WadlGenerator: WadlGeneratorGrammarsSupport
> > > to use the generated schema referenced from your WADL using
> > > application-grammars.xml. You can look at the generate-wadl
> > > [1] example in Jersey for more details.
> > >
> > > Hope this helps.
> > >
> > > -Arul
> > >
> > > [1]
> > > https://jersey.dev.java.net/source/browse/jersey/trunk/jersey/
> > > samples/generate-wadl/
> > >
> > > Rabick, Mark A (IS) wrote:
> > > >
> > > > I posted this as a question on Paul's blog post:
> > > > _http://blogs.sun.com/sandoz/entry/jersey_1_0_3_is_
> > > >
> > > > I asked:
> > > >
> > > > Regarding:
> > > >
> > > > >Developer defined WADL-based resource classes,
> inspired by
> > > > James Strachan's use of WADL and Jersey MVC.
> > > > Injecting WadlApplicationContext enables access to
> > > the WADL JAXB
> > > > representation for the application.
> > > >
> > > > Is there a sample that demonstrates the
> generation of a WADL
> > > > that includes the XSD of JAX-B annotated entities? Is it
> > > > possible to generate a WADL outside of having to
> deploy the
> > > > web-app and visit URI:
> > > > _http://host:port/<resource-base>/application.wadl_
> > > > <http://host:port/%3Cresource-base%3E/application.wadl> ??
> > > >
> > > > Arul responded with a blog post illustrating how to
> render the xml
> > > > wadl formatted using XSLT. I would like to have included
> > > in the wadl
> > > > in whatever format it is in to link to a generated XSD
> > > based on a set
> > > > of JAXB annotated entities.
> > > >
> > > > Any ideaa?
> > > >
> > > > -mark
> > > >
> > > > *_______________________________________________*
> > > > *Mark A. Rabick*
> > > > *Em: mark.rabick_at_ngc.com*
> > > >
> > >
> > >
> > >
> > >
> ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> > > For additional commands, e-mail: users-help_at_jersey.dev.java.net
> > >
> > >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe_at_jersey.dev.java.net
> > For additional commands, e-mail: users-help_at_jersey.dev.java.net
>
> --
> Martin Grotzke
> http://www.javakaffee.de/blog/
>