arminw 2005/05/07 09:51:09
Modified: src/java/org/apache/ojb/broker/core Tag: OJB_1_0_RELEASE
DelegatingPersistenceBroker.java
PersistenceBrokerAbstractImpl.java
PersistenceBrokerFactoryBaseImpl.java
PersistenceBrokerFactoryDefaultImpl.java
PersistenceBrokerFactoryIF.java
PersistenceBrokerFactorySyncImpl.java
PersistenceBrokerHandle.java
PersistenceBrokerThreadMapping.java
PoolablePersistenceBroker.java
src/java/org/apache/ojb/broker Tag: OJB_1_0_RELEASE
PersistenceBrokerInternal.java
Log:
Introduce PersistenceBrokerInternal extension (backport from OJB 1.x) to
allow usage of new flag in managed environments
Revision Changes Path
No revision
No revision
1.11.2.3 +18 -7
db-ojb/src/java/org/apache/ojb/broker/core/DelegatingPersistenceBroker.java
Index: DelegatingPersistenceBroker.java
===================================================================
RCS file:
/home/cvs/db-ojb/src/java/org/apache/ojb/broker/core/DelegatingPersistenceBroker.java,v
retrieving revision 1.11.2.2
retrieving revision 1.11.2.3
diff -u -r1.11.2.2 -r1.11.2.3
--- DelegatingPersistenceBroker.java 26 Apr 2005 03:41:36 -0000 1.11.2.2
+++ DelegatingPersistenceBroker.java 7 May 2005 16:51:09 -0000 1.11.2.3
@@ -30,6 +30,7 @@
import org.apache.ojb.broker.TransactionInProgressException;
import org.apache.ojb.broker.TransactionNotInProgressException;
import org.apache.ojb.broker.IdentityFactory;
+import org.apache.ojb.broker.PersistenceBrokerInternal;
import org.apache.ojb.broker.accesslayer.ConnectionManagerIF;
import org.apache.ojb.broker.accesslayer.JdbcAccess;
import org.apache.ojb.broker.accesslayer.StatementManagerIF;
@@ -54,12 +55,12 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Armin Waibel</a>
* @version $Id$
*/
-public class DelegatingPersistenceBroker implements PersistenceBroker,
PBState
+public class DelegatingPersistenceBroker implements
PersistenceBrokerInternal, PBState
{
- protected PersistenceBroker m_broker;
+ protected PersistenceBrokerInternal m_broker;
- public DelegatingPersistenceBroker(PersistenceBroker broker)
+ public DelegatingPersistenceBroker(PersistenceBrokerInternal broker)
{
this.m_broker = broker;
}
@@ -68,7 +69,7 @@
* All delegated method use this method to
* get the wrapped broker.
*/
- protected PersistenceBroker getBroker()
+ protected PersistenceBrokerInternal getBroker()
{
if (m_broker != null)
{
@@ -87,12 +88,12 @@
* Returns only the wrapped
* [EMAIL PROTECTED] org.apache.ojb.broker.PersistenceBroker} instance
*/
- public PersistenceBroker getDelegate()
+ public PersistenceBrokerInternal getDelegate()
{
return this.m_broker;
}
- public void setDelegate(PersistenceBroker broker)
+ public void setDelegate(PersistenceBrokerInternal broker)
{
this.m_broker = broker;
}
@@ -126,6 +127,16 @@
return broker;
}
+ public boolean isManaged()
+ {
+ return m_broker.isManaged();
+ }
+
+ public void setManaged(boolean managed)
+ {
+ m_broker.setManaged(managed);
+ }
+
public boolean isInTransaction() throws PersistenceBrokerException
{
return m_broker != null ? getBroker().isInTransaction() : false;
1.6.2.1 +3 -2
db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerAbstractImpl.java
Index: PersistenceBrokerAbstractImpl.java
===================================================================
RCS file:
/home/cvs/db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerAbstractImpl.java,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -r1.6 -r1.6.2.1
--- PersistenceBrokerAbstractImpl.java 4 Apr 2004 23:53:33 -0000
1.6
+++ PersistenceBrokerAbstractImpl.java 7 May 2005 16:51:09 -0000
1.6.2.1
@@ -23,6 +23,7 @@
import org.apache.ojb.broker.PersistenceBroker;
import org.apache.ojb.broker.PersistenceBrokerEvent;
import org.apache.ojb.broker.PersistenceBrokerException;
+import org.apache.ojb.broker.PersistenceBrokerInternal;
import org.apache.ojb.broker.util.logging.LoggerFactory;
import org.apache.ojb.broker.util.configuration.Configuration;
import org.apache.ojb.broker.util.configuration.ConfigurationException;
@@ -40,7 +41,7 @@
* @author Armin Waibel
* @version $Id$
*/
-public abstract class PersistenceBrokerAbstractImpl implements
PersistenceBroker
+public abstract class PersistenceBrokerAbstractImpl implements
PersistenceBrokerInternal
{
private static final PBStateListener[] NO_STATE_LISTENERS = new
PBStateListener[0];
private static final PBLifeCycleListener[] NO_LIFECYCLE_LISTENERS = new
PBLifeCycleListener[0];
1.3.2.1 +11 -9
db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerFactoryBaseImpl.java
Index: PersistenceBrokerFactoryBaseImpl.java
===================================================================
RCS file:
/home/cvs/db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerFactoryBaseImpl.java,v
retrieving revision 1.3
retrieving revision 1.3.2.1
diff -u -r1.3 -r1.3.2.1
--- PersistenceBrokerFactoryBaseImpl.java 4 Apr 2004 23:53:33 -0000
1.3
+++ PersistenceBrokerFactoryBaseImpl.java 7 May 2005 16:51:09 -0000
1.3.2.1
@@ -18,6 +18,7 @@
import org.apache.ojb.broker.PBFactoryException;
import org.apache.ojb.broker.PBKey;
import org.apache.ojb.broker.PersistenceBroker;
+import org.apache.ojb.broker.PersistenceBrokerInternal;
import org.apache.ojb.broker.metadata.MetadataManager;
import org.apache.ojb.broker.util.BrokerHelper;
import org.apache.ojb.broker.util.ClassHelper;
@@ -78,7 +79,7 @@
/**
* For internal use! This method creates real new PB instances
*/
- protected PersistenceBroker createNewBrokerInstance(PBKey key) throws
PBFactoryException
+ protected PersistenceBrokerInternal createNewBrokerInstance(PBKey key)
throws PBFactoryException
{
if (key == null) throw new PBFactoryException("Could not create new
broker with PBkey argument 'null'");
// check if the given key really exists
@@ -95,14 +96,14 @@
++this.instanceCount;
}
- PersistenceBroker instance = null;
+ PersistenceBrokerInternal instance = null;
Class[] types = {PBKey.class, PersistenceBrokerFactoryIF.class};
Object[] args = {key, this};
try
{
- instance = (PersistenceBroker)
ClassHelper.newInstance(implementationClass, types, args);
+ instance = (PersistenceBrokerInternal)
ClassHelper.newInstance(implementationClass, types, args);
OjbConfigurator.getInstance().configure(instance);
- instance = (PersistenceBroker)
InterceptorFactory.getInstance().createInterceptorFor(instance);
+ instance = (PersistenceBrokerInternal)
InterceptorFactory.getInstance().createInterceptorFor(instance);
}
catch (Exception e)
{
@@ -119,7 +120,7 @@
* @return
* @throws PBFactoryException
*/
- public PersistenceBroker createPersistenceBroker(PBKey pbKey) throws
PBFactoryException
+ public PersistenceBrokerInternal createPersistenceBroker(PBKey pbKey)
throws PBFactoryException
{
if (log.isDebugEnabled()) log.debug("Obtain broker from pool, used
PBKey is " + pbKey);
@@ -143,7 +144,7 @@
* @see PersistenceBrokerFactoryIF#createPersistenceBroker(
* String jcdAlias, String user, String password)
*/
- public PersistenceBroker createPersistenceBroker(String jcdAlias, String
user, String password)
+ public PersistenceBrokerInternal createPersistenceBroker(String
jcdAlias, String user, String password)
throws PBFactoryException
{
return this.createPersistenceBroker(new PBKey(jcdAlias, user,
password));
@@ -152,9 +153,10 @@
/**
* @see PersistenceBrokerFactoryIF#createPersistenceBroker(PBKey key)
*/
- public PersistenceBroker defaultPersistenceBroker() throws
PBFactoryException
+ public PersistenceBrokerInternal defaultPersistenceBroker() throws
PBFactoryException
{
- if (getDefaultKey() == null) throw new PBFactoryException("There was
no default-PBKey specified");
+ if (getDefaultKey() == null) throw new PBFactoryException("There was
no 'default-connection' attribute" +
+ " enabled in the jdbc connection descriptor");
return this.createPersistenceBroker(getDefaultKey());
}
1.11.2.1 +7 -6
db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerFactoryDefaultImpl.java
Index: PersistenceBrokerFactoryDefaultImpl.java
===================================================================
RCS file:
/home/cvs/db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerFactoryDefaultImpl.java,v
retrieving revision 1.11
retrieving revision 1.11.2.1
diff -u -r1.11 -r1.11.2.1
--- PersistenceBrokerFactoryDefaultImpl.java 31 May 2004 23:23:06 -0000
1.11
+++ PersistenceBrokerFactoryDefaultImpl.java 7 May 2005 16:51:09 -0000
1.11.2.1
@@ -26,6 +26,7 @@
import org.apache.ojb.broker.PBKey;
import org.apache.ojb.broker.PBState;
import org.apache.ojb.broker.PersistenceBroker;
+import org.apache.ojb.broker.PersistenceBrokerInternal;
import org.apache.ojb.broker.util.BrokerHelper;
import org.apache.ojb.broker.util.logging.Logger;
import org.apache.ojb.broker.util.logging.LoggerFactory;
@@ -81,10 +82,10 @@
* @return
* @throws PBFactoryException
*/
- public PersistenceBroker createPersistenceBroker(PBKey pbKey) throws
PBFactoryException
+ public PersistenceBrokerInternal createPersistenceBroker(PBKey pbKey)
throws PBFactoryException
{
if (log.isDebugEnabled()) log.debug("Obtain broker from pool, used
PBKey is " + pbKey);
- PersistenceBroker broker = null;
+ PersistenceBrokerInternal broker = null;
/*
try to find a valid PBKey, if given key does not full match
@@ -97,7 +98,7 @@
get a pooled PB instance, the pool is reponsible to create new
PB instances if not found in pool
*/
- broker = ((PersistenceBroker) brokerPool.borrowObject(pbKey));
+ broker = ((PersistenceBrokerInternal)
brokerPool.borrowObject(pbKey));
/*
now warp pooled PB instance with a handle to avoid PB corruption
of closed PB instances.
@@ -130,7 +131,7 @@
* @param pool use [EMAIL PROTECTED] KeyedObjectPool}
* @return wrapped broker instance
*/
- protected PersistenceBroker
wrapBrokerWithPoolingHandle(PersistenceBroker broker, KeyedObjectPool pool)
+ protected PersistenceBrokerInternal
wrapBrokerWithPoolingHandle(PersistenceBrokerInternal broker, KeyedObjectPool
pool)
{
return new PoolablePersistenceBroker(broker, pool);
}
@@ -144,7 +145,7 @@
* @param broker
* @return
*/
- protected PersistenceBroker
wrapRequestedBrokerInstance(PersistenceBroker broker)
+ protected PersistenceBrokerInternal
wrapRequestedBrokerInstance(PersistenceBrokerInternal broker)
{
return new PersistenceBrokerHandle(broker);
}
1.4.2.1 +5 -4
db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerFactoryIF.java
Index: PersistenceBrokerFactoryIF.java
===================================================================
RCS file:
/home/cvs/db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerFactoryIF.java,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -r1.4 -r1.4.2.1
--- PersistenceBrokerFactoryIF.java 4 Apr 2004 23:53:33 -0000 1.4
+++ PersistenceBrokerFactoryIF.java 7 May 2005 16:51:09 -0000 1.4.2.1
@@ -18,6 +18,7 @@
import org.apache.ojb.broker.PBFactoryException;
import org.apache.ojb.broker.PBKey;
import org.apache.ojb.broker.PersistenceBroker;
+import org.apache.ojb.broker.PersistenceBrokerInternal;
import org.apache.ojb.broker.util.configuration.Configurable;
/**
@@ -58,7 +59,7 @@
*
* @param key
*/
- public PersistenceBroker createPersistenceBroker(PBKey key) throws
PBFactoryException;
+ public PersistenceBrokerInternal createPersistenceBroker(PBKey key)
throws PBFactoryException;
/**
* Return a ready for action [EMAIL PROTECTED]
org.apache.ojb.broker.PersistenceBroker} instance.
@@ -67,14 +68,14 @@
* @param user user name specified in a
<tt>jdbc-connection-descriptor</tt>
* @param password valid password specified in a
<tt>jdbc-connection-descriptor</tt>
*/
- public PersistenceBroker createPersistenceBroker(String jcdAlias, String
user, String password)
+ public PersistenceBrokerInternal createPersistenceBroker(String
jcdAlias, String user, String password)
throws PBFactoryException;
/**
* Return a default broker instance, specified in configuration
* or set using [EMAIL PROTECTED] #setDefaultKey}.
*/
- public PersistenceBroker defaultPersistenceBroker() throws
PBFactoryException;
+ public PersistenceBrokerInternal defaultPersistenceBroker() throws
PBFactoryException;
/**
* release all broker instances pooled by the factory.
1.7.2.5 +7 -11
db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerFactorySyncImpl.java
Index: PersistenceBrokerFactorySyncImpl.java
===================================================================
RCS file:
/home/cvs/db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerFactorySyncImpl.java,v
retrieving revision 1.7.2.4
retrieving revision 1.7.2.5
diff -u -r1.7.2.4 -r1.7.2.5
--- PersistenceBrokerFactorySyncImpl.java 27 Apr 2005 00:23:52 -0000
1.7.2.4
+++ PersistenceBrokerFactorySyncImpl.java 7 May 2005 16:51:09 -0000
1.7.2.5
@@ -33,7 +33,7 @@
import org.apache.commons.pool.KeyedObjectPool;
import org.apache.ojb.broker.PBFactoryException;
import org.apache.ojb.broker.PBKey;
-import org.apache.ojb.broker.PersistenceBroker;
+import org.apache.ojb.broker.PersistenceBrokerInternal;
import org.apache.ojb.broker.TransactionAbortedException;
import org.apache.ojb.broker.TransactionInProgressException;
import org.apache.ojb.broker.TransactionNotInProgressException;
@@ -81,7 +81,7 @@
txRegistry = new TxRegistry();
}
- public PersistenceBroker createPersistenceBroker(PBKey pbKey) throws
PBFactoryException
+ public PersistenceBrokerInternal createPersistenceBroker(PBKey pbKey)
throws PBFactoryException
{
/*
try to find a valid PBKey, if given key does not full match
@@ -130,13 +130,13 @@
return result;
}
- protected PersistenceBroker
wrapBrokerWithPoolingHandle(PersistenceBroker broker, KeyedObjectPool pool)
+ protected PersistenceBrokerInternal
wrapBrokerWithPoolingHandle(PersistenceBrokerInternal broker, KeyedObjectPool
pool)
{
// wrap real PB instance with an extended version of pooling PB
return new PersistenceBrokerSyncImpl(broker, pool);
}
- protected PersistenceBroker
wrapRequestedBrokerInstance(PersistenceBroker broker)
+ protected PersistenceBrokerInternal
wrapRequestedBrokerInstance(PersistenceBrokerInternal broker)
{
// all PB instance should be of this type
if (!(broker instanceof PersistenceBrokerSyncImpl))
@@ -244,7 +244,7 @@
*/
private List handleList = new ArrayList();
- public PersistenceBrokerSyncImpl(PersistenceBroker broker,
KeyedObjectPool pool)
+ public PersistenceBrokerSyncImpl(PersistenceBrokerInternal broker,
KeyedObjectPool pool)
{
super(broker, pool);
}
@@ -315,11 +315,7 @@
private void internBegin()
{
- /*
- TODO: Find more elegant way to do this. In 1.x we can declare
'is/setManaged' in PBI
- */
- PersistenceBrokerImpl pb = (PersistenceBrokerImpl)
getInnermostDelegate();
- pb.setManaged(true);
+ setManaged(true);
super.beginTransaction();
}
1.10.2.2 +2 -2
db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerHandle.java
Index: PersistenceBrokerHandle.java
===================================================================
RCS file:
/home/cvs/db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerHandle.java,v
retrieving revision 1.10.2.1
retrieving revision 1.10.2.2
diff -u -r1.10.2.1 -r1.10.2.2
--- PersistenceBrokerHandle.java 27 Nov 2004 23:46:32 -0000 1.10.2.1
+++ PersistenceBrokerHandle.java 7 May 2005 16:51:09 -0000 1.10.2.2
@@ -1,7 +1,7 @@
package org.apache.ojb.broker.core;
-import org.apache.ojb.broker.PersistenceBroker;
import org.apache.ojb.broker.PersistenceBrokerException;
+import org.apache.ojb.broker.PersistenceBrokerInternal;
/* Copyright 2003-2004 The Apache Software Foundation
*
@@ -23,7 +23,7 @@
* Constructor for the handle, set itself in
* [EMAIL PROTECTED]
PersistenceBrokerThreadMapping#setCurrentPersistenceBroker}
*/
- public PersistenceBrokerHandle(final PersistenceBroker broker)
+ public PersistenceBrokerHandle(final PersistenceBrokerInternal broker)
{
super(broker);
PersistenceBrokerThreadMapping.setCurrentPersistenceBroker(broker.getPBKey(),
this);
1.6.2.1 +8 -8
db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerThreadMapping.java
Index: PersistenceBrokerThreadMapping.java
===================================================================
RCS file:
/home/cvs/db-ojb/src/java/org/apache/ojb/broker/core/PersistenceBrokerThreadMapping.java,v
retrieving revision 1.6
retrieving revision 1.6.2.1
diff -u -r1.6 -r1.6.2.1
--- PersistenceBrokerThreadMapping.java 4 Apr 2004 23:53:33 -0000
1.6
+++ PersistenceBrokerThreadMapping.java 7 May 2005 16:51:09 -0000
1.6.2.1
@@ -16,13 +16,13 @@
*/
import java.util.HashMap;
-import java.util.WeakHashMap;
import java.util.Iterator;
+import java.util.WeakHashMap;
import org.apache.ojb.broker.PBFactoryException;
import org.apache.ojb.broker.PBKey;
-import org.apache.ojb.broker.PersistenceBroker;
import org.apache.ojb.broker.PersistenceBrokerException;
+import org.apache.ojb.broker.PersistenceBrokerInternal;
/**
* Helper class that tracks correspondence between PersistenceBroker
instances
@@ -39,7 +39,7 @@
**/
private static ThreadLocal currentBrokerMap = new ThreadLocal();
- public static void setCurrentPersistenceBroker(PBKey key,
PersistenceBroker broker)
+ public static void setCurrentPersistenceBroker(PBKey key,
PersistenceBrokerInternal broker)
throws PBFactoryException
{
HashMap map = (HashMap) currentBrokerMap.get();
@@ -63,7 +63,7 @@
set.put(broker, null);
}
- public static void unsetCurrentPersistenceBroker(PBKey key,
PersistenceBroker broker)
+ public static void unsetCurrentPersistenceBroker(PBKey key,
PersistenceBrokerInternal broker)
throws PBFactoryException
{
HashMap map = (HashMap) currentBrokerMap.get();
@@ -84,12 +84,12 @@
* @param key
* @return null if no open [EMAIL PROTECTED]
org.apache.ojb.broker.PersistenceBroker} found.
*/
- public static PersistenceBroker currentPersistenceBroker(PBKey key)
+ public static PersistenceBrokerInternal currentPersistenceBroker(PBKey
key)
throws PBFactoryException, PersistenceBrokerException
{
HashMap map = (HashMap) currentBrokerMap.get();
WeakHashMap set;
- PersistenceBroker broker = null;
+ PersistenceBrokerInternal broker = null;
if (map == null)
{
@@ -105,7 +105,7 @@
// seek for an open broker, preferably in transaction
for (Iterator it = set.keySet().iterator(); it.hasNext(); )
{
- PersistenceBroker tmp = (PersistenceBroker) it.next();
+ PersistenceBrokerInternal tmp = (PersistenceBrokerInternal)
it.next();
if (tmp == null || tmp.isClosed())
{
it.remove();
1.4.2.1 +2 -2
db-ojb/src/java/org/apache/ojb/broker/core/PoolablePersistenceBroker.java
Index: PoolablePersistenceBroker.java
===================================================================
RCS file:
/home/cvs/db-ojb/src/java/org/apache/ojb/broker/core/PoolablePersistenceBroker.java,v
retrieving revision 1.4
retrieving revision 1.4.2.1
diff -u -r1.4 -r1.4.2.1
--- PoolablePersistenceBroker.java 4 Apr 2004 23:53:33 -0000 1.4
+++ PoolablePersistenceBroker.java 7 May 2005 16:51:09 -0000 1.4.2.1
@@ -1,7 +1,7 @@
package org.apache.ojb.broker.core;
import org.apache.commons.pool.KeyedObjectPool;
-import org.apache.ojb.broker.PersistenceBroker;
+import org.apache.ojb.broker.PersistenceBrokerInternal;
import org.apache.ojb.broker.util.logging.LoggerFactory;
/* Copyright 2003-2004 The Apache Software Foundation
@@ -22,7 +22,7 @@
{
private KeyedObjectPool pool;
- public PoolablePersistenceBroker(PersistenceBroker broker,
KeyedObjectPool pool)
+ public PoolablePersistenceBroker(PersistenceBrokerInternal broker,
KeyedObjectPool pool)
{
super(broker);
this.pool = pool;
No revision
No revision
1.1.2.1 +13 -2
db-ojb/src/java/org/apache/ojb/broker/PersistenceBrokerInternal.java
Index: PersistenceBrokerInternal.java
===================================================================
RCS file:
/home/cvs/db-ojb/src/java/org/apache/ojb/broker/PersistenceBrokerInternal.java,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -u -r1.1 -r1.1.2.1
--- PersistenceBrokerInternal.java 4 Jun 2004 16:02:44 -0000 1.1
+++ PersistenceBrokerInternal.java 7 May 2005 16:51:09 -0000 1.1.2.1
@@ -23,5 +23,16 @@
*/
public interface PersistenceBrokerInternal extends PersistenceBroker
{
-
+ /**
+ * If <em>true</em> this instance is handled by a managed
+ * environment - registered within a JTA transaction.
+ */
+ public boolean isManaged();
+
+ /**
+ * Set <em>true</em> if this instance is registered within a
+ * JTA transaction. On [EMAIL PROTECTED] #close()} call this flag was
reset
+ * to <em>false</em> automatic.
+ */
+ public void setManaged(boolean managed);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]