[forge-issues] [JBoss JIRA] (FORGE-427) Facet cannot find @RequiresFacet in another resource JAR
Lincoln Baxter III (JIRA)
jira-events at lists.jboss.org
Tue Jan 24 15:02:18 EST 2012
[ https://issues.jboss.org/browse/FORGE-427?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12661521#comment-12661521 ]
Lincoln Baxter III commented on FORGE-427:
------------------------------------------
Ok, I managed to get some more information on this error.
I think I have a clue. Looks like we are actually missing some more classes/dependencies:
{code}lb3 at quadshark:~/Desktop$ forge
Plugin system disabled due to failure while loading one or more plugins; try removing offending plugins with "forge remove-plugin <TAB>".
java.lang.LinkageError: Failed to link org/switchyard/component/common/rules/util/drools/LogSystemEventListener (Module "org.switchyard.switchyard-forge-plugin:0.3.0.Final" from local module loader @23309e87 (roots: /home/lb3/Development/forge/modules,/home/lb3/.forge/plugins))
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:399)
at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:261)
at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:76)
at org.jboss.modules.Module.loadModuleClass(Module.java:590)
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:183)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:115)
at org.jboss.forge.shell.CompositeClassLoader.findClass(CompositeClassLoader.java:72)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103)
at org.jboss.weld.environment.se.discovery.url.WeldSEResourceLoader.classForName(WeldSEResourceLoader.java:44)
at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:82)
at org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:134)
at org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:191)
at org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:368)
at org.jboss.weld.environment.se.Weld.initialize(Weld.java:92)
at org.jboss.forge.shell.Bootstrap$1.run(Bootstrap.java:101)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NoClassDefFoundError: org/drools/SystemEventListener
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:395)
... 19 more
Caused by: java.lang.ClassNotFoundException: org.drools.SystemEventListener from [Module "org.switchyard.switchyard-forge-plugin:0.3.0.Final" from local module loader @23309e87 (roots: /home/lb3/Development/forge/modules,/home/lb3/.forge/plugins)]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103)
... 24 more
_____
| ___|__ _ __ __ _ ___
| |_ / _ \| `__/ _` |/ _ \ \\
| _| (_) | | | (_| | __/ //
|_| \___/|_| \__, |\___|
|___/
[no project] Desktop $
{code}
I managed to get this information by combining all of the resource-roots in the primary plugin module (see attached zip) Is it at all possible during the packaging of your plugin to do a merge like what I've done using 'zipmerge' to create combined.jar? It seems like this results in better error messaging at least.
> Facet cannot find @RequiresFacet in another resource JAR
> --------------------------------------------------------
>
> Key: FORGE-427
> URL: https://issues.jboss.org/browse/FORGE-427
> Project: Forge
> Issue Type: Bug
> Components: Plugin API
> Affects Versions: 1.0.0.Beta4
> Reporter: Tom Cunningham
>
> We've put a number of different plugins inside a common module, and SwitchYardFacet is in switchyard.forge-plugin-0.4.0-SNAPSHOT.jar. Can a facet in one of my other plugin JARs refer to that one? Do I need to go back to shading?
> Example - this Facet is in switchyard-camel-plugin-0.4.0-SNAPSHOT.jar but refers to SwitchYardFacet which is in another resource-root : switchyard-forge-plugin-0.4.0-SNAPSHOT.jar.
> import org.switchyard.tools.forge.plugin.SwitchYardFacet;
> /**
> * Forge facet for Camel bindings and services.
> */
> @Alias("switchyard.camel")
> @RequiresFacet({ DependencyFacet.class, PackagingFacet.class,
> SwitchYardFacet.class })
> @RequiresPackagingType(PackagingType.JAR)
> public class CamelFacet extends AbstractFacet {
> module.xml :
> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
> <module xmlns="urn:jboss:module:1.0"
> name="org.switchyard.switchyard-forge-plugin" slot="0.4.0-SNAPSHOT">
> <resources>
> <!-- plugin dependencies that must be local to this module -->
> <resource-root path="switchyard-forge-common-0.4.0-SNAPSHOT.jar"/>
> <resource-root path="switchyard-component-common-rules-0.4.0-SNAPSHOT.jar"/>
> <!-- core and component plugins -->
> <resource-root path="switchyard-forge-plugin-0.4.0-SNAPSHOT.jar"/>
> <resource-root path="switchyard-forge-bean-plugin-0.4.0-SNAPSHOT.jar"/>
> <resource-root path="switchyard-forge-soap-plugin-0.4.0-SNAPSHOT.jar"/>
> <resource-root path="switchyard-forge-rules-plugin-0.4.0-SNAPSHOT.jar"/>
> <resource-root path="switchyard-forge-bpm-plugin-0.4.0-SNAPSHOT.jar"/>
> <resource-root path="switchyard-forge-camel-plugin-0.4.0-SNAPSHOT.jar"/>
> </resources>
> Error - the missing Type seems to be SwitchYardFacet :
> tcunning at localhost:tmp]$ forge
> Listening for transport dt_socket at address: 8787
> Plugin system disabled due to failure while loading one or more plugins;
> try removing offending plugins with "forge remove-plugin <TAB>".
> com.google.common.collect.ComputationException:
> java.lang.ArrayStoreException:
> sun.reflect.annotation.TypeNotPresentExceptionProxy
> at
> com.google.common.collect.ComputingConcurrentHashMap.compute(ComputingConcurrentHashMap.java:218)
> at
> com.google.common.collect.ComputingConcurrentHashMap.apply(ComputingConcurrentHashMap.java:100)
> at
> com.google.common.collect.MapMaker$ComputingMapAdapter.get(MapMaker.java:515)
> at
> org.jboss.weld.resources.ClassTransformer.loadClass(ClassTransformer.java:183)
> at org.jboss.weld.bootstrap.BeanDeployer.addClass(BeanDeployer.java:95)
> at
> org.jboss.weld.bootstrap.BeanDeployer.addClasses(BeanDeployer.java:134)
> at
> org.jboss.weld.bootstrap.BeanDeployment.createBeans(BeanDeployment.java:191)
> at
> org.jboss.weld.bootstrap.WeldBootstrap.deployBeans(WeldBootstrap.java:368)
> at org.jboss.weld.environment.se.Weld.initialize(Weld.java:92)
> at org.jboss.forge.shell.Bootstrap$1.run(Bootstrap.java:87)
> at java.lang.Thread.run(Thread.java:662)
> Caused by: java.lang.ArrayStoreException:
> sun.reflect.annotation.TypeNotPresentExceptionProxy
> at
> sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:653)
> at
> sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:460)
> at
> sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286)
> at
> sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222)
> at
> sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
> at
> sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
> at java.lang.Class.initAnnotationsIfNecessary(Class.java:3070)
> at java.lang.Class.getAnnotations(Class.java:3050)
> at
> org.jboss.weld.introspector.jlr.WeldClassImpl.of(WeldClassImpl.java:98)
> at
> org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:54)
> at
> org.jboss.weld.resources.ClassTransformer$TransformTypeToWeldClass.apply(ClassTransformer.java:42)
> at
> com.google.common.collect.ComputingConcurrentHashMap.compute(ComputingConcurrentHashMap.java:206)
> ... 10 more
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the forge-issues
mailing list