<< Back to previous view

[GLASSFISH-18973] Integrate the OSGi Remote Services implementation(eg. Apache CXF Distributed OSGi) Created: 03/Aug/12  Updated: 29/Nov/12

Status: Open
Project: glassfish
Component/s: OSGi
Affects Version/s: future release
Fix Version/s: None

Type: New Feature Priority: Major
Reporter: TangYong Assignee: Sanjeeb Sahoo
Resolution: Unresolved Votes: 0
Σ Remaining Estimate: Not Specified Remaining Estimate: Not Specified
Σ Time Spent: Not Specified Time Spent: Not Specified
Σ Original Estimate: Not Specified Original Estimate: Not Specified

Sub-Tasks:
Key
Summary
Type
Status
Assignee
GLASSFISH-19401 Adding org.apache.cxf.dosgi.discovery... Sub-task Open Sanjeeb Sahoo  
Tags: Distributed OSGi
Participants: ancoron, Sanjeeb Sahoo and TangYong

 Description   

[BackGround]
[Reference By https://issues.jboss.org/browse/JBOSGI-322]
The Enterprise OSGi Spec describes OSGi Remote Services which is a way to Distribute OSGi Services.
An implementation on top of Web Services and REST is available at the CXF Distributed OSGi project (http://cxf.apache.org/distributed-osgi.html).

Integrating this in the JBoss OSGi distribution would provide it with support for this important OSGi spec.

[Requirement]
In a distributed soa/cloud enviroment, in order to decouple the whole system and use the subsystems dynamicly, user can use osgi. However, because subsystems/modules can be distributed across the whole system, as a framework of publishing/consuming services, glassfish should have an capability to support Distributed OSGi.

[Integration Example]
"Deploying CXF-DOSGi to JBoss AS7"
https://community.jboss.org/thread/174136



 Comments   
Comment by TangYong [ 03/Aug/12 02:40 PM ]

Once implementing the feature, It will offer a hybrid JavaEE App more options.

Comment by TangYong [ 23/Aug/12 09:46 AM ]

Now, the integration work will start and use Multi Bundle Distribution of CXF Distributed OSGi.

DCXF Version: 1.3.1

Comment by TangYong [ 23/Aug/12 10:07 AM ]

Step 1(Glassfish Felix Runtime Integration)

Step1.1 Analysing DCXF Dependent Bundles
[Background]
Because some of DCXF dependent bundles belong to other open souce implementation of specfications, we must analyse these bundles to confirm whether glassfish has the corresponding implementations or not and if having, we will replace them using glassfish implementations. DCXF Dependent Bundles needed to be analysed are following(removing dcxf-related bundles and org.osgi.compendium-4.2.0.jar and org.osgi.enterprise-4.2.0.jar):
-------------------------------------------------------------------------
geronimo-annotation_1.0_spec-1.1.1.jar
dosgi_bundles/geronimo-activation_1.1_spec-1.1.jar
geronimo-javamail_1.4_spec-1.2.jar
geronimo-servlet_3.0_spec-1.0.jar
geronimo-ws-metadata_2.0_spec-1.1.3.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.jdom-1.1.0.jar
spring-core-3.0.6.RELEASE.jar
spring-beans-3.0.6.RELEASE.jar
spring-context-3.0.6.RELEASE.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.slf4j.api-1.5.10.jar
com.springsource.slf4j.jcl-1.5.10.jar
spring-aop-3.0.6.RELEASE.jar
spring-asm-3.0.6.RELEASE.jar
spring-expression-3.0.6.RELEASE.jar
spring-osgi-io-1.2.1.jar
spring-osgi-core-1.2.1.jar
spring-osgi-extender-1.2.1.jar
jetty-all-server-7.4.2.v20110526.jar
pax-web-spi-1.0.3.jar
pax-web-runtime-1.0.3.jar
pax-web-jetty-1.0.3.jar
org.apache.servicemix.bundles.jaxb-impl-2.1.13_2.jar
org.apache.servicemix.bundles.wsdl4j-1.6.2_5.jar
org.apache.servicemix.bundles.xmlsec-1.4.5_1.jar
xmlschema-core-2.0.1.jar
org.apache.servicemix.bundles.asm-3.3_2.jar
org.apache.servicemix.bundles.xmlresolver-1.2_4.jar
neethi-3.0.1.jar
stax2-api-3.1.1.jar
woodstox-core-asl-4.1.1.jar
org.apache.servicemix.bundles.commons-pool-1.5.4_1.jar
org.apache.servicemix.specs.saaj-api-1.3-1.9.0.jar
org.apache.servicemix.specs.stax-api-1.0-1.9.0.jar
org.apache.servicemix.specs.jaxb-api-2.1-1.9.0.jar
org.apache.servicemix.specs.jaxws-api-2.1-1.9.0.jar
org.apache.servicemix.specs.jsr311-api-1.1.1-1.9.0.jar
org.apache.servicemix.bundles.joda-time-1.5.2_4.jar
org.apache.servicemix.bundles.opensaml-2.4.1_1.jar
--------------------------------------------------------------------------

Comment by TangYong [ 25/Aug/12 08:39 AM ]

> Step1.1 Analysing DCXF Dependent Bundles

About initial analysing result, please see [1],

[1] https://github.com/tangyong/Integrating-Glassfish-With-OSGi-Remote-Services-implementation/issues/1

To summary, I will place the following depenedent bundles and dcxf bundles into glassfish autostart/,

(1) com.springsource.org.apache.commons.logging-1.1.1.jar
(2) com.springsource.org.jdom-1.1.0.jar
(3) spring-core-3.0.6.RELEASE.jar
(4) spring-beans-3.0.6.RELEASE.jar
(5) spring-context-3.0.6.RELEASE.jar
(6) com.springsource.org.aopalliance-1.0.0.jar
(7) com.springsource.slf4j.api-1.5.10.jar
(8) com.springsource.slf4j.jcl-1.5.10.jar
(9) spring-aop-3.0.6.RELEASE.jar
(10) spring-asm-3.0.6.RELEASE.jar
(11) spring-expression-3.0.6.RELEASE.jar
(12) spring-osgi-io-1.2.1.jar
(13) spring-osgi-core-1.2.1.jar
(14) spring-osgi-extender-1.2.1.jar
(15) org.apache.servicemix.bundles.wsdl4j-1.6.2_5.jar (Note: I am waiting the reply from dev team)
(16) xmlschema-core-2.0.1.jar
(17) org.apache.servicemix.bundles.asm-3.3_2.jar
(18) org.apache.servicemix.bundles.xmlresolver-1.2_4.jar
(19) neethi-3.0.1.jar
(20) org.apache.servicemix.bundles.commons-pool-1.5.4_1.jar
(21) org.apache.servicemix.bundles.joda-time-1.5.2_4.jar
(22) org.apache.servicemix.bundles.opensaml-2.4.1_1.jar
(23) cxf-bundle-minimal-2.5.2.jar
(24) cxf-dosgi-ri-discovery-local-1.3.1.jar
(25) org.osgi.enterprise-4.2.0.jar
(26) cxf-dosgi-ri-dsw-cxf-1.3.1.jar
(27) cxf-dosgi-ri-topology-manager-1.3.1.jar

Comment by TangYong [ 25/Aug/12 08:51 AM ]

Step1.2: based Step1.1 result, place the dcxf and dependent bundles into osgi.properties and apply these bundle's start levels

On original dcxf's conf\felix.config.properties.append file, start level descriptions are as following,

org.ops4j.pax.web.session.timeout=30
org.osgi.framework.startlevel.beginning=95
felix.auto.start.50=http://repo2.maven.org/maven2/org/osgi/org.osgi.compendium/4.2.0/org.osgi.compendium-4.2.0.jar

felix.auto.start.51=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/geronimo-annotation_1.0_spec-1.1.1.jar
felix.auto.start.52=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/geronimo-activation_1.1_spec-1.1.jar
felix.auto.start.53=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/geronimo-javamail_1.4_spec-1.2.jar
felix.auto.start.54=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/geronimo-servlet_3.0_spec-1.0.jar
felix.auto.start.55=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/geronimo-ws-metadata_2.0_spec-1.1.3.jar
felix.auto.start.56=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/com.springsource.org.apache.commons.logging-1.1.1.jar
felix.auto.start.57=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/com.springsource.org.jdom-1.1.0.jar
felix.auto.start.58=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/spring-core-3.0.6.RELEASE.jar
felix.auto.start.59=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/spring-beans-3.0.6.RELEASE.jar
felix.auto.start.60=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/spring-context-3.0.6.RELEASE.jar
felix.auto.start.61=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/com.springsource.org.aopalliance-1.0.0.jar
felix.auto.start.62=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/com.springsource.slf4j.api-1.5.10.jar
felix.auto.start.63=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/com.springsource.slf4j.jcl-1.5.10.jar
felix.auto.start.64=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/spring-aop-3.0.6.RELEASE.jar
felix.auto.start.65=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/spring-asm-3.0.6.RELEASE.jar
felix.auto.start.66=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/spring-expression-3.0.6.RELEASE.jar
felix.auto.start.67=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/spring-osgi-io-1.2.1.jar
felix.auto.start.68=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/spring-osgi-core-1.2.1.jar
felix.auto.start.69=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/spring-osgi-extender-1.2.1.jar
felix.auto.start.70=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/jetty-all-server-7.4.2.v20110526.jar
felix.auto.start.71=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/pax-web-spi-1.0.3.jar
felix.auto.start.72=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/pax-web-runtime-1.0.3.jar
felix.auto.start.73=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/pax-web-jetty-1.0.3.jar
felix.auto.start.74=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.bundles.jaxb-impl-2.1.13_2.jar
felix.auto.start.75=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.bundles.wsdl4j-1.6.2_5.jar
felix.auto.start.76=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.bundles.xmlsec-1.4.5_1.jar
felix.auto.start.77=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/xmlschema-core-2.0.1.jar
felix.auto.start.78=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.bundles.asm-3.3_2.jar
felix.auto.start.79=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.bundles.xmlresolver-1.2_4.jar
felix.auto.start.80=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/neethi-3.0.1.jar
felix.auto.start.81=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/stax2-api-3.1.1.jar
felix.auto.start.82=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/woodstox-core-asl-4.1.1.jar
felix.auto.start.83=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.bundles.commons-pool-1.5.4_1.jar
felix.auto.start.84=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.specs.saaj-api-1.3-1.9.0.jar
felix.auto.start.85=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.specs.stax-api-1.0-1.9.0.jar
felix.auto.start.86=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.specs.jaxb-api-2.1-1.9.0.jar
felix.auto.start.87=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.specs.jaxws-api-2.1-1.9.0.jar
felix.auto.start.88=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.specs.jsr311-api-1.1.1-1.9.0.jar
felix.auto.start.89=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.bundles.joda-time-1.5.2_4.jar
felix.auto.start.90=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.apache.servicemix.bundles.opensaml-2.4.1_1.jar
felix.auto.start.91=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/cxf-bundle-minimal-2.5.2.jar
felix.auto.start.92=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/cxf-dosgi-ri-discovery-local-1.3.1.jar
felix.auto.start.93=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/org.osgi.enterprise-4.2.0.jar
felix.auto.start.94=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/cxf-dosgi-ri-dsw-cxf-1.3.1.jar
felix.auto.start.95=file:apache-cxf-dosgi-ri-1.3.1/dosgi_bundles/cxf-dosgi-ri-topology-manager-1.3.1.jar

I need to map these configurations into gf's osgi.properties and can start these bundles in correct order.

Comment by TangYong [ 27/Aug/12 01:18 PM ]

Now, based Step1.1, while I put the selected bundles into GF, DCXF has not ran normally, so I decided to put the original most of bundles on conf\felix.config.properties.append file into GF, integration way is as following:

1 make a new sub-directory called "apachedcxf" under glassfish\modules directory.

2 copy the following bundles into the apachedcxf directory,

com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.jdom-1.1.0.jar
com.springsource.slf4j.api-1.5.10.jar
com.springsource.slf4j.jcl-1.5.10.jar
cxf-bundle-minimal-2.5.2.jar
cxf-dosgi-ri-discovery-local-1.3.1.jar
cxf-dosgi-ri-dsw-cxf-1.3.1.jar
cxf-dosgi-ri-topology-manager-1.3.1.jar
geronimo-activation_1.1_spec-1.1.jar
geronimo-annotation_1.0_spec-1.1.1.jar
geronimo-javamail_1.4_spec-1.2.jar
geronimo-servlet_3.0_spec-1.0.jar
geronimo-ws-metadata_2.0_spec-1.1.3.jar
jetty-all-server-7.4.2.v20110526.jar
neethi-3.0.1.jar
org.apache.servicemix.bundles.asm-3.3_2.jar
org.apache.servicemix.bundles.commons-pool-1.5.4_1.jar
org.apache.servicemix.bundles.joda-time-1.5.2_4.jar
org.apache.servicemix.bundles.opensaml-2.4.1_1.jar
org.apache.servicemix.bundles.wsdl4j-1.6.2_5.jar
org.apache.servicemix.bundles.xmlresolver-1.2_4.jar
org.apache.servicemix.bundles.xmlsec-1.4.5_1.jar
org.apache.servicemix.specs.jaxb-api-2.1-1.9.0.jar
org.apache.servicemix.specs.jaxws-api-2.1-1.9.0.jar
org.apache.servicemix.specs.jsr311-api-1.1.1-1.9.0.jar
org.apache.servicemix.specs.saaj-api-1.3-1.9.0.jar
org.apache.servicemix.specs.stax-api-1.0-1.9.0.jar
org.osgi.enterprise-4.2.0.jar
pax-web-jetty-1.0.3.jar
pax-web-runtime-1.0.3.jar
pax-web-spi-1.0.3.jar
spring-aop-3.0.6.RELEASE.jar
spring-asm-3.0.6.RELEASE.jar
spring-beans-3.0.6.RELEASE.jar
spring-context-3.0.6.RELEASE.jar
spring-core-3.0.6.RELEASE.jar
spring-expression-3.0.6.RELEASE.jar
spring-osgi-core-1.2.1.jar
spring-osgi-extender-1.2.1.jar
spring-osgi-io-1.2.1.jar
xmlschema-core-2.0.1.jar

3 modify the config/osgi.properties file liking the following,
1) add apachedcxf directory into glassfish.osgi.auto.install
glassfish.osgi.auto.install=\
${com.sun.aas.installRootURI}modules/endorsed/ \
${com.sun.aas.installRootURI}modules/osgi-resource-locator.jar \
${com.sun.aas.installRootURI}modules/ \
${com.sun.aas.installRootURI}modules/autostart/ \
${com.sun.aas.installRootURI}modules/apachedcxf/

2) add ${apache.dcxf.bundles} into glassfish.osgi.auto.start
glassfish.osgi.auto.start=\
${core.bundles} \
${osgi-ee.bundles} \
${osgi-shell.bundles} \
${apache.dcxf.bundles}

