You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by rm...@apache.org on 2014/05/09 19:55:14 UTC
svn commit: r1593586 - in /commons/proper/jcs/trunk:
commons-jcs-jcache-extras/ commons-jcs-jcache/
commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/
commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/
Author: rmannibucau
Date: Fri May 9 17:55:13 2014
New Revision: 1593586
URL: http://svn.apache.org/r1593586
Log:
adding substitution feature to jcache properties, using [lang3] is present or raw mode (whole property) if not
Added:
commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/
commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/DefaultSubsitutor.java
commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/Lang3Substitutor.java
commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/Subsitutor.java
Modified:
commons/proper/jcs/trunk/commons-jcs-jcache-extras/pom.xml
commons/proper/jcs/trunk/commons-jcs-jcache/pom.xml
commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/JCSCache.java
Modified: commons/proper/jcs/trunk/commons-jcs-jcache-extras/pom.xml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-jcache-extras/pom.xml?rev=1593586&r1=1593585&r2=1593586&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-jcache-extras/pom.xml (original)
+++ commons/proper/jcs/trunk/commons-jcs-jcache-extras/pom.xml Fri May 9 17:55:13 2014
@@ -47,6 +47,12 @@
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-interceptor_1.1_spec</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-servlet_3.0_spec</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
<dependency>
<groupId>junit</groupId>
Modified: commons/proper/jcs/trunk/commons-jcs-jcache/pom.xml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-jcache/pom.xml?rev=1593586&r1=1593585&r2=1593586&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-jcache/pom.xml (original)
+++ commons/proper/jcs/trunk/commons-jcs-jcache/pom.xml Fri May 9 17:55:13 2014
@@ -51,6 +51,13 @@
</dependency>
<dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-lang3</artifactId>
+ <version>3.2.1</version>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
Modified: commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/JCSCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/JCSCache.java?rev=1593586&r1=1593585&r2=1593586&view=diff
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/JCSCache.java (original)
+++ commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/JCSCache.java Fri May 9 17:55:13 2014
@@ -21,6 +21,7 @@ package org.apache.commons.jcs.jcache;
import org.apache.commons.jcs.jcache.jmx.JCSCacheMXBean;
import org.apache.commons.jcs.jcache.jmx.JCSCacheStatisticsMXBean;
import org.apache.commons.jcs.jcache.jmx.JMXs;
+import org.apache.commons.jcs.jcache.lang.Subsitutor;
import org.apache.commons.jcs.jcache.proxy.ExceptionWrapperHandler;
import org.apache.commons.jcs.jcache.serialization.Serializations;
import org.apache.commons.jcs.jcache.thread.DaemonThreadFactory;
@@ -65,6 +66,8 @@ import static org.apache.commons.jcs.jca
public class JCSCache<K extends Serializable, V extends Serializable, C extends CompleteConfiguration<K, V>> implements Cache<K, V>
{
+ private static final Subsitutor SUBSTITUTOR = Subsitutor.Helper.INSTANCE;
+
private final ConcurrentMap<JCSKey<K>, JCSElement<V>> delegate;
private final JCSCachingManager manager;
private final JCSConfiguration<K, V> config;
@@ -173,7 +176,7 @@ public class JCSCache<K extends Serializ
private static String property(final Properties properties, final String cacheName, final String name, final String defaultValue)
{
- return properties.getProperty(cacheName + "." + name, properties.getProperty(name, defaultValue));
+ return SUBSTITUTOR.substitute(properties.getProperty(cacheName + "." + name, properties.getProperty(name, defaultValue)));
}
private void assertNotClosed()
Added: commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/DefaultSubsitutor.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/DefaultSubsitutor.java?rev=1593586&view=auto
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/DefaultSubsitutor.java (added)
+++ commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/DefaultSubsitutor.java Fri May 9 17:55:13 2014
@@ -0,0 +1,13 @@
+package org.apache.commons.jcs.jcache.lang;
+
+public class DefaultSubsitutor implements Subsitutor
+{
+ @Override
+ public String substitute(final String value)
+ {
+ if (value.startsWith("${") && value.endsWith("}")) {
+ return System.getProperty(value.substring("${".length(), value.length() - 1), value);
+ }
+ return value;
+ }
+}
Added: commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/Lang3Substitutor.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/Lang3Substitutor.java?rev=1593586&view=auto
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/Lang3Substitutor.java (added)
+++ commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/Lang3Substitutor.java Fri May 9 17:55:13 2014
@@ -0,0 +1,15 @@
+package org.apache.commons.jcs.jcache.lang;
+
+import org.apache.commons.lang3.text.StrLookup;
+import org.apache.commons.lang3.text.StrSubstitutor;
+
+public class Lang3Substitutor implements Subsitutor
+{
+ private static final StrSubstitutor SUBSTITUTOR = new StrSubstitutor(StrLookup.systemPropertiesLookup());
+
+ @Override
+ public String substitute(final String value)
+ {
+ return SUBSTITUTOR.replace(value);
+ }
+}
Added: commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/Subsitutor.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/Subsitutor.java?rev=1593586&view=auto
==============================================================================
--- commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/Subsitutor.java (added)
+++ commons/proper/jcs/trunk/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/lang/Subsitutor.java Fri May 9 17:55:13 2014
@@ -0,0 +1,34 @@
+package org.apache.commons.jcs.jcache.lang;
+
+public interface Subsitutor
+{
+ String substitute(String value);
+
+ public static class Helper {
+ public static final Subsitutor INSTANCE;
+ static {
+ Subsitutor value = null;
+ for (final String name : new String[]
+ { // ordered by features
+ "org.apache.commons.jcs.jcache.lang.Lang3Substitutor",
+ "org.apache.commons.jcs.jcache.lang.DefaultSubsitutor"
+ })
+ {
+ try
+ {
+ value = Subsitutor.class.cast(
+ Subsitutor.class.getClassLoader().loadClass(name).newInstance());
+ value.substitute("${java.version}"); // ensure it works
+ }
+ catch (final Throwable e) // not Exception otherwise NoClassDefFoundError
+ {
+ // no-op: next
+ }
+ }
+ if (value == null) {
+ throw new IllegalStateException("Can't find a " + Subsitutor.class.getName());
+ }
+ INSTANCE = value;
+ }
+ }
+}