[jboss-cvs] JBossAS SVN: r107827 - in projects/cluster/ha-server-ispn/trunk/src/main: java/org/jboss/ha/ispn/config and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Aug 26 23:29:42 EDT 2010
Author: pferraro
Date: 2010-08-26 23:29:41 -0400 (Thu, 26 Aug 2010)
New Revision: 107827
Modified:
projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/DefaultCacheContainerRegistry.java
projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/config/CacheContainerRegistryConfigurationEntry.java
projects/cluster/ha-server-ispn/trunk/src/main/resources/META-INF/infinispan-configs.xsd
Log:
Alias cannot utilize xs:ID, since we need to allow JMX object names, which are not valid xml ids.
Consequently, detect and warn about duplicate aliases.
Modified: projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/DefaultCacheContainerRegistry.java
===================================================================
--- projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/DefaultCacheContainerRegistry.java 2010-08-27 01:48:27 UTC (rev 107826)
+++ projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/DefaultCacheContainerRegistry.java 2010-08-27 03:29:41 UTC (rev 107827)
@@ -23,9 +23,9 @@
import java.util.Collections;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.atomic.AtomicReference;
import javax.naming.Context;
@@ -59,8 +59,8 @@
private final CacheContainerFactory factory;
private final CacheContainerRegistryConfigurationSource source;
private final Context context;
- private final Map<String, String> aliases = new ConcurrentHashMap<String, String>();
- private final Map<String, CacheContainerRegistryEntry> containers = new ConcurrentHashMap<String, CacheContainerRegistryEntry>();
+ private final ConcurrentMap<String, String> aliases = new ConcurrentHashMap<String, String>();
+ private final ConcurrentMap<String, CacheContainerRegistryEntry> containers = new ConcurrentHashMap<String, CacheContainerRegistryEntry>();
private volatile EmbeddedCacheManager defaultContainer;
@@ -179,11 +179,21 @@
CacheContainerRegistryEntry entry = new CacheContainerRegistryEntry(container, jndiName, aliases);
// Store cache containers with jndi name, so they can be unbound during stop()
- this.containers.put(id, entry);
+ CacheContainerRegistryEntry existingEntry = this.containers.putIfAbsent(id, entry);
+ if (existingEntry != null)
+ {
+ throw new IllegalArgumentException(id + " cache container is already registered.");
+ }
+
for (String alias: aliases)
{
- this.aliases.put(alias, id);
+ String existingAlias = this.aliases.putIfAbsent(alias, id);
+
+ if (existingAlias != null)
+ {
+ logger.warn("Ignoring alias " + alias + " for " + id + " cache container because it is already assigned to " + existingAlias);
+ }
}
this.start(entry);
Modified: projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/config/CacheContainerRegistryConfigurationEntry.java
===================================================================
--- projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/config/CacheContainerRegistryConfigurationEntry.java 2010-08-27 01:48:27 UTC (rev 107826)
+++ projects/cluster/ha-server-ispn/trunk/src/main/java/org/jboss/ha/ispn/config/CacheContainerRegistryConfigurationEntry.java 2010-08-27 03:29:41 UTC (rev 107827)
@@ -50,7 +50,6 @@
@XmlAttribute(name = "jndi-name", required = false)
private String jndiName;
- @XmlID
@XmlElement(name = "alias")
private List<String> aliases = new LinkedList<String>();
Modified: projects/cluster/ha-server-ispn/trunk/src/main/resources/META-INF/infinispan-configs.xsd
===================================================================
--- projects/cluster/ha-server-ispn/trunk/src/main/resources/META-INF/infinispan-configs.xsd 2010-08-27 01:48:27 UTC (rev 107826)
+++ projects/cluster/ha-server-ispn/trunk/src/main/resources/META-INF/infinispan-configs.xsd 2010-08-27 03:29:41 UTC (rev 107827)
@@ -15,7 +15,7 @@
<xs:complexType name="cacheContainerRegistryConfigurationEntry">
<xs:sequence>
- <xs:element name="alias" type="xs:ID" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="alias" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="ispn:infinispan"/>
</xs:sequence>
<xs:attribute name="name" type="xs:ID" use="required"/>
More information about the jboss-cvs-commits
mailing list