3) define ${apache.dcxf.bundles}
${com.sun.aas.installRootURI}modules/apachedcxf/com.springsource.org.apache.commons.logging-1.1.1.jar \
${com.sun.aas.installRootURI}modules/apachedcxf/com.springsource.org.jdom-1.1.0.jar \
${com.sun.aas.installRootURI}modules/apachedcxf/spring-core-3.0.6.RELEASE.jar \
...

4) define list of Apache DCXF Bundles whose start levels are copied from felix.config.properties.append
glassfish.osgi.auto.start.level.51= ${com.sun.aas.installRootURI}modules/apachedcxf/geronimo-annotation_1.0_spec-1.1.1.jar
glassfish.osgi.auto.start.level.52= ${com.sun.aas.installRootURI}modules/apachedcxf/geronimo-activation_1.1_spec-1.1.jar
glassfish.osgi.auto.start.level.53= ${com.sun.aas.installRootURI}modules/apachedcxf/geronimo-javamail_1.4_spec-1.2.jar
glassfish.osgi.auto.start.level.54= ${com.sun.aas.installRootURI}modules/apachedcxf/geronimo-servlet_3.0_spec-1.0.jar
...

5) modify glassfish.osgi.start.level.final propety
glassfish.osgi.start.level.final=95

6) add org.osgi.framework.system.packages.extra [1]
org.osgi.framework.system.packages.extra= org.w3c.dom.traversal
[1]http://cxf.apache.org/dosgi-multi-bundle-setup.html

