[ 
https://issues.apache.org/jira/browse/ARIES-1038?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13612582#comment-13612582
 ] 

james strachan commented on ARIES-1038:
---------------------------------------

Here's a pull request for a first cut at implementing this:
https://github.com/apache/aries/pull/2

it seems blueprint-noosgi doesn't quite work yet; I get the following stack 
trace below. We still need to support some kind of conf admin / property 
injection from environment variables, system properties or web context-params 
which hopefully we can inject rather like config admin ${foo.bar} type values.

Here's the exception I get running "mvn jetty:run" in 
blueprint/blueprint-sample-war

{code}
======== Initializing Foo =========
2013-03-25 12:13:28.402:WARN:/:Failed to startup blueprint container. 
org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to 
instantiate components
org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to 
instantiate components
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:332)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.init(BlueprintContainerImpl.java:100)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.<init>(BlueprintContainerImpl.java:67)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.<init>(BlueprintContainerImpl.java:58)
        at 
org.apache.aries.blueprint.web.BlueprintContextListener.contextInitialized(BlueprintContextListener.java:49)
        at 
org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:771)
        at 
org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:424)
        at 
org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:763)
        at 
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:249)
        at 
org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
        at 
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:706)
        at 
org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:492)
        at 
org.mortbay.jetty.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:293)
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at 
org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)
        at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:172)
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at 
org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at 
org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
        at org.eclipse.jetty.server.Server.doStart(Server.java:277)
        at org.mortbay.jetty.plugin.JettyServer.doStart(JettyServer.java:65)
        at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
        at 
org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:511)
        at 
org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:364)
        at org.mortbay.jetty.plugin.JettyRunMojo.execute(JettyRunMojo.java:523)
        at 
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        at 
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        at 
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at 
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
        at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
        at 
org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
        at 
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at 
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by:
java.lang.NoClassDefFoundError: 
org/apache/aries/blueprint/container/ReferenceRecipe
        at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:777)
        at 
org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:245)
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:183)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:328)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.init(BlueprintContainerImpl.java:100)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.<init>(BlueprintContainerImpl.java:67)
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.<init>(BlueprintContainerImpl.java:58)
        at 
org.apache.aries.blueprint.web.BlueprintContextListener.contextInitialized(BlueprintContextListener.java:49)
{code}
                
> be able to easily use Blueprint inside a WAR in any servlet container using 
> blueprint-noosgi and a ServletContextListener to boot up all the blueprint 
> XML files
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ARIES-1038
>                 URL: https://issues.apache.org/jira/browse/ARIES-1038
>             Project: Aries
>          Issue Type: New Feature
>            Reporter: james strachan
>
> I've an initial patch I'm about to submit as a pull request which is a first 
> cut. 
> Basically letting WARs in a servlet engine act like blueprint in OSGi; in the 
> sense that any jar can include a blueprint XML file (in 
> META-INF/blueprint.xml to differentiate from the OSGi based configuration?) 
> which the ServletContextListener can then use to find all the blueprint XML 
> files on the classpath (e.g. in dependent jars of the WAR) and then boot 
> everything up

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to