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#...
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&a...