I moved the basic jndi classes into the naming project. The services
that depend on other service components are still in server. I also
broke out the core naming service to a simple
org.jnp.server.NamingBeanImpl pojo wrapper that has no transport
dependencies. This is injected into the NamingService which adds the
transport. This allows one to use an arbitrary detached invoker as the
NamingService transport. Previously this could not be done because of
circular dependencies between the invokers and the NamingService trying
to inject invoker proxies.
<!-- A simple mbean wrapper around the jndi Naming object. This
only handles an in memory instance. The NamingService uses this
as the JNDI store and exposes it remotely.
-->
<mbean code="org.jnp.server.NamingBeanImpl"
name="jboss:service=NamingBeanImpl"
xmbean-dd="resource:xmdesc/NamingBean-xmbean.xml">
</mbean>
<mbean code="org.jboss.naming.NamingService"
name="jboss:service=Naming"
xmbean-dd="resource:xmdesc/NamingService-xmbean.xml">
...
<depends optional-attribute-name="Naming"
proxy-type="attribute">jboss:service=NamingBeanImpl</depends>
</mbean>
Scott M Stark wrote:
There is a JBAS-2865 task to move the jndi classes out of the
server/x/lib/jboss.jar and server project and into the naming project
and jnpserver.jar. The invoker integration into the NamingService needs
to be updated refactored as well to allow the split to happen. I am
planning on starting this today.