users@glassfish.java.net

Re: JSF 2 pages spread over multiple OSGi bundles

From: Robert Anderson <ranomail_at_gmail.com>
Date: Fri, 5 Aug 2011 16:54:15 -0300

Yesssss!!!!!

Despite not having been able to use the events of the CDI events, I'm able
to render JSF pages that are within other bundles.

Jason and Sahoo, thank you very much!

Next step: Use CDI with JSF 2 inside module bundles. :D

Best regards,

Robert


On Fri, Aug 5, 2011 at 11:51 AM, Robert Anderson <ranomail_at_gmail.com> wrote:

> Sahoo,
>
> The problem is intermittent. Stop and start module1 few times, then the
> problem will occur.
>
> I think that the problem can be here (
> http://svn-mirror.glassfish.org/glassfish-svn/trunk/v3/web/weld-integration/src/main/java/org/glassfish/weld/ACLSingletonProvider.java
> ):
>
> /**
> * This is the most significant method of this class. This is what
> * distingushes it from TCCLSIngleton. It tries to obtain a class loader
> * that's common to all modules of an application (ear). Since it runs
> * in the context of Java EE, it can assume that Thread's context
> * class loader is always set as application class loader. In GlassFish,
> * the class loader can vary for each module of an Ear. Thread's
> * context class loader is set depending on which module is handling
> * the request. But, fortunately all those embedded module class loaders
> * have a common parent in their delegation chain. That parent
> * is of type EarLibClassLoader. So, this code walks up the delegation
> * chain until it hits either a EarLibClassLoader type of parent or
> * bootstrapClassLoader. If former is the case, it returns that
> * instance of EarLibClassLoader. If latter is the case, it assumes
> * that this is a standalone module and hence it returns the thread's
> * context class loader.
> *
> * @return a class loader that's common to all modules of a Java EE app
> */
> private ClassLoader getClassLoader()
> {
> SecurityManager sm = System.getSecurityManager();
> final ClassLoader tccl = (sm != null) ?
> AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
> {
> public ClassLoader run()
> {
> return Thread.currentThread().getContextClassLoader();
> }
> }) : Thread.currentThread().getContextClassLoader();
> if (tccl == null) {
> throw new RuntimeException("Thread's context class loader is null");
> }
>
> ClassLoader cl = tccl;
>
> // most of the time, class loader of application (whether it is a
> // standalone module or an ear) has common class loader in their
> // delegation chain. So, we can break the loop early for them.
> // There are exceptions like hybrid app to this rule.
> // So, we have to walk upto bootstrapCL in worst case.
> while (cl != ccl && cl != bootstrapCL) {
> if (cl instanceof EarLibClassLoader) {
> // System.out.println("ACLSingletonProvider.getClassLoader():\n" +
> // "Application Class Loader = [ " + cl + "],\n" +
> // "Thread Context Class Loader = [" + tccl + "]");
> return cl;
> }
> cl = getParent(cl);
> }
> return tccl;
> }
>
> Apparently, in some cases (hybrid applications) getClassLoader() doesn't
> find the correct classloader and store.get(acl) returns null.
>
>
> Robert
>
>
> On Fri, Aug 5, 2011 at 10:12 AM, Robert Anderson <ranomail_at_gmail.com>wrote:
>
>> I've this very interesting post (
>> http://www.adam-bien.com/roller/abien/entry/singleton_the_simplest_possible_jmx
>> )
>>
>> "
>> ....
>>
>> 2) Methods called via JMX may also fire *CDI Events*.* However there is a
>> problem that the context class loader is not the one of the container when
>> the* JMX *method is called and so I had to set it manualy. Otherwise I
>> got an Exception during runtime saying >>java.lang.IllegalStateException:
>> Singleton not set for sun.misc.Launcher$AppClassLoader@...*<<
>>
>> I would like to ask if using CDI (specially events) during JMX calls is
>> not conform to the specification, if its a bug, or if its intended to switch
>> the classloader manually. Any Idea?
>>
>> Thx for your input!
>>
>> Jan Wiemer
>> "
>>
>> The question is: Why the problem is not happening in your environment?
>>
>> Robert
>>
>>
>> On Fri, Aug 5, 2011 at 9:59 AM, Robert Anderson <ranomail_at_gmail.com>wrote:
>>
>>> Sahoo,
>>>
>>> Testing with Glassfish 3.1.1...
>>>
>>> g! install
>>> file:/F:/Users/ranophoenix_2/Documents/Pos-ESAB/Experimentos/osgijee/core/target/core.jar
>>> Bundle ID: 253
>>> g! start 253
>>> g! install
>>> file:/F:/Users/ranophoenix_2/Documents/Pos-ESAB/Experimentos/osgijee/webclient/target/webclient.war
>>> Bundle ID: 254
>>> g! start 254
>>> g! install
>>> file:/F:/Users/ranophoenix_2/Documents/Pos-ESAB/Experimentos/osgijee/module1/target/module1.war
>>> Bundle ID: 255
>>> g! start 255
>>> ERROR: Bundle ranophoenix.osgijee.webclient [254]: EventDispatcher: Error
>>> during dispatch. (java.lang.IllegalStateExcept
>>> ion: Singleton not set for sun.misc.Launcher$AppClassLoader_at_1f7182c1)
>>> java.lang.IllegalStateException: Singleton not set for
>>> sun.misc.Launcher$AppClassLoader_at_1f7182c1
>>>
>>> at
>>> org.glassfish.weld.ACLSingletonProvider$ACLSingleton.get(ACLSingletonProvider.java:110)
>>> at org.jboss.weld.Container.instance(Container.java:58)
>>> at
>>> org.jboss.weld.resolution.ResolvableBuilder.checkQualifier(ResolvableBuilder.java:209)
>>> at
>>> org.jboss.weld.resolution.ResolvableBuilder.addQualifier(ResolvableBuilder.java:174)
>>> at
>>> org.jboss.weld.resolution.ResolvableBuilder.addQualifiers(ResolvableBuilder.java:202)
>>> at
>>> org.jboss.weld.manager.BeanManagerImpl.resolveObserverMethods(BeanManagerImpl.java:474)
>>> at
>>> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:625)
>>> at org.jboss.weld.event.EventImpl.fire(EventImpl.java:75)
>>> at
>>> ranophoenix.osgijee.webclient.impl.cdi.ModuleExtensionListener.serviceChanged(ModuleExtensionListener.java:42
>>>
>>> )
>>> at
>>> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:871)
>>> at
>>> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733)
>>> at
>>> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662)
>>> at
>>> org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3769)
>>> at org.apache.felix.framework.Felix.access$000(Felix.java:80)
>>> at
>>> org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:722)
>>> at
>>> org.apache.felix.framework.ServiceRegistry.registerService(ServiceRegistry.java:107)
>>> at
>>> org.apache.felix.framework.Felix.registerService(Felix.java:2854)
>>> at
>>> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:251)
>>> at
>>> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:229)
>>> at
>>> ranophoenix.osgijee.module1.impl.Activator.start(Activator.java:17)
>>> at
>>> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:629)
>>> at
>>> org.apache.felix.framework.Felix.activateBundle(Felix.java:1835)
>>> at org.apache.felix.framework.Felix.startBundle(Felix.java:1752)
>>> at
>>> org.apache.felix.framework.BundleImpl.start(BundleImpl.java:922)
>>> at org.apache.felix.gogo.command.Basic.start(Basic.java:758)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at
>>> org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
>>> at
>>> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
>>> at
>>> org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469)
>>> at
>>> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395)
>>> at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
>>> at
>>> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
>>> at
>>> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
>>> at
>>> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
>>> at org.apache.felix.gogo.shell.Console.run(Console.java:62)
>>> at org.apache.felix.gogo.shell.Shell.console(Shell.java:203)
>>> at org.apache.felix.gogo.shell.Shell.gosh(Shell.java:128)
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at
>>> org.apache.felix.gogo.runtime.Reflective.method(Reflective.java:136)
>>> at
>>> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:82)
>>> at
>>> org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:469)
>>> at
>>> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:395)
>>> at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
>>> at
>>> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
>>> at
>>> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
>>> at
>>> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:89)
>>> at
>>> org.apache.felix.shell.remote.Shell.startGogoShell(Shell.java:108)
>>> at org.apache.felix.shell.remote.Shell.run(Shell.java:81)
>>>
>>> at java.lang.Thread.run(Thread.java:662)
>>> Module1 started
>>>
>>> This problem occurred again in Glassfish V3.1 even after clearing the
>>> cache. What is your JVM version?
>>>
>>> My version (Windows):
>>>
>>> java version "1.6.0_25"
>>> Java(TM) SE Runtime Environment (build 1.6.0_25-b06)
>>> Java HotSpot(TM) 64-Bit Server VM (build 20.0-b11, mixed mode)
>>>
>>> this kind of problem is very annoying...
>>>
>>> I will continue investigating and I will keep you informed about any
>>> progress.
>>>
>>> Cheers,
>>>
>>> Robert
>>>
>>>
>>>
>>> On Fri, Aug 5, 2011 at 8:44 AM, Robert Anderson <ranomail_at_gmail.com>wrote:
>>>
>>>> Thanks Sahoo!
>>>>
>>>> Problem resolved! I had to clean the osgi-cache dir. Now It's working
>>>> like a charm. :)
>>>>
>>>> Next step: render a JSF page (about.xhtml) in module1/module2 from
>>>> webclient.
>>>>
>>>> I'll try Glassfish 3.1.1.
>>>>
>>>> Best regards,
>>>>
>>>> Robert
>>>>
>>>>
>>>>
>>>> On Fri, Aug 5, 2011 at 8:30 AM, Sahoo <sanjeeb.sahoo_at_oracle.com> wrote:
>>>>
>>>>> **
>>>>> I have now tried with your latest changes and with 3.1b43, but could
>>>>> not reproduce. This is what I am doing:
>>>>>
>>>>> $ telnet localhost 6666
>>>>> g! install
>>>>> file:/space/ss141213/bugs/scattered-jsf/osgijee/core/target/core.jar
>>>>> Bundle ID: 220
>>>>> g! install install
>>>>> file:/space/ss141213/bugs/scattered-jsf/osgijee/webclient/target/webclient.war
>>>>> java.net.MalformedURLException: no protocol: install
>>>>> Bundle ID: 222
>>>>> g! install
>>>>> file:/space/ss141213/bugs/scattered-jsf/osgijee/webclient/target/webclient.war
>>>>> Bundle ID: 222
>>>>> g! start 220 222
>>>>> g! install
>>>>> file:/space/ss141213/bugs/scattered-jsf/osgijee/module1/target/module1.war
>>>>>
>>>>> Bundle ID: 223
>>>>> g! start 223
>>>>> Module1 started
>>>>>
>>>>> server.log has following output:
>>>>>
>>>>>
>>>>> [#|2011-08-05T16:54:40.653+0530|INFO|glassfish3.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=52;_ThreadName=pool-7-thread-1;|WEB0671:
>>>>> Loading application [ranophoenix.osgijee.webclient_1.0.0.SNAPSHOT] at
>>>>> [/webclient]|#]
>>>>>
>>>>> [#|2011-08-05T16:54:40.659+0530|INFO|glassfish3.1|org.glassfish.osgiweb|_ThreadID=19;_ThreadName=pool-7-thread-1;osgi.web.symbolicname=ranophoenix.osgijee.webclient;osgi.web.version=1.0.0.SNAPSHOT;osgi.web.contextpath=/webclient;|Registered
>>>>> ServletContext as a service with properties:
>>>>> {osgi.web.symbolicname=ranophoenix.osgijee.webclient,
>>>>> osgi.web.version=1.0.0.SNAPSHOT, osgi.web.contextpath=/webclient} |#]
>>>>>
>>>>> [#|2011-08-05T16:54:40.661+0530|INFO|glassfish3.1|org.glassfish.osgijavaeebase|_ThreadID=19;_ThreadName=pool-7-thread-1;|deployed
>>>>> bundle ranophoenix.osgijee.webclient [222] at
>>>>> file:/tmp/osgiapp7051378758467932014/|#]
>>>>>
>>>>>
>>>>> Could you please try with GlassFish 3.1.1? I definitely recommend using
>>>>> GlassFish 3.1.1 as it has some bug fixes as well. When you use 3.1.1, the
>>>>> shell is not turned on by default, otherwise rest of OSGi/JavaEE features
>>>>> are all on unlike 3.1. To enable the shell, pl. see the instruction in the
>>>>> pdf I had earlier pointed to.
>>>>>
>>>>> Thanks,
>>>>> Sahoo
>>>>>
>>>>> On Friday 05 August 2011 04:24 PM, Robert Anderson wrote:
>>>>>
>>>>> Hi Sahoo,
>>>>>
>>>>> I'm using Glassfish 3.1.build-43.
>>>>>
>>>>> I changed the code to illustrate the problem (
>>>>> http://code.google.com/p/osgijee/source/browse/webclient/src/main/java/ranophoenix/osgijee/webclient/impl/cdi/ModuleExtensionListener.java).
>>>>>
>>>>>
>>>>> Steps:
>>>>>
>>>>> $> asadmin start-database
>>>>> $> asadmin start-domain
>>>>> $> telnet localhost 6666 //osgi shell or OSGi Web Console
>>>>> osgi> install core.jar
>>>>> osgi> start <core.jar id>
>>>>> osgi> install webclient.war
>>>>> osgi> start <webclient.war id>
>>>>>
>>>>> /-- glassfish log --/
>>>>> INFO: Expanded at
>>>>> file:/F:/Users/RANOPH~1/AppData/Local/Temp/osgiapp7656686012903924963/
>>>>> INFO: Instantiated an instance of
>>>>> org.hibernate.validator.engine.resolver.JPATraversableResolver.
>>>>> INFO: total number of classes with faces annotation = 0
>>>>> INFO: Inicializando Mojarra 2.1.0 (FCS 2.1.0-b11) para o contexto
>>>>> '/webclient'
>>>>> INFO: Faces Config uris excluding the ones named as faces-config.xml =
>>>>> [bundle://363.0:0/WEB-INF/classes/META-INF/weld.faces-config.xml]
>>>>> INFO: Facelet Config uris = []
>>>>> INFO: WEB0671: Loading application
>>>>> [ranophoenix.osgijee.webclient_1.0.0.SNAPSHOT] at [/webclient]
>>>>> INFO: Registered ServletContext as a service with properties:
>>>>> {osgi.web.symbolicname=ranophoenix.osgijee.webclient,
>>>>> osgi.web.version=1.0.0.SNAPSHOT, osgi.web.contextpath=/webclient}
>>>>> INFO: deployed bundle ranophoenix.osgijee.webclient [363] at
>>>>> file:/F:/Users/RANOPH~1/AppData/Local/Temp/osgiapp7656686012903924963/
>>>>> /-- end glassfish log --/
>>>>>
>>>>> osgi> install module1.war
>>>>> osgi> start <module1.war id>
>>>>>
>>>>> /-- glassfish log --/
>>>>> INFO: ERROR: Bundle ranophoenix.osgijee.webclient [363]:
>>>>> EventDispatcher: Error during dispatch. (java.lang.IllegalStateException:
>>>>> Singleton not set for WebappClassLoader (delegate=false; repositories=))
>>>>> GRAVE: java.lang.IllegalStateException: Singleton not set for
>>>>> WebappClassLoader (delegate=false; repositories=)
>>>>> at
>>>>> org.glassfish.weld.ACLSingletonProvider$ACLSingleton.get(ACLSingletonProvider.java:110)
>>>>> at org.jboss.weld.Container.instance(Container.java:58)
>>>>> at
>>>>> org.jboss.weld.resolution.ResolvableBuilder.checkQualifier(ResolvableBuilder.java:209)
>>>>> at
>>>>> org.jboss.weld.resolution.ResolvableBuilder.addQualifier(ResolvableBuilder.java:174)
>>>>> at
>>>>> org.jboss.weld.resolution.ResolvableBuilder.addQualifiers(ResolvableBuilder.java:202)
>>>>> at
>>>>> org.jboss.weld.manager.BeanManagerImpl.resolveObserverMethods(BeanManagerImpl.java:474)
>>>>> at
>>>>> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:625)
>>>>> at org.jboss.weld.event.EventImpl.fire(EventImpl.java:75)
>>>>> at
>>>>> ranophoenix.osgijee.webclient.impl.cdi.ModuleExtensionListener.serviceChanged(ModuleExtensionListener.java:45)
>>>>> at
>>>>> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:871)
>>>>> at
>>>>> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733)
>>>>> at
>>>>> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662)
>>>>> at
>>>>> org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3769)
>>>>> at org.apache.felix.framework.Felix.access$000(Felix.java:80)
>>>>> at
>>>>> org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:722)
>>>>> at
>>>>> org.apache.felix.framework.ServiceRegistry.registerService(ServiceRegistry.java:107)
>>>>> at
>>>>> org.apache.felix.framework.Felix.registerService(Felix.java:2854)
>>>>> at
>>>>> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:251)
>>>>> at
>>>>> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:229)
>>>>> at
>>>>> ranophoenix.osgijee.module1.impl.Activator.start(Activator.java:17)
>>>>> at
>>>>> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:629)
>>>>> at org.apache.felix.framework.Felix.activateBundle(Felix.java:1835)
>>>>> at org.apache.felix.framework.Felix.startBundle(Felix.java:1752)
>>>>> at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:922)
>>>>> at
>>>>> org.apache.felix.shell.impl.StartCommandImpl.execute(StartCommandImpl.java:114)
>>>>> at
>>>>> org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:286)
>>>>> at
>>>>> org.apache.felix.webconsole.internal.misc.ShellServlet.doPost(ShellServlet.java:93)
>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>>>>> at
>>>>> org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:428)
>>>>> at
>>>>> org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:375)
>>>>> at
>>>>> org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
>>>>> at
>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
>>>>> at
>>>>> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
>>>>> at
>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
>>>>> at
>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:171)
>>>>> at
>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>>>>> at
>>>>> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
>>>>> at
>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
>>>>> at
>>>>> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
>>>>> at
>>>>> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
>>>>> at
>>>>> com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
>>>>> at
>>>>> com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
>>>>> at
>>>>> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
>>>>> at
>>>>> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
>>>>> at
>>>>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
>>>>> at
>>>>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
>>>>> at
>>>>> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
>>>>> at
>>>>> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
>>>>> at
>>>>> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
>>>>> at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
>>>>> at
>>>>> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
>>>>> at
>>>>> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
>>>>> at java.lang.Thread.run(Thread.java:662)
>>>>>
>>>>> INFO: Module1 started
>>>>>
>>>>> /-- end glassfish log --/
>>>>>
>>>>>
>>>>> Thanks in advance,
>>>>>
>>>>> Robert
>>>>>
>>>>>
>>>>> On Fri, Aug 5, 2011 at 1:28 AM, Sahoo <sanjeeb.sahoo_at_oracle.com>wrote:
>>>>>
>>>>>> Robert,
>>>>>>
>>>>>> I can't reproduce this. I tried commenting out this line of code as
>>>>>> well in
>>>>>> osgijee/webclient/src/main/java/ranophoenix/osgijee/webclient/impl/cdi/ModuleExtensionListener.java:
>>>>>> modExtAddedEvent.fire(me);
>>>>>> //java.lang.IllegalStateException: Singleton not set for WebappClassLoader
>>>>>> (delegate=false; repositories=)
>>>>>>
>>>>>> , yet I can't reproduce. I have copied core.jar, webclient.war,
>>>>>> module[12].war to autodeploy/bundles/. What step is missing?
>>>>>>
>>>>>> Thanks,
>>>>>> Sahoo
>>>>>>
>>>>>>
>>>>>> On Friday 05 August 2011 12:18 AM, Robert Anderson wrote:
>>>>>>
>>>>>> "GlassFish has a number of OSGi features exposed to the end user which
>>>>>> are all nicely documented in the official documentation."
>>>>>>
>>>>>> Surely! I'm liking very much. Obviously a lot can still be improved,
>>>>>> but that's why we're here. Long life open source! ;)
>>>>>>
>>>>>> So...
>>>>>>
>>>>>> I'm trying to use CDI events but I'm receiving the exception below:
>>>>>>
>>>>>> java.lang.IllegalStateException: Singleton not set for
>>>>>> WebappClassLoader (delegate=false; repositories=)
>>>>>> at
>>>>>> org.glassfish.weld.ACLSingletonProvider$ACLSingleton.get(ACLSingletonProvider.java:110)
>>>>>> at org.jboss.weld.Container.instance(Container.java:58)
>>>>>> at
>>>>>> org.jboss.weld.resolution.ResolvableBuilder.checkQualifier(ResolvableBuilder.java:209)
>>>>>> at
>>>>>> org.jboss.weld.resolution.ResolvableBuilder.addQualifier(ResolvableBuilder.java:174)
>>>>>> at
>>>>>> org.jboss.weld.resolution.ResolvableBuilder.addQualifiers(ResolvableBuilder.java:202)
>>>>>> at
>>>>>> org.jboss.weld.manager.BeanManagerImpl.resolveObserverMethods(BeanManagerImpl.java:474)
>>>>>> at
>>>>>> org.jboss.weld.manager.BeanManagerImpl.fireEvent(BeanManagerImpl.java:625)
>>>>>> at org.jboss.weld.event.EventImpl.fire(EventImpl.java:75)
>>>>>> at
>>>>>> ranophoenix.osgijee.webclient.impl.cdi.ModuleExtensionListener.serviceChanged(ModuleExtensionListener.java:45)
>>>>>> at
>>>>>> org.apache.felix.framework.util.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:871)
>>>>>> at
>>>>>> org.apache.felix.framework.util.EventDispatcher.fireEventImmediately(EventDispatcher.java:733)
>>>>>> at
>>>>>> org.apache.felix.framework.util.EventDispatcher.fireServiceEvent(EventDispatcher.java:662)
>>>>>> at
>>>>>> org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:3769)
>>>>>> at org.apache.felix.framework.Felix.access$000(Felix.java:80)
>>>>>> at
>>>>>> org.apache.felix.framework.Felix$2.serviceChanged(Felix.java:722)
>>>>>> at
>>>>>> org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:135)
>>>>>> at
>>>>>> org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:129)
>>>>>> at
>>>>>> org.apache.felix.framework.ServiceRegistry.unregisterServices(ServiceRegistry.java:178)
>>>>>> at org.apache.felix.framework.Felix.stopBundle(Felix.java:2227)
>>>>>> at org.apache.felix.framework.BundleImpl.stop(BundleImpl.java:958)
>>>>>> at
>>>>>> org.apache.felix.shell.impl.StopCommandImpl.execute(StopCommandImpl.java:93)
>>>>>> at
>>>>>> org.apache.felix.shell.impl.Activator$ShellServiceImpl.executeCommand(Activator.java:286)
>>>>>> at
>>>>>> org.apache.felix.webconsole.internal.misc.ShellServlet.doPost(ShellServlet.java:93)
>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
>>>>>> at
>>>>>> org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:428)
>>>>>> at
>>>>>> org.apache.felix.webconsole.internal.servlet.OsgiManager.service(OsgiManager.java:375)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:171)
>>>>>> at
>>>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
>>>>>> at
>>>>>> org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
>>>>>> at
>>>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
>>>>>> at
>>>>>> com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
>>>>>> at
>>>>>> com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
>>>>>> at
>>>>>> com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
>>>>>> at
>>>>>> com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
>>>>>> at
>>>>>> com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
>>>>>> at
>>>>>> com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
>>>>>> at
>>>>>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
>>>>>> at
>>>>>> com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
>>>>>> at
>>>>>> com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
>>>>>> at
>>>>>> com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
>>>>>> at
>>>>>> com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
>>>>>> at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
>>>>>> at
>>>>>> com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
>>>>>> at
>>>>>> com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
>>>>>> at java.lang.Thread.run(Thread.java:662)
>>>>>>
>>>>>>
>>>>>>
>>>>>> Source code:
>>>>>> http://code.google.com/p/osgijee/source/browse/webclient/src/main/java/ranophoenix/osgijee/webclient/impl/cdi/ModuleExtensionListener.java
>>>>>>
>>>>>>
>>>>>> Suggestions?
>>>>>>
>>>>>>
>>>>>> Thanks in advance,
>>>>>>
>>>>>> Robert
>>>>>>
>>>>>> On Thu, Aug 4, 2011 at 11:32 AM, Jason Lee <jason.d.lee_at_oracle.com>wrote:
>>>>>>
>>>>>>> While not perfect, GlassFish has a number of OSGi features exposed
>>>>>>> to the end user which are all nicely documented in the official
>>>>>>> documentation. What this user is trying to do is a pretty specific use
>>>>>>> case, so it's not something we have had to investigate yet. Oddly enough,
>>>>>>> though, I was recently requested to do exactly this same thing, so I'll be
>>>>>>> looking into this as well.
>>>>>>>
>>>>>>> We can't cover every use case a user might have, but we try to cover
>>>>>>> the big ones. The others we'll fill in as we can when the need arises.
>>>>>>> This is, though, an open source effort, so there's always room for someone
>>>>>>> to jump in and help, as is the case here. :)
>>>>>>>
>>>>>>>
>>>>>>> On 8/4/11 6:48 AM, Martin Gainty wrote:
>>>>>>>
>>>>>>> your product is suffering mr ellison...
>>>>>>> why doesnt larry open his wallet and hire some of the millions of
>>>>>>> unpaid engineers that support this product?
>>>>>>> JBoss is no picnic but at least RH PAYS their engineers to put OSGI
>>>>>>> features in JBoss
>>>>>>>
>>>>>>> 'Nuf said
>>>>>>> Martin Gainty
>>>>>>>
>>>>>>> --
>>>>>>> Jason Lee
>>>>>>> Senior Member of Technical Staff
>>>>>>> GlassFish REST API / Administration Console
>>>>>>>
>>>>>>> Oracle Corporation
>>>>>>> Phone +1 405-216-3193
>>>>>>> Blog http://blogs.steeplesoft.com
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>