You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jcs-dev@jakarta.apache.org by as...@apache.org on 2008/09/19 19:38:04 UTC
svn commit: r697160 - in /jakarta/jcs/trunk/src:
java/org/apache/jcs/auxiliary/remote/behavior/
java/org/apache/jcs/auxiliary/remote/server/
java/org/apache/jcs/auxiliary/remote/server/behavior/
test/org/apache/jcs/auxiliary/remote/server/
Author: asmuts
Date: Fri Sep 19 10:38:04 2008
New Revision: 697160
URL: http://svn.apache.org/viewvc?rev=697160&view=rev
Log:
adding automatic remote cache server attribute config
Modified:
jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/behavior/IRemoteCacheConstants.java
jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerAttributes.java
jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerFactory.java
jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/behavior/IRemoteCacheServerAttributes.java
jakarta/jcs/trunk/src/test/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerFactoryUnitTest.java
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/behavior/IRemoteCacheConstants.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/behavior/IRemoteCacheConstants.java?rev=697160&r1=697159&r2=697160&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/behavior/IRemoteCacheConstants.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/behavior/IRemoteCacheConstants.java Fri Sep 19 10:38:04 2008
@@ -27,12 +27,18 @@
/** Mapping to props file value */
public final static String REMOTE_CACHE_SERVICE_VAL = IRemoteCacheService.class.getName();
+ /**
+ * I'm trying to migrate everything to use this prefix. All those below will be replaced. Any of
+ * the RemoteCacheServerAttributes can be configured this way.
+ */
+ public final static String CACHE_SERVER_ATTRIBUTES_PROPERTY_PREFIX = "jcs.remotecache.serverattributes";
+
/** Property prefix, should be jcs.remote but this would break existing config. */
public final static String PROPERTY_PREFIX = "remote";
-
+
/** Mapping to props file value */
public final static String SOCKET_TIMEOUT_MILLIS = PROPERTY_PREFIX + ".cache.rmiSocketFactoryTimeoutMillis";
-
+
/** Mapping to props file value */
public final static String REMOTE_CACHE_SERVICE_NAME = PROPERTY_PREFIX + ".cache.service.name";
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerAttributes.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerAttributes.java?rev=697160&r1=697159&r2=697160&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerAttributes.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerAttributes.java Fri Sep 19 10:38:04 2008
@@ -59,7 +59,7 @@
private boolean getOnly = false;
/** Can a cluster remote put to other remotes */
- private boolean localClusterConsistency = false;
+ private boolean localClusterConsistency = true;
/** Can a cluster remote get from other remotes */
private boolean allowClusterGet = true;
@@ -314,12 +314,22 @@
*/
public boolean getLocalClusterConsistency()
{
- return localClusterConsistency;
+ return isLocalClusterConsistency();
}
/**
* Should cluster updates be propagated to the locals
* <p>
+ * @return The localClusterConsistency value
+ */
+ public boolean isLocalClusterConsistency()
+ {
+ return localClusterConsistency;
+ }
+
+ /**
+ * Should cluster updates be propagated to the locals
+ * <p>
* @param r The new localClusterConsistency value
*/
public void setLocalClusterConsistency( boolean r )
@@ -334,10 +344,20 @@
*/
public boolean getAllowClusterGet()
{
- return allowClusterGet;
+ return isAllowClusterGet();
}
/**
+ * Should gets from non-cluster clients be allowed to get from other remote auxiliaries.
+ * <p>
+ * @return The localClusterConsistency value
+ */
+ public boolean isAllowClusterGet()
+ {
+ return allowClusterGet;
+ }
+
+ /**
* Should we try to get from other cluster servers if we don't find the items locally.
* <p>
* @param r The new localClusterConsistency value
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerFactory.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerFactory.java?rev=697160&r1=697159&r2=697160&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerFactory.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerFactory.java Fri Sep 19 10:38:04 2008
@@ -35,6 +35,7 @@
import org.apache.jcs.auxiliary.remote.behavior.IRemoteCacheConstants;
import org.apache.jcs.auxiliary.remote.behavior.IRemoteCacheServiceAdmin;
import org.apache.jcs.engine.logging.behavior.ICacheEventLogger;
+import org.apache.jcs.utils.config.PropertySetter;
import EDU.oswego.cs.dl.util.concurrent.ClockDaemon;
import EDU.oswego.cs.dl.util.concurrent.ThreadFactory;
@@ -234,59 +235,88 @@
/**
* Configure.
* <p>
+ * jcs.remotecache.serverattributes.ATTRIBUTENAME=ATTRIBUTEVALUE
+ * <p>
* @param prop
* @return RemoteCacheServerAttributesconfigureRemoteCacheServerAttributes
*/
protected static RemoteCacheServerAttributes configureRemoteCacheServerAttributes( Properties prop )
{
- // TODO: make automatic
RemoteCacheServerAttributes rcsa = new RemoteCacheServerAttributes();
+ // configure automatically
+ PropertySetter.setProperties( rcsa, prop, CACHE_SERVER_ATTRIBUTES_PROPERTY_PREFIX + "." );
+
+ configureManuallyIfValuesArePresent( prop, rcsa );
+
+ return rcsa;
+ }
+
+ /**
+ * This looks for the old config values.
+ * <p>
+ * @param prop
+ * @param rcsa
+ */
+ private static void configureManuallyIfValuesArePresent( Properties prop, RemoteCacheServerAttributes rcsa )
+ {
+ // DEPRECATED CONFIG
String servicePortStr = prop.getProperty( REMOTE_CACHE_SERVICE_PORT );
- try
+ if ( servicePortStr != null )
{
- int servicePort = Integer.parseInt( servicePortStr );
- rcsa.setServicePort( servicePort );
- log.debug( "Remote cache service uses port number " + servicePort + "." );
- }
- catch ( NumberFormatException ignore )
- {
- log.debug( "Remote cache service port property " + REMOTE_CACHE_SERVICE_PORT
- + " not specified. An anonymous port will be used." );
+ try
+ {
+ int servicePort = Integer.parseInt( servicePortStr );
+ rcsa.setServicePort( servicePort );
+ log.debug( "Remote cache service uses port number " + servicePort + "." );
+ }
+ catch ( NumberFormatException ignore )
+ {
+ log.debug( "Remote cache service port property " + REMOTE_CACHE_SERVICE_PORT
+ + " not specified. An anonymous port will be used." );
+ }
}
String socketTimeoutMillisStr = prop.getProperty( SOCKET_TIMEOUT_MILLIS );
- try
+ if ( socketTimeoutMillisStr != null )
{
- int rmiSocketFactoryTimeoutMillis = Integer.parseInt( socketTimeoutMillisStr );
- rcsa.setRmiSocketFactoryTimeoutMillis( rmiSocketFactoryTimeoutMillis );
- log.debug( "Remote cache socket timeout " + rmiSocketFactoryTimeoutMillis + "ms." );
- }
- catch ( NumberFormatException ignore )
- {
- log.debug( "Remote cache socket timeout property " + SOCKET_TIMEOUT_MILLIS
- + " not specified. The default will be used." );
+ try
+ {
+ int rmiSocketFactoryTimeoutMillis = Integer.parseInt( socketTimeoutMillisStr );
+ rcsa.setRmiSocketFactoryTimeoutMillis( rmiSocketFactoryTimeoutMillis );
+ log.debug( "Remote cache socket timeout " + rmiSocketFactoryTimeoutMillis + "ms." );
+ }
+ catch ( NumberFormatException ignore )
+ {
+ log.debug( "Remote cache socket timeout property " + SOCKET_TIMEOUT_MILLIS
+ + " not specified. The default will be used." );
+ }
}
String lccStr = prop.getProperty( REMOTE_LOCAL_CLUSTER_CONSISTENCY );
- if ( lccStr == null )
+ if ( lccStr != null )
{
- lccStr = "true";
+ if ( lccStr == null )
+ {
+ lccStr = "true";
+ }
+ boolean lcc = Boolean.valueOf( lccStr ).booleanValue();
+ rcsa.setLocalClusterConsistency( lcc );
}
- boolean lcc = Boolean.valueOf( lccStr ).booleanValue();
- rcsa.setLocalClusterConsistency( lcc );
String acgStr = prop.getProperty( REMOTE_ALLOW_CLUSTER_GET );
- if ( acgStr == null )
+ if ( acgStr != null )
{
- acgStr = "true";
+ if ( acgStr == null )
+ {
+ acgStr = "true";
+ }
+ boolean acg = Boolean.valueOf( acgStr ).booleanValue();
+ rcsa.setAllowClusterGet( acg );
}
- boolean acg = Boolean.valueOf( acgStr ).booleanValue();
- rcsa.setAllowClusterGet( acg );
// Register the RemoteCacheServer remote object in the registry.
rcsa.setRemoteServiceName( prop.getProperty( REMOTE_CACHE_SERVICE_NAME, REMOTE_CACHE_SERVICE_VAL ).trim() );
- return rcsa;
}
/**
Modified: jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/behavior/IRemoteCacheServerAttributes.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/behavior/IRemoteCacheServerAttributes.java?rev=697160&r1=697159&r2=697160&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/behavior/IRemoteCacheServerAttributes.java (original)
+++ jakarta/jcs/trunk/src/java/org/apache/jcs/auxiliary/remote/server/behavior/IRemoteCacheServerAttributes.java Fri Sep 19 10:38:04 2008
@@ -205,4 +205,52 @@
* The new clusterServers value
*/
public void setConfigFileName( String s );
+
+ /**
+ * @param rmiSocketFactoryTimeoutMillis The rmiSocketFactoryTimeoutMillis to set.
+ */
+ public void setRmiSocketFactoryTimeoutMillis( int rmiSocketFactoryTimeoutMillis );
+
+ /**
+ * @return Returns the rmiSocketFactoryTimeoutMillis.
+ */
+ public int getRmiSocketFactoryTimeoutMillis();
+
+ /**
+ * Should we try to keep the registry alive
+ * <p>
+ * @param useRegistryKeepAlive the useRegistryKeepAlive to set
+ */
+ public void setUseRegistryKeepAlive( boolean useRegistryKeepAlive );
+
+ /**
+ * Should we start the registry
+ * <p>
+ * @param startRegistry the startRegistry to set
+ */
+ public void setStartRegistry( boolean startRegistry );
+
+ /**
+ * Should we start the registry
+ * <p>
+ * @return the startRegistry
+ */
+ public boolean isStartRegistry();
+
+ /**
+ * Should we try to keep the registry alive
+ * <p>
+ * @return the useRegistryKeepAlive
+ */
+ public boolean isUseRegistryKeepAlive();
+
+ /**
+ * @param registryKeepAliveDelayMillis the registryKeepAliveDelayMillis to set
+ */
+ public void setRegistryKeepAliveDelayMillis( long registryKeepAliveDelayMillis );
+
+ /**
+ * @return the registryKeepAliveDelayMillis
+ */
+ public long getRegistryKeepAliveDelayMillis();
}
Modified: jakarta/jcs/trunk/src/test/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerFactoryUnitTest.java
URL: http://svn.apache.org/viewvc/jakarta/jcs/trunk/src/test/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerFactoryUnitTest.java?rev=697160&r1=697159&r2=697160&view=diff
==============================================================================
--- jakarta/jcs/trunk/src/test/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerFactoryUnitTest.java (original)
+++ jakarta/jcs/trunk/src/test/org/apache/jcs/auxiliary/remote/server/RemoteCacheServerFactoryUnitTest.java Fri Sep 19 10:38:04 2008
@@ -37,4 +37,94 @@
// VERIFY
assertEquals( "Wrong timeout", RemoteCacheServerAttributes.DEFAULT_RMI_SOCKET_FACTORY_TIMEOUT_MS, result.getRmiSocketFactoryTimeoutMillis() );
}
+
+ /** verify that we get the registryKeepAliveDelayMillis value */
+ public void testConfigureRemoteCacheServerAttributes_registryKeepAliveDelayMillisPresent()
+ {
+ // SETUP
+ int registryKeepAliveDelayMillis = 123245;
+ Properties props = new Properties();
+ props.put( IRemoteCacheConstants.CACHE_SERVER_ATTRIBUTES_PROPERTY_PREFIX + ".registryKeepAliveDelayMillis", String.valueOf( registryKeepAliveDelayMillis ) );
+
+ // DO WORK
+ RemoteCacheServerAttributes result = RemoteCacheServerFactory.configureRemoteCacheServerAttributes( props );
+
+ // VERIFY
+ assertEquals( "Wrong registryKeepAliveDelayMillis", registryKeepAliveDelayMillis, result.getRegistryKeepAliveDelayMillis() );
+ }
+
+ /** verify that we get the useRegistryKeepAlive value */
+ public void testConfigureRemoteCacheServerAttributes_useRegistryKeepAlivePresent()
+ {
+ // SETUP
+ boolean useRegistryKeepAlive = false;
+ Properties props = new Properties();
+ props.put( IRemoteCacheConstants.CACHE_SERVER_ATTRIBUTES_PROPERTY_PREFIX + ".useRegistryKeepAlive", String.valueOf( useRegistryKeepAlive ) );
+
+ // DO WORK
+ RemoteCacheServerAttributes result = RemoteCacheServerFactory.configureRemoteCacheServerAttributes( props );
+
+ // VERIFY
+ assertEquals( "Wrong useRegistryKeepAlive", useRegistryKeepAlive, result.isUseRegistryKeepAlive() );
+ }
+
+ /** verify that we get the startRegistry value */
+ public void testConfigureRemoteCacheServerAttributes_startRegistryPresent()
+ {
+ // SETUP
+ boolean startRegistry = false;
+ Properties props = new Properties();
+ props.put( IRemoteCacheConstants.CACHE_SERVER_ATTRIBUTES_PROPERTY_PREFIX + ".startRegistry", String.valueOf( startRegistry ) );
+
+ // DO WORK
+ RemoteCacheServerAttributes result = RemoteCacheServerFactory.configureRemoteCacheServerAttributes( props );
+
+ // VERIFY
+ assertEquals( "Wrong startRegistry", startRegistry, result.isStartRegistry() );
+ }
+
+ /** verify that we get the registryKeepAliveDelayMillis value */
+ public void testConfigureRemoteCacheServerAttributes_rmiSocketFactoryTimeoutMillisPresent()
+ {
+ // SETUP
+ int rmiSocketFactoryTimeoutMillis = 123245;
+ Properties props = new Properties();
+ props.put( IRemoteCacheConstants.CACHE_SERVER_ATTRIBUTES_PROPERTY_PREFIX + ".rmiSocketFactoryTimeoutMillis", String.valueOf( rmiSocketFactoryTimeoutMillis ) );
+
+ // DO WORK
+ RemoteCacheServerAttributes result = RemoteCacheServerFactory.configureRemoteCacheServerAttributes( props );
+
+ // VERIFY
+ assertEquals( "Wrong rmiSocketFactoryTimeoutMillis", rmiSocketFactoryTimeoutMillis, result.getRmiSocketFactoryTimeoutMillis() );
+ }
+
+ /** verify that we get the startRegistry value */
+ public void testConfigureRemoteCacheServerAttributes_allowClusterGetPresent()
+ {
+ // SETUP
+ boolean allowClusterGet = false;
+ Properties props = new Properties();
+ props.put( IRemoteCacheConstants.CACHE_SERVER_ATTRIBUTES_PROPERTY_PREFIX + ".allowClusterGet", String.valueOf( allowClusterGet ) );
+
+ // DO WORK
+ RemoteCacheServerAttributes result = RemoteCacheServerFactory.configureRemoteCacheServerAttributes( props );
+
+ // VERIFY
+ assertEquals( "Wrong allowClusterGet", allowClusterGet, result.isAllowClusterGet() );
+ }
+
+ /** verify that we get the startRegistry value */
+ public void testConfigureRemoteCacheServerAttributes_localClusterConsistencyPresent()
+ {
+ // SETUP
+ boolean localClusterConsistency = false;
+ Properties props = new Properties();
+ props.put( IRemoteCacheConstants.CACHE_SERVER_ATTRIBUTES_PROPERTY_PREFIX + ".localClusterConsistency", String.valueOf( localClusterConsistency ) );
+
+ // DO WORK
+ RemoteCacheServerAttributes result = RemoteCacheServerFactory.configureRemoteCacheServerAttributes( props );
+
+ // VERIFY
+ assertEquals( "Wrong localClusterConsistency", localClusterConsistency, result.isLocalClusterConsistency() );
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: jcs-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jcs-dev-help@jakarta.apache.org