[infinispan-commits] Infinispan SVN: r979 - in trunk/core/src: test/java/org/infinispan/config and 1 other directories.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Tue Oct 20 12:31:50 EDT 2009
Author: vblagojevic at jboss.com
Date: 2009-10-20 12:31:50 -0400 (Tue, 20 Oct 2009)
New Revision: 979
Modified:
trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java
trunk/core/src/test/java/org/infinispan/config/StringPropertyReplacementTest.java
trunk/core/src/test/resources/configs/string-property-replaced.xml
Log:
support token replacement for all attribute values
Modified: trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java 2009-10-20 11:57:31 UTC (rev 978)
+++ trunk/core/src/main/java/org/infinispan/config/InfinispanConfiguration.java 2009-10-20 16:31:50 UTC (rev 979)
@@ -24,6 +24,7 @@
import org.infinispan.Version;
import org.infinispan.config.parsing.XmlConfigurationParser;
import org.infinispan.util.FileLookup;
+import org.jboss.util.StringPropertyReplacer;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
@@ -35,9 +36,13 @@
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.SchemaFactory;
+
+import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.StringReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
@@ -66,6 +71,8 @@
public class InfinispanConfiguration implements XmlConfigurationParser {
public static final String VALIDATING_SYSTEM_PROPERTY = "infinispan.config.validate";
+
+ public static final String SKIP_TOKEN_REPLACEMENT = "infinispan.config.skipTokenReplacement";
public static final String SCHEMA_SYSTEM_PROPERTY = "infinispan.config.schema";
@@ -199,8 +206,15 @@
}
});
}
-
- InfinispanConfiguration ic = (InfinispanConfiguration) u.unmarshal(config);
+
+ StreamSource source = null;
+ if (skipTokenReplacement()) {
+ source = new StreamSource(config);
+ } else {
+ source = replaceProperties(config);
+ }
+ InfinispanConfiguration ic = (InfinispanConfiguration) u.unmarshal(source);
+
// legacy, don't ask
GlobalConfiguration gconf = ic.parseGlobalConfiguration();
gconf.setDefaultConfiguration(ic.parseDefaultConfiguration());
@@ -219,10 +233,31 @@
}
}
+ private static StreamSource replaceProperties(InputStream config) throws Exception{
+ BufferedReader br = new BufferedReader ( new InputStreamReader(config));
+ StringBuilder w = new StringBuilder();
+ String line;
+ while ((line = br.readLine()) != null) {
+ int dollar = line.indexOf('$');
+ if(dollar >0 && line.indexOf('{',dollar) > 0 && line.indexOf('}',dollar)>0) {
+ String replacedLine = StringPropertyReplacer.replaceProperties(line);
+ w.append(replacedLine);
+ } else {
+ w.append(line);
+ }
+ }
+ return new StreamSource(new StringReader(w.toString()));
+ }
+
private static boolean skipSchemaValidation() {
String s = System.getProperty(VALIDATING_SYSTEM_PROPERTY);
return s != null && !Boolean.parseBoolean(s);
}
+
+ private static boolean skipTokenReplacement() {
+ String s = System.getProperty(SKIP_TOKEN_REPLACEMENT, "false");
+ return s != null && Boolean.parseBoolean(s);
+ }
public static InputStream findSchemaInputStream() {
boolean validating = !skipSchemaValidation();
Modified: trunk/core/src/test/java/org/infinispan/config/StringPropertyReplacementTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/config/StringPropertyReplacementTest.java 2009-10-20 11:57:31 UTC (rev 978)
+++ trunk/core/src/test/java/org/infinispan/config/StringPropertyReplacementTest.java 2009-10-20 16:31:50 UTC (rev 979)
@@ -38,8 +38,7 @@
public void testDefaultCache() {
Configuration configuration = cacheManager.getCache().getConfiguration();
assert configuration.getIsolationLevel().equals(IsolationLevel.READ_COMMITTED);
- assert configuration.isWriteSkewCheck();
- assert configuration.getConcurrencyLevel() == 499;
+ assert !configuration.isWriteSkewCheck();
assert configuration.isSyncCommitPhase();
}
}
Modified: trunk/core/src/test/resources/configs/string-property-replaced.xml
===================================================================
--- trunk/core/src/test/resources/configs/string-property-replaced.xml 2009-10-20 11:57:31 UTC (rev 978)
+++ trunk/core/src/test/resources/configs/string-property-replaced.xml 2009-10-20 16:31:50 UTC (rev 979)
@@ -9,12 +9,16 @@
<global>
<asyncListenerExecutor factory="org.infinispan.executors.DefaultExecutorFactory">
+ <properties>
<property name="maxThreads" value="${test.property.asyncListenerMaxThreads:5}"/>
<property name="threadNamePrefix" value="AsyncListenerThread"/>
+ </properties>
</asyncListenerExecutor>
<transport transportClass="org.infinispan.remoting.transport.jgroups.JGroupsTransport">
+ <properties>
<property name="configurationFile" value="${test.property.jgroupsConfigFile:udp.xml}"/>
+ </properties>
</transport>
</global>
@@ -24,7 +28,7 @@
<!-- *************************** -->
<default>
<locking
- isolationLevel="REPEATABLE_READ"
+ isolationLevel="${test.property.IsolationLevel:REPEATABLE_READ}"
lockAcquisitionTimeout="${test.property.LockAcquisitionTimeout:15000}"
writeSkewCheck="false"
concurrencyLevel="500"/>
More information about the infinispan-commits
mailing list