Author: manik.surtani(a)jboss.com
Date: 2008-04-30 08:00:36 -0400 (Wed, 30 Apr 2008)
New Revision: 5769
Modified:
core/trunk/src/main/java/org/jboss/cache/InvocationContext.java
core/trunk/src/main/java/org/jboss/cache/commands/write/PutKeyValueCommand.java
core/trunk/src/main/java/org/jboss/cache/interceptors/ActivationInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/BaseRpcInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/CacheStoreInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/CallInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/DataGravitatorInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/Interceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/InvalidationInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticCreateIfNotExistsInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticLockingInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticNodeInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticReplicationInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticValidatorInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/PassivationInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/PessimisticLockInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/ReplicationInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/TxInterceptor.java
core/trunk/src/main/java/org/jboss/cache/interceptors/base/CommandInterceptor.java
core/trunk/src/main/java/org/jboss/cache/lock/LockManager.java
Log:
Refactoring
Modified: core/trunk/src/main/java/org/jboss/cache/InvocationContext.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/InvocationContext.java 2008-04-30 08:11:48
UTC (rev 5768)
+++ core/trunk/src/main/java/org/jboss/cache/InvocationContext.java 2008-04-30 12:00:36
UTC (rev 5769)
@@ -28,6 +28,7 @@
public class InvocationContext implements Cloneable
{
private static final Log log = LogFactory.getLog(InvocationContext.class);
+ private static final boolean trace = log.isTraceEnabled();
private Transaction transaction;
private GlobalTransaction globalTransaction;
@@ -196,7 +197,7 @@
if (!isValidTransaction())
{ // no TX
List<NodeLock> locks = getInvocationLocksAcquired();
- if (log.isTraceEnabled())
+ if (trace)
log.trace("Attempting to release locks on current thread. Locks for the
invocation is " + locks);
if (locks != null && locks.size() > 0)
@@ -208,7 +209,7 @@
for (int i = locks.size() - 1; i > -1; i--)
{
NodeLock nl = locks.get(i);
- if (log.isTraceEnabled()) log.trace("releasing lock for " +
nl.getFqn() + ": " + nl);
+ if (trace) log.trace("releasing lock for " + nl.getFqn() +
": " + nl);
nl.release(currentThread);
}
}
@@ -461,7 +462,7 @@
boolean shouldRethtrow = optionOverride == null ||
!optionOverride.isFailSilently();
if (!shouldRethtrow)
{
- if (log.isTraceEnabled())
+ if (trace)
log.trace("There was a problem handling this request, but failSilently
was set, so suppressing exception", e);
return;
}
Modified: core/trunk/src/main/java/org/jboss/cache/commands/write/PutKeyValueCommand.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/commands/write/PutKeyValueCommand.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/commands/write/PutKeyValueCommand.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -29,7 +29,7 @@
public static final int PUT_FOR_EXT_READ_VERSIONED_METHOD_ID = 46;
private static final Log log = LogFactory.getLog(PutKeyValueCommand.class);
- private static boolean trace;
+ private static boolean trace = log.isTraceEnabled();
/* parametres */
private Object key;
@@ -40,12 +40,10 @@
public PutKeyValueCommand()
{
- trace = log.isTraceEnabled();
}
public PutKeyValueCommand(GlobalTransaction gtx, Fqn fqn, Object key, Object value,
boolean createUndoOps, boolean putForExternalRead)
{
- this();
this.globalTransaction = gtx;
this.fqn = fqn;
this.key = key;
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/ActivationInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/ActivationInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/ActivationInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -237,10 +237,7 @@
{
notifier.notifyNodeActivated(fqn, true, Collections.emptyMap(), ctx);
loader.remove(fqn);
- if (config.getExposeManagementStatistics() && getStatisticsEnabled())
- {
- activations++;
- }
+ if (getStatisticsEnabled()) activations++;
}
/**
Modified: core/trunk/src/main/java/org/jboss/cache/interceptors/BaseRpcInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/BaseRpcInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/BaseRpcInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -9,11 +9,11 @@
import org.jboss.cache.cluster.ReplicationQueue;
import org.jboss.cache.commands.ReplicableCommand;
import org.jboss.cache.commands.VisitableCommand;
-import org.jboss.cache.config.Configuration;
import org.jboss.cache.config.Configuration.CacheMode;
import org.jboss.cache.config.Option;
import org.jboss.cache.factories.CommandsFactory;
import org.jboss.cache.factories.annotations.Inject;
+import org.jboss.cache.factories.annotations.Start;
import org.jboss.cache.interceptors.base.CommandInterceptor;
import org.jboss.cache.transaction.GlobalTransaction;
import org.jboss.cache.transaction.TransactionEntry;
@@ -39,24 +39,26 @@
protected RPCManager rpcManager;
protected boolean defaultSynchronous;
- protected Configuration config;
@Inject
public void injectComponents(RPCManager rpcManager, BuddyManager buddyManager,
ReplicationQueue replicationQueue,
- Configuration config, TransactionTable txTable,
CommandsFactory commandsFactory)
+ TransactionTable txTable, CommandsFactory
commandsFactory)
{
this.rpcManager = rpcManager;
this.replicationQueue = replicationQueue;
this.buddyManager = buddyManager;
-// usingBuddyReplication = buddyManager != null &&
buddyManager.isEnabled();
- usingBuddyReplication = config.getBuddyReplicationConfig() != null &&
config.getBuddyReplicationConfig().isEnabled();
- CacheMode mode = config.getCacheMode();
- defaultSynchronous = (mode == CacheMode.REPL_SYNC || mode ==
CacheMode.INVALIDATION_SYNC);
this.txTable = txTable;
- this.config = config;
this.commandsFactory = commandsFactory;
}
+ @Start
+ private void init()
+ {
+ usingBuddyReplication = configuration.getBuddyReplicationConfig() != null
&& configuration.getBuddyReplicationConfig().isEnabled();
+ CacheMode mode = configuration.getCacheMode();
+ defaultSynchronous = (mode == CacheMode.REPL_SYNC || mode ==
CacheMode.INVALIDATION_SYNC);
+ }
+
/**
* Checks whether any of the responses are exceptions. If yes, re-throws
* them (as exceptions or runtime exceptions).
@@ -90,7 +92,7 @@
protected void replicateCall(InvocationContext ctx, List<Address> recipients,
ReplicableCommand c, boolean sync, Option o, boolean useOutOfBandMessage) throws
Throwable
{
- long syncReplTimeout = config.getSyncReplTimeout();
+ long syncReplTimeout = configuration.getSyncReplTimeout();
// test for option overrides
if (o != null)
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/CacheLoaderInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -53,7 +53,6 @@
private LockManager lockManager;
protected TransactionTable txTable = null;
- protected Configuration config;
protected CacheLoader loader;
protected DataContainer dataContainer;
protected Notifier notifier;
@@ -71,14 +70,13 @@
@Inject
protected void injectDependencies(TransactionTable txTable, CacheLoaderManager clm,
Configuration configuration,
- DataContainer dataContainer, Configuration config,
LockManager lockManager, Notifier notifier)
+ DataContainer dataContainer, LockManager
lockManager, Notifier notifier)
{
this.txTable = txTable;
this.clm = clm;
CacheMode mode = configuration.getCacheMode();
usingOptimisticInvalidation = configuration.isNodeLockingOptimistic() &&
mode.isInvalidation();
this.dataContainer = dataContainer;
- this.config = config;
this.lockManager = lockManager;
this.notifier = notifier;
}
@@ -208,7 +206,7 @@
@Override
public Object visitRemoveNodeCommand(InvocationContext ctx, RemoveNodeCommand command)
throws Throwable
{
- if (config.isNodeLockingOptimistic() && command.getFqn() != null)
+ if (configuration.isNodeLockingOptimistic() && command.getFqn() != null)
{
loadIfNeeded(ctx, command.getFqn(), null, false, false, false,
txTable.get(ctx.getGlobalTransaction()), false, false, false);
}
@@ -367,7 +365,7 @@
}
// check this first!!!
- if (!n.isValid() && config.isNodeLockingOptimistic())
+ if (!n.isValid() && configuration.isNodeLockingOptimistic())
{
// attempt to load again; this only happens if we have tombstones lying around,
or we are using invalidation.
if (trace) log.trace("loading again from cache loader since in-memory node
is marked as invalid");
@@ -425,7 +423,7 @@
protected void lock(Fqn fqn, NodeLock.LockType lockType, boolean recursive,
InvocationContext ctx) throws Throwable
{
- if (config.isNodeLockingOptimistic()) return;
+ if (configuration.isNodeLockingOptimistic()) return;
lockManager.acquireLocksWithTimeout(ctx, fqn, lockType, false, false, false, false,
null, false);
if (recursive)
{
@@ -536,7 +534,7 @@
boolean nodeExists = (nodeData != null);
if (trace) log.trace("nodeExists " + nodeExists);
- if (config.getExposeManagementStatistics() && getStatisticsEnabled())
+ if (getStatisticsEnabled())
{
if (nodeExists)
{
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/CacheStoreInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/CacheStoreInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/CacheStoreInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -20,7 +20,6 @@
import org.jboss.cache.commands.write.RemoveKeyCommand;
import org.jboss.cache.commands.write.RemoveNodeCommand;
import org.jboss.cache.config.CacheLoaderConfig;
-import org.jboss.cache.config.Configuration;
import org.jboss.cache.factories.annotations.Inject;
import org.jboss.cache.factories.annotations.Start;
import org.jboss.cache.interceptors.base.SkipCheckChainedInterceptor;
@@ -56,7 +55,6 @@
private Map<GlobalTransaction, Set<Fqn>> preparingTxs = new
ConcurrentHashMap<GlobalTransaction, Set<Fqn>>();
private long cacheStores = 0;
private CacheLoader loader;
- private Configuration configuration;
private DataContainer dataContainer;
private CacheLoaderManager loaderManager;
@@ -67,14 +65,13 @@
}
@Inject
- protected void init(DataContainer dataContainer, CacheLoaderManager loaderManager,
TransactionManager txManager, TransactionTable txTable, CacheLoaderConfig clConfig,
Configuration configuration)
+ protected void init(DataContainer dataContainer, CacheLoaderManager loaderManager,
TransactionManager txManager, TransactionTable txTable, CacheLoaderConfig clConfig)
{
// never inject a CacheLoader at this stage - only a CacheLoaderManager, since the
CacheLoaderManager only creates a CacheLoader instance when it @Starts.
this.loaderManager = loaderManager;
this.loaderConfig = clConfig;
txMgr = txManager;
this.txTable = txTable;
- this.configuration = configuration;
this.dataContainer = dataContainer;
}
@@ -125,7 +122,7 @@
preparingTxs.remove(gtx);
throw t;
}
- if (configuration.getExposeManagementStatistics() &&
getStatisticsEnabled())
+ if (getStatisticsEnabled())
{
Integer puts = (Integer) txStores.get(gtx);
if (puts != null)
@@ -166,10 +163,7 @@
preparingTxs.remove(gtx);
loader.rollback(gtx);
}
- if (configuration.getExposeManagementStatistics() &&
getStatisticsEnabled())
- {
- txStores.remove(gtx);
- }
+ if (getStatisticsEnabled()) txStores.remove(gtx);
}
else
{
@@ -276,10 +270,8 @@
else
{
loader.put(command.getFqn(), command.getData());
- if (configuration.getExposeManagementStatistics() &&
getStatisticsEnabled())
- {
- cacheStores++;
- }
+ if (getStatisticsEnabled()) cacheStores++;
+
return returnValue;
}
}
@@ -294,10 +286,8 @@
return returnValue;
}
returnValue = loader.put(command.getFqn(), command.getKey(), command.getValue());
- if (configuration.getExposeManagementStatistics() &&
getStatisticsEnabled())
- {
- cacheStores++;
- }
+ if (getStatisticsEnabled()) cacheStores++;
+
return returnValue;
}
@@ -372,8 +362,7 @@
return;
}
if (trace) log.trace("Cache loader modification list: " +
modifications);
- boolean statsEnabled = configuration.getExposeManagementStatistics() &&
getStatisticsEnabled();
- StoreModificationsBuilder modsBuilder = new
StoreModificationsBuilder(statsEnabled);
+ StoreModificationsBuilder modsBuilder = new
StoreModificationsBuilder(getStatisticsEnabled());
for (ReversibleCommand cacheCommand : modifications)
{
cacheCommand.acceptVisitor(null, modsBuilder);
@@ -387,7 +376,7 @@
loader.prepare(gtx, modsBuilder.modifications, onePhase);
preparingTxs.put(gtx, modsBuilder.affectedFqns);
- if (configuration.getExposeManagementStatistics() &&
getStatisticsEnabled() && modsBuilder.putCount > 0)
+ if (getStatisticsEnabled() && modsBuilder.putCount > 0)
{
txStores.put(gtx, modsBuilder.putCount);
}
Modified: core/trunk/src/main/java/org/jboss/cache/interceptors/CallInterceptor.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/interceptors/CallInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++ core/trunk/src/main/java/org/jboss/cache/interceptors/CallInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -14,7 +14,6 @@
import org.jboss.cache.commands.write.RemoveDataCommand;
import org.jboss.cache.commands.write.RemoveKeyCommand;
import org.jboss.cache.commands.write.RemoveNodeCommand;
-import org.jboss.cache.config.Configuration;
import org.jboss.cache.config.Option;
import org.jboss.cache.factories.annotations.Inject;
import org.jboss.cache.factories.annotations.Start;
@@ -37,19 +36,13 @@
*/
public class CallInterceptor extends CommandInterceptor
{
-
- // private CacheLoaderManager cacheLoaderManager;
private TransactionTable transactionTable;
- private Configuration configuration;
private boolean cacheLoadingEnabled;
@Inject
- public void injectDependencies(TransactionTable transactionTable,
- Configuration configuration)
+ public void injectDependencies(TransactionTable transactionTable)
{
-// this.cacheLoaderManager = cacheLoaderManager;
this.transactionTable = transactionTable;
- this.configuration = configuration;
}
@Start
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/DataGravitatorInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/DataGravitatorInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/DataGravitatorInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -74,24 +74,22 @@
*/
private Map<GlobalTransaction, List<ReplicableCommand>> cleanupCommands =
new ConcurrentHashMap<GlobalTransaction, List<ReplicableCommand>>();
private DataContainer dataContainer;
- private Configuration config;
private CommandsFactory commandsFactory;
private CacheSPI cacheSPI;
@Inject
- public void injectComponents(BuddyManager buddyManager, Configuration config,
DataContainer dataContainer, CommandsFactory commandsFactory, CacheSPI cacheSPI)
+ public void injectComponents(BuddyManager buddyManager, DataContainer dataContainer,
CommandsFactory commandsFactory, CacheSPI cacheSPI)
{
this.buddyManager = buddyManager;
this.dataContainer = dataContainer;
this.commandsFactory = commandsFactory;
this.cacheSPI = cacheSPI;
- this.config = config;
}
@Start
public void startInterceptor()
{
- syncCommunications = config.getCacheMode() == Configuration.CacheMode.REPL_SYNC ||
config.getCacheMode() == Configuration.CacheMode.INVALIDATION_SYNC;
+ syncCommunications = configuration.getCacheMode() ==
Configuration.CacheMode.REPL_SYNC || configuration.getCacheMode() ==
Configuration.CacheMode.INVALIDATION_SYNC;
}
@Override
@@ -341,7 +339,7 @@
break;
}
}
- else if (!config.isUseRegionBasedMarshalling())
+ else if (!configuration.isUseRegionBasedMarshalling())
{
// Null is OK if we are using region based marshalling; it
// is what is returned if a region is inactive. Otherwise
Modified: core/trunk/src/main/java/org/jboss/cache/interceptors/Interceptor.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/interceptors/Interceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++ core/trunk/src/main/java/org/jboss/cache/interceptors/Interceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -27,14 +27,10 @@
import org.jboss.cache.InvocationContext;
import org.jboss.cache.NodeSPI;
import org.jboss.cache.commands.VisitableCommand;
-import org.jboss.cache.config.Configuration;
import org.jboss.cache.factories.annotations.Inject;
import org.jboss.cache.factories.annotations.Start;
import org.jboss.cache.interceptors.base.CommandInterceptor;
-import java.util.Collections;
-import java.util.Map;
-
/**
* Class representing an interceptor.
*
@@ -47,8 +43,6 @@
{
protected CacheSPI<?, ?> cache;
protected Log log = null;
- protected Configuration configuration;
- private boolean statsEnabled = false;
protected boolean trace;
public void setCache(CacheSPI cache)
@@ -59,15 +53,13 @@
@Start
private void start()
{
- setStatisticsEnabled(configuration.getExposeManagementStatistics());
// for backward compatibility, this must only be done when the cache starts.
setCache(cache);
}
@Inject
- private void injectDependencies(CacheSPI cache, Configuration configuration)
+ private void injectDependencies(CacheSPI cache)
{
- this.configuration = configuration;
this.cache = cache;
}
@@ -83,6 +75,7 @@
/**
* Forwards the call to the nextInterceptor interceptor in the chain.
+ * This is here for backward compatibility.
*/
public Object nextInterceptor(InvocationContext ctx) throws Throwable
{
@@ -90,37 +83,6 @@
}
@Override
- public boolean getStatisticsEnabled()
- {
- return statsEnabled;
- }
-
- @Override
- public void setStatisticsEnabled(boolean enabled)
- {
- statsEnabled = enabled;
- }
-
- /**
- * This implementation returns an empty Map. If individual Interceptors wish to
expose statistics, they can override this
- * method.
- */
- @Override
- public Map<String, Object> dumpStatistics()
- {
- return Collections.emptyMap();
- }
-
- /**
- * This implementation is a no-op. If individual Interceptors wish to expose
statistics, they can override this
- * method.
- */
- @Override
- public void resetStatistics()
- {
- }
-
- @Override
public String toString()
{
return getClass().getName()
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/InvalidationInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/InvalidationInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/InvalidationInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -22,10 +22,10 @@
import org.jboss.cache.commands.write.RemoveDataCommand;
import org.jboss.cache.commands.write.RemoveKeyCommand;
import org.jboss.cache.commands.write.RemoveNodeCommand;
-import org.jboss.cache.config.Configuration;
import org.jboss.cache.config.Option;
import org.jboss.cache.factories.CommandsFactory;
import org.jboss.cache.factories.annotations.Inject;
+import org.jboss.cache.factories.annotations.Start;
import org.jboss.cache.optimistic.DataVersion;
import org.jboss.cache.optimistic.DefaultDataVersion;
import org.jboss.cache.optimistic.TransactionWorkspace;
@@ -65,13 +65,18 @@
private CommandsFactory commandsFactory;
@Inject
- public void injectDependencies(Configuration config, CommandsFactory commandsFactory)
+ public void injectDependencies(CommandsFactory commandsFactory)
{
- optimistic = config.isNodeLockingOptimistic();
- if (optimistic) txMods = new ConcurrentHashMap<GlobalTransaction,
List<ReversibleCommand>>();
this.commandsFactory = commandsFactory;
}
+ @Start
+ private void init()
+ {
+ optimistic = configuration.isNodeLockingOptimistic();
+ if (optimistic) txMods = new ConcurrentHashMap<GlobalTransaction,
List<ReversibleCommand>>();
+ }
+
private boolean skipInvalidation(InvocationContext ctx)
{
Option optionOverride = ctx.getOptionOverrides();
@@ -242,7 +247,7 @@
{
try
{
- TransactionWorkspace workspace = config.isNodeLockingOptimistic() ?
getWorkspace(gtx) : null;
+ TransactionWorkspace workspace = configuration.isNodeLockingOptimistic() ?
getWorkspace(gtx) : null;
for (Fqn fqn : filterVisitor.result) invalidateAcrossCluster(fqn,
workspace, defaultSynchronous, ctx);
}
catch (Throwable t)
@@ -366,8 +371,7 @@
private void incrementInvalidations()
{
- if (config.getExposeManagementStatistics() && getStatisticsEnabled())
- invalidations++;
+ if (getStatisticsEnabled()) invalidations++;
}
protected DataVersion getNodeVersion(TransactionWorkspace w, Fqn f)
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticCreateIfNotExistsInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticCreateIfNotExistsInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticCreateIfNotExistsInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -17,6 +17,7 @@
import org.jboss.cache.commands.write.PutDataMapCommand;
import org.jboss.cache.commands.write.PutKeyValueCommand;
import org.jboss.cache.factories.annotations.Inject;
+import org.jboss.cache.factories.annotations.Start;
import org.jboss.cache.notifications.Notifier;
import org.jboss.cache.optimistic.DataVersion;
import org.jboss.cache.optimistic.DefaultDataVersion;
@@ -56,9 +57,14 @@
this.nodeFactory = nodeFactory;
this.dataContainer = dataContainer;
this.cache = cacheSPI;
- this.lockAcquisitionTimeout =
cacheSPI.getConfiguration().getLockAcquisitionTimeout();
}
+ @Start
+ private void init()
+ {
+ lockAcquisitionTimeout = configuration.getLockAcquisitionTimeout();
+ }
+
@Override
public Object visitPutDataMapCommand(InvocationContext ctx, PutDataMapCommand command)
throws Throwable
{
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticLockingInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticLockingInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticLockingInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -13,8 +13,6 @@
import org.jboss.cache.commands.tx.CommitCommand;
import org.jboss.cache.commands.tx.OptimisticPrepareCommand;
import org.jboss.cache.commands.tx.RollbackCommand;
-import org.jboss.cache.config.Configuration;
-import org.jboss.cache.factories.annotations.Inject;
import org.jboss.cache.factories.annotations.Start;
import static org.jboss.cache.lock.NodeLock.LockType.READ;
import static org.jboss.cache.lock.NodeLock.LockType.WRITE;
@@ -33,20 +31,13 @@
public class OptimisticLockingInterceptor extends OptimisticInterceptor
{
private long lockAcquisitionTimeout;
- private Configuration configuration;
- @Inject
- public void initialize(Configuration configuration)
- {
- this.configuration = configuration;
- lockAcquisitionTimeout = configuration.getLockAcquisitionTimeout();
- }
-
@Start
- private void checkTransactionManager()
+ private void init()
{
if (txManager == null)
log.fatal("No transaction manager lookup class has been defined.
Transactions cannot be used and thus OPTIMISTIC locking cannot be used! Expect
errors!!");
+ lockAcquisitionTimeout = configuration.getLockAcquisitionTimeout();
}
@Override
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticNodeInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticNodeInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticNodeInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -26,9 +26,9 @@
import org.jboss.cache.commands.write.RemoveDataCommand;
import org.jboss.cache.commands.write.RemoveKeyCommand;
import org.jboss.cache.commands.write.RemoveNodeCommand;
-import org.jboss.cache.config.Configuration;
import org.jboss.cache.config.Option;
import org.jboss.cache.factories.annotations.Inject;
+import org.jboss.cache.factories.annotations.Start;
import org.jboss.cache.loader.CacheLoaderManager;
import org.jboss.cache.notifications.Notifier;
import static org.jboss.cache.notifications.event.NodeModifiedEvent.ModificationType.*;
@@ -63,15 +63,20 @@
@Inject
protected void injectDependencies(Notifier notifier, NodeFactory nodeFactory,
CacheLoaderManager cacheLoaderManager,
- DataContainer dataContainer, Configuration
configuration)
+ DataContainer dataContainer)
{
this.notifier = notifier;
this.nodeFactory = nodeFactory;
this.cacheLoaderManager = cacheLoaderManager;
this.dataContainer = dataContainer;
- this.lockAcquisitionTimeout = configuration.getLockAcquisitionTimeout();
}
+ @Start
+ private void init()
+ {
+ lockAcquisitionTimeout = configuration.getLockAcquisitionTimeout();
+ }
+
public OptimisticNodeInterceptor()
{
log = LogFactory.getLog(getClass());
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticReplicationInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticReplicationInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticReplicationInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -62,13 +62,10 @@
private CommandsFactory commandsFactory;
- private Configuration configuration;
-
@Inject
- public void initialize(CommandsFactory commandsFactory, Configuration configuration)
+ public void initialize(CommandsFactory commandsFactory)
{
this.commandsFactory = commandsFactory;
- this.configuration = configuration;
}
private boolean isLocalOptionOverrides(InvocationContext ctx)
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticValidatorInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticValidatorInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/OptimisticValidatorInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -7,7 +7,6 @@
package org.jboss.cache.interceptors;
import org.jboss.cache.CacheException;
-import org.jboss.cache.CacheSPI;
import org.jboss.cache.DataContainer;
import org.jboss.cache.Fqn;
import org.jboss.cache.InvocationContext;
@@ -54,10 +53,15 @@
private DataContainer dataContainer;
@Inject
- public void initialize(CacheSPI cache, DataContainer dataContainer)
+ public void initialize(DataContainer dataContainer)
{
this.dataContainer = dataContainer;
- CacheMode mode = cache.getConfiguration().getCacheMode();
+ }
+
+ @Inject
+ private void init()
+ {
+ CacheMode mode = configuration.getCacheMode();
useTombstones = (mode == CacheMode.INVALIDATION_ASYNC) || (mode ==
CacheMode.INVALIDATION_SYNC);
}
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/PassivationInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/PassivationInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/PassivationInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -5,7 +5,6 @@
import org.jboss.cache.InvocationContext;
import org.jboss.cache.NodeSPI;
import org.jboss.cache.commands.write.EvictCommand;
-import org.jboss.cache.config.Configuration;
import org.jboss.cache.factories.annotations.Inject;
import org.jboss.cache.interceptors.base.CommandInterceptor;
import org.jboss.cache.loader.CacheLoader;
@@ -32,14 +31,12 @@
protected CacheLoader loader;
private Notifier notifier;
- private Configuration configuration;
private DataContainer dataContainer;
@Inject
- public void setDependencies(Notifier notifier, Configuration configuration,
DataContainer dataContainer, CacheLoaderManager loaderManager)
+ public void setDependencies(Notifier notifier, DataContainer dataContainer,
CacheLoaderManager loaderManager)
{
this.notifier = notifier;
- this.configuration = configuration;
this.dataContainer = dataContainer;
this.loader = loaderManager.getCacheLoader();
}
@@ -83,10 +80,7 @@
if (trace) log.trace("Passivating " + fqn);
loader.put(fqn, attributes);
notifier.notifyNodePassivated(fqn, false, Collections.emptyMap(), ctx);
- if (getStatisticsEnabled() &&
configuration.getExposeManagementStatistics())
- {
- passivations.getAndIncrement();
- }
+ if (getStatisticsEnabled()) passivations.getAndIncrement();
}
catch (NodeNotLoadedException e)
{
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/PessimisticLockInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/PessimisticLockInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/PessimisticLockInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -26,8 +26,8 @@
import org.jboss.cache.commands.write.RemoveDataCommand;
import org.jboss.cache.commands.write.RemoveKeyCommand;
import org.jboss.cache.commands.write.RemoveNodeCommand;
-import org.jboss.cache.config.Configuration;
import org.jboss.cache.factories.annotations.Inject;
+import org.jboss.cache.factories.annotations.Start;
import org.jboss.cache.interceptors.base.PostProcessingCommandInterceptor;
import org.jboss.cache.lock.IsolationLevel;
import org.jboss.cache.lock.LockManager;
@@ -61,19 +61,22 @@
private TransactionTable txTable;
private DataContainer dataContainer;
private LockManager lockManager;
- private Configuration configuration;
private long lockAcquisitionTimeout;
@Inject
- public void injectDependencies(Configuration configuration, DataContainer
dataContainer, TransactionTable txTable, LockManager lockManager)
+ public void injectDependencies(DataContainer dataContainer, TransactionTable txTable,
LockManager lockManager)
{
- lockAcquisitionTimeout = configuration.getLockAcquisitionTimeout();
this.dataContainer = dataContainer;
this.txTable = txTable;
this.lockManager = lockManager;
- this.configuration = configuration;
}
+ @Start
+ private void init()
+ {
+ lockAcquisitionTimeout = configuration.getLockAcquisitionTimeout();
+ }
+
@Override
public Object handlePutDataMapCommand(InvocationContext ctx, PutDataMapCommand
command) throws Throwable
{
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/ReplicationInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/ReplicationInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/ReplicationInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -41,7 +41,7 @@
public Object visitCommitCommand(InvocationContext ctx, CommitCommand command) throws
Throwable
{
if (!skipReplicationOfTransactionMethod(ctx))
- replicateCall(ctx, command, config.isSyncCommitPhase(),
ctx.getOptionOverrides(), true);
+ replicateCall(ctx, command, configuration.isSyncCommitPhase(),
ctx.getOptionOverrides(), true);
return invokeNextInterceptor(ctx, command);
}
@@ -58,7 +58,7 @@
{
if (!skipReplicationOfTransactionMethod(ctx) &&
!ctx.isLocalRollbackOnly())
{
- replicateCall(ctx, command, config.isSyncRollbackPhase(),
ctx.getOptionOverrides());
+ replicateCall(ctx, command, configuration.isSyncRollbackPhase(),
ctx.getOptionOverrides());
}
return invokeNextInterceptor(ctx, command);
}
@@ -127,8 +127,8 @@
if (trace)
{
log.trace("invoking method " + command.getClass().getSimpleName() +
", members=" + rpcManager.getMembers() + ", mode=" +
- config.getCacheMode() + ", exclude_self=" + true + ",
timeout=" +
- config.getSyncReplTimeout());
+ configuration.getCacheMode() + ", exclude_self=" + true +
", timeout=" +
+ configuration.getSyncReplTimeout());
}
if (!isSynchronous(ctx.getOptionOverrides()) || forceAsync)
{
@@ -161,7 +161,7 @@
*/
protected void runPreparePhase(PrepareCommand prepareMethod, GlobalTransaction gtx,
InvocationContext ctx) throws Throwable
{
- boolean async = config.getCacheMode() == Configuration.CacheMode.REPL_ASYNC;
+ boolean async = configuration.getCacheMode() ==
Configuration.CacheMode.REPL_ASYNC;
if (trace)
{
log.trace("(" + rpcManager.getLocalAddress() + "): running remote
prepare for global tx " + gtx + " with async mode=" + async);
Modified: core/trunk/src/main/java/org/jboss/cache/interceptors/TxInterceptor.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/interceptors/TxInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++ core/trunk/src/main/java/org/jboss/cache/interceptors/TxInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -63,7 +63,6 @@
{
private final static Object NULL = new Object();
- private Configuration configuration;
private CommandsFactory commandsFactory;
private RPCManager rpcManager;
private Notifier notifier;
@@ -83,11 +82,10 @@
private long rollbacks = 0;
@Inject
- public void intialize(Configuration configuration, RPCManager rpcManager,
+ public void intialize(RPCManager rpcManager,
Notifier notifier, InvocationContextContainer icc,
LifecycleManager lifecycleManager, CommandsFactory factory)
{
- this.configuration = configuration;
this.commandsFactory = factory;
this.rpcManager = rpcManager;
this.notifier = notifier;
@@ -137,10 +135,7 @@
private void increasePrepares()
{
- if (configuration.getExposeManagementStatistics() &&
getStatisticsEnabled())
- {
- prepares++;
- }
+ if (getStatisticsEnabled()) prepares++;
}
@Override
@@ -729,18 +724,12 @@
private void increaseCommits()
{
- if (configuration.getExposeManagementStatistics() &&
getStatisticsEnabled())
- {
- commits++;
- }
+ if (getStatisticsEnabled()) commits++;
}
private void increaseRollbacks()
{
- if (configuration.getExposeManagementStatistics() &&
getStatisticsEnabled())
- {
- rollbacks++;
- }
+ if (getStatisticsEnabled()) rollbacks++;
}
/**
Modified:
core/trunk/src/main/java/org/jboss/cache/interceptors/base/CommandInterceptor.java
===================================================================
---
core/trunk/src/main/java/org/jboss/cache/interceptors/base/CommandInterceptor.java 2008-04-30
08:11:48 UTC (rev 5768)
+++
core/trunk/src/main/java/org/jboss/cache/interceptors/base/CommandInterceptor.java 2008-04-30
12:00:36 UTC (rev 5769)
@@ -5,6 +5,9 @@
import org.jboss.cache.InvocationContext;
import org.jboss.cache.commands.AbstractVisitor;
import org.jboss.cache.commands.VisitableCommand;
+import org.jboss.cache.config.Configuration;
+import org.jboss.cache.factories.annotations.Inject;
+import org.jboss.cache.factories.annotations.Start;
import org.jboss.cache.interceptors.InterceptorMBean;
import java.util.Collections;
@@ -42,12 +45,26 @@
protected Log log;
protected boolean trace;
+ protected Configuration configuration;
+
public CommandInterceptor()
{
log = LogFactory.getLog(getClass());
trace = log.isTraceEnabled();
}
+ @Inject
+ private void injectConfiguration(Configuration configuration)
+ {
+ this.configuration = configuration;
+ }
+
+ @Start
+ private void checkStatisticsUsed()
+ {
+ setStatisticsEnabled(configuration.getExposeManagementStatistics());
+ }
+
/**
* @return true if gathering statistics for JMX is enabled on this interceptor.
*/
Modified: core/trunk/src/main/java/org/jboss/cache/lock/LockManager.java
===================================================================
--- core/trunk/src/main/java/org/jboss/cache/lock/LockManager.java 2008-04-30 08:11:48 UTC
(rev 5768)
+++ core/trunk/src/main/java/org/jboss/cache/lock/LockManager.java 2008-04-30 12:00:36 UTC
(rev 5769)
@@ -26,6 +26,7 @@
public class LockManager
{
private static Log log = LogFactory.getLog(LockManager.class);
+ private static final boolean trace = log.isTraceEnabled();
private Configuration configuration;
private long lockAcquisitionTimeout;
@@ -99,7 +100,7 @@
Object owner = (gtx != null) ? gtx : currentThread;
NodeSPI currentNode;
- if (log.isTraceEnabled()) log.trace("Attempting to lock node " + fqn +
" for owner " + owner);
+ if (trace) log.trace("Attempting to lock node " + fqn + " for owner
" + owner);
long expiryTime = System.currentTimeMillis() + timeout;
currentNode = rootNode;
NodeSPI parent = null;
@@ -116,12 +117,12 @@
// if the new node is to be marked as deleted, do not notify!
currentNode = parent.addChildDirect(childName, !skipNotification);
created = true;
- if (log.isTraceEnabled()) log.trace("Child node was null, so created
child node " + childName);
+ if (trace) log.trace("Child node was null, so created child node
" + childName);
if (createdNodes != null) createdNodes.add(currentNode);
}
else
{
- if (log.isTraceEnabled())
+ if (trace)
log.trace("failed to find or create child " + childName +
" of node " + currentNode);
return false;
}
@@ -147,7 +148,7 @@
NodeSPI repeek = dataContainer.peek(currentNodeFqn, true, true);
if (currentNode != repeek)
{
- if (log.isTraceEnabled())
+ if (trace)
log.trace("Was waiting for and obtained a lock on a node that
doesn't exist anymore! Attempting lock acquisition again.");
// we have an orphan!! Lose the unnecessary lock and re-acquire the lock (and
potentially recreate the node).
// check if the parent exists!!
@@ -156,7 +157,7 @@
if (parent == null || dataContainer.peek(parent.getFqn(), true, true) ==
null)
{
// crap!
- if (log.isTraceEnabled())
+ if (trace)
log.trace("Parent has been deleted again. Go through the lock
method all over again.");
currentNode = rootNode;
currentIndex = -1;
@@ -171,7 +172,7 @@
{
throw new TimeoutException("Unable to acquire lock on child node
" + Fqn.fromRelativeElements(currentNode.getFqn(), childName) + " after " +
timeout + " millis.");
}
- if (log.isTraceEnabled()) log.trace("Moving one level up, current
node is :" + currentNode);
+ if (trace) log.trace("Moving one level up, current node is :" +
currentNode);
}
}
else