[jboss-cvs] JBossAS SVN: r107006 - projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/jndi/impl.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jul 21 16:25:07 EDT 2010
Author: smarlow at redhat.com
Date: 2010-07-21 16:25:06 -0400 (Wed, 21 Jul 2010)
New Revision: 107006
Modified:
projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/jndi/impl/DistributedTreeManagerImpl.java
Log:
JBCLUSTER-256 HA-JNDI
Modified: projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/jndi/impl/DistributedTreeManagerImpl.java
===================================================================
--- projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/jndi/impl/DistributedTreeManagerImpl.java 2010-07-21 20:22:42 UTC (rev 107005)
+++ projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/jndi/impl/DistributedTreeManagerImpl.java 2010-07-21 20:25:06 UTC (rev 107006)
@@ -40,12 +40,12 @@
import javax.naming.NamingException;
import javax.naming.NotContextException;
-import org.infinispan.Cache;
import org.infinispan.tree.Node;
import org.infinispan.tree.TreeCache;
import org.infinispan.tree.Fqn;
import org.infinispan.CacheException;
import org.infinispan.tree.TreeCacheFactory;
+import org.jboss.ha.framework.server.HAPartitionCacheHandlerImpl;
import org.jboss.ha.jndi.spi.DistributedTreeManager;
import org.jboss.logging.Logger;
import org.jnp.interfaces.Naming;
@@ -53,9 +53,9 @@
import org.jnp.interfaces.NamingParser;
/**
- * This class utilizes Infinispan to provide a DistributedTreeManager implementation.
+ * This class utilizes Infinispan to provide a HA-JNDI implementation.
*
- * @author <a href="mailto:jgauthier at novell.com">Jerry Gauthier</a>
+ * @author Jerry Gauthier
* @author Brian Stansberry
* @author Scott Marlow
*
@@ -64,90 +64,87 @@
public class DistributedTreeManagerImpl
implements org.jnp.interfaces.Naming, DistributedTreeManager
{
- private static Logger log = Logger.getLogger(DistributedTreeManagerImpl.class);
+ private static final Logger LOG = Logger.getLogger(DistributedTreeManagerImpl.class);
+ private static final NamingParser PARSER = new NamingParser();
+ private static final String DEFAULT_ROOT = "__HA_JNDI__";
+ private static final Fqn FQN_ROOT = Fqn.fromString(DEFAULT_ROOT);
- private static final NamingParser parser = new NamingParser();
-
- public static final String DEFAULT_ROOT = "__HA_JNDI__";
-
- // Attributes --------------------------------------------------------
+ private volatile TreeCache<String, Binding> m_cache;
+ private volatile HAPartitionCacheHandlerImpl cacheHandler;
+ private final Naming haStub;
- private TreeCache<String, Binding> m_cache;
- private Cache m_backingCache;
- private Fqn m_root = Fqn.fromString(DEFAULT_ROOT);
- private Naming haStub;
+ public HAPartitionCacheHandlerImpl getCacheHandler()
+ {
+ return cacheHandler;
+ }
- // Properties --------------------------------------------------------
+ public void setCacheHandler(HAPartitionCacheHandlerImpl cacheHandler)
+ {
+ this.cacheHandler = cacheHandler;
+ }
- public void setClusteredCache(Cache<String, Binding> cache)
+ public DistributedTreeManagerImpl(Naming haStub)
{
- m_backingCache = cache;
- TreeCacheFactory tcf = new TreeCacheFactory();
- m_cache = tcf.createTreeCache(m_backingCache);
+ this.haStub = haStub;
}
-
- // Public -----------------------------------------------------------------
- @SuppressWarnings("unchecked")
public void init()
{
- if (this.haStub == null)
- {
- throw new IllegalStateException("Must call setHAStub before starting");
- }
-
- if (this.m_cache == null)
- {
- throw new IllegalStateException("Must call setClusteredCache before starting");
- }
-
- log.debug("initializing HAJNDITreeCache root");
+ TreeCacheFactory tcf = new TreeCacheFactory();
+ m_cache = tcf.createTreeCache(cacheHandler.getCache());
+
+ LOG.debug("initializing HAJNDITreeCache root");
}
+
public void shutdown()
{
m_cache = null;
- m_backingCache = null;
}
+
public Naming getHAStub()
{
return this.haStub;
}
+ @Override
public void setHAStub(Naming stub)
{
- this.haStub = stub;
+ // TODO: delete this method from the interface as its ignored (ctor accepts the stub)
}
// Naming implementation -----------------------------------------
-
+
+ @Override
public void bind(Name name, Object obj, String className) throws NamingException
{
- if (log.isTraceEnabled())
+ if (LOG.isTraceEnabled())
{
- log.trace("bind, name="+name);
+ LOG.trace("bind, name="+name);
}
this.internalBind(name, obj, className, false);
}
-
+
+ @Override
public void rebind(Name name, Object obj, String className) throws NamingException
{
- if (log.isTraceEnabled())
+ if (LOG.isTraceEnabled())
{
- log.trace("rebind, name="+name);
+ LOG.trace("rebind, name="+name);
}
this.internalBind(name, obj, className, true);
}
+ @Override
public void unbind(Name name) throws NamingException
{
- if (log.isTraceEnabled())
+ if (LOG.isTraceEnabled())
{
- log.trace("unbind, name="+name);
+ LOG.trace("unbind, name="+name);
}
if (name.isEmpty())
{
@@ -158,7 +155,7 @@
// is the name a context?
try
{
- Fqn temp = Fqn.fromRelativeFqn(this.m_root, Fqn.fromString(name.toString()));
+ Fqn temp = Fqn.fromRelativeFqn(this.FQN_ROOT, Fqn.fromString(name.toString()));
// TODO why not jst call remove -- why hasChild first?
if (this.m_cache.getRoot().hasChild(temp))
{
@@ -183,11 +180,11 @@
{
String prefix = name.getPrefix(size - 1).toString();
Fqn fqn = Fqn.fromString(prefix);
- ctx = Fqn.fromRelativeFqn(this.m_root, fqn);
+ ctx = Fqn.fromRelativeFqn(this.FQN_ROOT, fqn);
}
else
{
- ctx = this.m_root;
+ ctx = this.FQN_ROOT;
}
try
@@ -211,25 +208,26 @@
throw ne;
}
}
-
+
+ @Override
public Object lookup(Name name) throws NamingException
{
- boolean trace = log.isTraceEnabled();
+ boolean trace = LOG.isTraceEnabled();
if (trace)
{
- log.trace("lookup, name="+name);
+ LOG.trace("lookup, name="+name);
}
if (name.isEmpty())
{
// Return this
- return new NamingContext(null, parser.parse(""), this.getHAStub());
+ return new NamingContext(null, PARSER.parse(""), this.getHAStub());
}
// is the name a context?
try
{
- Node<String, Binding> n = this.m_cache.getRoot().getChild(Fqn.fromRelativeFqn(this.m_root, Fqn.fromString(name.toString())));
+ Node<String, Binding> n = this.m_cache.getRoot().getChild(Fqn.fromRelativeFqn(this.FQN_ROOT, Fqn.fromString(name.toString())));
if (n != null)
{
Name fullName = (Name) name.clone();
@@ -253,11 +251,11 @@
{
String prefix = name.getPrefix(size - 1).toString();
Fqn fqn = Fqn.fromString(prefix);
- ctx = Fqn.fromRelativeFqn(this.m_root, fqn);
+ ctx = Fqn.fromRelativeFqn(this.FQN_ROOT, fqn);
}
else
{
- ctx = this.m_root;
+ ctx = this.FQN_ROOT;
}
try
@@ -275,12 +273,13 @@
throw ne;
}
}
-
+
+ @Override
public Collection<NameClassPair> list(Name name) throws NamingException
{
- if (log.isTraceEnabled())
+ if (LOG.isTraceEnabled())
{
- log.trace("list, name="+name);
+ LOG.trace("list, name="+name);
}
// get the context
@@ -291,11 +290,11 @@
{
ctxName = name.toString();
Fqn fqn = Fqn.fromString(ctxName);
- ctx = Fqn.fromRelativeFqn(this.m_root, fqn);
+ ctx = Fqn.fromRelativeFqn(this.FQN_ROOT, fqn);
}
else
{
- ctx = this.m_root;
+ ctx = this.FQN_ROOT;
}
boolean exists = this.m_cache.getRoot().hasChild(ctx);
@@ -348,11 +347,12 @@
}
}
+ @Override
public Collection<Binding> listBindings(Name name) throws NamingException
{
- if (log.isTraceEnabled())
+ if (LOG.isTraceEnabled())
{
- log.trace("listBindings, name="+name);
+ LOG.trace("listBindings, name="+name);
}
// get the context
@@ -363,11 +363,11 @@
{
ctxName = name.toString();
Fqn fqn = Fqn.fromString(ctxName);
- ctx = Fqn.fromRelativeFqn(this.m_root, fqn);
+ ctx = Fqn.fromRelativeFqn(this.FQN_ROOT, fqn);
}
else
{
- ctx = this.m_root;
+ ctx = this.FQN_ROOT;
}
boolean exists = this.m_cache.getRoot().hasChild(ctx);
@@ -416,18 +416,19 @@
}
catch (CacheException ce)
{
- // don't chain CacheException since JBoss Cache may not be on remote client's classpath
+ // don't chain CacheException since Infinispan may not be on remote client's classpath
NamingException ne = new NamingException(ce.getClass().getName() + ": " + ce.getMessage());
ne.setStackTrace(ce.getStackTrace());
throw ne;
}
}
+ @Override
public Context createSubcontext(Name name) throws NamingException
{
- if (log.isTraceEnabled())
+ if (LOG.isTraceEnabled())
{
- log.trace("createSubcontext, name="+name);
+ LOG.trace("createSubcontext, name="+name);
}
int size = name.size();
@@ -440,7 +441,7 @@
// does the new context already exist?
String str = name.toString();
Fqn fqn = Fqn.fromString(str);
- Fqn ctx = Fqn.fromRelativeFqn(this.m_root, fqn);
+ Fqn ctx = Fqn.fromRelativeFqn(this.FQN_ROOT, fqn);
if (this.m_cache.getRoot().hasChild(ctx))
{
throw new NameAlreadyBoundException(str);
@@ -453,11 +454,11 @@
{
String prefix = name.getPrefix(size - 1).toString();
Fqn fqn2 = Fqn.fromString(prefix);
- pctx = Fqn.fromRelativeFqn(this.m_root, fqn2);
+ pctx = Fqn.fromRelativeFqn(this.FQN_ROOT, fqn2);
}
else
{
- pctx = this.m_root;
+ pctx = this.FQN_ROOT;
}
boolean exists = this.m_cache.getRoot().hasChild(pctx);
@@ -479,7 +480,7 @@
throw ne;
}
- Name fullName = parser.parse("");
+ Name fullName = PARSER.parse("");
fullName.addAll(name);
return new NamingContext(null, fullName, this.getHAStub());
@@ -501,11 +502,11 @@
{
String prefix = name.getPrefix(size - 1).toString();
Fqn fqn = Fqn.fromString(prefix);
- ctx = Fqn.fromRelativeFqn(this.m_root, fqn);
+ ctx = Fqn.fromRelativeFqn(this.FQN_ROOT, fqn);
}
else
{
- ctx = this.m_root;
+ ctx = this.FQN_ROOT;
}
boolean exists = this.m_cache.getRoot().hasChild(ctx);
More information about the jboss-cvs-commits
mailing list