You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tv...@apache.org on 2017/08/02 09:44:14 UTC
svn commit: r1803791 - in /commons/proper/jcs/branches/commons-jcs-2.2-RC:
./ commons-jcs-core/ commons-jcs-core/src/main/java/org/apache/commons/jcs/
commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/
commons-jcs-core/src/main/jav...
Author: tv
Date: Wed Aug 2 09:44:13 2017
New Revision: 1803791
URL: http://svn.apache.org/viewvc?rev=1803791&view=rev
Log:
Merge trunk changes into release branch for 2.2
Added:
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/RemoteCacheNoWaitFacadeUnitTest.java
- copied unchanged from r1803785, commons/proper/jcs/trunk/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/RemoteCacheNoWaitFacadeUnitTest.java
Modified:
commons/proper/jcs/branches/commons-jcs-2.2-RC/ (props changed)
commons/proper/jcs/branches/commons-jcs-2.2-RC/.travis.yml
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/pom.xml
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/JCS.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/AbstractRemoteCacheNoWaitFacade.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCache.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCacheFactory.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCacheNoWaitFacade.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteUtils.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServer.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerFactory.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheStartupServlet.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/behavior/IRemoteCacheServerAttributes.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCache.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheConfigurator.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheManager.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/servlet/JCSServletContextListener.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDiskCacheOptimizationUnitTest.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/TestRemoteCache.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerStartupUtil.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerUnitTest.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-dist/pom.xml
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/cdi/CDIJCacheHelper.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/cdi/CacheInvocationContextImpl.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/proxy/ClassLoaderAwareCache.java
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/filecache/pom.xml
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/pom.xml
commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/yajcache/pom.xml
commons/proper/jcs/branches/commons-jcs-2.2-RC/pom.xml
commons/proper/jcs/branches/commons-jcs-2.2-RC/src/changes/changes.xml
Propchange: commons/proper/jcs/branches/commons-jcs-2.2-RC/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Aug 2 09:44:13 2017
@@ -1,2 +1,2 @@
/commons/proper/jcs/branches/generics-interface:1232160-1344358
-/commons/proper/jcs/trunk:1776032-1781727
+/commons/proper/jcs/trunk:1776032-1803785
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/.travis.yml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/.travis.yml?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/.travis.yml (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/.travis.yml Wed Aug 2 09:44:13 2017
@@ -18,6 +18,7 @@ sudo: false
jdk:
- openjdk7
+ - oraclejdk7
- oraclejdk8
after_success:
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/pom.xml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/pom.xml?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/pom.xml (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/pom.xml Wed Aug 2 09:44:13 2017
@@ -154,9 +154,6 @@
<exclude>**/UDPDiscoveryUnitTest.java</exclude>
<!-- Causes hang in Continuum -->
<exclude>**/UDPDiscoverySenderUnitTest.java</exclude>
- <!-- The ones that fail may be different for you. -->
- <!-- <exclude>**/JDBCDiskCacheRemovalUnitTest.java</exclude> -->
- <!-- <exclude>**/JDBCDiskCacheUnitTest.java</exclude> -->
</excludes>
</configuration>
</plugin>
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/JCS.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/JCS.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/JCS.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/JCS.java Wed Aug 2 09:44:13 2017
@@ -130,6 +130,22 @@ public abstract class JCS
}
/**
+ * Shut down the cache manager and set the instance to null
+ */
+ public static void shutdown()
+ {
+ synchronized ( JCS.class )
+ {
+ if ( cacheMgr != null && cacheMgr.isInitialized())
+ {
+ cacheMgr.shutDown();
+ }
+
+ cacheMgr = null;
+ }
+ }
+
+ /**
* Helper method which checks to make sure the cacheMgr class field is set, and if not requests
* an instance from CacheManagerFactory.
*
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/AbstractRemoteCacheNoWaitFacade.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/AbstractRemoteCacheNoWaitFacade.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/AbstractRemoteCacheNoWaitFacade.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/AbstractRemoteCacheNoWaitFacade.java Wed Aug 2 09:44:13 2017
@@ -60,10 +60,38 @@ public abstract class AbstractRemoteCach
* <p>
* @param noWaits
* @param rca
+ * @param cacheEventLogger
+ * @param elementSerializer
+ */
+ public AbstractRemoteCacheNoWaitFacade( List<RemoteCacheNoWait<K,V>> noWaits, IRemoteCacheAttributes rca,
+ ICacheEventLogger cacheEventLogger, IElementSerializer elementSerializer )
+ {
+ if ( log.isDebugEnabled() )
+ {
+ log.debug( "CONSTRUCTING NO WAIT FACADE" );
+ }
+ this.remoteCacheAttributes = rca;
+ setCacheEventLogger( cacheEventLogger );
+ setElementSerializer( elementSerializer );
+ this.noWaits = new ArrayList<RemoteCacheNoWait<K,V>>(noWaits);
+ for (RemoteCacheNoWait<K,V> nw : this.noWaits)
+ {
+ // FIXME: This cast is very brave. Remove this.
+ ((RemoteCache<K, V>)nw.getRemoteCache()).setFacade(this);
+ }
+ }
+
+ /**
+ * Constructs with the given remote cache, and fires events to any listeners.
+ * <p>
+ * @param noWaits
+ * @param rca
* @param cacheMgr
* @param cacheEventLogger
* @param elementSerializer
+ * @deprecated Unused parameter cacheMgr scheduled for removal
*/
+ @Deprecated
public AbstractRemoteCacheNoWaitFacade( List<ICache<K, V>> noWaits, RemoteCacheAttributes rca,
ICompositeCacheManager cacheMgr, ICacheEventLogger cacheEventLogger,
IElementSerializer elementSerializer )
@@ -72,15 +100,16 @@ public abstract class AbstractRemoteCach
{
log.debug( "CONSTRUCTING NO WAIT FACADE" );
}
+ this.remoteCacheAttributes = rca;
+ setCacheEventLogger( cacheEventLogger );
+ setElementSerializer( elementSerializer );
this.noWaits = new ArrayList<RemoteCacheNoWait<K,V>>();
for (ICache<K, V> nw : noWaits)
{
- RemoteCacheNoWait<K,V> rcnw = (RemoteCacheNoWait<K,V>) nw;
+ RemoteCacheNoWait<K,V> rcnw = (RemoteCacheNoWait<K,V>)nw;
+ ((RemoteCache<K, V>)rcnw.getRemoteCache()).setFacade(this);
this.noWaits.add(rcnw);
}
- this.remoteCacheAttributes = rca;
- setCacheEventLogger( cacheEventLogger );
- setElementSerializer( elementSerializer );
}
/**
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCache.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCache.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCache.java Wed Aug 2 09:44:13 2017
@@ -113,6 +113,16 @@ public class RemoteCache<K, V>
}
/**
+ * Get facade
+ *
+ * @return the facade
+ */
+ protected AbstractRemoteCacheNoWaitFacade<K, V> getFacade()
+ {
+ return facade;
+ }
+
+ /**
* Handles exception by disabling the remote cache service before re-throwing the exception in
* the form of an IOException.
* <p>
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCacheFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCacheFactory.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCacheFactory.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCacheFactory.java Wed Aug 2 09:44:13 2017
@@ -32,7 +32,6 @@ import org.apache.commons.jcs.auxiliary.
import org.apache.commons.jcs.auxiliary.AuxiliaryCacheAttributes;
import org.apache.commons.jcs.auxiliary.remote.behavior.IRemoteCacheAttributes;
import org.apache.commons.jcs.auxiliary.remote.server.behavior.RemoteType;
-import org.apache.commons.jcs.engine.behavior.ICache;
import org.apache.commons.jcs.engine.behavior.ICompositeCacheManager;
import org.apache.commons.jcs.engine.behavior.IElementSerializer;
import org.apache.commons.jcs.engine.logging.behavior.ICacheEventLogger;
@@ -75,7 +74,7 @@ public class RemoteCacheFactory
{
RemoteCacheAttributes rca = (RemoteCacheAttributes) iaca;
- ArrayList<ICache<K, V>> noWaits = new ArrayList<ICache<K, V>>();
+ ArrayList<RemoteCacheNoWait<K,V>> noWaits = new ArrayList<RemoteCacheNoWait<K,V>>();
switch (rca.getRemoteType())
{
@@ -93,7 +92,7 @@ public class RemoteCacheFactory
failovers.add( rca.getRemoteLocation() );
RemoteCacheManager rcm = getManager( rca, cacheMgr, cacheEventLogger, elementSerializer );
- ICache<K, V> ic = rcm.getCache( rca );
+ RemoteCacheNoWait<K,V> ic = rcm.getCache( rca );
noWaits.add( ic );
}
@@ -120,7 +119,7 @@ public class RemoteCacheFactory
// number it is at
if ( ( !primaryDefined && fCnt == 1 ) || noWaits.size() <= 0 )
{
- ICache<K, V> ic = rcm.getCache( rca );
+ RemoteCacheNoWait<K,V> ic = rcm.getCache( rca );
noWaits.add( ic );
}
}
@@ -145,7 +144,7 @@ public class RemoteCacheFactory
rca.setRemoteLocation(location);
RemoteCacheManager rcm = getManager( rca, cacheMgr, cacheEventLogger, elementSerializer );
rca.setRemoteType( RemoteType.CLUSTER );
- ICache<K, V> ic = rcm.getCache( rca );
+ RemoteCacheNoWait<K,V> ic = rcm.getCache( rca );
noWaits.add( ic );
}
}
@@ -153,7 +152,7 @@ public class RemoteCacheFactory
}
RemoteCacheNoWaitFacade<K, V> rcnwf =
- new RemoteCacheNoWaitFacade<K, V>(noWaits, rca, cacheMgr, cacheEventLogger, elementSerializer, this );
+ new RemoteCacheNoWaitFacade<K, V>(noWaits, rca, cacheEventLogger, elementSerializer, this );
return rcnwf;
}
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCacheNoWaitFacade.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCacheNoWaitFacade.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCacheNoWaitFacade.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteCacheNoWaitFacade.java Wed Aug 2 09:44:13 2017
@@ -21,6 +21,7 @@ package org.apache.commons.jcs.auxiliary
import java.util.List;
+import org.apache.commons.jcs.auxiliary.remote.behavior.IRemoteCacheAttributes;
import org.apache.commons.jcs.auxiliary.remote.server.behavior.RemoteType;
import org.apache.commons.jcs.engine.CacheStatus;
import org.apache.commons.jcs.engine.behavior.ICache;
@@ -52,11 +53,32 @@ public class RemoteCacheNoWaitFacade<K,
* <p>
* @param noWaits
* @param rca
+ * @param cacheEventLogger
+ * @param elementSerializer
+ * @param cacheFactory
+ */
+ public RemoteCacheNoWaitFacade( List<RemoteCacheNoWait<K,V>> noWaits,
+ IRemoteCacheAttributes rca,
+ ICacheEventLogger cacheEventLogger,
+ IElementSerializer elementSerializer,
+ RemoteCacheFactory cacheFactory)
+ {
+ super( noWaits, rca, cacheEventLogger, elementSerializer );
+ this.cacheFactory = cacheFactory;
+ }
+
+ /**
+ * Constructs with the given remote cache, and fires events to any listeners.
+ * <p>
+ * @param noWaits
+ * @param rca
* @param cacheMgr
* @param cacheEventLogger
* @param elementSerializer
* @param cacheFactory
+ * @deprecated Unused parameter cacheMgr scheduled for removal
*/
+ @Deprecated
public RemoteCacheNoWaitFacade( List<ICache<K, V>> noWaits,
RemoteCacheAttributes rca,
ICompositeCacheManager cacheMgr,
@@ -66,12 +88,6 @@ public class RemoteCacheNoWaitFacade<K,
{
super( noWaits, rca, cacheMgr, cacheEventLogger, elementSerializer );
this.cacheFactory = cacheFactory;
-
- for (RemoteCacheNoWait<K,V> rcnw : this.noWaits)
- {
- ((RemoteCache<K, V>)rcnw.getRemoteCache()).setFacade(this);
- this.noWaits.add(rcnw);
- }
}
/**
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteUtils.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteUtils.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/RemoteUtils.java Wed Aug 2 09:44:13 2017
@@ -124,6 +124,15 @@ public class RemoteUtils
if (null == is) // not found in class path
{
+ // Try root of class path
+ if (propFile != null && !propFile.startsWith("/"))
+ {
+ is = RemoteUtils.class.getResourceAsStream("/" + propFile);
+ }
+ }
+
+ if (null == is) // not found in class path
+ {
if (new File(propFile).exists())
{
// file found
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServer.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServer.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServer.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServer.java Wed Aug 2 09:44:13 2017
@@ -29,12 +29,14 @@ import java.rmi.server.Unreferenced;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.locks.ReentrantLock;
import org.apache.commons.jcs.access.exception.CacheException;
+import org.apache.commons.jcs.auxiliary.remote.RemoteUtils;
import org.apache.commons.jcs.auxiliary.remote.behavior.IRemoteCacheListener;
import org.apache.commons.jcs.auxiliary.remote.server.behavior.IRemoteCacheServer;
import org.apache.commons.jcs.auxiliary.remote.server.behavior.IRemoteCacheServerAttributes;
@@ -71,6 +73,8 @@ public class RemoteCacheServer<K, V>
extends UnicastRemoteObject
implements IRemoteCacheServer<K, V>, Unreferenced
{
+ public static final String DFEAULT_REMOTE_CONFIGURATION_FILE = "/remote.cache.ccf";
+
/** For serialization. Don't change. */
private static final long serialVersionUID = -8072345435941473116L;
@@ -121,11 +125,47 @@ public class RemoteCacheServer<K, V>
/**
* Constructor for the RemoteCacheServer object. This initializes the server with the values
+ * from the properties object.
+ * <p>
+ * @param rcsa
+ * @param config cache hub configuration
+ * @throws RemoteException
+ */
+ protected RemoteCacheServer( IRemoteCacheServerAttributes rcsa, Properties config )
+ throws RemoteException
+ {
+ super( rcsa.getServicePort() );
+ this.remoteCacheServerAttributes = rcsa;
+ init( config );
+ }
+
+ /**
+ * Constructor for the RemoteCacheServer object. This initializes the server with the values
+ * from the properties object.
+ * <p>
+ * @param rcsa
+ * @param config cache hub configuration
+ * @param customRMISocketFactory
+ * @throws RemoteException
+ */
+ protected RemoteCacheServer( IRemoteCacheServerAttributes rcsa, Properties config, RMISocketFactory customRMISocketFactory )
+ throws RemoteException
+ {
+ super( rcsa.getServicePort(), customRMISocketFactory, customRMISocketFactory );
+ this.remoteCacheServerAttributes = rcsa;
+ init( config );
+ }
+
+ /**
+ * Constructor for the RemoteCacheServer object. This initializes the server with the values
* from the config file.
* <p>
* @param rcsa
* @throws RemoteException
+ *
+ * @deprecated Use version with Properties object instead
*/
+ @Deprecated
protected RemoteCacheServer( IRemoteCacheServerAttributes rcsa )
throws RemoteException
{
@@ -141,7 +181,10 @@ public class RemoteCacheServer<K, V>
* @param rcsa
* @param customRMISocketFactory
* @throws RemoteException
+ *
+ * @deprecated Use version with Properties object instead
*/
+ @Deprecated
protected RemoteCacheServer( IRemoteCacheServerAttributes rcsa, RMISocketFactory customRMISocketFactory )
throws RemoteException
{
@@ -155,8 +198,34 @@ public class RemoteCacheServer<K, V>
* <p>
* @param prop
* @throws RemoteException if the configuration of the cache manager instance fails
+ *
+ * @deprecated Use version with Properties parameter instead
*/
- private void init( String prop ) throws RemoteException
+ @Deprecated
+ private void init( String propFile ) throws RemoteException
+ {
+ String propFileName = propFile == null ? DFEAULT_REMOTE_CONFIGURATION_FILE : propFile;
+
+ Properties prop = null;
+ try
+ {
+ prop = RemoteUtils.loadProps(propFileName);
+ }
+ catch (IOException e)
+ {
+ throw new RemoteException(e.getMessage(), e);
+ }
+
+ init(prop);
+ }
+
+ /**
+ * Initialize the RMI Cache Server from a properties object.
+ * <p>
+ * @param prop the configuration properties
+ * @throws RemoteException if the configuration of the cache manager instance fails
+ */
+ private void init( Properties prop ) throws RemoteException
{
try
{
@@ -181,23 +250,15 @@ public class RemoteCacheServer<K, V>
/**
* Subclass can override this method to create the specific cache manager.
* <p>
- * @param prop The name of the configuration file.
- * @return The cache hub configured with this configuration file.
+ * @param prop the configuration object.
+ * @return The cache hub configured with this configuration.
*
* @throws CacheException if the configuration cannot be loaded
*/
- private CompositeCacheManager createCacheManager( String prop ) throws CacheException
+ private CompositeCacheManager createCacheManager( Properties prop ) throws CacheException
{
CompositeCacheManager hub = CompositeCacheManager.getUnconfiguredInstance();
-
- if ( prop == null )
- {
- hub.configure( "/remote.cache.ccf" );
- }
- else
- {
- hub.configure( prop );
- }
+ hub.configure( prop );
return hub;
}
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerFactory.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerFactory.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerFactory.java Wed Aug 2 09:44:13 2017
@@ -94,32 +94,48 @@ public class RemoteCacheServerFactory
* <p>
* A remote cache is either a local cache or a cluster cache.
* <p>
- * @param host
- * @param port
- * @param propFile
+ * @param host the host name
+ * @param port the port number
+ * @param propFile the remote cache hub configuration file
* @throws IOException
+ *
+ * @deprecated Use startup(String, int, Properties) instead
*/
+ @Deprecated
public static void startup( String host, int port, String propFile )
throws IOException
{
- if ( remoteCacheServer != null )
+ if ( log.isInfoEnabled() )
{
- throw new IllegalArgumentException( "Server already started." );
+ log.info( "ConfigFileName = [" + propFile + "]" );
}
+ Properties props = RemoteUtils.loadProps( propFile );
+ startup(host, port, props);
+ }
- synchronized ( RemoteCacheServer.class )
+ /**
+ * Starts up the remote cache server on this JVM, and binds it to the registry on the given host
+ * and port.
+ * <p>
+ * A remote cache is either a local cache or a cluster cache.
+ * <p>
+ * @param host the host name
+ * @param port the port number
+ * @param props the remote cache hub configuration
+ * @param propFile the remote cache hub configuration file
+ * @throws IOException
+ *
+ * @deprecated Use startup(String, int, Properties) instead
+ */
+ @Deprecated
+ public static void startup( String host, int port, Properties props, String propFile )
+ throws IOException
+ {
+ if ( log.isWarnEnabled() )
{
- if ( remoteCacheServer != null )
- {
- return;
- }
- if ( log.isInfoEnabled() )
- {
- log.info( "ConfigFileName = [" + propFile + "]" );
- }
- Properties props = RemoteUtils.loadProps( propFile );
- startup(host, port, props, propFile);
+ log.warn( "ConfigFileName = [" + propFile + "] ignored" );
}
+ startup(host, port, props);
}
/**
@@ -133,7 +149,7 @@ public class RemoteCacheServerFactory
* @param props
* @throws IOException
*/
- public static void startup( String host, int port, Properties props, String propFile )
+ public static void startup( String host, int port, Properties props)
throws IOException
{
if ( remoteCacheServer != null )
@@ -153,7 +169,6 @@ public class RemoteCacheServerFactory
}
RemoteCacheServerAttributes rcsa = configureRemoteCacheServerAttributes(props);
- rcsa.setConfigFileName( propFile );
// These should come from the file!
rcsa.setRemoteLocation( host, port );
@@ -174,11 +189,11 @@ public class RemoteCacheServerFactory
// CREATE SERVER
if ( customRMISocketFactory != null )
{
- remoteCacheServer = new RemoteCacheServer<Serializable, Serializable>( rcsa, customRMISocketFactory );
+ remoteCacheServer = new RemoteCacheServer<Serializable, Serializable>( rcsa, props, customRMISocketFactory );
}
else
{
- remoteCacheServer = new RemoteCacheServer<Serializable, Serializable>( rcsa );
+ remoteCacheServer = new RemoteCacheServer<Serializable, Serializable>( rcsa, props );
}
remoteCacheServer.setCacheEventLogger( cacheEventLogger );
@@ -446,21 +461,9 @@ public class RemoteCacheServerFactory
// shutdown
if ( args.length > 0 && args[0].toLowerCase().indexOf( "-shutdown" ) != -1 )
{
- String remoteServiceName = prop.getProperty( REMOTE_CACHE_SERVICE_NAME, REMOTE_CACHE_SERVICE_VAL ).trim();
- String registry = RemoteUtils.getNamingURL("", port, remoteServiceName);
-
- if ( log.isDebugEnabled() )
- {
- log.debug( "looking up server " + registry );
- }
- Object obj = Naming.lookup( registry );
- if ( log.isDebugEnabled() )
- {
- log.debug( "server found" );
- }
- ICacheServiceAdmin admin = (ICacheServiceAdmin) obj;
try
{
+ ICacheServiceAdmin admin = lookupCacheServiceAdmin(prop, port);
admin.shutdown();
}
catch ( Exception ex )
@@ -474,30 +477,21 @@ public class RemoteCacheServerFactory
// STATS
if ( args.length > 0 && args[0].toLowerCase().indexOf( "-stats" ) != -1 )
{
-
log.debug( "getting cache stats" );
try
{
- String sz = prop.getProperty( REMOTE_CACHE_SERVICE_NAME, REMOTE_CACHE_SERVICE_VAL ).trim();
- String registry = RemoteUtils.getNamingURL("", port, sz);
- log.debug( "looking up server " + registry );
- Object obj = Naming.lookup( registry );
- log.debug( "server found" );
-
- log.debug( "obj = " + obj );
- ICacheServiceAdmin admin = (ICacheServiceAdmin) obj;
+ ICacheServiceAdmin admin = lookupCacheServiceAdmin(prop, port);
try
{
// System.out.println( admin.getStats().toString() );
log.debug( admin.getStats() );
}
- catch ( Exception es )
+ catch ( IOException es )
{
log.error( es );
}
-
}
catch ( Exception ex )
{
@@ -516,11 +510,38 @@ public class RemoteCacheServerFactory
RemoteUtils.createRegistry( port );
}
log.debug( "main> starting up RemoteCacheServer" );
- RemoteCacheServerFactory.startup( host, port, args.length > 0 ? args[0] : null );
+ startup( host, port, prop);
log.debug( "main> done" );
}
/**
+ * Look up the remote cache service admin instance
+ *
+ * @param config the configuration properties
+ * @param port the local port
+ * @return the admin object instance
+ *
+ * @throws Exception if lookup fails
+ */
+ private static ICacheServiceAdmin lookupCacheServiceAdmin(Properties config, int port) throws Exception
+ {
+ String remoteServiceName = config.getProperty( REMOTE_CACHE_SERVICE_NAME, REMOTE_CACHE_SERVICE_VAL ).trim();
+ String registry = RemoteUtils.getNamingURL("", port, remoteServiceName);
+
+ if ( log.isDebugEnabled() )
+ {
+ log.debug( "looking up server " + registry );
+ }
+ Object obj = Naming.lookup( registry );
+ if ( log.isDebugEnabled() )
+ {
+ log.debug( "server found" );
+ }
+
+ return (ICacheServiceAdmin) obj;
+ }
+
+ /**
* @param serviceName the serviceName to set
*/
protected static void setServiceName( String serviceName )
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheStartupServlet.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheStartupServlet.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheStartupServlet.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheStartupServlet.java Wed Aug 2 09:44:13 2017
@@ -131,12 +131,10 @@ public class RemoteCacheStartupServlet
{
if (props == null)
{
- RemoteCacheServerFactory.startup(registryHost, registryPort, propsFileName);
- }
- else
- {
- RemoteCacheServerFactory.startup(registryHost, registryPort, props, propsFileName);
+ throw new ServletException("Could not load configuration from " + propsFileName);
}
+
+ RemoteCacheServerFactory.startup(registryHost, registryPort, props);
if (log.isInfoEnabled())
{
log.info("Remote JCS Server started with properties from " + propsFileName);
@@ -144,7 +142,7 @@ public class RemoteCacheStartupServlet
}
catch (IOException e)
{
- log.error("Problem starting remote cache server.", e);
+ throw new ServletException("Problem starting remote cache server.", e);
}
}
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/behavior/IRemoteCacheServerAttributes.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/behavior/IRemoteCacheServerAttributes.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/behavior/IRemoteCacheServerAttributes.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/auxiliary/remote/server/behavior/IRemoteCacheServerAttributes.java Wed Aug 2 09:44:13 2017
@@ -66,7 +66,7 @@ public interface IRemoteCacheServerAttri
/**
* Gets the ConfigFileName attribute of the IRemoteCacheAttributes object.
* <p>
- * @return The clusterServers value
+ * @return The configuration file name
*/
String getConfigFileName();
@@ -74,7 +74,7 @@ public interface IRemoteCacheServerAttri
* Sets the ConfigFileName attribute of the IRemoteCacheAttributes object.
* <p>
* @param s
- * The new clusterServers value
+ * The new configuration file name
*/
void setConfigFileName( String s );
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCache.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCache.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCache.java Wed Aug 2 09:44:13 2017
@@ -111,6 +111,9 @@ public class CompositeCache<K, V>
/** Count of misses where element was expired. */
private AtomicInteger missCountExpired;
+ /** Cache manager. */
+ private CompositeCacheManager cacheManager = null;
+
/**
* The cache hub can only have one memory cache. This could be made more flexible in the future,
* but they are tied closely together. More than one doesn't make much sense.
@@ -159,6 +162,16 @@ public class CompositeCache<K, V>
}
/**
+ * Injector for cache manager
+ *
+ * @param manager
+ */
+ public void setCompositeCacheManager( CompositeCacheManager manager )
+ {
+ this.cacheManager = manager;
+ }
+
+ /**
* @see org.apache.commons.jcs.engine.behavior.IRequireScheduler#setScheduledExecutorService(java.util.concurrent.ScheduledExecutorService)
*/
@Override
@@ -1286,19 +1299,26 @@ public class CompositeCache<K, V>
*/
public void dispose( boolean fromRemote )
{
- if ( log.isInfoEnabled() )
+ // If already disposed, return immediately
+ if ( alive.compareAndSet(true, false) == false )
{
- log.info( "In DISPOSE, [" + this.cacheAttr.getCacheName() + "] fromRemote [" + fromRemote + "]" );
+ return;
}
- // If already disposed, return immediately
- if ( alive.compareAndSet(true, false) == false )
+ if ( log.isInfoEnabled() )
{
- return;
+ log.info( "In DISPOSE, [" + this.cacheAttr.getCacheName() + "] fromRemote [" + fromRemote + "]" );
}
synchronized (this)
{
+ // Remove us from the cache managers list
+ // This will call us back but exit immediately
+ if (cacheManager != null)
+ {
+ cacheManager.freeCache(getCacheName(), fromRemote);
+ }
+
// Try to stop shrinker thread
if (future != null)
{
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheConfigurator.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheConfigurator.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheConfigurator.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheConfigurator.java Wed Aug 2 09:44:13 2017
@@ -207,6 +207,9 @@ public class CompositeCacheConfigurator
ccm.getDefaultCacheAttributes(), regionPrefix ), ea )
: new CompositeCache<K, V>( cca, ea );
+ // Inject cache manager
+ cache.setCompositeCacheManager(ccm);
+
// Inject scheduler service
cache.setScheduledExecutorService(ccm.getScheduledExecutorService());
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheManager.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheManager.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheManager.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/engine/control/CompositeCacheManager.java Wed Aug 2 09:44:13 2017
@@ -527,7 +527,7 @@ public class CompositeCacheManager
@Override
public <K, V> CompositeCache<K, V> getCache( String cacheName )
{
- return getCache( cacheName, this.defaultCacheAttr.clone() );
+ return getCache( cacheName, getDefaultCacheAttributes() );
}
/**
@@ -540,7 +540,7 @@ public class CompositeCacheManager
public <K, V> CompositeCache<K, V> getCache( String cacheName, ICompositeCacheAttributes cattr )
{
cattr.setCacheName( cacheName );
- return getCache( cattr, this.defaultElementAttr );
+ return getCache( cattr, getDefaultElementAttributes() );
}
/**
@@ -565,7 +565,7 @@ public class CompositeCacheManager
*/
public <K, V> CompositeCache<K, V> getCache( ICompositeCacheAttributes cattr )
{
- return getCache( cattr, this.defaultElementAttr );
+ return getCache( cattr, getDefaultElementAttributes() );
}
/**
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/servlet/JCSServletContextListener.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/servlet/JCSServletContextListener.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/servlet/JCSServletContextListener.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/main/java/org/apache/commons/jcs/utils/servlet/JCSServletContextListener.java Wed Aug 2 09:44:13 2017
@@ -19,14 +19,13 @@ package org.apache.commons.jcs.utils.ser
* under the License.
*/
-import org.apache.commons.jcs.access.exception.CacheException;
-import org.apache.commons.jcs.engine.control.CompositeCacheManager;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
+import org.apache.commons.jcs.JCS;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
/**
* If you add this to the context listeners section of your web.xml file, this will shutdown JCS
* gracefully.
@@ -56,32 +55,25 @@ public class JCSServletContextListener
@Override
public void contextInitialized( ServletContextEvent arg0 )
{
- if ( log.isInfoEnabled() )
+ if ( log.isDebugEnabled() )
{
- log.info( "contextInitialized" );
+ log.debug( "contextInitialized" );
}
}
/**
- * This gets the singleton instance of the CompositeCacheManager and calls shutdown.
+ * Shutdown JCS.
* <p>
* @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
*/
@Override
public void contextDestroyed( ServletContextEvent arg0 )
{
- if ( log.isInfoEnabled() )
+ if ( log.isDebugEnabled() )
{
- log.info( "contextDestroyed, shutting down JCS." );
+ log.debug( "contextDestroyed, shutting down JCS." );
}
- try
- {
- CompositeCacheManager.getInstance().shutDown();
- }
- catch (CacheException e)
- {
- log.error( "Could not retrieve cache manager instance", e );
- }
+ JCS.shutdown();
}
}
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDiskCacheOptimizationUnitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDiskCacheOptimizationUnitTest.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDiskCacheOptimizationUnitTest.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/disk/indexed/IndexedDiskCacheOptimizationUnitTest.java Wed Aug 2 09:44:13 2017
@@ -65,8 +65,8 @@ public class IndexedDiskCacheOptimizatio
Thread.sleep( 1000 );
long sizeBeforeRemove = disk.getDataFileSize();
- System.out.println( "file sizeBeforeRemove " + sizeBeforeRemove );
- System.out.println( "totalSize inserted " + DiskTestObjectUtil.totalSize( elements, numberToInsert ) );
+ // System.out.println( "file sizeBeforeRemove " + sizeBeforeRemove );
+ // System.out.println( "totalSize inserted " + DiskTestObjectUtil.totalSize( elements, numberToInsert ) );
// DO WORK
for ( int i = 0; i < removeCount; i++ )
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/TestRemoteCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/TestRemoteCache.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/TestRemoteCache.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/TestRemoteCache.java Wed Aug 2 09:44:13 2017
@@ -1,5 +1,7 @@
package org.apache.commons.jcs.auxiliary.remote;
+import java.util.Properties;
+
import org.apache.commons.jcs.JCS;
import org.apache.commons.jcs.access.CacheAccess;
import org.apache.commons.jcs.auxiliary.AuxiliaryCache;
@@ -52,8 +54,9 @@ public class TestRemoteCache
{
System.out.println( "main> creating registry on the localhost" );
RemoteUtils.createRegistry( 1101 );
+ Properties config = RemoteUtils.loadProps("/TestRemoteServer.ccf");
- RemoteCacheServerFactory.startup( "localhost", 1101, "/TestRemoteServer.ccf" );
+ RemoteCacheServerFactory.startup( "localhost", 1101, config);
}
catch ( Exception e )
{
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerStartupUtil.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerStartupUtil.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerStartupUtil.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerStartupUtil.java Wed Aug 2 09:44:13 2017
@@ -23,8 +23,8 @@ import java.io.IOException;
import java.net.UnknownHostException;
import java.util.Properties;
+import org.apache.commons.jcs.auxiliary.remote.RemoteUtils;
import org.apache.commons.jcs.utils.net.HostNameUtil;
-import org.apache.commons.jcs.utils.props.PropertyLoader;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -53,7 +53,16 @@ public class RemoteCacheServerStartupUti
// all three
int registryPort = DEFAULT_REGISTRY_PORT;
- Properties props = PropertyLoader.loadProperties( propsFileName );
+ Properties props = null;
+ try
+ {
+ props = RemoteUtils.loadProps(propsFileName);
+ }
+ catch (IOException e)
+ {
+ log.error( "Problem loading configuration from " + propsFileName, e);
+ }
+
if ( props != null )
{
String portS = props.getProperty( "registry.port", String.valueOf( DEFAULT_REGISTRY_PORT ) );
@@ -86,7 +95,7 @@ public class RemoteCacheServerStartupUti
try
{
- RemoteCacheServerFactory.startup( registryHost, registryPort, "/" + propsFileName );
+ RemoteCacheServerFactory.startup( registryHost, registryPort, props );
}
catch ( IOException e )
{
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerUnitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerUnitTest.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerUnitTest.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-core/src/test/java/org/apache/commons/jcs/auxiliary/remote/server/RemoteCacheServerUnitTest.java Wed Aug 2 09:44:13 2017
@@ -22,17 +22,19 @@ package org.apache.commons.jcs.auxiliary
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
-
-import junit.framework.TestCase;
+import java.util.Properties;
import org.apache.commons.jcs.auxiliary.MockCacheEventLogger;
import org.apache.commons.jcs.auxiliary.remote.MockRemoteCacheListener;
+import org.apache.commons.jcs.auxiliary.remote.RemoteUtils;
import org.apache.commons.jcs.auxiliary.remote.server.behavior.IRemoteCacheServerAttributes;
import org.apache.commons.jcs.auxiliary.remote.server.behavior.RemoteType;
import org.apache.commons.jcs.engine.CacheElement;
import org.apache.commons.jcs.engine.behavior.ICacheElement;
import org.apache.commons.jcs.utils.timing.SleepUtil;
+import junit.framework.TestCase;
+
/**
* Since the server does not know that it is a server, it is easy to unit test. The factory does all
* the rmi work.
@@ -54,7 +56,8 @@ public class RemoteCacheServerUnitTest
IRemoteCacheServerAttributes rcsa = new RemoteCacheServerAttributes();
rcsa.setConfigFileName( "/TestRemoteCacheServer.ccf" );
- this.server = new RemoteCacheServer<String, String>( rcsa );
+ Properties config = RemoteUtils.loadProps(rcsa.getConfigFileName());
+ this.server = new RemoteCacheServer<String, String>( rcsa, config );
}
@Override
@@ -223,8 +226,9 @@ public class RemoteCacheServerUnitTest
IRemoteCacheServerAttributes rcsa = new RemoteCacheServerAttributes();
rcsa.setConfigFileName( "/TestRemoteCacheServer.ccf" );
+ Properties config = RemoteUtils.loadProps(rcsa.getConfigFileName());
MockRemoteCacheListener<String, Long> mockListener = new MockRemoteCacheListener<String, Long>();
- RemoteCacheServer<String, Long> server = new RemoteCacheServer<String, Long>( rcsa );
+ RemoteCacheServer<String, Long> server = new RemoteCacheServer<String, Long>( rcsa, config );
String cacheName = "testSimpleRegisterListenerAndPut";
server.addCacheListener( cacheName, mockListener );
@@ -268,7 +272,8 @@ public class RemoteCacheServerUnitTest
IRemoteCacheServerAttributes rcsa = new RemoteCacheServerAttributes();
rcsa.setLocalClusterConsistency( true );
rcsa.setConfigFileName( "/TestRemoteCacheServer.ccf" );
- RemoteCacheServer<String, Long> server = new RemoteCacheServer<String, Long>( rcsa );
+ Properties config = RemoteUtils.loadProps(rcsa.getConfigFileName());
+ RemoteCacheServer<String, Long> server = new RemoteCacheServer<String, Long>( rcsa, config );
// this is to get the listener id for inserts.
MockRemoteCacheListener<String, Long> clusterListener = new MockRemoteCacheListener<String, Long>();
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-dist/pom.xml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-dist/pom.xml?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-dist/pom.xml (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-dist/pom.xml Wed Aug 2 09:44:13 2017
@@ -59,6 +59,14 @@
<skipDeploy>true</skipDeploy>
</configuration>
</plugin>
+ <plugin>
+ <!-- skip deployment of distribution files to maven repository -->
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
</plugins>
</build>
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/cdi/CDIJCacheHelper.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/cdi/CDIJCacheHelper.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/cdi/CDIJCacheHelper.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/cdi/CDIJCacheHelper.java Wed Aug 2 09:44:13 2017
@@ -18,18 +18,8 @@
*/
package org.apache.commons.jcs.jcache.cdi;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Method;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.logging.Logger;
import javax.annotation.PreDestroy;
import javax.cache.annotation.CacheDefaults;
-import javax.cache.annotation.CacheInvocationParameter;
import javax.cache.annotation.CacheKey;
import javax.cache.annotation.CacheKeyGenerator;
import javax.cache.annotation.CacheResolverFactory;
@@ -41,6 +31,15 @@ import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.inject.Inject;
import javax.interceptor.InvocationContext;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.logging.Logger;
@ApplicationScoped
public class CDIJCacheHelper
@@ -104,8 +103,25 @@ public class CDIJCacheHelper
public CacheDefaults findDefaults(final InvocationContext ic)
{
- Class<?> clazz = ic.getTarget().getClass();
+ if (ic.getTarget() != null && Proxy.isProxyClass(ic.getTarget().getClass())) // target doesnt hold annotations
+ {
+ final Class<?> api = ic.getMethod().getDeclaringClass();
+ for (final Class<?> type : ic.getTarget().getClass().getInterfaces())
+ {
+ if (!api.isAssignableFrom(type))
+ {
+ continue;
+ }
+ return extractDefaults(type);
+ }
+ }
+ return extractDefaults(ic.getTarget().getClass());
+ }
+
+ private CacheDefaults extractDefaults(final Class<?> type)
+ {
CacheDefaults annotation = null;
+ Class<?> clazz = type;
while (clazz != null && clazz != Object.class)
{
annotation = clazz.getAnnotation(CacheDefaults.class);
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/cdi/CacheInvocationContextImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/cdi/CacheInvocationContextImpl.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/cdi/CacheInvocationContextImpl.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/cdi/CacheInvocationContextImpl.java Wed Aug 2 09:44:13 2017
@@ -18,16 +18,18 @@
*/
package org.apache.commons.jcs.jcache.cdi;
-import java.lang.annotation.Annotation;
-import java.util.HashSet;
import javax.cache.annotation.CacheInvocationContext;
import javax.cache.annotation.CacheInvocationParameter;
import javax.interceptor.InvocationContext;
+import java.lang.annotation.Annotation;
+import java.util.HashSet;
import static java.util.Arrays.asList;
public class CacheInvocationContextImpl<A extends Annotation> extends CacheMethodDetailsImpl<A> implements CacheInvocationContext<A>
{
+ private static final Object[] EMPTY_ARGS = new Object[0];
+
private CacheInvocationParameter[] parameters = null;
public CacheInvocationContextImpl(final InvocationContext delegate, final A cacheAnnotation, final String cacheName)
@@ -63,7 +65,8 @@ public class CacheInvocationContextImpl<
protected CacheInvocationParameter[] doGetAllParameters(final Integer[] indexes)
{
- final Object[] args = delegate.getParameters();
+ final Object[] parameters = delegate.getParameters();
+ final Object[] args = parameters == null ? EMPTY_ARGS : parameters;
final Class<?>[] parameterTypes = getMethod().getParameterTypes();
final Annotation[][] parameterAnnotations = getMethod().getParameterAnnotations();
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/proxy/ClassLoaderAwareCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/proxy/ClassLoaderAwareCache.java?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/proxy/ClassLoaderAwareCache.java (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-jcache/src/main/java/org/apache/commons/jcs/jcache/proxy/ClassLoaderAwareCache.java Wed Aug 2 09:44:13 2017
@@ -34,7 +34,7 @@ import java.util.Map;
import java.util.Set;
// don't use a proxy, reflection is too slow here :(
-public class ClassLoaderAwareCache<K extends Serializable, V extends Serializable> implements Cache<K, V>
+public class ClassLoaderAwareCache<K, V> implements Cache<K, V>
{
private final ClassLoader loader;
private final JCSCache<K, V> delegate;
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/filecache/pom.xml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/filecache/pom.xml?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/filecache/pom.xml (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/filecache/pom.xml Wed Aug 2 09:44:13 2017
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-jcs-sandbox</artifactId>
- <version>2.1-SNAPSHOT</version>
+ <version>2.2-SNAPSHOT</version>
</parent>
<artifactId>commons-jcs-filecache</artifactId>
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/pom.xml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/pom.xml?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/pom.xml (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/pom.xml Wed Aug 2 09:44:13 2017
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-jcs</artifactId>
- <version>2.1-SNAPSHOT</version>
+ <version>2.2-SNAPSHOT</version>
</parent>
<artifactId>commons-jcs-sandbox</artifactId>
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/yajcache/pom.xml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/yajcache/pom.xml?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/yajcache/pom.xml (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/commons-jcs-sandbox/yajcache/pom.xml Wed Aug 2 09:44:13 2017
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-jcs-sandbox</artifactId>
- <version>2.1-SNAPSHOT</version>
+ <version>2.2-SNAPSHOT</version>
</parent>
<artifactId>commons-jcs-yajcache</artifactId>
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/pom.xml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/pom.xml?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/pom.xml (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/pom.xml Wed Aug 2 09:44:13 2017
@@ -521,6 +521,7 @@
<commons.componentid>jcs</commons.componentid>
<commons.release.version>2.1</commons.release.version>
<commons.release.name>commons-jcs-dist-2.1</commons.release.name>
+ <commons.module.name>org.apache.commons.jcs</commons.module.name>
<commons.release.desc>(Java 6.0+)</commons.release.desc>
<!-- The RC version used in the staging repository URL. -->
<commons.rc.version>RC1</commons.rc.version>
Modified: commons/proper/jcs/branches/commons-jcs-2.2-RC/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/commons-jcs-2.2-RC/src/changes/changes.xml?rev=1803791&r1=1803790&r2=1803791&view=diff
==============================================================================
--- commons/proper/jcs/branches/commons-jcs-2.2-RC/src/changes/changes.xml (original)
+++ commons/proper/jcs/branches/commons-jcs-2.2-RC/src/changes/changes.xml Wed Aug 2 09:44:13 2017
@@ -20,6 +20,21 @@
</properties>
<body>
<release version="2.2" date="unreleased">
+ <action issue="JCS-180" dev="rmannibucau" type="fix">
+ CacheInvocationContextImpl NPE if method doesnt have any argument
+ </action>
+ <action issue="JCS-179" dev="tv" type="fix" due-to="Archer">
+ RemoteCacheServerFactory not able to start server
+ </action>
+ <action issue="JCS-178" dev="tv" type="fix">
+ Clients using RemoteCache are not working. Add a test.
+ </action>
+ <action dev="tv" type="add">
+ Add a shutdown() method to JCS
+ </action>
+ <action issue="JCS-177" dev="tv" type="fix" due-to="Ryan Fong">
+ Fix: CompositeCacheManager leaks memory if CacheAccess.dipose is called
+ </action>
</release>
<release version="2.1" date="2017-02-05">
<action dev="tv" type="fix">