JBoss Cache SVN: r5503 - in core/branches/2.1.X/src: test/java/org/jboss/cache/buddyreplication and 1 other directory.
by jbosscache-commits@lists.jboss.org
Author: manik.surtani(a)jboss.com
Date: 2008-04-07 04:44:57 -0400 (Mon, 07 Apr 2008)
New Revision: 5503
Modified:
core/branches/2.1.X/src/main/java/org/jboss/cache/factories/BuddyManagerFactory.java
core/branches/2.1.X/src/main/java/org/jboss/cache/factories/InterceptorChainFactory.java
core/branches/2.1.X/src/test/java/org/jboss/cache/buddyreplication/BuddyReplicationConfigTest.java
Log:
JBCACHE-1319: NPE with CacheMode.LOCAL and buddy replication enabled
Modified: core/branches/2.1.X/src/main/java/org/jboss/cache/factories/BuddyManagerFactory.java
===================================================================
--- core/branches/2.1.X/src/main/java/org/jboss/cache/factories/BuddyManagerFactory.java 2008-04-04 16:59:53 UTC (rev 5502)
+++ core/branches/2.1.X/src/main/java/org/jboss/cache/factories/BuddyManagerFactory.java 2008-04-07 08:44:57 UTC (rev 5503)
@@ -1,6 +1,7 @@
package org.jboss.cache.factories;
import org.jboss.cache.buddyreplication.BuddyManager;
+import org.jboss.cache.config.Configuration;
import org.jboss.cache.factories.annotations.DefaultFactoryFor;
/**
@@ -15,7 +16,7 @@
@Override
public <T> T construct(String componentName, Class<T> componentType)
{
- if (configuration.getBuddyReplicationConfig() != null && configuration.getBuddyReplicationConfig().isEnabled())
+ if (configuration.getBuddyReplicationConfig() != null && configuration.getBuddyReplicationConfig().isEnabled() && configuration.getCacheMode() != Configuration.CacheMode.LOCAL)
{
return super.construct(componentName, componentType);
}
Modified: core/branches/2.1.X/src/main/java/org/jboss/cache/factories/InterceptorChainFactory.java
===================================================================
--- core/branches/2.1.X/src/main/java/org/jboss/cache/factories/InterceptorChainFactory.java 2008-04-04 16:59:53 UTC (rev 5502)
+++ core/branches/2.1.X/src/main/java/org/jboss/cache/factories/InterceptorChainFactory.java 2008-04-07 08:44:57 UTC (rev 5503)
@@ -160,7 +160,7 @@
private boolean isUsingBuddyReplication()
{
- return configuration.getBuddyReplicationConfig() != null && configuration.getBuddyReplicationConfig().isEnabled();
+ return configuration.getBuddyReplicationConfig() != null && configuration.getBuddyReplicationConfig().isEnabled() && configuration.getCacheMode() != Configuration.CacheMode.LOCAL;
}
public Interceptor setFirstInterceptor(Class<? extends Interceptor> clazz) throws IllegalAccessException, InstantiationException
Modified: core/branches/2.1.X/src/test/java/org/jboss/cache/buddyreplication/BuddyReplicationConfigTest.java
===================================================================
--- core/branches/2.1.X/src/test/java/org/jboss/cache/buddyreplication/BuddyReplicationConfigTest.java 2008-04-04 16:59:53 UTC (rev 5502)
+++ core/branches/2.1.X/src/test/java/org/jboss/cache/buddyreplication/BuddyReplicationConfigTest.java 2008-04-07 08:44:57 UTC (rev 5503)
@@ -8,6 +8,7 @@
import org.jboss.cache.CacheSPI;
import org.jboss.cache.DefaultCacheFactory;
+import org.jboss.cache.Fqn;
import org.jboss.cache.config.BuddyReplicationConfig;
import org.jboss.cache.config.Configuration;
import org.jboss.cache.factories.XmlConfigurationParser;
@@ -38,7 +39,7 @@
public void testNullConfig() throws Exception
{
- cache = (CacheSPI<Object, Object>) new DefaultCacheFactory().createCache(false);
+ cache = (CacheSPI<Object, Object>) new DefaultCacheFactory<Object, Object>().createCache(false);
cache.getConfiguration().setBuddyReplicationConfig(null);
assertNull(cache.getBuddyManager());
}
@@ -48,7 +49,7 @@
String xmlConfig = "<config><buddyReplicationEnabled>false</buddyReplicationEnabled></config>";
Element element = XmlHelper.stringToElement(xmlConfig);
BuddyReplicationConfig config = XmlConfigurationParser.parseBuddyReplicationConfig(element);
- cache = (CacheSPI<Object, Object>) new DefaultCacheFactory().createCache(false);
+ cache = (CacheSPI<Object, Object>) new DefaultCacheFactory<Object, Object>().createCache(false);
cache.getConfiguration().setBuddyReplicationConfig(config);
assertNull(cache.getBuddyManager());
}
@@ -58,7 +59,7 @@
String xmlConfig = "<config><buddyReplicationEnabled>true</buddyReplicationEnabled></config>";
Element element = XmlHelper.stringToElement(xmlConfig);
BuddyReplicationConfig config = XmlConfigurationParser.parseBuddyReplicationConfig(element);
- cache = (CacheSPI<Object, Object>) new DefaultCacheFactory().createCache(false);
+ cache = (CacheSPI<Object, Object>) new DefaultCacheFactory<Object, Object>().createCache(false);
cache.getConfiguration().setCacheMode(Configuration.CacheMode.REPL_SYNC);
cache.getConfiguration().setBuddyReplicationConfig(config);
cache.create();
@@ -75,7 +76,7 @@
public void testXmlConfig() throws Exception
{
- cache = (CacheSPI<Object, Object>) new DefaultCacheFactory().createCache(new XmlConfigurationParser().parseFile("META-INF/buddy-replication-cache-service.xml"), false);
+ cache = (CacheSPI<Object, Object>) new DefaultCacheFactory<Object, Object>().createCache(new XmlConfigurationParser().parseFile("META-INF/buddy-replication-cache-service.xml"), false);
cache.create();
cache.start();
BuddyManager bm = cache.getBuddyManager();
@@ -100,4 +101,19 @@
assertTrue("Should have a data gravitator!!", hasDG);
}
+
+ public void testLocalModeConfig() throws Exception
+ {
+ String xmlConfig = "<config><buddyReplicationEnabled>true</buddyReplicationEnabled></config>";
+ Element element = XmlHelper.stringToElement(xmlConfig);
+ BuddyReplicationConfig config = XmlConfigurationParser.parseBuddyReplicationConfig(element);
+ cache = (CacheSPI<Object, Object>) new DefaultCacheFactory<Object, Object>().createCache(false);
+ cache.getConfiguration().setBuddyReplicationConfig(config);
+ cache.create();
+ cache.start();
+ assert cache.getBuddyManager() == null;
+
+ cache.getInvocationContext().getOptionOverrides().setForceDataGravitation(true);
+ cache.getNode(Fqn.fromString("/nonexistent")); // should not barf!
+ }
}
\ No newline at end of file
16 years, 3 months
JBoss Cache SVN: r5502 - in core/trunk/src/main/java/org/jboss/cache: optimistic and 1 other directory.
by jbosscache-commits@lists.jboss.org
Author: manik.surtani(a)jboss.com
Date: 2008-04-04 12:59:53 -0400 (Fri, 04 Apr 2008)
New Revision: 5502
Modified:
core/trunk/src/main/java/org/jboss/cache/AbstractNode.java
core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java
core/trunk/src/main/java/org/jboss/cache/optimistic/WorkspaceNodeImpl.java
Log:
JBCACHE-890 : Use an EnumSet to encapsulate the multitude of boolean flags on Nodes
Modified: core/trunk/src/main/java/org/jboss/cache/AbstractNode.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/AbstractNode.java 2008-04-04 15:43:06 UTC (rev 5501)
+++ core/trunk/src/main/java/org/jboss/cache/AbstractNode.java 2008-04-04 16:59:53 UTC (rev 5502)
@@ -3,6 +3,10 @@
*/
package org.jboss.cache;
+import static org.jboss.cache.AbstractNode.NodeFlags.DELETED;
+import static org.jboss.cache.AbstractNode.NodeFlags.RESIDENT;
+
+import java.util.EnumSet;
import java.util.Map;
/**
@@ -12,14 +16,68 @@
*/
public abstract class AbstractNode<K, V>// implements Node<K, V>
{
- protected boolean deleted;
protected Map<Object, Node<K, V>> children;
protected Fqn<?> fqn;
- protected boolean resident;
+ /**
+ * Flags placed on the node. Replaces older 'boolean' flags.
+ */
+ protected EnumSet<NodeFlags> flags = EnumSet.noneOf(NodeFlags.class);
+ /**
+ * These flags were originally stored as booleans on the UnversionedNode class. They have been replaced with an enum
+ * and an EnumSet, which is much more space-efficient for very little cost in lookups.
+ */
+ public enum NodeFlags
+ {
+ /**
+ * All children are loaded from the cache loader if this flag is present.
+ */
+ CHILDREN_LOADED,
+ /**
+ * Data is loaded from the cache loader if this flag is present.
+ */
+ DATA_LOADED,
+ /**
+ * Node is write-locked when children are added or removed if this flag is enabled.
+ */
+ LOCK_FOR_CHILD_INSERT_REMOVE,
+ /**
+ * Node is valid if this flag is present.
+ */
+ VALID,
+ /**
+ * Node has been deleted.
+ */
+ DELETED,
+ /**
+ * NOde is resident and excluded from evictions
+ */
+ RESIDENT,
+ /**
+ * Specific to Optimistic Locking Workspace nodes - set if a node has been modified in a workspace.
+ */
+ MODIFIED_IN_WORKSPACE,
+ /**
+ * Specific to Optimistic Locking Workspace nodes - set if a node has been created in a workspace.
+ */
+ CREATED_IN_WORKSPACE,
+ /**
+ * Specific to Optimistic Locking Workspace nodes - set if a node has added or removed children in a workspace.
+ */
+ CHILDREN_MODIFIED_IN_WORKSPACE,
+ /**
+ * Specific to Optimistic Locking Workspace nodes - set if an implicit version is associated with this node.
+ */
+ VERSIONING_IMPLICIT,
+ /**
+ * Specific to Optimistic Locking Workspace nodes - set if a node has been resurrected in a workspace.
+ */
+ RESURRECTED_IN_WORKSPACE
+ }
+
public boolean isDeleted()
{
- return deleted;
+ return flags.contains(DELETED);
}
public void markAsDeleted(boolean marker)
@@ -29,7 +87,8 @@
public void markAsDeleted(boolean marker, boolean recursive)
{
- deleted = marker;
+ setFlag(DELETED, marker);
+
if (recursive && children != null)
{
synchronized (this)
@@ -44,16 +103,16 @@
public void setResident(boolean resident)
{
- this.resident = resident;
+ setFlag(RESIDENT, resident);
}
public boolean isResident()
{
- return resident;
+ return flags.contains(RESIDENT);
}
-
+ @Override
public boolean equals(Object another)
{
if (another instanceof AbstractNode)
@@ -64,9 +123,24 @@
return false;
}
-
+ @Override
public int hashCode()
{
return fqn.hashCode();
}
+
+ /**
+ * Utility method for setting or unsetting a flag. If status is true, the NodeFlag specified is added to the {@link #flags}
+ * EnumSet. If status is false, the NodeFlag is removed from the EnumSet.
+ *
+ * @param flag flag to set or unset
+ * @param status true to set the flag, false to unset the flag.
+ */
+ protected void setFlag(NodeFlags flag, boolean status)
+ {
+ if (status)
+ flags.add(flag);
+ else
+ flags.remove(flag);
+ }
}
Modified: core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java 2008-04-04 15:43:06 UTC (rev 5501)
+++ core/trunk/src/main/java/org/jboss/cache/UnversionedNode.java 2008-04-04 16:59:53 UTC (rev 5502)
@@ -8,6 +8,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import static org.jboss.cache.AbstractNode.NodeFlags.*;
import org.jboss.cache.factories.annotations.CacheInjectionMethods;
import org.jboss.cache.factories.annotations.Inject;
import org.jboss.cache.lock.IdentityLock;
@@ -43,16 +44,6 @@
protected static boolean trace = log.isTraceEnabled();
/**
- * True if all children have been loaded. This is set when CacheImpl.getChildrenNames() is called.
- */
- private boolean childrenLoaded = false;
-
- /**
- * True if data has been loaded from the cache loader.
- */
- private boolean dataLoaded = true;
-
- /**
* Lock manager that manages locks to be acquired when accessing the node inside a transaction. Lazy set just in case
* locking is not needed.
*/
@@ -69,13 +60,6 @@
*/
private final Map data = new HashMap();
- private boolean lockForChildInsertRemove;
-
- /**
- * Node moved or removed.
- */
- private boolean valid = true;
-
private NodeSPI delegate;
/**
@@ -84,6 +68,7 @@
public UnversionedNode()
{
this.fqn = Fqn.ROOT;
+ initFlags();
}
/**
@@ -95,10 +80,17 @@
*/
protected UnversionedNode(Object child_name, Fqn fqn, Map data, boolean mapSafe, CacheSPI cache)
{
+ initFlags();
init(child_name, fqn, cache);
setInternalState(data);
}
+ protected void initFlags()
+ {
+ flags.add(DATA_LOADED);
+ flags.add(VALID);
+ }
+
public NodeSPI getDelegate()
{
return delegate;
@@ -131,7 +123,8 @@
{
throw new IllegalArgumentException("Child " + child_name + " must be last part of " + fqn);
}
- lockForChildInsertRemove = cache.getConfiguration().isLockParentForChildInsertRemove();
+
+ setLockForChildInsertRemove(cache.getConfiguration().isLockParentForChildInsertRemove());
}
/**
@@ -178,17 +171,17 @@
public boolean isChildrenLoaded()
{
- return childrenLoaded;
+ return flags.contains(CHILDREN_LOADED);
}
- public void setChildrenLoaded(boolean flag)
+ public void setChildrenLoaded(boolean childrenLoaded)
{
- childrenLoaded = flag;
+ setFlag(CHILDREN_LOADED, childrenLoaded);
}
private void assertValid()
{
- if (!valid)
+ if (!isValid())
throw new NodeNotValidException("Node " + getFqn() + " is not valid. Perhaps it has been moved or removed.");
}
@@ -324,9 +317,9 @@
{
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
- if (!valid) sb.append(" (INVALID!) ");
+ if (!isValid()) sb.append(" (INVALID!) ");
- if (deleted)
+ if (isDeleted())
{
sb.append(" (deleted) [ ").append(fqn);
}
@@ -690,7 +683,7 @@
*/
public boolean isDataLoaded()
{
- return dataLoaded;
+ return flags.contains(DATA_LOADED);
}
/**
@@ -698,17 +691,18 @@
*/
public void setDataLoaded(boolean dataLoaded)
{
- this.dataLoaded = dataLoaded;
+ setFlag(DATA_LOADED, dataLoaded);
}
public boolean isValid()
{
- return valid;
+ return flags.contains(VALID);
}
public void setValid(boolean valid, boolean recursive)
{
- this.valid = valid;
+ setFlag(VALID, valid);
+
if (trace) log.trace("Marking node " + getFqn() + " as " + (valid ? "" : "in") + "valid");
if (recursive)
{
@@ -721,12 +715,12 @@
public boolean isLockForChildInsertRemove()
{
- return lockForChildInsertRemove;
+ return flags.contains(LOCK_FOR_CHILD_INSERT_REMOVE);
}
public void setLockForChildInsertRemove(boolean lockForChildInsertRemove)
{
- this.lockForChildInsertRemove = lockForChildInsertRemove;
+ setFlag(LOCK_FOR_CHILD_INSERT_REMOVE, lockForChildInsertRemove);
}
public void setInternalState(Map state)
Modified: core/trunk/src/main/java/org/jboss/cache/optimistic/WorkspaceNodeImpl.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/optimistic/WorkspaceNodeImpl.java 2008-04-04 15:43:06 UTC (rev 5501)
+++ core/trunk/src/main/java/org/jboss/cache/optimistic/WorkspaceNodeImpl.java 2008-04-04 16:59:53 UTC (rev 5502)
@@ -9,6 +9,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jboss.cache.AbstractNode;
+import static org.jboss.cache.AbstractNode.NodeFlags.*;
import org.jboss.cache.CacheSPI;
import org.jboss.cache.Fqn;
import org.jboss.cache.Node;
@@ -40,26 +41,11 @@
private NodeSPI<K, V> node;
private TransactionWorkspace workspace;
private DataVersion version = DefaultDataVersion.ZERO;
- private boolean modified;
- private boolean created;
- private boolean childrenModified;
private Map<Object, NodeSPI<K, V>> optimisticChildNodeMap;
- private Set<Fqn> childrenAdded;// = new HashSet<Fqn>();
- private Set<Fqn> childrenRemoved;// = new HashSet<Fqn>();
+ private Set<Fqn> childrenAdded;
+ private Set<Fqn> childrenRemoved;
private Map<K, V> optimisticDataMap;
- private boolean versioningImplicit = true; // default
- private boolean resurrected = false;
- // the following boolean attributes are encoded as bits in a byte:
- // modified: attr & 1 (2 ^ 0)
- // created: attr & 2 (2 ^ 1)
- // childrenModified: attr & 4 (2 ^ 2)
- // versioningImplicit: attr & 8 (2 ^ 3)
- // resurrected: attr & 16 (2 ^ 4)
-
- // versioningImplicit is enabled by default.
- //private byte attr = 8;
-
/**
* Constructs with a node and workspace.
*/
@@ -81,6 +67,11 @@
}
}
+ protected void initFlags()
+ {
+ flags.add(VERSIONING_IMPLICIT);
+ }
+
protected Set<Fqn> getChildrenAddedSet()
{
if (childrenAdded == null) childrenAdded = new HashSet<Fqn>();
@@ -95,7 +86,7 @@
public boolean isChildrenModified()
{
- return childrenModified;
+ return flags.contains(CHILDREN_MODIFIED_IN_WORKSPACE);
}
public boolean isChildrenLoaded()
@@ -105,12 +96,12 @@
public boolean isResurrected()
{
- return resurrected;
+ return flags.contains(RESURRECTED_IN_WORKSPACE);
}
public void markAsResurrected(boolean resurrected)
{
- this.resurrected = resurrected;
+ setFlag(RESURRECTED_IN_WORKSPACE, resurrected);
}
@Override
@@ -129,7 +120,7 @@
*/
public boolean isModified()
{
- return modified;
+ return flags.contains(MODIFIED_IN_WORKSPACE);
}
/**
@@ -139,7 +130,7 @@
*/
public boolean isDirty()
{
- return modified || created || deleted;
+ return isModified() || isCreated() || isDeleted();
}
public Fqn getFqn()
@@ -150,7 +141,7 @@
public void putAll(Map<K, V> data)
{
realPut(data, false);
- modified = true;
+ setFlag(MODIFIED_IN_WORKSPACE, true);
}
public void replaceAll(Map<K, V> data)
@@ -161,7 +152,7 @@
public V put(K key, V value)
{
- modified = true;
+ setFlag(MODIFIED_IN_WORKSPACE, true);
if (optimisticDataMap == null) optimisticDataMap = new HashMap<K, V>();
return optimisticDataMap.put(key, value);
@@ -169,7 +160,7 @@
public V remove(K key)
{
- modified = true;
+ setFlag(MODIFIED_IN_WORKSPACE, true);
if (optimisticDataMap == null) return null;
return optimisticDataMap.remove(key);
@@ -217,7 +208,7 @@
private void realPut(Map<K, V> data, boolean eraseData, boolean forceDirtyFlag)
{
- if (forceDirtyFlag) modified = true;
+ if (forceDirtyFlag) setFlag(MODIFIED_IN_WORKSPACE, true);
if (eraseData && optimisticDataMap != null)
{
optimisticDataMap.clear();
@@ -246,18 +237,18 @@
NodeSPI<K, V> child = (NodeSPI<K, V>) factory.createNodeOfType(parent, child_name, parent, null);
getChildrenAddedSet().add(child.getFqn());
if (childrenRemoved != null) childrenRemoved.remove(child.getFqn());
- childrenModified = true;
+ setFlag(CHILDREN_MODIFIED_IN_WORKSPACE, true);
return child;
}
public boolean isVersioningImplicit()
{
- return versioningImplicit;
+ return flags.contains(VERSIONING_IMPLICIT);
}
- public void setVersioningImplicit(boolean b)
+ public void setVersioningImplicit(boolean versioningImplicit)
{
- versioningImplicit = b;
+ setFlag(VERSIONING_IMPLICIT, versioningImplicit);
}
public NodeSPI<K, V> getChild(Object childName)
@@ -313,12 +304,12 @@
public boolean isCreated()
{
- return created;
+ return flags.contains(CREATED_IN_WORKSPACE);
}
public void markAsCreated()
{
- created = true;
+ setFlag(CREATED_IN_WORKSPACE, true);
// created != modified!!!
}
@@ -337,10 +328,10 @@
public String toString()
{
StringBuffer sb = new StringBuffer();
- if (deleted) sb.append("del ");
- if (modified) sb.append("modified ");
- if (created) sb.append("new ");
- return getClass().getSimpleName() + " [ fqn=" + getFqn() + " " + sb + "ver=" + version + " " + (versioningImplicit ? "implicit" : "explicit") + "]";
+ if (isDeleted()) sb.append("del ");
+ if (isModified()) sb.append("modified ");
+ if (isCreated()) sb.append("new ");
+ return getClass().getSimpleName() + " [ fqn=" + getFqn() + " " + sb + "ver=" + version + " " + (isVersioningImplicit() ? "implicit" : "explicit") + "]";
}
public Node<K, V> addChild(Fqn f)
@@ -392,7 +383,7 @@
if (optimisticDataMap != null)
{
optimisticDataMap.clear();
- modified = true;
+ setFlag(MODIFIED_IN_WORKSPACE, true);
}
}
@@ -480,7 +471,7 @@
{*/
getChildrenRemovedSet().add(childFqn);
if (childrenAdded != null) childrenAdded.remove(childFqn);
- childrenModified = true;
+ setFlag(CHILDREN_MODIFIED_IN_WORKSPACE, true);
return node.getChildDirect(childName) != null;
/*}
else
16 years, 3 months
JBoss Cache SVN: r5501 - in core/trunk/src: test/java/org/jboss/cache/manager and 1 other directory.
by jbosscache-commits@lists.jboss.org
Author: bstansberry(a)jboss.com
Date: 2008-04-04 11:43:06 -0400 (Fri, 04 Apr 2008)
New Revision: 5501
Modified:
core/trunk/src/main/java/org/jboss/cache/config/XmlParsingConfigurationRegistry.java
core/trunk/src/test/java/org/jboss/cache/manager/CacheManagerTest.java
Log:
[JBCACHE-1318] Don't throw NPE if no configResource provided
Modified: core/trunk/src/main/java/org/jboss/cache/config/XmlParsingConfigurationRegistry.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/config/XmlParsingConfigurationRegistry.java 2008-04-04 15:38:20 UTC (rev 5500)
+++ core/trunk/src/main/java/org/jboss/cache/config/XmlParsingConfigurationRegistry.java 2008-04-04 15:43:06 UTC (rev 5501)
@@ -38,7 +38,8 @@
{
if (!started)
{
- configs.putAll(parser.parseConfigs(configResource));
+ if (configResource != null)
+ configs.putAll(parser.parseConfigs(configResource));
started = true;
}
}
Modified: core/trunk/src/test/java/org/jboss/cache/manager/CacheManagerTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/manager/CacheManagerTest.java 2008-04-04 15:38:20 UTC (rev 5500)
+++ core/trunk/src/test/java/org/jboss/cache/manager/CacheManagerTest.java 2008-04-04 15:43:06 UTC (rev 5501)
@@ -149,4 +149,15 @@
assertEquals(0, cacheNames.size());
assertEquals(cacheNames, registry.getConfigurationNames());
}
+
+ public void testNullConfigResource() throws Exception
+ {
+ JChannelFactory cf = new JChannelFactory();
+ cf.setMultiplexerConfig("stacks.xml"); // the default stacks in jgroups.jar
+ String configResource = null;
+ CacheManagerImpl registry = new CacheManagerImpl(configResource, cf);
+ registry.start();
+
+ assertEquals("No configs", 0, registry.getConfigurationNames().size());
+ }
}
16 years, 3 months
JBoss Cache SVN: r5500 - in core/branches/2.1.X/src: test/java/org/jboss/cache/manager and 1 other directory.
by jbosscache-commits@lists.jboss.org
Author: bstansberry(a)jboss.com
Date: 2008-04-04 11:38:20 -0400 (Fri, 04 Apr 2008)
New Revision: 5500
Modified:
core/branches/2.1.X/src/main/java/org/jboss/cache/config/XmlParsingConfigurationRegistry.java
core/branches/2.1.X/src/test/java/org/jboss/cache/manager/CacheManagerTest.java
Log:
[JBCACHE-1318] Don't throw NPE if no configResource provided
Modified: core/branches/2.1.X/src/main/java/org/jboss/cache/config/XmlParsingConfigurationRegistry.java
===================================================================
--- core/branches/2.1.X/src/main/java/org/jboss/cache/config/XmlParsingConfigurationRegistry.java 2008-04-04 15:13:03 UTC (rev 5499)
+++ core/branches/2.1.X/src/main/java/org/jboss/cache/config/XmlParsingConfigurationRegistry.java 2008-04-04 15:38:20 UTC (rev 5500)
@@ -38,7 +38,8 @@
{
if (!started)
{
- configs.putAll(parser.parseConfigs(configResource));
+ if (configResource != null)
+ configs.putAll(parser.parseConfigs(configResource));
started = true;
}
}
Modified: core/branches/2.1.X/src/test/java/org/jboss/cache/manager/CacheManagerTest.java
===================================================================
--- core/branches/2.1.X/src/test/java/org/jboss/cache/manager/CacheManagerTest.java 2008-04-04 15:13:03 UTC (rev 5499)
+++ core/branches/2.1.X/src/test/java/org/jboss/cache/manager/CacheManagerTest.java 2008-04-04 15:38:20 UTC (rev 5500)
@@ -149,4 +149,15 @@
assertEquals(0, cacheNames.size());
assertEquals(cacheNames, registry.getConfigurationNames());
}
+
+ public void testNullConfigResource() throws Exception
+ {
+ JChannelFactory cf = new JChannelFactory();
+ cf.setMultiplexerConfig("stacks.xml"); // the default stacks in jgroups.jar
+ String configResource = null;
+ CacheManagerImpl registry = new CacheManagerImpl(configResource, cf);
+ registry.start();
+
+ assertEquals("No configs", 0, registry.getConfigurationNames().size());
+ }
}
16 years, 3 months
JBoss Cache SVN: r5499 - in core/branches/2.1.X/src: test/java/org/jboss/cache/config and 1 other directories.
by jbosscache-commits@lists.jboss.org
Author: bstansberry(a)jboss.com
Date: 2008-04-04 11:13:03 -0400 (Fri, 04 Apr 2008)
New Revision: 5499
Added:
core/branches/2.1.X/src/test/java/org/jboss/cache/config/StringPropertyReplacementTest.java
core/branches/2.1.X/src/test/resources/META-INF/conf-test/string-property-replaced-service.xml
Modified:
core/branches/2.1.X/src/main/java/org/jboss/cache/xml/XmlHelper.java
Log:
[JBCACHE-1218] System property substitution in config file parsing
Modified: core/branches/2.1.X/src/main/java/org/jboss/cache/xml/XmlHelper.java
===================================================================
--- core/branches/2.1.X/src/main/java/org/jboss/cache/xml/XmlHelper.java 2008-04-03 12:30:40 UTC (rev 5498)
+++ core/branches/2.1.X/src/main/java/org/jboss/cache/xml/XmlHelper.java 2008-04-04 15:13:03 UTC (rev 5499)
@@ -8,6 +8,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jboss.util.StringPropertyReplacer;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -139,7 +140,8 @@
continue;
Element element = (Element) node;
- return element.getAttribute(attributeName);
+ String value = element.getAttribute(attributeName);
+ return value == null ? null : StringPropertyReplacer.replaceProperties(value);
}
return null;
@@ -196,7 +198,7 @@
Node n = nl.item(i);
if (n instanceof Text)
{
- attributeText += ((Text) n).getData();
+ attributeText += StringPropertyReplacer.replaceProperties(((Text) n).getData());
}
} // end of for ()
if (trim)
@@ -227,7 +229,7 @@
String value = node2.getNodeValue();
if (value == null)
return "";
- return value.trim();
+ return StringPropertyReplacer.replaceProperties(value.trim());
}
else
{
Added: core/branches/2.1.X/src/test/java/org/jboss/cache/config/StringPropertyReplacementTest.java
===================================================================
--- core/branches/2.1.X/src/test/java/org/jboss/cache/config/StringPropertyReplacementTest.java (rev 0)
+++ core/branches/2.1.X/src/test/java/org/jboss/cache/config/StringPropertyReplacementTest.java 2008-04-04 15:13:03 UTC (rev 5499)
@@ -0,0 +1,123 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.cache.config;
+
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertTrue;
+
+import org.jboss.cache.config.BuddyReplicationConfig.BuddyLocatorConfig;
+import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig;
+import org.jboss.cache.config.Configuration.CacheMode;
+import org.jboss.cache.config.Configuration.NodeLockingScheme;
+import org.jboss.cache.eviction.LRUConfiguration;
+import org.jboss.cache.eviction.LRUPolicy;
+import org.jboss.cache.factories.XmlConfigurationParser;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Tests that string property replacement works properly when parsing
+ * a config file. JBCACHE-1218
+ *
+ * @author Brian Stansberry
+ */
+@Test(groups = {"functional"})
+public class StringPropertyReplacementTest
+{
+ public static final String STRING_REPLACED_FILE = "META-INF/conf-test/string-property-replaced-service.xml";
+
+ private static final String PROP_BASE = "test.property.";
+ private static final String CACHE_MODE_PROP = PROP_BASE + "CacheMode";
+ private static final String SYNC_COMMIT_PROP = PROP_BASE + "SyncCommitPhase";
+ private static final String NUM_BUDDIES_PROP = PROP_BASE + "BuddyReplicationConfig.numBuddies";
+ private static final String MAX_NODES_PROP = PROP_BASE + "EvictionPolicyConfig.maxNodes";
+ private static final String BUDDY_POOL_PROP = PROP_BASE + "BuddyReplicationConfig.buddyPoolName";
+
+ private String cacheMode;
+ private String numBuddies;
+ private String syncCommitPhase;
+ private String maxNodes;
+ private String buddyPoolName;
+
+ @BeforeMethod(alwaysRun = true)
+ public void setUp() throws Exception
+ {
+ cacheMode = System.getProperty(CACHE_MODE_PROP);
+ numBuddies = System.getProperty(NUM_BUDDIES_PROP);
+ syncCommitPhase = System.getProperty(SYNC_COMMIT_PROP);
+ maxNodes = System.getProperty(MAX_NODES_PROP);
+ buddyPoolName = System.getProperty(BUDDY_POOL_PROP);
+ }
+
+ @AfterMethod(alwaysRun = true)
+ public void tearDown() throws Exception
+ {
+ if (cacheMode == null)
+ System.clearProperty(CACHE_MODE_PROP);
+ else
+ System.setProperty(CACHE_MODE_PROP, cacheMode);
+
+ if (numBuddies == null)
+ System.clearProperty(NUM_BUDDIES_PROP);
+ else
+ System.setProperty(NUM_BUDDIES_PROP, numBuddies);
+
+ if (syncCommitPhase == null)
+ System.clearProperty(SYNC_COMMIT_PROP);
+ else
+ System.setProperty(SYNC_COMMIT_PROP, syncCommitPhase);
+
+ if (maxNodes == null)
+ System.clearProperty(MAX_NODES_PROP);
+ else
+ System.setProperty(MAX_NODES_PROP, maxNodes);
+
+ if (buddyPoolName == null)
+ System.clearProperty(BUDDY_POOL_PROP);
+ else
+ System.setProperty(BUDDY_POOL_PROP, buddyPoolName);
+ }
+
+ public void testStringPropertyReplacement() throws Exception
+ {
+ System.setProperty(CACHE_MODE_PROP, "REPL_SYNC");
+ System.setProperty(NUM_BUDDIES_PROP, "3");
+ System.setProperty(SYNC_COMMIT_PROP, "false");
+ System.setProperty(MAX_NODES_PROP, "1000");
+ System.setProperty(BUDDY_POOL_PROP, "replaced");
+
+ Configuration cfg = new XmlConfigurationParser().parseFile(STRING_REPLACED_FILE);
+
+ assertEquals(NodeLockingScheme.OPTIMISTIC, cfg.getNodeLockingScheme());
+ assertEquals(CacheMode.REPL_SYNC, cfg.getCacheMode());
+ assertFalse(cfg.isSyncCommitPhase());
+ assertTrue(cfg.isSyncRollbackPhase());
+ assertEquals(15000, cfg.getLockAcquisitionTimeout());
+ String clusterCfg = cfg.getClusterConfig();
+ assertTrue(clusterCfg == null || clusterCfg.length() == 0);
+
+ EvictionConfig ec = cfg.getEvictionConfig();
+ assertEquals(LRUPolicy.class.getName(), ec.getDefaultEvictionPolicyClass());
+ EvictionRegionConfig erc = ec.getEvictionRegionConfigs().get(0);
+ LRUConfiguration epc = (LRUConfiguration) erc.getEvictionPolicyConfig();
+ assertEquals(1000, epc.getMaxNodes());
+
+ CacheLoaderConfig clc = cfg.getCacheLoaderConfig();
+ IndividualCacheLoaderConfig iclc = clc.getFirstCacheLoaderConfig();
+ assertEquals(System.getProperty("java.io.tmpdir"), iclc.getProperties().get("location"));
+
+ BuddyReplicationConfig brc = cfg.getBuddyReplicationConfig();
+ assertTrue(brc.isEnabled());
+ assertEquals("replaced", brc.getBuddyPoolName());
+ BuddyLocatorConfig blc = brc.getBuddyLocatorConfig();
+ assertEquals("3", blc.getBuddyLocatorProperties().get("numBuddies"));
+ }
+
+}
Added: core/branches/2.1.X/src/test/resources/META-INF/conf-test/string-property-replaced-service.xml
===================================================================
--- core/branches/2.1.X/src/test/resources/META-INF/conf-test/string-property-replaced-service.xml (rev 0)
+++ core/branches/2.1.X/src/test/resources/META-INF/conf-test/string-property-replaced-service.xml 2008-04-04 15:13:03 UTC (rev 5499)
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Sample Service Configuration to test string property replacement -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<server>
+
+ <classpath codebase="./lib" archives="jboss-cache.jar, jgroups.jar"/>
+
+ <mbean code="org.jboss.cache.jmx.CacheJmxWrapper"
+ name="jboss.cache:service=testTreeCache">
+
+ <depends>jboss:service=Naming</depends>
+ <depends>jboss:service=TransactionManager</depends>
+
+
+ <!-- Node locking scheme -->
+ <attribute name="NodeLockingScheme">${test.property.NodeLockingScheme:OPTIMISTIC}</attribute>
+
+ <attribute name="CacheMode">${test.property.CacheMode}</attribute>
+
+ <attribute name="SyncCommitPhase">${test.property.SyncCommitPhase:true}</attribute>
+ <attribute name="SyncRollbackPhase">true</attribute>
+
+ <attribute name="ClusterName">optimistic-entity</attribute>
+
+ <attribute name="MultiplexerStack">udp-sync</attribute>
+
+ <!-- Whether or not to fetch state on joining a cluster. -->
+ <attribute name="FetchInMemoryState">false</attribute>
+
+ <attribute name="StateRetrievalTimeout">20000</attribute>
+
+ <attribute name="SyncReplTimeout">20000</attribute>
+
+ <attribute name="LockAcquisitionTimeout">${test.property.LockAcquisitionTimeout:15000}</attribute>
+
+ <attribute name="UseRegionBasedMarshalling">true</attribute>
+ <attribute name="InactiveOnStartup">true</attribute>
+
+ <!-- Make sure an empty element doesn't blow us up -->
+ <attribute name="ClusterConfig"></attribute>
+
+ <!-- Specific eviction policy configurations. This is LRU -->
+ <attribute name="EvictionPolicyConfig">
+ <config>
+ <attribute name="wakeUpIntervalSeconds">5</attribute>
+ <attribute name="policyClass">${test.property.EvictionPolicyConfig.policyClass:org.jboss.cache.eviction.LRUPolicy}</attribute>
+ <region name="/_default_">
+ <attribute name="maxNodes">${test.property.EvictionPolicyConfig.maxNodes:5000}</attribute>
+ <attribute name="timeToLiveSeconds">1000</attribute>
+ </region>
+ </config>
+ </attribute>
+
+ <attribute name="CacheLoaderConfiguration">
+ <config>
+ <passivation>true</passivation>
+ <preload>/</preload>
+ <shared>false</shared>
+
+ <!-- we can now have multiple cache loaders, which get chained -->
+ <cacheloader>
+ <class>org.jboss.cache.loader.FileCacheLoader</class>
+ <properties>
+ location=${test.property.CacheLoaderConfiguration.location,java.io.tmpdir:/tmp}
+ </properties>
+ <async>false</async>
+ <fetchPersistentState>true</fetchPersistentState>
+ <ignoreModifications>false</ignoreModifications>
+ </cacheloader>
+
+ </config>
+ </attribute>
+
+ <attribute name="BuddyReplicationConfig">
+ <config>
+ <buddyReplicationEnabled>${test.property.BuddyReplicationConfig.enabled:true}</buddyReplicationEnabled>
+ <buddyLocatorClass>org.jboss.cache.buddyreplication.NextMemberBuddyLocator</buddyLocatorClass>
+ <!-- NOTE: we deliberately put the property being replaced on the 2nd line to ensure that's handled -->
+ <buddyLocatorProperties>
+ ignoreColocatedBuddies = true
+ numBuddies = ${test.property.BuddyReplicationConfig.numBuddies:1}
+ </buddyLocatorProperties>
+
+ <buddyPoolName>${test.property.BuddyReplicationConfig.buddyPoolName:default}</buddyPoolName>
+ <buddyCommunicationTimeout>2000</buddyCommunicationTimeout>
+
+ <autoDataGravitation>false</autoDataGravitation>
+ <dataGravitationRemoveOnFind>true</dataGravitationRemoveOnFind>
+ <dataGravitationSearchBackupTrees>true</dataGravitationSearchBackupTrees>
+
+ </config>
+ </attribute>
+ </mbean>
+
+
+</server>
16 years, 3 months
Build failed in Hudson: jboss-cache-core-trunk-jdk1.5 » JBoss Cache - Core Edition #318
by jboss-qa-internal@redhat.com
See https://hudson.jboss.org/hudson/job/jboss-cache-core-trunk-jdk1.5/org.jbo...
------------------------------------------
started
Building remotely on dev03-linux
$ /qa/tools/opt/jdk1.5.0_15/bin/java -Xmx256m -cp /home/hudson/hudson_workspace/maven-agent.jar:/qa/tools/opt/maven-2.0.8/boot/classworlds-1.1.jar hudson.maven.agent.Main /qa/tools/opt/maven-2.0.8 /qa/services/hudson/hudson_release/WEB-INF/slave.jar /home/hudson/hudson_workspace/maven-interceptor.jar
channel started
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [package]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Cannot execute mojo: resources. It requires a project with an existing pom.xml, but the build is not using one.
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14 seconds
[INFO] Finished at: Thu Apr 03 10:33:36 EDT 2008
[INFO] Final Memory: 3M/23M
[INFO] ------------------------------------------------------------------------
Waiting for Hudson to finish collecting data
Sending e-mails to: dpospisi(a)redhat.com
Build was marked for publishing on https://hudson.jboss.org/hudson/
finished: FAILURE
16 years, 3 months
JBoss Cache SVN: r5498 - core/trunk/src/main/java/org/jboss/cache.
by jbosscache-commits@lists.jboss.org
Author: manik.surtani(a)jboss.com
Date: 2008-04-03 08:30:40 -0400 (Thu, 03 Apr 2008)
New Revision: 5498
Modified:
core/trunk/src/main/java/org/jboss/cache/SuspectException.java
Log:
Unnecessary toString
Modified: core/trunk/src/main/java/org/jboss/cache/SuspectException.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/SuspectException.java 2008-04-02 22:15:14 UTC (rev 5497)
+++ core/trunk/src/main/java/org/jboss/cache/SuspectException.java 2008-04-03 12:30:40 UTC (rev 5498)
@@ -2,6 +2,7 @@
/**
* Thrown when a member is suspected during remote method invocation
+ *
* @author Bela Ban
* @version $Id$
*/
@@ -10,19 +11,18 @@
private static final long serialVersionUID = -2965599037371850141L;
- public SuspectException() {
+ public SuspectException()
+ {
super();
}
- public SuspectException(String msg) {
+ public SuspectException(String msg)
+ {
super(msg);
}
- public SuspectException(String msg, Throwable cause) {
+ public SuspectException(String msg, Throwable cause)
+ {
super(msg, cause);
}
-
- public String toString() {
- return super.toString();
- }
}
16 years, 3 months
Build failed in Hudson: jboss-cache-core-trunk-jdk1.6 » JBoss Cache - Core Edition #229
by jboss-qa-internal@redhat.com
See https://hudson.jboss.org/hudson/job/jboss-cache-core-trunk-jdk1.6/org.jbo...
------------------------------------------
started
Building remotely on conf2-linux
$ /qa/tools/opt/jdk1.6.0_03/bin/java -Xmx256m -cp /home/hudson/hudson_workspace/maven-agent.jar:/qa/tools/opt/maven-2.0.8/boot/classworlds-1.1.jar hudson.maven.agent.Main /qa/tools/opt/maven-2.0.8 /qa/services/hudson/hudson_release/WEB-INF/slave.jar /home/hudson/hudson_workspace/maven-interceptor.jar
channel started
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Default Project
[INFO] task-segment: [clean, site]
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Cannot execute mojo: clean. It requires a project with an existing pom.xml, but the build is not using one.
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14 seconds
[INFO] Finished at: Thu Apr 03 07:47:53 EDT 2008
[INFO] Final Memory: 2M/17M
[INFO] ------------------------------------------------------------------------
Waiting for Hudson to finish collecting data
Sending e-mails to: dpospisi(a)redhat.com bstansberry(a)jboss.com
Build was marked for publishing on https://hudson.jboss.org/hudson/
finished: FAILURE
16 years, 3 months
JBoss Cache SVN: r5497 - in core/trunk/src: test/java/org/jboss/cache/config and 1 other directories.
by jbosscache-commits@lists.jboss.org
Author: bstansberry(a)jboss.com
Date: 2008-04-02 18:15:14 -0400 (Wed, 02 Apr 2008)
New Revision: 5497
Added:
core/trunk/src/test/java/org/jboss/cache/config/StringPropertyReplacementTest.java
core/trunk/src/test/resources/META-INF/conf-test/string-property-replaced-service.xml
Modified:
core/trunk/src/main/java/org/jboss/cache/xml/XmlHelper.java
Log:
[JBCACHE-1218] Add system property substitution in config file parsing
Modified: core/trunk/src/main/java/org/jboss/cache/xml/XmlHelper.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/xml/XmlHelper.java 2008-04-02 20:04:30 UTC (rev 5496)
+++ core/trunk/src/main/java/org/jboss/cache/xml/XmlHelper.java 2008-04-02 22:15:14 UTC (rev 5497)
@@ -8,6 +8,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jboss.util.StringPropertyReplacer;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -139,7 +140,8 @@
continue;
Element element = (Element) node;
- return element.getAttribute(attributeName);
+ String value = element.getAttribute(attributeName);
+ return value == null ? null : StringPropertyReplacer.replaceProperties(value);
}
return null;
@@ -196,7 +198,7 @@
Node n = nl.item(i);
if (n instanceof Text)
{
- attributeText += ((Text) n).getData();
+ attributeText += StringPropertyReplacer.replaceProperties(((Text) n).getData());
}
} // end of for ()
if (trim)
@@ -227,7 +229,7 @@
String value = node2.getNodeValue();
if (value == null)
return "";
- return value.trim();
+ return StringPropertyReplacer.replaceProperties(value.trim());
}
else
{
Added: core/trunk/src/test/java/org/jboss/cache/config/StringPropertyReplacementTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/config/StringPropertyReplacementTest.java (rev 0)
+++ core/trunk/src/test/java/org/jboss/cache/config/StringPropertyReplacementTest.java 2008-04-02 22:15:14 UTC (rev 5497)
@@ -0,0 +1,123 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.cache.config;
+
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertTrue;
+
+import org.jboss.cache.config.BuddyReplicationConfig.BuddyLocatorConfig;
+import org.jboss.cache.config.CacheLoaderConfig.IndividualCacheLoaderConfig;
+import org.jboss.cache.config.Configuration.CacheMode;
+import org.jboss.cache.config.Configuration.NodeLockingScheme;
+import org.jboss.cache.eviction.LRUConfiguration;
+import org.jboss.cache.eviction.LRUPolicy;
+import org.jboss.cache.factories.XmlConfigurationParser;
+import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.Test;
+
+/**
+ * Tests that string property replacement works properly when parsing
+ * a config file. JBCACHE-1218
+ *
+ * @author Brian Stansberry
+ */
+@Test(groups = {"functional"})
+public class StringPropertyReplacementTest
+{
+ public static final String STRING_REPLACED_FILE = "META-INF/conf-test/string-property-replaced-service.xml";
+
+ private static final String PROP_BASE = "test.property.";
+ private static final String CACHE_MODE_PROP = PROP_BASE + "CacheMode";
+ private static final String SYNC_COMMIT_PROP = PROP_BASE + "SyncCommitPhase";
+ private static final String NUM_BUDDIES_PROP = PROP_BASE + "BuddyReplicationConfig.numBuddies";
+ private static final String MAX_NODES_PROP = PROP_BASE + "EvictionPolicyConfig.maxNodes";
+ private static final String BUDDY_POOL_PROP = PROP_BASE + "BuddyReplicationConfig.buddyPoolName";
+
+ private String cacheMode;
+ private String numBuddies;
+ private String syncCommitPhase;
+ private String maxNodes;
+ private String buddyPoolName;
+
+ @BeforeMethod(alwaysRun = true)
+ public void setUp() throws Exception
+ {
+ cacheMode = System.getProperty(CACHE_MODE_PROP);
+ numBuddies = System.getProperty(NUM_BUDDIES_PROP);
+ syncCommitPhase = System.getProperty(SYNC_COMMIT_PROP);
+ maxNodes = System.getProperty(MAX_NODES_PROP);
+ buddyPoolName = System.getProperty(BUDDY_POOL_PROP);
+ }
+
+ @AfterMethod(alwaysRun = true)
+ public void tearDown() throws Exception
+ {
+ if (cacheMode == null)
+ System.clearProperty(CACHE_MODE_PROP);
+ else
+ System.setProperty(CACHE_MODE_PROP, cacheMode);
+
+ if (numBuddies == null)
+ System.clearProperty(NUM_BUDDIES_PROP);
+ else
+ System.setProperty(NUM_BUDDIES_PROP, numBuddies);
+
+ if (syncCommitPhase == null)
+ System.clearProperty(SYNC_COMMIT_PROP);
+ else
+ System.setProperty(SYNC_COMMIT_PROP, syncCommitPhase);
+
+ if (maxNodes == null)
+ System.clearProperty(MAX_NODES_PROP);
+ else
+ System.setProperty(MAX_NODES_PROP, maxNodes);
+
+ if (buddyPoolName == null)
+ System.clearProperty(BUDDY_POOL_PROP);
+ else
+ System.setProperty(BUDDY_POOL_PROP, buddyPoolName);
+ }
+
+ public void testStringPropertyReplacement() throws Exception
+ {
+ System.setProperty(CACHE_MODE_PROP, "REPL_SYNC");
+ System.setProperty(NUM_BUDDIES_PROP, "3");
+ System.setProperty(SYNC_COMMIT_PROP, "false");
+ System.setProperty(MAX_NODES_PROP, "1000");
+ System.setProperty(BUDDY_POOL_PROP, "replaced");
+
+ Configuration cfg = new XmlConfigurationParser().parseFile(STRING_REPLACED_FILE);
+
+ assertEquals(NodeLockingScheme.OPTIMISTIC, cfg.getNodeLockingScheme());
+ assertEquals(CacheMode.REPL_SYNC, cfg.getCacheMode());
+ assertFalse(cfg.isSyncCommitPhase());
+ assertTrue(cfg.isSyncRollbackPhase());
+ assertEquals(15000, cfg.getLockAcquisitionTimeout());
+ String clusterCfg = cfg.getClusterConfig();
+ assertTrue(clusterCfg == null || clusterCfg.length() == 0);
+
+ EvictionConfig ec = cfg.getEvictionConfig();
+ assertEquals(LRUPolicy.class.getName(), ec.getDefaultEvictionPolicyClass());
+ EvictionRegionConfig erc = ec.getEvictionRegionConfigs().get(0);
+ LRUConfiguration epc = (LRUConfiguration) erc.getEvictionPolicyConfig();
+ assertEquals(1000, epc.getMaxNodes());
+
+ CacheLoaderConfig clc = cfg.getCacheLoaderConfig();
+ IndividualCacheLoaderConfig iclc = clc.getFirstCacheLoaderConfig();
+ assertEquals(System.getProperty("java.io.tmpdir"), iclc.getProperties().get("location"));
+
+ BuddyReplicationConfig brc = cfg.getBuddyReplicationConfig();
+ assertTrue(brc.isEnabled());
+ assertEquals("replaced", brc.getBuddyPoolName());
+ BuddyLocatorConfig blc = brc.getBuddyLocatorConfig();
+ assertEquals("3", blc.getBuddyLocatorProperties().get("numBuddies"));
+ }
+
+}
Added: core/trunk/src/test/resources/META-INF/conf-test/string-property-replaced-service.xml
===================================================================
--- core/trunk/src/test/resources/META-INF/conf-test/string-property-replaced-service.xml (rev 0)
+++ core/trunk/src/test/resources/META-INF/conf-test/string-property-replaced-service.xml 2008-04-02 22:15:14 UTC (rev 5497)
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Sample Service Configuration to test string property replacement -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<server>
+
+ <classpath codebase="./lib" archives="jboss-cache.jar, jgroups.jar"/>
+
+ <mbean code="org.jboss.cache.jmx.CacheJmxWrapper"
+ name="jboss.cache:service=testTreeCache">
+
+ <depends>jboss:service=Naming</depends>
+ <depends>jboss:service=TransactionManager</depends>
+
+
+ <!-- Node locking scheme -->
+ <attribute name="NodeLockingScheme">${test.property.NodeLockingScheme:OPTIMISTIC}</attribute>
+
+ <attribute name="CacheMode">${test.property.CacheMode}</attribute>
+
+ <attribute name="SyncCommitPhase">${test.property.SyncCommitPhase:true}</attribute>
+ <attribute name="SyncRollbackPhase">true</attribute>
+
+ <attribute name="ClusterName">optimistic-entity</attribute>
+
+ <attribute name="MultiplexerStack">udp-sync</attribute>
+
+ <!-- Whether or not to fetch state on joining a cluster. -->
+ <attribute name="FetchInMemoryState">false</attribute>
+
+ <attribute name="StateRetrievalTimeout">20000</attribute>
+
+ <attribute name="SyncReplTimeout">20000</attribute>
+
+ <attribute name="LockAcquisitionTimeout">${test.property.LockAcquisitionTimeout:15000}</attribute>
+
+ <attribute name="UseRegionBasedMarshalling">true</attribute>
+ <attribute name="InactiveOnStartup">true</attribute>
+
+ <!-- Make sure an empty element doesn't blow us up -->
+ <attribute name="ClusterConfig"></attribute>
+
+ <!-- Specific eviction policy configurations. This is LRU -->
+ <attribute name="EvictionPolicyConfig">
+ <config>
+ <attribute name="wakeUpIntervalSeconds">5</attribute>
+ <attribute name="policyClass">${test.property.EvictionPolicyConfig.policyClass:org.jboss.cache.eviction.LRUPolicy}</attribute>
+ <region name="/_default_">
+ <attribute name="maxNodes">${test.property.EvictionPolicyConfig.maxNodes:5000}</attribute>
+ <attribute name="timeToLiveSeconds">1000</attribute>
+ </region>
+ </config>
+ </attribute>
+
+ <attribute name="CacheLoaderConfiguration">
+ <config>
+ <passivation>true</passivation>
+ <preload>/</preload>
+ <shared>false</shared>
+
+ <!-- we can now have multiple cache loaders, which get chained -->
+ <cacheloader>
+ <class>org.jboss.cache.loader.FileCacheLoader</class>
+ <properties>
+ location=${test.property.CacheLoaderConfiguration.location,java.io.tmpdir:/tmp}
+ </properties>
+ <async>false</async>
+ <fetchPersistentState>true</fetchPersistentState>
+ <ignoreModifications>false</ignoreModifications>
+ </cacheloader>
+
+ </config>
+ </attribute>
+
+ <attribute name="BuddyReplicationConfig">
+ <config>
+ <buddyReplicationEnabled>${test.property.BuddyReplicationConfig.enabled:true}</buddyReplicationEnabled>
+ <buddyLocatorClass>org.jboss.cache.buddyreplication.NextMemberBuddyLocator</buddyLocatorClass>
+ <!-- NOTE: we deliberately put the property being replaced on the 2nd line to ensure that's handled -->
+ <buddyLocatorProperties>
+ ignoreColocatedBuddies = true
+ numBuddies = ${test.property.BuddyReplicationConfig.numBuddies:1}
+ </buddyLocatorProperties>
+
+ <buddyPoolName>${test.property.BuddyReplicationConfig.buddyPoolName:default}</buddyPoolName>
+ <buddyCommunicationTimeout>2000</buddyCommunicationTimeout>
+
+ <autoDataGravitation>false</autoDataGravitation>
+ <dataGravitationRemoveOnFind>true</dataGravitationRemoveOnFind>
+ <dataGravitationSearchBackupTrees>true</dataGravitationSearchBackupTrees>
+
+ </config>
+ </attribute>
+ </mbean>
+
+
+</server>
16 years, 3 months
JBoss Cache SVN: r5496 - core/branches/2.1.X.
by jbosscache-commits@lists.jboss.org
Author: bstansberry(a)jboss.com
Date: 2008-04-02 16:04:30 -0400 (Wed, 02 Apr 2008)
New Revision: 5496
Modified:
core/branches/2.1.X/pom.xml
Log:
Update the JBossAS profile dependencies
Modified: core/branches/2.1.X/pom.xml
===================================================================
--- core/branches/2.1.X/pom.xml 2008-04-02 20:02:31 UTC (rev 5495)
+++ core/branches/2.1.X/pom.xml 2008-04-02 20:04:30 UTC (rev 5496)
@@ -342,7 +342,7 @@
<activeByDefault>false</activeByDefault>
</activation>
<properties>
- <jbosscache-core-version>2.1.0-SNAPSHOT-JBossAS</jbosscache-core-version>
+ <jbosscache-core-version>2.1.1-SNAPSHOT-JBossAS</jbosscache-core-version>
</properties>
<dependencies>
<dependency>
@@ -358,7 +358,7 @@
<dependency>
<groupId>org.jboss</groupId>
<artifactId>jboss-common-core</artifactId>
- <version>2.2.3.GA</version>
+ <version>2.2.4.GA</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
@@ -368,7 +368,7 @@
<dependency>
<groupId>org.jboss.transaction</groupId>
<artifactId>jboss-jta</artifactId>
- <version>4.3.0.BETA2</version>
+ <version>4.3.0.GA</version>
<scope>test</scope>
</dependency>
</dependencies>
16 years, 3 months