Re: OpenEJB in an OSGi container

2008-10-15 Thread Henri Gomez

 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

What about a wiki/blob about this Proof Of Concept.

Good works !


Re: OpenEJB in an OSGi container

2008-10-14 Thread Zog

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.



Re: OpenEJB in an OSGi container

2008-10-10 Thread Zog

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-tp19905326p19924199.html
Sent from the OpenEJB User mailing list archive at Nabble.com.



Re: OpenEJB in an OSGi container

2008-10-09 Thread David Blevins
Guillaume is the one who's done most the work in this area in regards  
to his use of OpenEJB in the OSGi-based ServiceMix 4.


What boot technique did you use in ServieMix?


-David


On Oct 9, 2008, at 2:08 PM, Zog wrote:



Hi
So, I managed to get my EJB app running just fine in Tomcat/ 
OpeneEJB. Now
that it validates the J2EE support I need from OpenEJB, I'd like to  
move all

this
to an OSGi container.
Any hints on where I should look for information ?
I scanned through the web and although it's stated everywhere that  
OpenEJB
is packaged as OSGi bundled, I couldn't find information on how to  
start

openejb
in osgi.
I tried a simple approach where I load everything in openejb/lib  
from the

system classpath,
but got a mysterious exception:
Caused by: org.apache.openejb.core.ivm.naming.NamingException: Cannot
initailize
OpenEJB: null
   at
org.apache.openejb.core.ivm.naming.InitContextFactory.initializeOpenE
JB(InitContextFactory.java:88)
   at
org.apache.openejb.core.ivm.naming.InitContextFactory.getInitialConte
xt(InitContextFactory.java:35)
   at
org.apache.openejb.client.LocalInitialContextFactory.getIntraVmContex
t(LocalInitialContextFactory.java:114)

That's most probably related to the way OSGi does classloading, and  
I'm

investigating.

Should I look at the way you embedded OpenEJB for Tomcat ? Or should  
I look

elsewhere ?
Any clue welcomed :)
 /Zog

PS: Btw, finding http://openejb.apache.org/apidocs is not very easy  
on the

openejb site -
I had to scan through the forums to find that one.
--
View this message in context: 
http://www.nabble.com/OpenEJB-in-an-OSGi-container-tp19905326p19905326.html
Sent from the OpenEJB User mailing list archive at Nabble.com.






Re: OpenEJB in an OSGi container

2008-10-09 Thread Guillaume Nodet
It's been a long time since I work on that and I still have not found
the time to continue this integration work.
Anyway, the code I used is available at:
  http://svn.apache.org/repos/asf/servicemix/smx4/features/branches/ejb3
It uses a spring-powered bundle to set up OpenEJB:
  
http://svn.apache.org/repos/asf/servicemix/smx4/features/branches/ejb3/deployer/src/main/resources/META-INF/spring/openejb-spring.xml
and the related java classes are available at:
  
http://svn.apache.org/repos/asf/servicemix/smx4/features/branches/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/

Unfortunately, this may be a bit outdated :-(

Anyway, the idea was to be able to listen to newly installed bundles
and discover EJB inside those so that they are automatically
configured as plain EJB or web services.
Though, this was in the context of ServiceMix, where the EJBs were to
be exposed on the JBI bus and eventually through HTTP/SOAP too.

On Thu, Oct 9, 2008 at 9:26 PM, David Blevins [EMAIL PROTECTED] wrote:
 Guillaume is the one who's done most the work in this area in regards to his
 use of OpenEJB in the OSGi-based ServiceMix 4.

 What boot technique did you use in ServieMix?


 -David


 On Oct 9, 2008, at 2:08 PM, Zog wrote:


 Hi
 So, I managed to get my EJB app running just fine in Tomcat/OpeneEJB. Now
 that it validates the J2EE support I need from OpenEJB, I'd like to move
 all
 this
 to an OSGi container.
 Any hints on where I should look for information ?
 I scanned through the web and although it's stated everywhere that OpenEJB
 is packaged as OSGi bundled, I couldn't find information on how to start
 openejb
 in osgi.
 I tried a simple approach where I load everything in openejb/lib from the
 system classpath,
 but got a mysterious exception:
 Caused by: org.apache.openejb.core.ivm.naming.NamingException: Cannot
 initailize
 OpenEJB: null
   at
 org.apache.openejb.core.ivm.naming.InitContextFactory.initializeOpenE
 JB(InitContextFactory.java:88)
   at
 org.apache.openejb.core.ivm.naming.InitContextFactory.getInitialConte
 xt(InitContextFactory.java:35)
   at
 org.apache.openejb.client.LocalInitialContextFactory.getIntraVmContex
 t(LocalInitialContextFactory.java:114)

 That's most probably related to the way OSGi does classloading, and I'm
 investigating.

 Should I look at the way you embedded OpenEJB for Tomcat ? Or should I
 look
 elsewhere ?
 Any clue welcomed :)
 /Zog

 PS: Btw, finding http://openejb.apache.org/apidocs is not very easy on the
 openejb site -
 I had to scan through the forums to find that one.
 --
 View this message in context:
 http://www.nabble.com/OpenEJB-in-an-OSGi-container-tp19905326p19905326.html
 Sent from the OpenEJB User mailing list archive at Nabble.com.







