I like the idea of separate services through OSGi.

One way to quickly do it would be to create small
webapps concentrating on each use case ...(1)-(4).

Then make these available the same way that
Tomcat makes available its administration webapps.

This would keep ADS's dependencies as they are now,
yet all the use cases would be supported.

The webapps could use SDO as their "Model" layer, and the
DAS as their integration layer.

A Tomcat/Jetty ADS Package could be developed which
preconfigures the two such that the webapps are supported
right out of the box.

Cheers,
- Ole



Alex Karasulu wrote:
For some time now a few people have been discussing embedding an HTTP service into ApacheDS for
a number of reasons:

(1) to expose a DSML service
(2) host a web based configuration and management interface
(3) for first start configuration
(4) for other self service interfaces useful for directory users

Just this morning I responded to an email from Peter Neubauer regarding #4 to have a simple self service application so users can manage various aspects of their account. Such an application would be trivial to implement if ApacheDS came with an optional HTTP service which could be enabled via it's configuration. After this email Emmanuel and I had a brief conversation about this. We discussed how easy it would be to integrate Jetty with ApacheDS since this was already done for Triplesec. Furthermore we discussed how just having the service present would allow other parties to
extend ApacheDS functionality for custom use in their environments.

I have several things on my plate at the moment but I think I should try to grok this in the
next day or two just to the open the door to these other possibilities.

Adding this new service to ApacheDS will impose some additional dependencies since the service will be optionally started by the server side JNDI provider using the configuration. Namely there will be a dependency on Jetty even if this service is not turned on. There are
several ways to avoid this dependency.

(1) Leverage OSGi to just provide the service in a decoupled fashion
(2) Add a "plugin" mechanism into the server-jndi module to load protocol
     providers dynamically at runtime

Both approaches have pros and cons. The first will take time until we get to OSGi. The second requires additional work which would be redundant once an OSGi container is used. For these reasons I think it might be best if we just add this dependency for now and refactor
later depending on what happens in the future.

Alex

Reply via email to