[jboss-svn-commits] JBL Code SVN: r8922 - in labs/jbosstm/trunk: ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/context and 8 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Jan 19 11:08:49 EST 2007
Author: kevin.conner at jboss.com
Date: 2007-01-19 11:08:48 -0500 (Fri, 19 Jan 2007)
New Revision: 8922
Added:
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/InterceptorInfo.java
Modified:
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/context/ContextClientRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/context/ContextServerRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/context/ContextClientRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/context/ContextServerRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/context/ContextClientRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/context/ContextServerRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/context/ContextClientRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/context/ContextServerRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java
labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java
labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerService.java
labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerServiceMBean.java
Log:
Added propagation context configuration via MBean: JBTM-184
Added: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/InterceptorInfo.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/InterceptorInfo.java (rev 0)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/InterceptorInfo.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -0,0 +1,85 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags.
+ * See the copyright.txt in the distribution for a full listing
+ * of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU General Public License, v. 2.0.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License,
+ * v. 2.0 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+/*
+ * Copyright (C) 2001, 2002,
+ *
+ * Hewlett-Packard Arjuna Labs,
+ * Newcastle upon Tyne,
+ * Tyne and Wear,
+ * UK.
+ *
+ * $Id: Configuration.javatmpl 2342 2006-03-30 13:06:17Z $
+ */
+
+package com.arjuna.ats.jts.common;
+
+/**
+ * Runtime configuration information for the interceptors.
+ *
+ * @author Kevin Conner
+ */
+
+public class InterceptorInfo
+{
+ private static final boolean OTS_NEED_TRAN_CONTEXT ;
+ private static final boolean OTS_ALWAYS_PROPAGATE ;
+
+ static
+ {
+ boolean otsNeedTranContext = Defaults.needTransactionContext ;
+ boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext ;
+
+ final String needTranContextValue = jtsPropertyManager.propertyManager.getProperty(Environment.NEED_TRAN_CONTEXT) ;
+
+ if (needTranContextValue != null)
+ {
+ otsNeedTranContext = "YES".equals(needTranContextValue) ;
+ }
+
+ final String alwaysPropagate = jtsPropertyManager.propertyManager.getProperty(Environment.ALWAYS_PROPAGATE_CONTEXT) ;
+
+ if (alwaysPropagate != null)
+ {
+ otsAlwaysPropagate = "YES".equals(alwaysPropagate) ;
+ }
+
+ OTS_NEED_TRAN_CONTEXT = otsNeedTranContext ;
+ OTS_ALWAYS_PROPAGATE = otsAlwaysPropagate ;
+ }
+
+ /**
+ * Get the flag indicating whether a transaction context is required.
+ * @return true if a context is required, false otherwise.
+ */
+ public static boolean getNeedTranContext()
+ {
+ return OTS_NEED_TRAN_CONTEXT ;
+ }
+
+ /**
+ * Get the flag indicating whether a transaction context should always be propagated.
+ * @return true if a context is alwats propagated, false if it is only sent to OTS transactional objects.
+ */
+ public static boolean getAlwaysPropagate()
+ {
+ return OTS_ALWAYS_PROPAGATE ;
+ }
+}
Property changes on: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/common/InterceptorInfo.java
___________________________________________________________________
Name: svn:keywords
+ Rev Date
Name: svn:eol-style
+ native
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/context/ContextClientRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/context/ContextClientRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/context/ContextClientRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -31,37 +31,28 @@
package com.arjuna.ats.jts.orbspecific.hporb.interceptors.context;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-import com.arjuna.ats.arjuna.common.*;
-
-import com.arjuna.ats.jts.*;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Defaults;
-import com.arjuna.ats.jts.logging.*;
-
-import com.arjuna.ats.internal.jts.OTSImpleManager;
import com.arjuna.ats.internal.jts.ControlWrapper;
import com.arjuna.ats.internal.jts.ORBManager;
+import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.jts.OTSManager;
+import com.arjuna.ats.jts.common.InterceptorInfo;
+import com.arjuna.ats.jts.logging.jtsLogger;
+import com.arjuna.common.util.logging.DebugLevel;
+import com.arjuna.common.util.logging.VisibilityLevel;
-import com.arjuna.orbportability.*;
-
-import com.arjuna.common.util.logging.*;
-
-import org.omg.CosTransactions.*;
-import org.omg.CORBA.*;
-import org.omg.PortableInterceptor.*;
-import org.omg.PortableInterceptor.ORBInitInfoPackage.*;
-import org.omg.IOP.*;
-import org.omg.IOP.CodecFactoryPackage.*;
-
-import java.util.Hashtable;
-
-import org.omg.CORBA.SystemException;
import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.TRANSACTION_REQUIRED;
+import org.omg.CORBA.UNKNOWN;
+import org.omg.CosTransactions.Coordinator;
+import org.omg.CosTransactions.TransactionalObject;
import org.omg.CosTransactions.Unavailable;
+import org.omg.IOP.Codec;
+import org.omg.IOP.ServiceContext;
+import org.omg.PortableInterceptor.ClientRequestInfo;
+import org.omg.PortableInterceptor.ClientRequestInterceptor;
/**
* PortableInterceptor::ClientRequestInterceptor implementation which adds a
@@ -142,15 +133,29 @@
if (systemCall(request_info))
return;
+ final boolean otsAlwaysPropagate = InterceptorInfo.getAlwaysPropagate() ;
try
{
- if (!ContextClientRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!otsAlwaysPropagate)
{
TransactionalObject ptr = org.omg.CosTransactions.TransactionalObjectHelper.narrow(request_info.target());
if (ptr == null)
throw new BAD_PARAM();
}
+ else
+ {
+ /** If we are set to always propagate then ensure we're not already in use **/
+ /** If the value is not null then we are currently in use **/
+ if ( _inUse.get() != null )
+ {
+ return;
+ }
+ else
+ {
+ _inUse.set(_inUse);
+ }
+ }
try
{
@@ -222,7 +227,7 @@
* transaction context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
else
stringRef = null;
@@ -255,6 +260,14 @@
throw new UNKNOWN(ex.toString());
}
+ finally
+ {
+ /** If we are set to always propagate then ensure we clear the inuse flag **/
+ if (otsAlwaysPropagate)
+ {
+ _inUse.set(null);
+ }
+ }
}
catch (BAD_PARAM ex)
{
@@ -310,34 +323,6 @@
private int _localSlot;
private Codec _codec;
-
- private static boolean otsNeedTranContext = Defaults.needTransactionContext;
- private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
- private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
+ private ThreadLocal _inUse = new ThreadLocal();
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/context/ContextServerRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/context/ContextServerRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/context/ContextServerRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -31,38 +31,27 @@
package com.arjuna.ats.jts.orbspecific.hporb.interceptors.context;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-import com.arjuna.ats.arjuna.common.*;
-
-import com.arjuna.ats.jts.*;
-import com.arjuna.ats.jts.exceptions.ExceptionCodes;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Defaults;
-import com.arjuna.ats.jts.logging.*;
-
import com.arjuna.ats.internal.jts.ControlWrapper;
-import com.arjuna.ats.internal.jts.OTSImpleManager;
import com.arjuna.ats.internal.jts.ORBManager;
+import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.jts.OTSManager;
+import com.arjuna.ats.jts.common.InterceptorInfo;
+import com.arjuna.ats.jts.logging.jtsLogger;
+import com.arjuna.common.util.logging.DebugLevel;
+import com.arjuna.common.util.logging.VisibilityLevel;
-import com.arjuna.orbportability.*;
-
-import com.arjuna.common.util.logging.*;
-
-import org.omg.CosTransactions.*;
-import org.omg.CORBA.*;
-import org.omg.PortableInterceptor.*;
-import org.omg.PortableInterceptor.ORBInitInfoPackage.*;
-import org.omg.IOP.*;
-import org.omg.IOP.CodecFactoryPackage.*;
-
-import java.util.Hashtable;
-
-import org.omg.CORBA.SystemException;
+import org.omg.CORBA.BAD_OPERATION;
import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.TRANSACTION_REQUIRED;
-import org.omg.CosTransactions.Unavailable;
+import org.omg.CORBA.UNKNOWN;
+import org.omg.IOP.Codec;
+import org.omg.IOP.ServiceContext;
+import org.omg.PortableInterceptor.InvalidSlot;
+import org.omg.PortableInterceptor.ServerRequestInfo;
+import org.omg.PortableInterceptor.ServerRequestInterceptor;
/**
* PortableInterceptor::ServerRequestInterceptor implementation which checks
@@ -140,7 +129,7 @@
{
try
{
- if (!ContextServerRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!InterceptorInfo.getAlwaysPropagate())
{
if (!request_info.target_is_a(org.omg.CosTransactions.TransactionalObjectHelper.id()))
throw new BAD_PARAM();
@@ -187,7 +176,7 @@
* context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
}
}
@@ -389,34 +378,5 @@
private Codec _codec;
private int _dataSlot;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -31,38 +31,30 @@
package com.arjuna.ats.jts.orbspecific.hporb.interceptors.interposition;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-import com.arjuna.ats.arjuna.common.*;
-
-import com.arjuna.ats.jts.*;
-import com.arjuna.ats.jts.common.Environment;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Defaults;
-import com.arjuna.ats.jts.logging.*;
-
-import com.arjuna.ats.internal.jts.ORBManager;
import com.arjuna.ats.internal.jts.ControlWrapper;
+import com.arjuna.ats.internal.jts.ORBManager;
import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.jts.OTSManager;
+import com.arjuna.ats.jts.common.InterceptorInfo;
+import com.arjuna.ats.jts.logging.jtsLogger;
+import com.arjuna.common.util.logging.DebugLevel;
+import com.arjuna.common.util.logging.VisibilityLevel;
-import com.arjuna.common.util.logging.*;
-
-import com.arjuna.orbportability.*;
-
-import org.omg.CosTransactions.*;
-import org.omg.CORBA.*;
-import org.omg.PortableInterceptor.*;
-import org.omg.PortableInterceptor.ORBInitInfoPackage.*;
-import org.omg.IOP.*;
-import org.omg.IOP.CodecFactoryPackage.*;
-
-import java.util.Hashtable;
-
-import org.omg.CORBA.SystemException;
import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.TRANSACTION_REQUIRED;
+import org.omg.CORBA.UNKNOWN;
+import org.omg.CosTransactions.Coordinator;
+import org.omg.CosTransactions.PropagationContext;
+import org.omg.CosTransactions.PropagationContextHelper;
+import org.omg.CosTransactions.TransactionalObject;
import org.omg.CosTransactions.Unavailable;
+import org.omg.IOP.Codec;
+import org.omg.IOP.ServiceContext;
+import org.omg.PortableInterceptor.ClientRequestInfo;
+import org.omg.PortableInterceptor.ClientRequestInterceptor;
/**
* PortableInterceptor::ClientRequestInterceptor implementation which adds a
@@ -138,15 +130,29 @@
if (systemCall(request_info))
return;
+ final boolean otsAlwaysPropagate = InterceptorInfo.getAlwaysPropagate() ;
try
{
- if (!InterpositionClientRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!otsAlwaysPropagate)
{
TransactionalObject ptr = org.omg.CosTransactions.TransactionalObjectHelper.narrow(request_info.target());
if (ptr == null)
throw new BAD_PARAM();
}
+ else
+ {
+ /** If we are set to always propagate then ensure we're not already in use **/
+ /** If the value is not null then we are currently in use **/
+ if ( _inUse.get() != null )
+ {
+ return;
+ }
+ else
+ {
+ _inUse.set(_inUse);
+ }
+ }
try
{
@@ -225,7 +231,7 @@
* context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
}
@@ -246,6 +252,14 @@
{
throw new UNKNOWN(ex.toString());
}
+ finally
+ {
+ /** If we are set to always propagate then ensure we clear the inuse flag **/
+ if (otsAlwaysPropagate)
+ {
+ _inUse.set(null);
+ }
+ }
}
catch (BAD_PARAM ex)
{
@@ -317,34 +331,6 @@
private int _localSlot;
private Codec _codec;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
+private ThreadLocal _inUse = new ThreadLocal();
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/hporb/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -31,38 +31,25 @@
package com.arjuna.ats.jts.orbspecific.hporb.interceptors.interposition;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-import com.arjuna.ats.arjuna.common.*;
-
-import com.arjuna.ats.jts.*;
-import com.arjuna.ats.jts.common.Environment;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Defaults;
-import com.arjuna.ats.jts.logging.*;
-
-import com.arjuna.ats.internal.jts.ORBManager;
import com.arjuna.ats.internal.jts.ControlWrapper;
import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.jts.OTSManager;
+import com.arjuna.ats.jts.common.InterceptorInfo;
+import com.arjuna.ats.jts.logging.jtsLogger;
+import com.arjuna.common.util.logging.DebugLevel;
+import com.arjuna.common.util.logging.VisibilityLevel;
-import com.arjuna.common.util.logging.*;
-
-import com.arjuna.orbportability.*;
-
-import org.omg.CosTransactions.*;
-import org.omg.CORBA.*;
-import org.omg.PortableInterceptor.*;
-import org.omg.PortableInterceptor.ORBInitInfoPackage.*;
-import org.omg.IOP.*;
-import org.omg.IOP.CodecFactoryPackage.*;
-
-import java.util.Hashtable;
-
-import org.omg.CORBA.SystemException;
+import org.omg.CORBA.BAD_OPERATION;
import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.TRANSACTION_REQUIRED;
-import org.omg.CosTransactions.Unavailable;
+import org.omg.IOP.Codec;
+import org.omg.IOP.ServiceContext;
+import org.omg.PortableInterceptor.InvalidSlot;
+import org.omg.PortableInterceptor.ServerRequestInfo;
+import org.omg.PortableInterceptor.ServerRequestInterceptor;
/**
* PortableInterceptor::ServerRequestInterceptor implementation which checks
@@ -140,7 +127,7 @@
{
try
{
- if (!InterpositionServerRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!InterceptorInfo.getAlwaysPropagate())
{
if (!request_info.target_is_a(org.omg.CosTransactions.TransactionalObjectHelper.id()))
throw new BAD_PARAM();
@@ -192,7 +179,7 @@
* context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
}
}
@@ -373,34 +360,5 @@
private Codec _codec;
private int _dataSlot;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/context/ContextClientRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/context/ContextClientRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/context/ContextClientRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -31,31 +31,33 @@
package com.arjuna.ats.jts.orbspecific.jacorb.interceptors.context;
-import com.arjuna.ats.jts.*;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Defaults;
-import com.arjuna.ats.jts.logging.jtsLogger;
-import com.arjuna.ats.jts.logging.FacilityCode;
-
-import com.arjuna.ats.internal.jts.OTSImpleManager;
import com.arjuna.ats.internal.jts.ControlWrapper;
import com.arjuna.ats.internal.jts.ORBManager;
+import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.jts.OTSManager;
+import com.arjuna.ats.jts.common.InterceptorInfo;
+import com.arjuna.ats.jts.logging.FacilityCode;
+import com.arjuna.ats.jts.logging.jtsLogger;
+import com.arjuna.common.util.logging.DebugLevel;
+import com.arjuna.common.util.logging.VisibilityLevel;
-import com.arjuna.common.util.logging.*;
-
-import org.omg.CosTransactions.*;
-import org.omg.CORBA.*;
-import org.omg.PortableInterceptor.*;
-import org.omg.IOP.*;
-
-import org.omg.CORBA.SystemException;
+import org.omg.CORBA.Any;
import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.OBJECT_NOT_EXIST;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.TRANSACTION_REQUIRED;
+import org.omg.CORBA.UNKNOWN;
+import org.omg.CosTransactions.Coordinator;
+import org.omg.CosTransactions.TransactionalObject;
+import org.omg.CosTransactions.TransactionalObjectHelper;
import org.omg.CosTransactions.Unavailable;
+import org.omg.IOP.Codec;
+import org.omg.IOP.ServiceContext;
+import org.omg.PortableInterceptor.ClientRequestInfo;
+import org.omg.PortableInterceptor.ClientRequestInterceptor;
-import java.lang.Object;
-
/**
* PortableInterceptor::ClientRequestInterceptor implementation which adds a
* service context carrying the transaction context.
@@ -131,9 +133,10 @@
if (systemCall(request_info))
return;
+ final boolean otsAlwaysPropagate = InterceptorInfo.getAlwaysPropagate() ;
try
{
- if (!ContextClientRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!otsAlwaysPropagate)
{
TransactionalObject ptr = TransactionalObjectHelper.narrow(request_info.target());
@@ -224,7 +227,7 @@
* transaction context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
else
stringRef = null;
@@ -326,34 +329,5 @@
private int _localSlot;
private Codec _codec;
private ThreadLocal _inUse = new ThreadLocal();
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/context/ContextServerRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/context/ContextServerRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/context/ContextServerRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -31,26 +31,29 @@
package com.arjuna.ats.jts.orbspecific.jacorb.interceptors.context;
-import com.arjuna.ats.jts.*;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Defaults;
-import com.arjuna.ats.jts.logging.*;
-
import com.arjuna.ats.internal.jts.ControlWrapper;
-import com.arjuna.ats.internal.jts.OTSImpleManager;
import com.arjuna.ats.internal.jts.ORBManager;
+import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.jts.OTSManager;
+import com.arjuna.ats.jts.common.InterceptorInfo;
+import com.arjuna.ats.jts.logging.jtsLogger;
+import com.arjuna.common.util.logging.DebugLevel;
+import com.arjuna.common.util.logging.VisibilityLevel;
-import com.arjuna.common.util.logging.*;
-
-import org.omg.CosTransactions.*;
-import org.omg.CORBA.*;
-import org.omg.PortableInterceptor.*;
-import org.omg.IOP.*;
-
-import org.omg.CORBA.SystemException;
+import org.omg.CORBA.Any;
+import org.omg.CORBA.BAD_OPERATION;
import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.TRANSACTION_REQUIRED;
+import org.omg.CORBA.UNKNOWN;
+import org.omg.CosTransactions.TransactionalObjectHelper;
+import org.omg.IOP.Codec;
+import org.omg.IOP.ServiceContext;
+import org.omg.PortableInterceptor.InvalidSlot;
+import org.omg.PortableInterceptor.ServerRequestInfo;
+import org.omg.PortableInterceptor.ServerRequestInterceptor;
/**
* PortableInterceptor::ServerRequestInterceptor implementation which checks
@@ -124,7 +127,7 @@
{
try
{
- if (!ContextServerRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!InterceptorInfo.getAlwaysPropagate())
{
if (!request_info.target_is_a(TransactionalObjectHelper.id()))
throw new BAD_PARAM();
@@ -171,7 +174,7 @@
* context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
}
}
@@ -375,34 +378,5 @@
private Codec _codec;
private int _dataSlot;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -31,31 +31,34 @@
package com.arjuna.ats.jts.orbspecific.jacorb.interceptors.interposition;
-import com.arjuna.ats.jts.*;
-import com.arjuna.ats.jts.common.Environment;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Defaults;
-import com.arjuna.ats.jts.logging.*;
-
-import com.arjuna.ats.internal.jts.ORBManager;
import com.arjuna.ats.internal.jts.ControlWrapper;
+import com.arjuna.ats.internal.jts.ORBManager;
import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.jts.OTSManager;
+import com.arjuna.ats.jts.common.InterceptorInfo;
+import com.arjuna.ats.jts.logging.jtsLogger;
+import com.arjuna.common.util.logging.DebugLevel;
+import com.arjuna.common.util.logging.VisibilityLevel;
-import com.arjuna.common.util.logging.*;
-
-import org.omg.CosTransactions.*;
-import org.omg.CORBA.*;
-import org.omg.PortableInterceptor.*;
-import org.omg.IOP.*;
-
-import org.omg.CORBA.SystemException;
+import org.omg.CORBA.Any;
import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.OBJECT_NOT_EXIST;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.TRANSACTION_REQUIRED;
+import org.omg.CORBA.UNKNOWN;
+import org.omg.CosTransactions.Coordinator;
+import org.omg.CosTransactions.PropagationContext;
+import org.omg.CosTransactions.PropagationContextHelper;
+import org.omg.CosTransactions.TransactionalObject;
+import org.omg.CosTransactions.TransactionalObjectHelper;
import org.omg.CosTransactions.Unavailable;
+import org.omg.IOP.Codec;
+import org.omg.IOP.ServiceContext;
+import org.omg.PortableInterceptor.ClientRequestInfo;
+import org.omg.PortableInterceptor.ClientRequestInterceptor;
-import java.lang.Object;
-
/**
* PortableInterceptor::ClientRequestInterceptor implementation which adds a
* service context carrying the transaction context.
@@ -130,9 +133,10 @@
if (systemCall(request_info))
return;
+ final boolean otsAlwaysPropagate = InterceptorInfo.getAlwaysPropagate() ;
try
{
- if (!InterpositionClientRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!otsAlwaysPropagate)
{
TransactionalObject ptr = TransactionalObjectHelper.narrow(request_info.target());
@@ -230,7 +234,7 @@
* context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
}
@@ -254,7 +258,7 @@
finally
{
/** If we are set to always propagate then ensure we clear the inuse flag **/
- if (InterpositionClientRequestInterceptorImpl.otsAlwaysPropagate)
+ if (otsAlwaysPropagate)
{
_inUse.set(null);
}
@@ -336,34 +340,5 @@
private int _localSlot;
private Codec _codec;
private ThreadLocal _inUse = new ThreadLocal();
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/jacorb/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -31,25 +31,28 @@
package com.arjuna.ats.jts.orbspecific.jacorb.interceptors.interposition;
-import com.arjuna.ats.jts.*;
-import com.arjuna.ats.jts.common.Environment;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Defaults;
-import com.arjuna.ats.jts.logging.*;
-
import com.arjuna.ats.internal.jts.ControlWrapper;
import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.jts.OTSManager;
+import com.arjuna.ats.jts.common.InterceptorInfo;
+import com.arjuna.ats.jts.logging.jtsLogger;
+import com.arjuna.common.util.logging.DebugLevel;
+import com.arjuna.common.util.logging.VisibilityLevel;
-import com.arjuna.common.util.logging.*;
-
-import org.omg.CosTransactions.*;
-import org.omg.CORBA.*;
-import org.omg.PortableInterceptor.*;
-import org.omg.IOP.*;
-
-import org.omg.CORBA.SystemException;
+import org.omg.CORBA.Any;
+import org.omg.CORBA.BAD_OPERATION;
import org.omg.CORBA.BAD_PARAM;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.TRANSACTION_REQUIRED;
+import org.omg.CosTransactions.PropagationContextHelper;
+import org.omg.CosTransactions.TransactionalObjectHelper;
+import org.omg.IOP.Codec;
+import org.omg.IOP.ServiceContext;
+import org.omg.PortableInterceptor.InvalidSlot;
+import org.omg.PortableInterceptor.ServerRequestInfo;
+import org.omg.PortableInterceptor.ServerRequestInterceptor;
/**
* PortableInterceptor::ServerRequestInterceptor implementation which checks
@@ -123,7 +126,7 @@
{
try
{
- if (!InterpositionServerRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!InterceptorInfo.getAlwaysPropagate())
{
if (!request_info.target_is_a(TransactionalObjectHelper.id()))
throw new BAD_PARAM();
@@ -175,7 +178,7 @@
* context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
}
}
@@ -364,33 +367,4 @@
private Codec _codec;
private int _dataSlot;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/context/ContextClientRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/context/ContextClientRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/context/ContextClientRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -31,38 +31,31 @@
package com.arjuna.ats.jts.orbspecific.javaidl.interceptors.context;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-import com.arjuna.ats.arjuna.common.*;
-
-import com.arjuna.ats.jts.*;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Defaults;
-import com.arjuna.ats.jts.logging.jtsLogger;
-import com.arjuna.ats.jts.logging.FacilityCode;
-
-import com.arjuna.ats.internal.jts.OTSImpleManager;
import com.arjuna.ats.internal.jts.ControlWrapper;
import com.arjuna.ats.internal.jts.ORBManager;
+import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.jts.OTSManager;
+import com.arjuna.ats.jts.common.InterceptorInfo;
+import com.arjuna.ats.jts.logging.FacilityCode;
+import com.arjuna.ats.jts.logging.jtsLogger;
+import com.arjuna.common.util.logging.DebugLevel;
+import com.arjuna.common.util.logging.VisibilityLevel;
-import com.arjuna.orbportability.*;
-
-import com.arjuna.common.util.logging.*;
-
-import org.omg.CosTransactions.*;
-import org.omg.CORBA.*;
-import org.omg.PortableInterceptor.*;
-import org.omg.PortableInterceptor.ORBInitInfoPackage.*;
-import org.omg.IOP.*;
-import org.omg.IOP.CodecFactoryPackage.*;
-
-import java.util.Hashtable;
-
-import org.omg.CORBA.SystemException;
+import org.omg.CORBA.Any;
import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.TRANSACTION_REQUIRED;
+import org.omg.CORBA.UNKNOWN;
+import org.omg.CosTransactions.Coordinator;
+import org.omg.CosTransactions.TransactionalObject;
+import org.omg.CosTransactions.TransactionalObjectHelper;
import org.omg.CosTransactions.Unavailable;
+import org.omg.IOP.Codec;
+import org.omg.IOP.ServiceContext;
+import org.omg.PortableInterceptor.ClientRequestInfo;
+import org.omg.PortableInterceptor.ClientRequestInterceptor;
/**
* PortableInterceptor::ClientRequestInterceptor implementation which adds a
@@ -159,15 +152,29 @@
if (systemCall(request_info))
return;
+ final boolean otsAlwaysPropagate = InterceptorInfo.getAlwaysPropagate() ;
try
{
- if (!ContextClientRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!otsAlwaysPropagate)
{
TransactionalObject ptr = TransactionalObjectHelper.narrow(request_info.target());
if (ptr == null)
throw new BAD_PARAM();
}
+ else
+ {
+ /** If we are set to always propagate then ensure we're not already in use **/
+ /** If the value is not null then we are currently in use **/
+ if ( _inUse.get() != null )
+ {
+ return;
+ }
+ else
+ {
+ _inUse.set(_inUse);
+ }
+ }
try
{
@@ -239,7 +246,7 @@
* transaction context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
else
stringRef = null;
@@ -272,6 +279,14 @@
throw new UNKNOWN(ex.toString());
}
+ finally
+ {
+ /** If we are set to always propagate then ensure we clear the inuse flag **/
+ if (otsAlwaysPropagate)
+ {
+ _inUse.set(null);
+ }
+ }
}
catch (BAD_PARAM ex)
{
@@ -327,34 +342,6 @@
private int _localSlot;
private Codec _codec;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
+private ThreadLocal _inUse = new ThreadLocal();
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/context/ContextServerRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/context/ContextServerRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/context/ContextServerRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -31,38 +31,29 @@
package com.arjuna.ats.jts.orbspecific.javaidl.interceptors.context;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-import com.arjuna.ats.arjuna.common.*;
-
-import com.arjuna.ats.jts.*;
-import com.arjuna.ats.jts.exceptions.ExceptionCodes;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Defaults;
-import com.arjuna.ats.jts.logging.*;
-
import com.arjuna.ats.internal.jts.ControlWrapper;
-import com.arjuna.ats.internal.jts.OTSImpleManager;
import com.arjuna.ats.internal.jts.ORBManager;
+import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.jts.OTSManager;
+import com.arjuna.ats.jts.common.InterceptorInfo;
+import com.arjuna.ats.jts.logging.jtsLogger;
+import com.arjuna.common.util.logging.DebugLevel;
+import com.arjuna.common.util.logging.VisibilityLevel;
-import com.arjuna.orbportability.*;
-
-import com.arjuna.common.util.logging.*;
-
-import org.omg.CosTransactions.*;
-import org.omg.CORBA.*;
-import org.omg.PortableInterceptor.*;
-import org.omg.PortableInterceptor.ORBInitInfoPackage.*;
-import org.omg.IOP.*;
-import org.omg.IOP.CodecFactoryPackage.*;
-
-import java.util.Hashtable;
-
-import org.omg.CORBA.SystemException;
+import org.omg.CORBA.Any;
+import org.omg.CORBA.BAD_OPERATION;
import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.TRANSACTION_REQUIRED;
-import org.omg.CosTransactions.Unavailable;
+import org.omg.CORBA.UNKNOWN;
+import org.omg.CosTransactions.TransactionalObjectHelper;
+import org.omg.IOP.Codec;
+import org.omg.IOP.ServiceContext;
+import org.omg.PortableInterceptor.InvalidSlot;
+import org.omg.PortableInterceptor.ServerRequestInfo;
+import org.omg.PortableInterceptor.ServerRequestInterceptor;
/**
* PortableInterceptor::ServerRequestInterceptor implementation which checks
@@ -156,7 +147,7 @@
{
try
{
- if (!ContextServerRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!InterceptorInfo.getAlwaysPropagate())
{
if (!request_info.target_is_a(TransactionalObjectHelper.id()))
throw new BAD_PARAM();
@@ -203,7 +194,7 @@
* context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
}
}
@@ -402,34 +393,5 @@
private Codec _codec;
private int _dataSlot;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -31,38 +31,32 @@
package com.arjuna.ats.jts.orbspecific.javaidl.interceptors.interposition;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-import com.arjuna.ats.arjuna.common.*;
-
-import com.arjuna.ats.jts.*;
-import com.arjuna.ats.jts.common.Environment;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Defaults;
-import com.arjuna.ats.jts.logging.*;
-
-import com.arjuna.ats.internal.jts.ORBManager;
import com.arjuna.ats.internal.jts.ControlWrapper;
+import com.arjuna.ats.internal.jts.ORBManager;
import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.jts.OTSManager;
+import com.arjuna.ats.jts.common.InterceptorInfo;
+import com.arjuna.ats.jts.logging.jtsLogger;
+import com.arjuna.common.util.logging.DebugLevel;
+import com.arjuna.common.util.logging.VisibilityLevel;
-import com.arjuna.orbportability.*;
-
-import com.arjuna.common.util.logging.*;
-
-import org.omg.CosTransactions.*;
-import org.omg.CORBA.*;
-import org.omg.PortableInterceptor.*;
-import org.omg.PortableInterceptor.ORBInitInfoPackage.*;
-import org.omg.IOP.*;
-import org.omg.IOP.CodecFactoryPackage.*;
-
-import java.util.Hashtable;
-
-import org.omg.CORBA.SystemException;
+import org.omg.CORBA.Any;
import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.TRANSACTION_REQUIRED;
+import org.omg.CORBA.UNKNOWN;
+import org.omg.CosTransactions.Coordinator;
+import org.omg.CosTransactions.PropagationContext;
+import org.omg.CosTransactions.PropagationContextHelper;
+import org.omg.CosTransactions.TransactionalObject;
+import org.omg.CosTransactions.TransactionalObjectHelper;
import org.omg.CosTransactions.Unavailable;
+import org.omg.IOP.Codec;
+import org.omg.IOP.ServiceContext;
+import org.omg.PortableInterceptor.ClientRequestInfo;
+import org.omg.PortableInterceptor.ClientRequestInterceptor;
/**
* PortableInterceptor::ClientRequestInterceptor implementation which adds a
@@ -158,15 +152,29 @@
if (systemCall(request_info))
return;
+ final boolean otsAlwaysPropagate = InterceptorInfo.getAlwaysPropagate() ;
try
{
- if (!InterpositionClientRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!otsAlwaysPropagate)
{
TransactionalObject ptr = TransactionalObjectHelper.narrow(request_info.target());
if (ptr == null)
throw new BAD_PARAM();
}
+ else
+ {
+ /** If we are set to always propagate then ensure we're not already in use **/
+ /** If the value is not null then we are currently in use **/
+ if ( _inUse.get() != null )
+ {
+ return;
+ }
+ else
+ {
+ _inUse.set(_inUse);
+ }
+ }
try
{
@@ -245,7 +253,7 @@
* context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
}
@@ -266,6 +274,14 @@
{
throw new UNKNOWN(ex.toString());
}
+ finally
+ {
+ /** If we are set to always propagate then ensure we clear the inuse flag **/
+ if (otsAlwaysPropagate)
+ {
+ _inUse.set(null);
+ }
+ }
}
catch (BAD_PARAM ex)
{
@@ -337,34 +353,6 @@
private int _localSlot;
private Codec _codec;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
+private ThreadLocal _inUse = new ThreadLocal();
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/javaidl/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -31,38 +31,28 @@
package com.arjuna.ats.jts.orbspecific.javaidl.interceptors.interposition;
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
-import com.arjuna.ats.arjuna.common.*;
-
-import com.arjuna.ats.jts.*;
-import com.arjuna.ats.jts.common.Environment;
-import com.arjuna.ats.jts.common.jtsPropertyManager;
-import com.arjuna.ats.jts.common.Defaults;
-import com.arjuna.ats.jts.logging.*;
-
-import com.arjuna.ats.internal.jts.ORBManager;
import com.arjuna.ats.internal.jts.ControlWrapper;
import com.arjuna.ats.internal.jts.OTSImpleManager;
+import com.arjuna.ats.jts.OTSManager;
+import com.arjuna.ats.jts.common.InterceptorInfo;
+import com.arjuna.ats.jts.logging.jtsLogger;
+import com.arjuna.common.util.logging.DebugLevel;
+import com.arjuna.common.util.logging.VisibilityLevel;
-import com.arjuna.orbportability.*;
-
-import com.arjuna.common.util.logging.*;
-
-import org.omg.CosTransactions.*;
-import org.omg.CORBA.*;
-import org.omg.PortableInterceptor.*;
-import org.omg.PortableInterceptor.ORBInitInfoPackage.*;
-import org.omg.IOP.*;
-import org.omg.IOP.CodecFactoryPackage.*;
-
-import java.util.Hashtable;
-
-import org.omg.CORBA.SystemException;
+import org.omg.CORBA.Any;
+import org.omg.CORBA.BAD_OPERATION;
import org.omg.CORBA.BAD_PARAM;
-import org.omg.CORBA.UNKNOWN;
+import org.omg.CORBA.LocalObject;
+import org.omg.CORBA.SystemException;
+import org.omg.CORBA.TCKind;
import org.omg.CORBA.TRANSACTION_REQUIRED;
-import org.omg.CosTransactions.Unavailable;
+import org.omg.CosTransactions.PropagationContextHelper;
+import org.omg.CosTransactions.TransactionalObjectHelper;
+import org.omg.IOP.Codec;
+import org.omg.IOP.ServiceContext;
+import org.omg.PortableInterceptor.InvalidSlot;
+import org.omg.PortableInterceptor.ServerRequestInfo;
+import org.omg.PortableInterceptor.ServerRequestInterceptor;
/**
* PortableInterceptor::ServerRequestInterceptor implementation which checks
@@ -156,7 +146,7 @@
{
try
{
- if (!InterpositionServerRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!InterceptorInfo.getAlwaysPropagate())
{
if (!request_info.target_is_a(TransactionalObjectHelper.id()))
throw new BAD_PARAM();
@@ -208,7 +198,7 @@
* context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
}
}
@@ -389,33 +379,4 @@
private Codec _codec;
private int _dataSlot;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/context/ContextClientRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/context/ContextClientRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/context/ContextClientRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -36,6 +36,7 @@
import com.arjuna.ats.arjuna.common.*;
import com.arjuna.ats.jts.*;
+import com.arjuna.ats.jts.common.InterceptorInfo;
import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.jts.common.Defaults;
import com.arjuna.ats.jts.logging.jtsLogger;
@@ -139,15 +140,29 @@
if (systemCall(request_info))
return;
+ final boolean otsAlwaysPropagate = InterceptorInfo.getAlwaysPropagate() ;
try
{
- if (!ContextClientRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!otsAlwaysPropagate)
{
TransactionalObject ptr = org.omg.CosTransactions.TransactionalObjectHelper.narrow(request_info.target());
if (ptr == null)
throw new BAD_PARAM();
}
+ else
+ {
+ /** If we are set to always propagate then ensure we're not already in use **/
+ /** If the value is not null then we are currently in use **/
+ if ( _inUse.get() != null )
+ {
+ return;
+ }
+ else
+ {
+ _inUse.set(_inUse);
+ }
+ }
try
{
@@ -219,7 +234,7 @@
* transaction context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
else
stringRef = null;
@@ -252,6 +267,14 @@
throw new UNKNOWN(ex.toString());
}
+ finally
+ {
+ /** If we are set to always propagate then ensure we clear the inuse flag **/
+ if (otsAlwaysPropagate)
+ {
+ _inUse.set(null);
+ }
+ }
}
catch (BAD_PARAM ex)
{
@@ -307,34 +330,6 @@
private int _localSlot;
private Codec _codec;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
+private ThreadLocal _inUse = new ThreadLocal();
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/context/ContextServerRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/context/ContextServerRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/context/ContextServerRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -37,6 +37,7 @@
import com.arjuna.ats.jts.*;
import com.arjuna.ats.jts.exceptions.ExceptionCodes;
+import com.arjuna.ats.jts.common.InterceptorInfo;
import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.jts.common.Defaults;
import com.arjuna.ats.jts.logging.*;
@@ -136,7 +137,7 @@
{
try
{
- if (!ContextServerRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!InterceptorInfo.getAlwaysPropagate())
{
if (!request_info.target_is_a(org.omg.CosTransactions.TransactionalObjectHelper.id()))
throw new BAD_PARAM();
@@ -183,7 +184,7 @@
* context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
}
}
@@ -382,34 +383,5 @@
private Codec _codec;
private int _dataSlot;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/interposition/InterpositionClientRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -37,6 +37,7 @@
import com.arjuna.ats.jts.*;
import com.arjuna.ats.jts.common.Environment;
+import com.arjuna.ats.jts.common.InterceptorInfo;
import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.jts.common.Defaults;
import com.arjuna.ats.jts.logging.*;
@@ -140,15 +141,29 @@
if (systemCall(request_info))
return;
+ final boolean otsAlwaysPropagate = InterceptorInfo.getAlwaysPropagate() ;
try
{
- if (!InterpositionClientRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!otsAlwaysPropagate)
{
TransactionalObject ptr = org.omg.CosTransactions.TransactionalObjectHelper.narrow(request_info.target());
if (ptr == null)
throw new BAD_PARAM();
}
+ else
+ {
+ /** If we are set to always propagate then ensure we're not already in use **/
+ /** If the value is not null then we are currently in use **/
+ if ( _inUse.get() != null )
+ {
+ return;
+ }
+ else
+ {
+ _inUse.set(_inUse);
+ }
+ }
try
{
@@ -227,7 +242,7 @@
* context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
}
@@ -248,6 +263,14 @@
{
throw new UNKNOWN(ex.toString());
}
+ finally
+ {
+ /** If we are set to always propagate then ensure we clear the inuse flag **/
+ if (otsAlwaysPropagate)
+ {
+ _inUse.set(null);
+ }
+ }
}
catch (BAD_PARAM ex)
{
@@ -319,34 +342,6 @@
private int _localSlot;
private Codec _codec;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
+private ThreadLocal _inUse = new ThreadLocal();
}
Modified: labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/ArjunaJTS/jts/classes/com/arjuna/ats/jts/orbspecific/orbix2000/interceptors/interposition/InterpositionServerRequestInterceptorImpl.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -37,6 +37,7 @@
import com.arjuna.ats.jts.*;
import com.arjuna.ats.jts.common.Environment;
+import com.arjuna.ats.jts.common.InterceptorInfo;
import com.arjuna.ats.jts.common.jtsPropertyManager;
import com.arjuna.ats.jts.common.Defaults;
import com.arjuna.ats.jts.logging.*;
@@ -136,7 +137,7 @@
{
try
{
- if (!InterpositionServerRequestInterceptorImpl.otsAlwaysPropagate)
+ if (!InterceptorInfo.getAlwaysPropagate())
{
if (!request_info.target_is_a(org.omg.CosTransactions.TransactionalObjectHelper.id()))
throw new BAD_PARAM();
@@ -188,7 +189,7 @@
* context and we require one.
*/
- if (otsNeedTranContext)
+ if (InterceptorInfo.getNeedTranContext())
throw new TRANSACTION_REQUIRED();
}
}
@@ -369,33 +370,4 @@
private Codec _codec;
private int _dataSlot;
-
-private static boolean otsNeedTranContext = Defaults.needTransactionContext;
-private static boolean otsAlwaysPropagate = Defaults.alwaysPropagateContext;
-private static boolean otsHaveChecked = false;
-
- static
- {
- if (!otsHaveChecked)
- {
- String env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.NEED_TRAN_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsNeedTranContext = true;
- }
-
- env = jtsPropertyManager.propertyManager.getProperty(com.arjuna.ats.jts.common.Environment.ALWAYS_PROPAGATE_CONTEXT, null);
-
- if (env != null)
- {
- if (env.compareTo("YES") == 0)
- otsAlwaysPropagate = true;
- }
-
- otsHaveChecked = true;
- }
- }
-
}
Modified: labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerService.java
===================================================================
--- labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerService.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerService.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -90,8 +90,6 @@
//System.setProperty(LogFactory.LOGGER_PROPERTY, "log4j_releveler") ;
}
- public final static String PROPAGATE_FULL_CONTEXT_PROPERTY = "com.arjuna.ats.jbossatx.jts.propagatefullcontext";
-
private final static String SERVICE_NAME = "TransactionManagerService";
private final static String PROPAGATION_CONTEXT_IMPORTER_JNDI_REFERENCE = "java:/TransactionPropagationContextImporter";
private final static String PROPAGATION_CONTEXT_EXPORTER_JNDI_REFERENCE = "java:/TransactionPropagationContextExporter";
@@ -99,7 +97,7 @@
private RecoveryManager _recoveryManager;
private boolean _runRM = true;
-
+ private boolean alwaysPropagateContext = true ;
/**
* Use the short class name as the default for the service name.
*/
@@ -129,6 +127,9 @@
System.setProperty(com.arjuna.ats.tsmx.TransactionServiceMX.AGENT_IMPLEMENTATION_PROPERTY,
com.arjuna.ats.internal.jbossatx.agent.LocalJBossAgentImpl.class.getName());
System.setProperty(Environment.LAST_RESOURCE_OPTIMISATION_INTERFACE, LastResource.class.getName()) ;
+
+ final String alwaysPropagateProperty = alwaysPropagateContext ? "YES" : "NO" ;
+ System.setProperty(com.arjuna.ats.jts.common.Environment.ALWAYS_PROPAGATE_CONTEXT, alwaysPropagateProperty);
/** Register management plugin **/
com.arjuna.ats.arjuna.common.arjPropertyManager.propertyManager.addManagementPlugin(new PropertyServiceJMXPlugin());
@@ -457,4 +458,13 @@
Reference ref = new Reference(className, className, null);
new InitialContext().bind(jndiName, ref);
}
+
+ /**
+ * Set the flag indicating whether the propagation context should always be propagated.
+ * @param alwaysPropagateContext true if the context should always be propagated, false if only propagated to OTS transactional objects.
+ */
+ public void setAlwaysPropagateContext(final boolean alwaysPropagateContext)
+ {
+ this.alwaysPropagateContext = alwaysPropagateContext ;
+ }
}
Modified: labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerServiceMBean.java
===================================================================
--- labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerServiceMBean.java 2007-01-19 14:58:45 UTC (rev 8921)
+++ labs/jbosstm/trunk/atsintegration/classes/com/arjuna/ats/jbossatx/jts/TransactionManagerServiceMBean.java 2007-01-19 16:08:48 UTC (rev 8922)
@@ -137,5 +137,11 @@
* @param runRM
*/
public void setRunInVMRecoveryManager(boolean runRM);
+
+ /**
+ * Set the flag indicating whether the propagation context should always be propagated.
+ * @param alwaysPropagateContext true if the context should always be propagated, false if only propagated to OTS transactional objects.
+ */
+ public void setAlwaysPropagateContext(final boolean alwaysPropagateContext) ;
}
More information about the jboss-svn-commits
mailing list