-- 
Cheers,
Guillaume Nodet

Blog: http://gnodet.blogspot.com/

Open Source SOA
http://open.iona.com


Re: OpenEJB in an OSGi container

2008-10-09 Thread David Blevins
Thanks, Guillaume.  That gives me a pretty good idea on what the  
pieces are.


Zog, let me know what OSGi kernel and version you're using and I'll  
see if I can't whip up some boot code for you.  If you've got any  
starter code you can share, feel free to zip it up and attach it do a  
JIRA (created a jira for you here https://issues.apache.org/jira/browse/OPENEJB-921)


-David


On Oct 9, 2008, at 2:47 PM, Guillaume Nodet wrote:


It's been a long time since I work on that and I still have not found
the time to continue this integration work.
Anyway, the code I used is available at:
 http://svn.apache.org/repos/asf/servicemix/smx4/features/branches/ 
ejb3

It uses a spring-powered bundle to set up OpenEJB:
 
http://svn.apache.org/repos/asf/servicemix/smx4/features/branches/ejb3/deployer/src/main/resources/META-INF/spring/openejb-spring.xml
and the related java classes are available at:
 
http://svn.apache.org/repos/asf/servicemix/smx4/features/branches/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/

Unfortunately, this may be a bit outdated :-(

Anyway, the idea was to be able to listen to newly installed bundles
and discover EJB inside those so that they are automatically
configured as plain EJB or web services.
Though, this was in the context of ServiceMix, where the EJBs were to
be exposed on the JBI bus and eventually through HTTP/SOAP too.

On Thu, Oct 9, 2008 at 9:26 PM, David Blevins  
[EMAIL PROTECTED] wrote:
Guillaume is the one who's done most the work in this area in  
regards to his

use of OpenEJB in the OSGi-based ServiceMix 4.

What boot technique did you use in ServieMix?


-David


On Oct 9, 2008, at 2:08 PM, Zog wrote:



Hi
So, I managed to get my EJB app running just fine in Tomcat/ 
OpeneEJB. Now
that it validates the J2EE support I need from OpenEJB, I'd like  
to move

all
this
to an OSGi container.
Any hints on where I should look for information ?
I scanned through the web and although it's stated everywhere that  
OpenEJB
is packaged as OSGi bundled, I couldn't find information on how to  
start

openejb
in osgi.
I tried a simple approach where I load everything in openejb/lib  
from the

system classpath,
but got a mysterious exception:
Caused by: org.apache.openejb.core.ivm.naming.NamingException:  
Cannot

initailize
OpenEJB: null
 at
org 
.apache.openejb.core.ivm.naming.InitContextFactory.initializeOpenE

JB(InitContextFactory.java:88)
 at
org 
.apache.openejb.core.ivm.naming.InitContextFactory.getInitialConte

xt(InitContextFactory.java:35)
 at
org 
.apache.openejb.client.LocalInitialContextFactory.getIntraVmContex

t(LocalInitialContextFactory.java:114)

That's most probably related to the way OSGi does classloading,  
and I'm

investigating.

Should I look at the way you embedded OpenEJB for Tomcat ? Or  
should I

look
elsewhere ?
Any clue welcomed :)
   /Zog

PS: Btw, finding http://openejb.apache.org/apidocs is not very  
easy on the

openejb site -
I had to scan through the forums to find that one.
--
View this message in context:
http://www.nabble.com/OpenEJB-in-an-OSGi-container-tp19905326p19905326.html
Sent from the OpenEJB User mailing list archive at Nabble.com.









--
Cheers,
Guillaume Nodet

Blog: http://gnodet.blogspot.com/

Open Source SOA
http://open.iona.com





Re: OpenEJB in an OSGi container

2008-10-09 Thread Zog

I'm using apache Felix 1.2.1 with OSGi 1.4.
I've no code to share yet - I started on this just recently and am still in 
information gathering mode :) but for sure I'll share this
once I get it to work.
Thanks a lot for the help 
  /Zog


