So I can build Plugin A (quartz-scheduler).  But the build for Plugin
B (quartz-deployer) which depends on Plugin A fails to create the CAR
with an error like this:

INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] org.gplugins.quartz.QuartzScheduler in classloader
gplugins/quartz-deployer/0.3/car
[INFO] ------------------------------------------------------------------------
[INFO] Trace
java.lang.NoClassDefFoundError: org.gplugins.quartz.QuartzScheduler in
classloader gplugins/quartz-deployer/0.3/car
...
       at org.apache.geronimo.gbean.GBeanInfo.getGBeanInfo(GBeanInfo.java:76)
       at 
org.apache.geronimo.deployment.service.ServiceConfigBuilder.addGBeanData(ServiceConfigBuilder.java:295)
       at 
org.apache.geronimo.deployment.service.ServiceConfigBuilder.addGBeans(ServiceConfigBuilder.java:290)
       at 
org.apache.geronimo.deployment.service.ServiceConfigBuilder.buildConfiguration(ServiceConfigBuilder.java:256)
       at 
org.apache.geronimo.deployment.service.ServiceConfigBuilder.buildConfiguration(ServiceConfigBuilder.java:211)

So it's saying that a quartz-deployer GBean can't find a
quartz-scheduler class.  Now, both the POM for quartz-deployer and the
plan for quartz-deployer include an entry for the quartz-scheduler
CAR:

POM:

       <dependency>
           <groupId>gplugins</groupId>
           <artifactId>quartz-scheduler</artifactId>
           <scope>provided</scope>
           <type>car</type>
       </dependency>

target/plan/plan.xml:

     <dependency>
       <groupId>gplugins</groupId>
       <artifactId>quartz-scheduler</artifactId>
       <type>car</type>
     </dependency>

And when I deploy the quartz-deployer JAR by hand using the plan at
target/plan/plan.xml, then it works fine.

What I don't understand is, how can service-config-builder not load
the quartz-scheduler CAR dependency and then claim that the classes
are missing?  If it loaded the dependency, the classes should be there
(e.g. it works if deployed to a real server).  If it didn't load the
dependency, why didn't it get a missing dependency error?

Thanks,
    Aaron

Reply via email to