tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Zog <jogouss...@gmail.com>
Subject Re: OpenEJB in an OSGi container
Date Tue, 14 Oct 2008 17:08:34 GMT

Succeeded to load OpenEJB in Felix 1.2.1 OSGi container.
See
https://issues.apache.org/jira/browse/OPENEJB-921
for details.
It's not perfect but it fits my needs (for now - just had to produce
a proof of concept).
       /zog



Zog wrote:
> 
> Thought I should give a first update here:
> I took the approach to package the whole OpenEJB (except the javaee jar)
> inside a single bundle,
> trying to run from inside OSGi but still configuring from
> openejb.home/conf/openejb.xml and
> loading my EJBs from openejb.home/apps.
> I did 2 things:
> - created an osgi bundle with proper Import-Package and Bundle-Classpath
> entries
> (classpath contains the whole openejb/lib minus javaee)
> - dropped openejb installation in a local './openejb' dir
> - used adapted code from Guillaume OpenEjbFactory to load openejb in my
> bundle activator:
>          properties = new Properties();
>          properties.put("openejb.home", "./openejb");
>          properties.put("openejb.base", "./openejb");
>          properties.put("openejb.configuration",
> "./openejb/conf/openejb.xml");
>          properties.put("openejb.deployments.classpath.include", " ");
>          properties.put("openejb.deployments.classpath", "true");
>         
> properties.put("openejb.deployments.classpath.filter.system.apps",
> "false");
>         SystemInstance system = SystemInstance.get();
> 
>         ApplicationServer appServer = new ServerFederation();
>         system.setComponent(ApplicationServer.class, appServer);
> 
>         Assembler assembler = new Assembler();
>        
> SystemInstance.get().setComponent(org.apache.openejb.spi.Assembler.class,
> assembler);
>         Properties props = new Properties();
>         props.putAll(system.getProperties());
>         props.putAll(properties);
>         assembler.init(props);
>         assembler.build();
> 
> This works almost ok, BUT
> - because OpenEJB expect resources to be accessible through jars URLs, the
> openejb-core-3.0.jar EJBs do not load. Actually, if I use the default
> empty value for
> openejb.deployments.classpath.include, I get a NPE in
> DeploymentLoader.getWebDescriptors
> because the META-INF dirs have classpath URLs that look like
> 'bundle://5.0:1/META-INF" - looks
> like xbean ResourceFinder doesn't work well in OSGi - will look into it.
> - JNDI tree doesn't seem to be working well: I can find my beans, but not
> my datasources and 
> openejb/ subcontext is missing.
> 
> I attach the log in case someone want to have a look.
> 
>  http://www.nabble.com/file/p19924199/openejb.log openejb.log 
> 
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/OpenEJB-in-an-OSGi-container-tp19905326p19977951.html
Sent from the OpenEJB User mailing list archive at Nabble.com.


Mime
View raw message