[infinispan-commits] Infinispan SVN: r543 - in trunk/core/src: main/java/org/infinispan/config/parsing and 3 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Fri Jul 10 07:30:31 EDT 2009
Author: vblagojevic at jboss.com
Date: 2009-07-10 07:30:31 -0400 (Fri, 10 Jul 2009)
New Revision: 543
Modified:
trunk/core/src/main/java/org/infinispan/config/Configuration.java
trunk/core/src/main/java/org/infinispan/config/CustomInterceptorConfig.java
trunk/core/src/main/java/org/infinispan/config/parsing/AutomatedXmlConfigurationParserImpl.java
trunk/core/src/main/java/org/infinispan/util/ClassFinder.java
trunk/core/src/test/java/org/infinispan/config/parsing/XmlFileParsingTest.java
trunk/core/src/test/resources/configs/named-cache-test.xml
Log:
ns
Modified: trunk/core/src/main/java/org/infinispan/config/Configuration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/Configuration.java 2009-07-10 08:03:00 UTC (rev 542)
+++ trunk/core/src/main/java/org/infinispan/config/Configuration.java 2009-07-10 11:30:31 UTC (rev 543)
@@ -51,7 +51,10 @@
@ConfigurationElement(name = "lazyDeserialization", parent = "default", description = ""),
@ConfigurationElement(name = "invocationBatching", parent = "default", description = ""),
@ConfigurationElement(name = "clustering", parent = "default", description = "", customReader=ClusteringConfigReader.class),
- @ConfigurationElement(name = "hash", parent = "default", description = ""),
+ @ConfigurationElement(name = "sync", parent = "clustering"),
+ @ConfigurationElement(name = "hash", parent = "clustering"),
+ @ConfigurationElement(name = "l1", parent = "clustering"),
+ @ConfigurationElement(name = "async", parent = "clustering", description = ""),
@ConfigurationElement(name = "eviction", parent = "default", description = ""),
@ConfigurationElement(name = "expiration", parent = "default", description = ""),
@ConfigurationElement(name = "unsafe", parent = "default", description = ""),
Modified: trunk/core/src/main/java/org/infinispan/config/CustomInterceptorConfig.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/CustomInterceptorConfig.java 2009-07-10 08:03:00 UTC (rev 542)
+++ trunk/core/src/main/java/org/infinispan/config/CustomInterceptorConfig.java 2009-07-10 11:30:31 UTC (rev 543)
@@ -31,6 +31,7 @@
* @since 4.0
*/
@Immutable
+ at ConfigurationElement(name = "interceptor", parent = "customInterceptors")
public class CustomInterceptorConfig extends AbstractNamedCacheConfigurationBean {
private CommandInterceptor interceptor;
private boolean isFirst;
@@ -91,6 +92,7 @@
/**
* Shall this interceptor be the first one in the chain?
*/
+
public void setFirst(boolean first) {
testImmutability("first");
isFirst = first;
@@ -108,6 +110,8 @@
* Put this interceptor at the specified index, after the default chain is built. If the index is not valid (negative
* or grater than the size of the chain) an {@link ConfigurationException} is thrown at construction time.
*/
+ @ConfigurationAttribute(name = "index",
+ containingElement = "interceptor")
public void setIndex(int index) {
testImmutability("index");
this.index = index;
@@ -117,6 +121,8 @@
* Adds the interceptor immediately after the first occurance of an interceptor having the given class. If the chain
* does not contain such an interceptor then this interceptor definition is ignored.
*/
+ @ConfigurationAttribute(name = "after",
+ containingElement = "interceptor")
public void setAfterInterceptor(String afterClass) {
testImmutability("after");
this.after = afterClass;
@@ -134,6 +140,8 @@
* Adds the interceptor immediately before the first occurance of an interceptor having the given class. If the chain
* does not contain such an interceptor then this interceptor definition is ignored.
*/
+ @ConfigurationAttribute(name = "before",
+ containingElement = "interceptor")
public void setBeforeInterceptor(String beforeClass) {
testImmutability("before");
this.before = beforeClass;
Modified: trunk/core/src/main/java/org/infinispan/config/parsing/AutomatedXmlConfigurationParserImpl.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/parsing/AutomatedXmlConfigurationParserImpl.java 2009-07-10 08:03:00 UTC (rev 542)
+++ trunk/core/src/main/java/org/infinispan/config/parsing/AutomatedXmlConfigurationParserImpl.java 2009-07-10 11:30:31 UTC (rev 543)
@@ -23,7 +23,6 @@
import java.beans.PropertyEditor;
import java.beans.PropertyEditorManager;
-import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
@@ -61,8 +60,7 @@
private static List<Class<?>> CONFIG_BEANS =null;
static {
- String path = System.getProperty("java.class.path") + File.pathSeparator
- + System.getProperty("surefire.test.class.path");
+ String path = ClassFinder.PATH;
try {
CONFIG_BEANS = ClassFinder.isAssignableFrom(ClassFinder.infinispanClasses(),AbstractConfigurationBean.class);
} catch (Exception e) {
@@ -184,11 +182,14 @@
public AbstractConfigurationBean findAndInstantiateBean(List<Class<?>> b, Element e) throws ConfigurationException {
String name = e.getTagName();
+ String parentName = ((Element)e.getParentNode()).getTagName();
+ if(parentName.equals("namedCache"))
+ parentName = "default";
for (Class<?> clazz : b) {
ConfigurationElements elements = clazz.getAnnotation(ConfigurationElements.class);
if (elements != null) {
for (ConfigurationElement ce : elements.elements()) {
- if (ce.name().equals(name)) {
+ if (ce.name().equals(name) && ce.parent().equals(parentName)) {
try {
return (AbstractConfigurationBean) clazz.newInstance();
} catch (Exception e1) {
@@ -198,7 +199,7 @@
}
} else {
ConfigurationElement ce = clazz.getAnnotation(ConfigurationElement.class);
- if (ce != null && ce.name().equals(name)) {
+ if (ce != null && (ce.name().equals(name) && ce.parent().equals(parentName))) {
try {
return (AbstractConfigurationBean) clazz.newInstance();
} catch (Exception e1) {
Modified: trunk/core/src/main/java/org/infinispan/util/ClassFinder.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/util/ClassFinder.java 2009-07-10 08:03:00 UTC (rev 542)
+++ trunk/core/src/main/java/org/infinispan/util/ClassFinder.java 2009-07-10 11:30:31 UTC (rev 543)
@@ -36,6 +36,9 @@
* Find infinispan classes utility
*/
public class ClassFinder {
+
+ public static String PATH = System.getProperty("java.class.path") + File.pathSeparator
+ + System.getProperty("surefire.test.class.path");
public static List<Class<?>> withAnnotationPresent(List<Class<?>> classes, Class<? extends Annotation> c) {
List<Class<?>> clazzes = new ArrayList<Class<?>>();
@@ -66,8 +69,7 @@
}
public static List<Class<?>> infinispanClasses() throws Exception {
- String cp = System.getProperty("java.class.path") + File.pathSeparator + System.getProperty("surefire.test.class.path");
- return infinispanClasses(cp);
+ return infinispanClasses(PATH);
}
public static List<Class<?>> infinispanClasses(String javaClassPath) throws Exception {
Modified: trunk/core/src/test/java/org/infinispan/config/parsing/XmlFileParsingTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/config/parsing/XmlFileParsingTest.java 2009-07-10 08:03:00 UTC (rev 542)
+++ trunk/core/src/test/java/org/infinispan/config/parsing/XmlFileParsingTest.java 2009-07-10 11:30:31 UTC (rev 543)
@@ -5,6 +5,7 @@
import org.infinispan.config.GlobalConfiguration;
import org.infinispan.config.GlobalConfiguration.ShutdownHookBehavior;
import org.infinispan.distribution.DefaultConsistentHash;
+import org.infinispan.eviction.EvictionStrategy;
import org.infinispan.loaders.file.FileCacheStoreConfig;
import org.infinispan.util.concurrent.IsolationLevel;
import org.testng.annotations.Test;
@@ -144,6 +145,12 @@
c = namedCaches.get("cacheWithCustomInterceptors");
assert !c.getCustomInterceptors().isEmpty();
assert c.getCustomInterceptors().size() == 5;
+
+ c = namedCaches.get("evictionCache");
+ assert c.getEvictionMaxEntries() == 5000;
+ assert c.getEvictionStrategy().equals(EvictionStrategy.FIFO);
+ assert c.getExpirationLifespan() == 60000;
+ assert c.getExpirationMaxIdle() == 1000;
}
private void testConfigurationMerging(XmlConfigurationParser parser) throws IOException {
Modified: trunk/core/src/test/resources/configs/named-cache-test.xml
===================================================================
--- trunk/core/src/test/resources/configs/named-cache-test.xml 2009-07-10 08:03:00 UTC (rev 542)
+++ trunk/core/src/test/resources/configs/named-cache-test.xml 2009-07-10 11:30:31 UTC (rev 543)
@@ -109,7 +109,18 @@
<l1 enabled="true" lifespan="600000"/>
</clustering>
</namedCache>
+
+ <!-- Note that any of the elements appearing in a namedCache section can also appear in the default section as a template. -->
+ <namedCache name="evictionCache">
+ <!--
+ Eviction configuration. WakeupInterval defines how often the eviction thread runs, in milliseconds. 0 means
+ the eviction thread will never run. A separate executor is used for eviction in each cache.
+ -->
+ <eviction wakeUpInterval="500" maxEntries="5000" strategy="FIFO"/>
+ <expiration lifespan="60000" maxIdle="1000"/>
+ </namedCache>
+
<namedCache name="withouthJmxEnabled">
<clustering>
<async useReplQueue="true" replQueueInterval="100" replQueueMaxElements="200"/>
More information about the infinispan-commits
mailing list