Updated the JIRA for this. Let's continue discussion there.
On Tue, Jan 24, 2012 at 3:00 PM, Lincoln Baxter, III <
lincolnbaxter(a)gmail.com> wrote:
Hey Tom,
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:
http://fpaste.org/kQvq/
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.
What are your thoughts about this new info?
~Lincoln
On Wed, Jan 18, 2012 at 5:58 PM, Jose Alvarez de Lara <
dakhla.0563(a)hotmail.com> wrote:
> Hi Lincoln,
>
> I will wait for the new release of forge
>
> Thanks,
> Jose
>
> ------------------------------
> Date: Wed, 18 Jan 2012 14:56:43 -0500
> From: lincolnbaxter(a)gmail.com
> To: forge-dev(a)lists.jboss.org
> CC: stuart.w.douglas(a)gmail.com
> Subject: Re: [forge-dev] Weird error again....
>
>
> Also,
>
> The reason this probably worked in Beta3 is because I don't think we
> enforced modularity yet at that point.
>
> ~Lincoln
>
> On Thu, Jan 12, 2012 at 11:47 AM, Lincoln Baxter, III <
> lincolnbaxter(a)gmail.com> wrote:
>
> Yeah, the confusing thing here is that even though SwitchYardFacet is in
> the *same* module (different resource-root) as the Facet that is
> requesting it, it cannot find the class. Does that sound possible? Is this
> maybe a problem with weld not scanning/loading SwitchYardFacet for some
> reason?
>
> ~Lincoln
>
>
> On Wed, Jan 11, 2012 at 8:51 PM, Tom Cunningham <tcunning(a)redhat.com>wrote:
>
> **
> Stuart,
>
> The missing class is SwitchYardFacet.class. The thing that I don't
> understand is that it is contained in one of the other resource roots, but
> not the one that makes this reference. Shouldn't it be able to find it?
>
> The other strange thing is that this worked in Forge 1.0.0.Beta3.
>
> --Tom
>
>
> On 01/11/2012 02:36 PM, Stuart Douglas wrote:
>
> Actually looking at that stack trace I would say that the missing class
> is one of:
>
> { DependencyFacet.class, PackagingFacet.class, SwitchYardFacet.class }
>
> Based on the fact that it is dying inside parseClassArray().
>
> Are all these classes in the same module? An easy way to experiment is
> to set a breakpoint, and then in the watches window do
> CamelFacet.class.getClassLoader().loadClass("com.blagh.DependencyFacet")
> and see which ones are not accessible.
>
> Stuart
>
>
> On 12/01/2012, at 3:02 AM, Lincoln Baxter, III wrote:
>
> Hey Stuart,
>
> I have a favor to ask regarding Weld/JBM. If you have a few seconds,
> could you take a look at something for me? The steps to reproduce this
> problem are in the issue (and this email thread,) but I'm pretty much at a
> loss to why this isn't working. We're getting that lovely
> sun.reflect.annotation.
> TypeNotPresentExceptionProxy again, this time on a class that is in a
> resource root of the same module, but doesn't seem to be found.
>
> I'd love to hear your thoughts.
>
>
https://issues.jboss.org/browse/FORGE-427
>
> Thanks,
> Lincoln
>
> On Tue, Dec 20, 2011 at 9:33 PM, Lincoln Baxter, III <
> lincolnbaxter(a)gmail.com> wrote:
>
> I take that back. I'll have to do more digging. After adding log4j to the
> module.xml, I receive the same error that you did.
>
>
> On Tue, Dec 20, 2011 at 9:31 PM, Lincoln Baxter, III <
> lincolnbaxter(a)gmail.com> wrote:
>
> Ok well, once I turned on logging I was able to figure out the root
> cause, but I don't know exactly why yet. I'm assuming that the stack trace
> is fairly obvious. The question is. "What is the correct way to resolve
it?"
>
> Side note: I really need to add a logging toggle in Forge itself, but it
> would need to go into the launcher, just haven't gotten around to it yet.
> Currently, one needs to edit the build to enable logging *gulp* (Search for
> "LOGGING") in the source and you'll see what I mean :/ That might be
my
> tomorrow (in addition to working on this.) I'm going to be cutting a Beta5
> very soon because of some issues in the recent Beta4.
>
> Dec 20, 2011 9:25:43 PM org.jboss.weld.util.ServiceLoader prepareInstance
> WARNING: Could not instantiate service class
> org.switchyard.component.bean.SwitchYardCDIServiceDiscovery
> java.lang.NoClassDefFoundError: org/apache/log4j/Logger
> at
>
org.switchyard.component.bean.SwitchYardCDIServiceDiscovery.<clinit>(SwitchYardCDIServiceDiscovery.java:59)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
>
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
> at
>
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
> at
> org.jboss.weld.util.ServiceLoader.prepareInstance(ServiceLoader.java:273)
> at
> org.jboss.weld.util.ServiceLoader.loadService(ServiceLoader.java:238)
> at
> org.jboss.weld.util.ServiceLoader.loadServiceFile(ServiceLoader.java:194)
> at org.jboss.weld.util.ServiceLoader.reload(ServiceLoader.java:157)
> at org.jboss.weld.util.ServiceLoader.iterator(ServiceLoader.java:346)
> at
>
org.jboss.weld.bootstrap.ExtensionBeanDeployer.addExtensions(ExtensionBeanDeployer.java:93)
> at
> org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:340)
> at org.jboss.weld.environment.se.Weld.initialize(Weld.java:91)
> at org.jboss.forge.shell.Bootstrap$1.run(Bootstrap.java:90)
> at java.lang.Thread.run(Thread.java:680)
> Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger from
> [Module "org.switchyard.switchyard-forge-plugin:0.3.0.Final" from local
> module loader @6de1dadb (roots:
> /Users/lbaxter/dev/forge/modules,/Users/lbaxter/.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.performLoadClass(ConcurrentClassLoader.java:310)
> at
> org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103)
> ... 15 more
>
>
>
> On Tue, Dec 20, 2011 at 5:50 PM, Tom Cunningham <tcunning(a)redhat.com>wrote:
>
>
> Here's the steps to reproduce (there's quite a few, sorry for that, we
> should have this down to two in the next release) :
>
> Download
>
>
http://downloads.jboss.org/switchyard/releases/v0.3/switchyard-installer-...
> unzip switchyard-installer-0.3.0.Final.zip
> cd switchyard-installer-0.3
> unzip a jboss-as-7.0.2 somewhere to install into, give that location to
> the installer
> Answer (y) that you would like to install the SwitchYard Forge plugin
> If you have FORGE_HOME set to forge-1.0.0.Beta4 or SNAPSHOT, it may
> error out on trying to write to the ~/.forge/plugins/installed.xml
> because JARs have moved around - in this case add the following line to
> installed.xml :
>
> <installed>
> <plugin name="org.switchyard.switchyard-forge-plugin"
slot="0.3.0.Final"/>
> </installed>
>
> Change FORGE_HOME to forge-1.0.0.Beta4 or SNAPSHOT
>
> Edit
>
> ~/.forge/plugins/org/switchyard/switchyard-forge-plugin/0.3.0.Final/module.xml
> Change <module name="javax.enterprise.cdi-api"/>
> to <module name="javax.enterprise.api"/>
> Change <module name="org.jboss.forge.shell-api"/>
> to <module name="org.jboss.forge.shell.api"/>
>
> forge
>
>
>
>
>
> On 12/20/2011 12:44 PM, Lincoln Baxter wrote:
> > Hey Tom,
> >
> > (cc'ing dev list)
> >
> > I'm not exactly sure why this is happening. As long as the plugins are
> distributed as a single module, all resource-roots in that module should
> have classloader visibility between one another. They should also prefer
> their local classes over classes in other classloaders if there is
> duplication.
> >
> > Where can I try this out?
> >
> > ~Lincoln
> >
> > ----- Original Message -----
> > From: "Tom Cunningham"<tcunning(a)redhat.com>
> > To: "Lincoln Baxter"<lbaxter(a)redhat.com>
> > Sent: Saturday, December 17, 2011 1:24:57 AM
> > Subject: Weird error again....
> >
> > Lincoln,
> >
> > I'm seeing a weird error on SNAPSHOT again that I think I've seen
> > before. We managed to remove the shading and got our plugins to
> > work with 1.0.0-Beta3, but when I go to SNAPSHOT I'm seeing the
> > exception at the bottom of this email when it tries to find
> > "org.switchyard.tools.forge.plugin.SwitchYardFacet". 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 the 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@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
> > _____
> >
>
> _______________________________________________
> forge-dev mailing list
> forge-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
>
>
> --
> Lincoln Baxter, III
>
http://ocpsoft.com
>
http://scrumshark.com
> "Keep it Simple"
>
>
>
>
> --
> Lincoln Baxter, III
>
http://ocpsoft.com
>
http://scrumshark.com
> "Keep it Simple"
>
>
>
>
> --
> Lincoln Baxter, III
>
http://ocpsoft.com
>
http://scrumshark.com
> "Keep it Simple"
>
>
>
> _______________________________________________
> forge-dev mailing
listforge-dev@lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/forge-dev
>
>
>
> _______________________________________________
> forge-dev mailing list
> forge-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
>
>
> --
> Lincoln Baxter, III
>
http://ocpsoft.com
>
http://scrumshark.com
> "Keep it Simple"
>
>
>
>
> --
> Lincoln Baxter, III
>
http://ocpsoft.com
>
http://scrumshark.com
> "Keep it Simple"
>
> _______________________________________________ forge-dev mailing list
> forge-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/forge-dev
>
> _______________________________________________
> forge-dev mailing list
> forge-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
--
Lincoln Baxter, III
http://ocpsoft.com
http://scrumshark.com
"Keep it Simple"