David Blevins wrote:
 
 Thanks, Guillaume.  That gives me a pretty good idea on what the  
 pieces are.
 
 Zog, let me know what OSGi kernel and version you're using and I'll  
 see if I can't whip up some boot code for you.  If you've got any  
 starter code you can share, feel free to zip it up and attach it do a  
 JIRA (created a jira for you here
 https://issues.apache.org/jira/browse/OPENEJB-921)
 
 -David
 
 
 On Oct 9, 2008, at 2:47 PM, Guillaume Nodet wrote:
 
 It's been a long time since I work on that and I still have not found
 the time to continue this integration work.
 Anyway, the code I used is available at:
  http://svn.apache.org/repos/asf/servicemix/smx4/features/branches/ 
 ejb3
 It uses a spring-powered bundle to set up OpenEJB:
 
 http://svn.apache.org/repos/asf/servicemix/smx4/features/branches/ejb3/deployer/src/main/resources/META-INF/spring/openejb-spring.xml
 and the related java classes are available at:
 
 http://svn.apache.org/repos/asf/servicemix/smx4/features/branches/ejb3/deployer/src/main/java/org/apache/servicemix/ejb3/deployer/

 Unfortunately, this may be a bit outdated :-(

 Anyway, the idea was to be able to listen to newly installed bundles
 and discover EJB inside those so that they are automatically
 configured as plain EJB or web services.
 Though, this was in the context of ServiceMix, where the EJBs were to
 be exposed on the JBI bus and eventually through HTTP/SOAP too.

 On Thu, Oct 9, 2008 at 9:26 PM, David Blevins  
 [EMAIL PROTECTED] wrote:
 Guillaume is the one who's done most the work in this area in  
 regards to his
 use of OpenEJB in the OSGi-based ServiceMix 4.

 What boot technique did you use in ServieMix?


 -David


 On Oct 9, 2008, at 2:08 PM, Zog wrote:


 Hi
 So, I managed to get my EJB app running just fine in Tomcat/ 
 OpeneEJB. Now
 that it validates the J2EE support I need from OpenEJB, I'd like  
 to move
 all
 this
 to an OSGi container.
 Any hints on where I should look for information ?
 I scanned through the web and although it's stated everywhere that  
 OpenEJB
 is packaged as OSGi bundled, I couldn't find information on how to  
 start
 openejb
 in osgi.
 I tried a simple approach where I load everything in openejb/lib  
 from the
 system classpath,
 but got a mysterious exception:
 Caused by: org.apache.openejb.core.ivm.naming.NamingException:  
 Cannot
 initailize
 OpenEJB: null
  at
 org 
 .apache.openejb.core.ivm.naming.InitContextFactory.initializeOpenE
 JB(InitContextFactory.java:88)
  at
 org 
 .apache.openejb.core.ivm.naming.InitContextFactory.getInitialConte
 xt(InitContextFactory.java:35)
  at
 org 
 .apache.openejb.client.LocalInitialContextFactory.getIntraVmContex
 t(LocalInitialContextFactory.java:114)

 That's most probably related to the way OSGi does classloading,  
 and I'm
 investigating.

 Should I look at the way you embedded OpenEJB for Tomcat ? Or  
 should I
 look
 elsewhere ?
 Any clue welcomed :)
/Zog

 PS: Btw, finding http://openejb.apache.org/apidocs is not very  
 easy on the
 openejb site -
 I had to scan through the forums to find that one.
 --
 View this message in context:
 http://www.nabble.com/OpenEJB-in-an-OSGi-container-tp19905326p19905326.html
 Sent from the OpenEJB User mailing list archive at Nabble.com.







 -- 
 Cheers,
 Guillaume Nodet
 
 Blog: http://gnodet.blogspot.com/
 
 Open Source SOA
 http://open.iona.com

 
 
 

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