Hi Pierre,

On Tue, Sep 14, 2010 at 6:44 PM, Pierre-Arnaud Marcelot <pa@marcelot.net> wrote:
Hi Dev,

Since the 'server.xml' is now dead and buried, and the 2.0 release approaching, I'd like to start the refactoring of the installers and installation layouts.


Thanks for taking this on. I know we spoke about this a few times. Trying to recall the conversations we had on it to add to this email.
 
ApacheDS 1.5.x supported multiple instances (with a default instance created with each native installer), I think Apache DS 2.0 should continue to support this feature.

+1
 
In order to do that, two default layouts need to be (re-)defined, one for Apache DS itself (the InstallationLayout) and one for each instance (the InstanceLayout).


Ahh yes we had conversations on the InstanceLayout and the InstallationLayout. 
 
InstallationLayout
------------------------
/bin
/bin/apacheds(.exe)                     --> ApacheDS (Tanuki) wrapper
/bin/apacheds-tools(.bat)               --> ApacheDS Tools command line script
/conf/wrapper.conf                      --> Tanuki Wrapper configuration (common to all instances)
/lib/                                                   --> Folder for all ApacheDS libraries
/lib/lib-a.jar
[...]
/lib/lib-z.jar


+1 presuming we have a $INSTALLATION_PATH prefix to all these paths. If I remember correctly we feed this parameter into the InstallationLayout constructor to get the relavent resource paths from the InstallationLayout object after instantiation.
 
InstanceLayout
---------------------
/conf/
/conf/wrapper.conf                      --> Tanuki Wrapper configuration (specific to this instance)
/conf/log4.properties                   --> Log4J configuration
/conf/config.ldif                               --> LDIF based configuration file (also accessible under 'ou=config' when the server is started)
/log/
/log/apacheds-rolling.log               --> Log file (could also be placed at /var/log/apacheds-instancename/ under linux)
/partitions/                                    --> Folder for all partition (except 'config')
/partitions/example                     --> Example partition folder
/partitions/schema                      --> Schema partition folder
/partition/system                               --> System partition folder
/run/
/run/apacheds.pid                       --> Apache DS instance pid file when the server is running (could also be placed at /var/run/... under linux)


+1 and likewise we create the InstanceLayout object instance using the InstallationLayout and the $INSTANCE_PATH as arguments into the InstanceLayout constructor.
 
Here's the layouts I had in mind.
I tried to keep most of the existing stuff we already had.

There are some things which need an extra work (like the LDIF based configuration on a single file, as well as the ability to save that outside of the boundaries of the 'partitions' folder.
But I really think having all configuration files stored in a single location is a must.


+1

Also if I remember correctly we were using the layout for application files expected of Linux systems. I forget exactly what you call it but it's where you put some things in /opt/etc and some things under /var etc. There's an acronym for it. You remember what that was called? 

Anyways we were doing this as I recall to fit this file layout scheme for application installations. Do you still intend to support this? 

--
Alex Karasulu
My Blog :: http://www.jroller.com/akarasulu/
Apache Directory Server :: http://directory.apache.org
Apache MINA :: http://mina.apache.org
To set up a meeting with me: http://tungle.me/AlexKarasulu