Hi Alex,

Thanks for the comments.  See inline for responses.

Alex Karasulu wrote:
Doing this means committing to OSGi and I'm not going to be too comfortable with doing this until I see:
We can look at this two ways. From one perspective we would not be committing 'fully' to OSGi, as the decorated metadata would not affect the behavior of the jars as they operate today. One of the big issues for the OSGi community today is to convince library providers to add a few lines of metadata to their jars artifacts so they could also be used in OSGi projects. So from this perspective I guess I am trying to convince us to 'at least' to make our jars OSGi friendly.

Let me respond to your to your other points from the second perspective :-)

(1) some good "in situ" integration testing framework that allows us to easily test services within the target container as part of the maven build process,
Your right we need "in container" integration testing once we fully commit to OSGi.

The Spring-OSGi effort is offering just such a testing environment. I am told knopflerfish also has one but have not looked into it. I have used the Spring-OSGi testing on several occasions including testing some of the OSGi ApacheDS bundling efforts in the sandbox. Within the Spring-OSGi facilities exist for testing Equinox (Eclipse's standalone runtime), Knopflerfish and of course Felix.

Caveat is that Spring-OSGi is still in early development and the API's are changing. Nevertheless the testing side has been pretty stable and allowed the kind of testing we needed.

For a simple example see my sandbox for osgi-services/logging-service-integration-test. This tests the neighboring logging-service project which creates a bundle which offers slf4j/commons/LogService api adapters on the NLOG4 bindings. Implementation and testing was eventually noticed Ceki, who asked me to do something similar for slf4j. This is now committed in the 1.3.0-SNAPSHOT of the slf4j project. There is also a simple mina integration testing project in my sandbox. It uses a chat server as a server within the OSGi container.


(2) good test coverage, testing the integrated system of ApacheDS services running inside an OSGi container (you need #1 for this)
Right. The real challenge I am faced with is to provide a Spring-OSGi integration test for the Configuration Admin service implementation that I committed a two weeks ago. This will require a full stack of ApacheDS bundles running within the various OSGi containers. This will also expose an LDAP service that will require test cases. Must confess I am still not fully up to speed on the new schema functionality to fix my broken apache-core-osgi project which I will need for such an integration test. (Next week maybe?)
(3) solid documentation in confluence for this OSGi based architecture for ApacheDS
Top down documentation without buyin by developers most often times is ignored as it is either too abstract or if not, grows stale fast. Especially if it is done by a single person that doesn't fully understand the foundations of what he is documenting. (that would be me.)

What I posted at http://docs.safehaus.org/display/APACHEDS/OSGi+and+ApacheDS
is still valid as a top down viewpoint for what we are doing with OSGi and ApacheDS today and what I am proposing with this email.

(PS - Will move it to confluence if it is not there already.)

In that document written 10 months ago I said:
"Structurual Componetization can also be called '*/Package Depenency Management/*'. Structurual Componentization is the initial focus of the OSGi work effort. It will consist of annotating ApacheDS software artifacts with OSGi specific metadata."

This architectural document really needs more fleshing out than I have given it to date, but to do this I am going to need help, and the help I need must come from the bottom up. To continue to document the reality based top down I need the bottom up 'trenches' view of the ApacheDS effort. We need to start working on the documentation at the package and subproject basis in order to begin thinking about - '*/Package Depenency Management/*'.

Three step loop here:
1. Document packages
2. Annotate jars ( plugin produced metadata  documents dependencies.)
3. Analyze dependencies (Refactor to improve coupling?)


As it is now the OSGi effort at ApacheDS is not sustainable as I am doing too much outside of the group. With my proposal I am trying to get our community enthused enough to assist with this bottom effort.
(4) Felix graduating with a 1.0 release that has full support for R4 (and has things like it's plugin deployed to Ibiblio so we don't have Maven hick ups with SNAPSHOT plugin artifacts),
The only plugin we need at first would be org.apache.felix maven-bundle-plugin and it is available from one of our current default repos:

<url>http://people.apache.org/repo/m2-snapshot-repository</url>

(5) greater team awareness of this OSGi based architecture,
Right - thats the purpose of my proposal.
(6) more consideration for OSGi alternatives like xbean,
(7) and time for us all to be involved to make sure something does not go wrong during this move to OSGi.
Agree to #7 - ditto comment for #5.

cheers,
John




Reply via email to