You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2008/05/16 21:17:16 UTC
svn commit: r657174 -
/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/IntraVmCopyMonitor.java
Author: dblevins
Date: Fri May 16 12:17:16 2008
New Revision: 657174
URL: http://svn.apache.org/viewvc?rev=657174&view=rev
Log:
Refactored to be enum based
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/IntraVmCopyMonitor.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/IntraVmCopyMonitor.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/IntraVmCopyMonitor.java?rev=657174&r1=657173&r2=657174&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/IntraVmCopyMonitor.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/IntraVmCopyMonitor.java Fri May 16 12:17:16 2008
@@ -17,13 +17,27 @@
package org.apache.openejb.core.ivm;
public class IntraVmCopyMonitor {
- private static final ThreadLocal<IntraVmCopyMonitor> threadMonitor = new ThreadLocal<IntraVmCopyMonitor>();
+ public static enum State {
+ NONE, COPY(true), CLASSLOADER_COPY(true), PASSIVATION;
+
+ private final boolean copy;
+
+ State() {
+ this.copy = false;
+ }
+
+ State(boolean copy) {
+ this.copy = copy;
+ }
- private boolean intraVmCopyOperation = false;
+ public boolean isCopy() {
+ return copy;
+ }
+ }
- private boolean statefulPassivationOperation = false;
+ private static final ThreadLocal<IntraVmCopyMonitor> threadMonitor = new ThreadLocal<IntraVmCopyMonitor>();
- private boolean crossClassLoaderOperation = false;
+ private State state = State.NONE;
private IntraVmCopyMonitor() {
}
@@ -45,48 +59,51 @@
return monitor;
}
- public static void preCopyOperation() {
- IntraVmCopyMonitor monitor = getMonitor();
- monitor.intraVmCopyOperation = true;
+ public static void pre(State state){
+ getMonitor().state = state;
}
- public static void postCopyOperation() {
- IntraVmCopyMonitor monitor = getMonitor();
- monitor.intraVmCopyOperation = false;
+ public static void post() {
+ pre(State.NONE);
+ }
+
+ public static State state(){
+ return getMonitor().state;
}
public static void prePassivationOperation() {
- IntraVmCopyMonitor monitor = getMonitor();
- monitor.statefulPassivationOperation = true;
+ pre(State.PASSIVATION);
}
public static void postPassivationOperation() {
- IntraVmCopyMonitor monitor = getMonitor();
- monitor.statefulPassivationOperation = false;
+ post();
}
public static void preCrossClassLoaderOperation() {
- IntraVmCopyMonitor monitor = getMonitor();
- monitor.crossClassLoaderOperation = true;
+ pre(State.CLASSLOADER_COPY);
}
public static void postCrossClassLoaderOperation() {
- IntraVmCopyMonitor monitor = getMonitor();
- monitor.crossClassLoaderOperation = false;
+ post();
+ }
+
+ public static void preCopyOperation() {
+ pre(State.COPY);
+ }
+
+ public static void postCopyOperation() {
+ post();
}
public static boolean isIntraVmCopyOperation() {
- IntraVmCopyMonitor monitor = getMonitor();
- return monitor.intraVmCopyOperation;
+ return state() == State.COPY;
}
public static boolean isStatefulPassivationOperation() {
- IntraVmCopyMonitor monitor = getMonitor();
- return monitor.statefulPassivationOperation;
+ return state() == State.PASSIVATION;
}
public static boolean isCrossClassLoaderOperation() {
- IntraVmCopyMonitor monitor = getMonitor();
- return monitor.crossClassLoaderOperation;
+ return state() == State.CLASSLOADER_COPY;
}
}