[jboss-user] [Microcontainer] - Re: Conflict between ejb3 deployer and custom GenericAnnotat

gregory.mostizky@gmail.com do-not-reply at jboss.com
Tue May 5 05:09:51 EDT 2009


I was able to do a workaround solution after stepping through all the deployment code yesterday. It works now but I would appreciate your comments on whether I did it right and also for the benefit of whoever gets stuck with it in the future.

I added the following to the QmfTypeAnnotationDeployer class:

  |     public QmfTypeAnnotationDeployer() {
  |         log.info("Initalizing "+this.getClass().getSimpleName());
  |         addInput(JBossMetaData.class);
  |         setOutputs(new HashSet<String>());
  |         setOutput(QmfRegisteredClassesMetaData.class);
  |     }
  | 

What this does is it makes sure that my custom annotation deployer runs after all normal EJB3 annotation scanners. The way I understand it is that the problem was that by default GenericAnnotationDeployer sets its output as AnnotationEnviroment and this creates a conflict between it and some other deployer from EJB3 package which also outputs AnnotationEnviroment but slightly changed. Since the previous version of my custom deployer didnt have any inputs it was running first and basically giving wrong AnnotationEnviroment to the rest of EJB3 deployers - which (after some more processing) would generate the exception I have experienced.

If my understanding is correct the fix should be easy - just change the output of EJB3 deployer to something like setOutput('internal.'+AnnotationEnviroment.class.getSimpleName()) which will make sure that both AnnotationEnviroments can co-exist happily :)

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4228547#4228547

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4228547



More information about the jboss-user mailing list