Hi Aron,

On 7/12/07, Aron Sogor <aron@theatlantis.net> wrote:
It is late but let my creative comments fly, no offense Chris is a very
helpful guy, I am his fan(even if the rest would contradict).

Yes he's most excellent we're lucky to have him here.

Please consider that to me and perhaps others embedding ApacheDS, having
an xml to edit is a great thing!

Are you are aware that you can use the Configuration beans programatically when embedding?  This can be used to bypass the DIT based configuration.  At least this
is the behavior we intend to implement.

Essentially the XML based Spring configuration constructs this Configuration bean hierarchy and feed it into the server.  It's a step that substitutes programmatic
configuration.  So the net effect to you will not be noticeable but this is not what
Chris is recommending so my comment pertains to the original idea of putting the
configuration into the DIT.

I'm still thinking about Chris' recommendations tho and no I have to think about
Ersin's recommendations :).

Loading things into a DIT is less pleasant:
- if it is not LDIF, and I have to start bootstrap the thing to create
my own config. Like the situation of the schema system right now where I
have to modify the build and work in your source tree to create my
custom bootstrap package.

You will be able to use an LDIF btw.

- if LDIF... it is still a weird syntax to use for IOC assembly.

Our use of IOC with Spring is extremely limited.  Think about the LDAP based config
as something more akin to JMX based hiierarchy.

I would
like to modify, add my custom interceptors, and components. One of the
thing that is less fortunate about the Store procedures and triggers
that I needed serialized class files, which is hassle for embedding. For
a build I would have to setup, config, dump config, teardown.

- I would not like to put/encode xml into an LDIF file.....

I realize that admin tools, vs embedding is in a constant battle.
embedding needs configuration without actually running the DS.
admin tool want to configure a bare instance, any possible aspects after
the DS is started.

Perhaps we just need a simple maven plugin that you can use to generate
a custom system partition with your initial configuration.  This way you can
use straight XML to load this partition with the configuration you need for
ADS out of the box.

Both are legit cases, with very different objectives.

I like DS because it is a Lego toolkit glued together by the IOC, Please
do not take that way from me.
DS is great because it is embeddable easy to customize keep that aspect
alive!

Hey thanks for the message (loud and clearly taken here).  I will try to process these
recommendations.  I need a few passes of your email here to understand the full impact
to people like you who have a specific workflow in mind for building DS embedded apps.

Alex

Aron

Chris Custine wrote:
> This is basically a response to some of the other threads regarding
> server.xml and Config in DIT, but I don't want to derail those threads
> if this turns out to be a stupid idea.
>
> I have been thinking about this for a while, and I have to admit that
> I am one of the guys that likes Spring and the xml config files.
> Because of that I have been thinking about possible interim steps so
> that we can get a good grip on the needs and wants of the users while
> still solving some of our internal problems that we want to address in
> the short term.  Based on the recent threads about this topic, I get
> the distinct feeling that we might be underestimating the affect this
> subject has as far as user impact and user preferences and stand a
> good chance of irritating some people.
>
> My latest idea seems really obvious the more I think about it...  For
> the time being, why don't we just move towards storing the server.xml
> in its entirety as a string attribute under ou=system somewhere and
> restructure the startup sequence to properly read and load the Spring
> context from there?  This sounds crazy, but bear with me for a
> moment...  This would give us the ability to "configure in DIT" so to
> speak, but would also expose some really interesting options for
> remote configuration, like modifying the current Apache DS
> Configuration plugin that Pierre-Arnaud has already written to just
> read from and save to the server it is currently connected to.  We
> could also do an interceptor or something similar on the server to
> write the file out to disk after a remote edit and allow a startup
> option or quick command line script to load a new file after you edit
> it in vi or similar.  This CLI could even put the data directly to the
> JDBM tables so that you can make edits without the server running.
>
> I have a couple of reasons for bringing this to the table.  First of
> all, I am one of those dirty, sadistic perverts that likes editing xml
> files by hand as opposed to many other forms of config...  xml is like
> a second language to me  :-)
>
> Second and most importantly for ApacheDS, is that an approach like
> this will give us a great short term benefit of remote config and
> admin capability, without all of the work.  The server config editor
> that PAM wrote looks fantastic to me and (hopefully) we can just
> extend the concept and hack it to do what is needed for this without
> re-writing all of it.  This way we can do the Config in DIT in an
> incremental fashion and possibly save some grief that we may encounter
> later.  We will also be able to move on more quickly to more serious
> tasks and implement high visibility features.
>
> I am sure there are some technicalities that may be obstacles to this
> idealistic approach, but I have had worse ideas, so I thought I would
> bring it up and present it.  What do you guys think?
>
> Thanks,
> Chris