How does this work?
Is it like netboot where the entire server is loading
from remote configuration?
Or is it like MBean persistence where the MBean
configuration attributes are read from a persistent
store during bootup which overrides the local
Sorry about the belated response had some sort of problem with my account here so I just created a new one.
In response to how does it work:
Well integration does not mean that the data is remote although that could be a possibility. You can just use the normal LDAP JNDI provider to get to any ldap server and snarf down your configuration.
However the embedding API nicely is just another server side JNDI provider that bypasses the IP stack to talk straight to any backends on the embedded LDAPd server.
There are two conduits to operating against the directory. First is through the wire protocol where the server's front end machinery reads LDAPv3 protocol messages and applies them against the respective backends. Second is through the server-side JNDI provider which is similar to the concept of getting a database connection when your on the server in a stored procedure for example when using the Oracle server-side JDBC driver. Actually we expect to use the JNDI provider to enable stored procs to affect the backend via JNDI. It makes sense no?
We're still working on some concepts though. We currently let the JNDI provider when invoked outside of the first pathway (not within a sp) to run under admin privledges. We need to think about this abit.
In the solid state after the server has been started as an embedded instance the INITIAL_CONTEXT_FACTORY along with other environment parameters are set and the InitialContext is gotten. Pretty standard I think. Then you can go to town on the data within the backends navigating the tree using JNDI as if it were a remote server without the network latency or traffic.
Now the big challenge is in the initialization phase and we do not have a solution for this at the moment. My primary reason for contacting the JBoss group was to figure out the best way we can accomplish this since it is very specific to the server you're embedding ldapd into. Right now we can start up the server by using a Kernel object which bootstraps it so to speak. But I think this needs to be wrapped around something else to make it fit nicely into a JBoss or a Tomcat.
Have fun and BU,