4 start GF domain and telnet felix shell

5 execute the following,

g! start http://repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-greeter-interface/1.2/cxf-dosgi-ri-samples-greeter-interface-1.2.jar
g! start http://repo1.maven.org/maven2/org/apache/cxf/dosgi/samples/cxf-dosgi-ri-samples-greeter-impl/1.2/cxf-dosgi-ri-samples-greeter-impl-1.2.jar

6 access "http://localhost:9090/greeter?wsdl" and see the remote service's wsdl description successfully.

Althogh the above integration seemed to be successful, there are several following problems needed to be resolved:

(1) still need to confirm the minimal bundles in order to integrate DCXF(Step 1.1's analyse is not enough)
(2) current Apache DCXF's version has a big problem found(service client can not import remote service ) and I have asked the David[2] and commented on DCXF JIRA[3] and I decided to try to firstly integrate dcxf 1.2 version from tomorrow.

[2]https://community.jboss.org/thread/174136
[3]https://issues.apache.org/jira/browse/DOSGI-114

Comment by TangYong [ 27/Aug/12 03:30 PM ]

Now, Glassfish with Apache DCXF 1.2 has integrated successfully!

Using Way is as following,

1 make a sub-directory called "apachedcxf" under glassfish\modules.

2 copy apache dcxf-related bundles[1] into "apachedcxf" directory.
[1]https://github.com/tangyong/gf-dcxf-integration/tree/master/apachedcxf

3 copy and override glassfish\config\osgi.properties using modified osgi.properties[2]
[2]https://github.com/tangyong/gf-dcxf-integration/blob/master/osgi.properties

4 start GF domain and telnet GF Felix Shell

5 According to Distributed OSGi Greeter Demo Walkthrough[3], install and start cxf-dosgi-ri-samples-greeter-interface-1.2.jar and cxf-dosgi-ri-samples-greeter-impl-1.2.jar

6 access "http://localhost:9090/greeter?wsdl" and you can see the wsdl description of exported remote service

7 start another osgi framework with Apache DCXF 1.2(or GF with Apache DCXF 1.2), install and start cxf-dosgi-ri-samples-greeter-interface-1.2.jar and cxf-dosgi-ri-samples-greeter-client-1.2.jar, then input "foobar" on popuped dialog, and you will see the following info,

greetMe("foobar") returns:
Hola foobar
Bonjour foobar
Hoi foobar
Hello foobar

Comment by ancoron [ 27/Aug/12 06:55 PM ]

While I think remote OSGi is something that is really useful there are some other things to look at, as I already have some deeper experience with Apache D-CXF in GlassFish 3.1:

  1. Apache D-CXF doesn't play well with generics (e.g. see https://issues.apache.org/jira/browse/CXF-3613)
  2. Don't we need a different (much simpler) TopologyManager for GlassFish Clusters?
  3. Shouldn't the HTTP endpoint deployment use the default virtual server instead of trying to open yet another port?
  4. Apache D-CXF is quite heavy-weight - consider alternatives like Eclipse ECF (http://wiki.eclipse.org/ECF/Distributed_OSGi_Services) or FuseSource Fabric (http://fuse.fusesource.org/fabric/index, example here: https://github.com/fusesource/fuse/tree/master/fabric/fabric-examples/fabric-camel-dosgi)
  5. Can the existing GMS provide a TopologyManager? Could avoid the extra-cost of ZooKeeper and similar.


From my point of view also the following question matters in production environments:

  1. Use local (same-JVM) service or always go remote (TCP)?


Usually all projects work nice with their published demos but it turns out that most of them just don't work if you have existing services leveraging recent language constructs and "just" want to export them remotely.

Comment by TangYong [ 28/Aug/12 07:37 AM ]

Thanks for your deeper experience very much.

>Apache D-CXF doesn't play well with generics (e.g. see https://issues.apache.org/jira/browse/CXF-3613)
Indeed , Apache DCXF still needed to be improved on some aspects.

>Don't we need a different (much simpler) TopologyManager for GlassFish Clusters?
>Can the existing GMS provide a TopologyManager? Could avoid the extra-cost of ZooKeeper and similar.
Maybe shoal team can explain the point, and about whether ZooKeeper(Nowaday, I only know Zookeeper has been used on Remote Service Discovery) can do the same thing or not, if having more time, we can investigate it and maybe provide a better solution!

>Shouldn't the HTTP endpoint deployment use the default virtual server instead of trying to open yet another port?
Yeah, this is a problem and I will investigate it if having more time. Thanks your suggestion!

>Apache D-CXF is quite heavy-weight - consider alternatives like Eclipse ECF (http://wiki.eclipse.org
>/ECF/Distributed_OSGi_Services) or FuseSource Fabric (http://fuse.fusesource.org/fabric/index, example here: >https://github.com/fusesource/fuse/tree/master/fabric/fabric-examples/fabric-camel-dosgi)

About the point("quite heavy-weight"), I think that Eclipse ECF and FuseSource Fabric maybe will bring more coupling with other framework, and of course, if having more time, I will try to invesitigate and try them.

Comment by TangYong [ 12/Oct/12 06:48 AM ]

Consider deferring implementing this feature for now for the following reasons:

1) need to consider start level because of dcxf self
Maybe need to combine with GLASSFISH-18945

2) distributed osgi runtime is not very important for current glassfish although dosgi is a very excellent improvment for OSGi self(making OSGi have distributed feature liking rmi, corba,...).

3) need to consider integration with other osgi platform related dosgi framework, not only is dcxf, because glassfish also supports other osgi runtime as equinox.

4) integration way is still in progress and maybe needs to be combined with ondemand obr deployment.

Comment by TangYong [ 29/Nov/12 11:39 AM ]

Now, DOSGI-114 [1] has been fixed and next week, DOSGi 1.4 will be released. This release is a big release and I will integrate DOSGi based the release.

[1]: https://issues.apache.org/jira/browse/DOSGI-114

In addition,

>2) distributed osgi runtime is not very important for current glassfish although dosgi is a very excellent improvment for OSGi self(making OSGi have distributed feature liking rmi, corba,...).

In the future, there is a plan to use OSGi/CDI to import OSGi Service from distribute OSGi runtime, So integrating dosgi has turned very important.

--Tang

Generated at Sun Apr 20 01:15:06 UTC 2014 using JIRA 4.0.2#472.