users@jaxb.java.net

RE: Plugin for EJB 3.0 annotations

From: Scott Allan <sallan1000_at_aol.com>
Date: Wed, 10 Aug 2005 17:58:29 -0500

Here is the original message:



 unrecognized parameter -Xinject-code

        at com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:328)

        at com.sun.tools.xjc.XJC2Task.doXJC(XJC2Task.java:316)

        at com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:256)

        at com.sun.tools.xjc.XJCTask.execute(XJCTask.java:65)

        at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)

        at org.apache.tools.ant.Task.perform(Task.java:364)

        at org.apache.tools.ant.Target.execute(Target.java:341)

        at org.apache.tools.ant.Target.performTasks(Target.java:369)

        at org.apache.tools.ant.Project.executeTarget(Project.java:1214)

        at
org.apache.tools.ant.Project.executeTargets(Project.java:1062)

        at org.apache.tools.ant.Main.runBuild(Main.java:673)

        at org.apache.tools.ant.Main.startAnt(Main.java:188)

        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)

        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)

Caused by: com.sun.tools.xjc.BadCommandLineException: unrecognized
parameter -Xi

nject-code

        at com.sun.tools.xjc.Options.parseArguments(Options.java:453)

        at com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:326)

        ... 13 more

--- Nested Exception ---

com.sun.tools.xjc.BadCommandLineException: unrecognized parameter
-Xinject-code

        at com.sun.tools.xjc.Options.parseArguments(Options.java:453)

        at com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:326)

        at com.sun.tools.xjc.XJC2Task.doXJC(XJC2Task.java:316)

        at com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:256)

        at com.sun.tools.xjc.XJCTask.execute(XJCTask.java:65)

        at
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)

        at org.apache.tools.ant.Task.perform(Task.java:364)

        at org.apache.tools.ant.Target.execute(Target.java:341)

        at org.apache.tools.ant.Target.performTasks(Target.java:369)

        at org.apache.tools.ant.Project.executeTarget(Project.java:1214)

        at
org.apache.tools.ant.Project.executeTargets(Project.java:1062)

        at org.apache.tools.ant.Main.runBuild(Main.java:673)

        at org.apache.tools.ant.Main.startAnt(Main.java:188)

        at org.apache.tools.ant.launch.Launcher.run(Launcher.java:196)

        at org.apache.tools.ant.launch.Launcher.main(Launcher.java:55)



Here is the addon message:



Looking for META-INF/services/com.sun.tools.xjc.Plugin for add-ons

Checking
jar:file:/C:/Sun/jaxb-ri-ea/lib/jaxb-xjc.jar!/META-INF/services/com.sun

.tools.xjc.Plugin for an add-on

Attempting to instanciate
com.sun.tools.xjc.addon.locator.SourceLocationAddOn

Attempting to instanciate
com.sun.tools.xjc.addon.sync.SynchronizedMethodAddOn

Attempting to instanciate
com.sun.tools.xjc.addon.code_injector.PluginImpl

Attempting to instanciate com.sun.tools.xjc.addon.code_injector.Const

java.lang.ArrayStoreException

        at java.lang.System.arraycopy(Native Method)

        at java.util.ArrayList.toArray(Unknown Source)

        at com.sun.tools.xjc.Options.findServices(Options.java:590)

        at com.sun.tools.xjc.Options.findServices(Options.java:527)

        at com.sun.tools.xjc.Options.<clinit>(Options.java:147)

        at com.sun.tools.xjc.Driver.run(Driver.java:188)

        at com.sun.tools.xjc.Driver.run(Driver.java:146)

        at com.sun.tools.xjc.Driver._main(Driver.java:71)

        at com.sun.tools.xjc.Driver.access$000(Driver.java:37)

        at com.sun.tools.xjc.Driver$1.run(Driver.java:51)

grammar is not specified



-----Original Message-----

From: Kohsuke Kawaguchi [mailto:Kohsuke.Kawaguchi_at_sun.com]

Sent: Wednesday, August 10, 2005 5:00 PM

To: users_at_jaxb.dev.java.net

Subject: Re: Plugin for EJB 3.0 annotations





Scott Allan wrote:

> I'm ready to try to write plugin for EJB 3.0 annotations such as

> @Entity, @Table, etc.

>

> I tried to test out your Code Injector plugin but could not get xjc to

> run. It didn't recognize the -Xinject-code argument.

>

> I changed the com.sun.tools.xjc.Plugin file to read like this:



You don't need to have the Const class listed, but I don't think that's

the cause of the problem either. Your Ant task configuration looks

correct to me.



Try enabling the debug option for the findServices by doing



export ANT_OPTS="-Dcom.sun.tools.xjc.Options.findServices=true"



It displays how XJC is locating the add-ons.



Also check the CLI, to isolate the problem. Try



$ java -jar jaxb-xjc.jar



and see if the help screen shows plugins. Or you can do:



$ java -Dcom.sun.tools.xjc.Options.findServices=true -jar jaxb-xjc.jar



to get the same error.



> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

> xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"

> xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"

> jaxb:extensionBindingPrefixes="xjc"

> jaxb:version="2.0">

>

> how would I declare set both extensionBindingPrefixes xjc and ci?



It's supposed to give you a reasonably helpful message if you miss

something. So I'd like to know what the error message you saw.



Anyway, add:



xmlns:ci="http://jaxb.dev.java.net/plugin/code-injector"



and



jaxb:extensionBindingPrefixes="xjc ci"







--
Kohsuke Kawaguchi
Sun Microsystems                   kohsuke.kawaguchi_at_sun.com
  _____  
<< ella for Spam Control >> has removed 25096 Spam messages and set
aside 2 Newsletters for me
You can use it too - and it's FREE!  www.ellaforspam.com