You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2002/11/28 23:10:59 UTC
cvs commit: jakarta-ojb/src/java/org/apache/ojb/broker/singlevm PoolablePersistenceBroker.java DelegatingPersistenceBroker.java PersistenceBrokerImpl.java
arminw 2002/11/28 14:10:58
Modified: src/java/org/apache/ojb/broker/ta
PersistenceBrokerFactoryIF.java
PersistenceBrokerFactoryDefaultImpl.java
PBPoolInfo.java PBKeyedPoolableObjectFactory.java
src/java/org/apache/ojb/broker/singlevm
PersistenceBrokerImpl.java
Added: src/java/org/apache/ojb/broker/singlevm
PoolablePersistenceBroker.java
DelegatingPersistenceBroker.java
Log:
remove unused methods, improve PB instance handling,
new method PBF.setDefaultPBKey
Revision Changes Path
1.9 +8 -12 jakarta-ojb/src/java/org/apache/ojb/broker/ta/PersistenceBrokerFactoryIF.java
Index: PersistenceBrokerFactoryIF.java
===================================================================
RCS file: /home/cvs/jakarta-ojb/src/java/org/apache/ojb/broker/ta/PersistenceBrokerFactoryIF.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- PersistenceBrokerFactoryIF.java 23 Nov 2002 10:25:00 -0000 1.8
+++ PersistenceBrokerFactoryIF.java 28 Nov 2002 22:10:57 -0000 1.9
@@ -68,26 +68,22 @@
public interface PersistenceBrokerFactoryIF extends Configurable
{
/**
- * For internal use! This methos creates real new PB instances
+ * Set the default PersistenceBroker used within OJB
+ * to find OJB internal tables.
*/
- public PersistenceBroker createNewBrokerInstance(PBKey key) throws PBFactoryException;
-
-
- /**
- * For internal use only!
- * Release broker back to pool, called
- * within {@link org.apache.ojb.broker.PersistenceBroker#close}
- */
- public void releaseInstance(PersistenceBroker broker);
+ public void setDefaultPersistenceBroker(PBKey key);
/**
- * Return {@link org.apache.ojb.broker.PersistenceBroker} instance for the given {@link org.apache.ojb.broker.PBKey}.
+ * Return {@link org.apache.ojb.broker.PersistenceBroker} instance for the given
+ * {@link org.apache.ojb.broker.PBKey}.
+ *
* @param key
*/
public PersistenceBroker createPersistenceBroker(PBKey key) throws PBFactoryException;
/**
* Return {@link org.apache.ojb.broker.PersistenceBroker} instance.
+ *
* @param repositoryFile repository.xml file name
* @param user
* @param password
1.25 +121 -101 jakarta-ojb/src/java/org/apache/ojb/broker/ta/PersistenceBrokerFactoryDefaultImpl.java
Index: PersistenceBrokerFactoryDefaultImpl.java
===================================================================
RCS file: /home/cvs/jakarta-ojb/src/java/org/apache/ojb/broker/ta/PersistenceBrokerFactoryDefaultImpl.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- PersistenceBrokerFactoryDefaultImpl.java 27 Nov 2002 05:48:15 -0000 1.24
+++ PersistenceBrokerFactoryDefaultImpl.java 28 Nov 2002 22:10:57 -0000 1.25
@@ -55,17 +55,20 @@
*/
import org.apache.commons.pool.KeyedObjectPool;
+import org.apache.commons.pool.KeyedPoolableObjectFactory;
import org.apache.commons.pool.impl.GenericKeyedObjectPool;
import org.apache.ojb.broker.PBFactoryException;
import org.apache.ojb.broker.PBKey;
import org.apache.ojb.broker.PBState;
import org.apache.ojb.broker.PersistenceBroker;
-import org.apache.ojb.broker.metadata.DescriptorRepository;
import org.apache.ojb.broker.accesslayer.ConnectionFactoryFactory;
+import org.apache.ojb.broker.metadata.DescriptorRepository;
import org.apache.ojb.broker.server.PersistenceBrokerClient;
import org.apache.ojb.broker.server.ServerPool;
import org.apache.ojb.broker.singlevm.PersistenceBrokerConfiguration;
+import org.apache.ojb.broker.singlevm.PersistenceBrokerImpl;
import org.apache.ojb.broker.singlevm.PersistenceBrokerThreadMapping;
+import org.apache.ojb.broker.singlevm.PoolablePersistenceBroker;
import org.apache.ojb.broker.util.configuration.Configuration;
import org.apache.ojb.broker.util.configuration.ConfigurationException;
import org.apache.ojb.broker.util.configuration.Configurator;
@@ -76,6 +79,8 @@
import org.apache.ojb.broker.util.logging.LoggerFactory;
import org.apache.ojb.broker.util.logging.LoggingHelper;
+import java.util.Properties;
+
/**
* This is the default implementation of the {@link PersistenceBrokerFactoryIF}
* interface.
@@ -85,33 +90,64 @@
*/
public class PersistenceBrokerFactoryDefaultImpl implements PersistenceBrokerFactoryIF
{
+ private static Logger log = LoggerFactory.getLogger(PersistenceBrokerFactoryDefaultImpl.class);
+
private Class implementationClass;
private Configurator configurator;
- private Logger log;
private PersistenceBroker lastServed;
private long instanceCount;
- private KeyedObjectPool brokerPool;
- private PBKey defaultPBKey;
+ private GenericKeyedObjectPool brokerPool;
+ private PBPoolInfo poolConfig;
public PersistenceBrokerFactoryDefaultImpl()
{
- log = LoggerFactory.getLogger(PersistenceBrokerFactoryDefaultImpl.class);
setConfigurator(OjbConfigurator.getInstance());
+ // get PB-pool configuration properties from OJB.properties
+ poolConfig = new PBPoolInfo();
+ // setup pool for PB instances
brokerPool = this.createPool();
- defaultPBKey = DescriptorRepository.getDefaultInstance().getPBkey();
+ log.info("Create PersistenceBroker instance pool, pool configuration was " + getPoolConfiguration());
+ }
+ public void setDefaultPersistenceBroker(PBKey key)
+ {
+ DescriptorRepository.setDefaultPBKey(key);
}
+ /**
+ * could be used for monitoring
+ * @todo is this useful?
+ */
+ public Properties getPoolConfiguration()
+ {
+ return poolConfig;
+ }
+ /**
+ * could be used for runtime configuration
+ * @todo is this useful?
+ */
+ public void setPoolConfiguration(Properties prop)
+ {
+ poolConfig = new PBPoolInfo(prop);
+ log.info("Change pooling configuration properties: " + poolConfig.getKeyedObjectPoolConfig());
+ brokerPool.setConfig(poolConfig.getKeyedObjectPoolConfig());
+ }
/**
* For internal use! This methos creates real new PB instances
*/
public PersistenceBroker createNewBrokerInstance(PBKey key) throws PBFactoryException
{
- if (log.isDebugEnabled()) log.debug("Create new PB instance");
- log.info("Already created persistence broker instances: "+instanceCount);
- ++this.instanceCount;
+ if (log.isEnabledFor(Logger.INFO))
+ {
+ // only count created instances when INFO-Log-Level
+ log.info("Create new PB instance, already created persistence broker instances: " +
+ instanceCount);
+ // useful for testing
+ ++this.instanceCount;
+ }
+
PersistenceBroker instance = null;
Class[] types = {PBKey.class, PersistenceBrokerFactoryIF.class};
Object[] args = {key, this};
@@ -168,6 +204,7 @@
return broker;
}
+
public PersistenceBroker createPersistenceBroker(String repositoryFile, String user, String password)
throws PBFactoryException
{
@@ -176,40 +213,13 @@
public PersistenceBroker defaultPersistenceBroker(String user, String password) throws PBFactoryException
{
- return this.createPersistenceBroker(new PBKey(this.defaultPBKey.getRepositoryFile(), user, password));
+ return this.createPersistenceBroker(
+ new PBKey(DescriptorRepository.getDefaultPBKey().getRepositoryFile(), user, password));
}
public PersistenceBroker defaultPersistenceBroker() throws PBFactoryException
{
- return this.createPersistenceBroker(this.defaultPBKey);
- }
-
- public void releaseInstance(PersistenceBroker broker)
- {
- if (broker == null) return;
- /*@todo while this method was public for user, redirect to the PB.close method
- to let PB do intern cleaning process, if all clients only use PB.close
- to release instance, we do no longer need this check*/
- if (broker instanceof PBState && !((PBState) broker).isClosed())
- {
- broker.close();
- }
- else if (broker instanceof PersistenceBrokerClient)
- {
- return;
- }
- else
- {
- try
- {
- brokerPool.returnObject(broker.getPBKey(), broker);
- }
- catch (Exception e)
- {
- log.error("Return broker instance to pool failed", e);
- //throw new PersistenceBrokerException(e);
- }
- }
+ return this.createPersistenceBroker(DescriptorRepository.getDefaultPBKey());
}
/*
@@ -260,7 +270,7 @@
{
instanceCount = 0;
brokerPool.clear();
- ConnectionFactoryFactory.releaseAllResources();
+ ConnectionFactoryFactory.getInstance().releaseAllResources();
//release all resources regarding the connection pooling
}
catch (Exception e)
@@ -274,30 +284,15 @@
* the {@link org.apache.ojb.broker.PersistenceBroker} instances - override this method to
* implement your own pool and {@link org.apache.commons.pool.KeyedPoolableObjectFactory}.
*/
- public KeyedObjectPool createPool()
+ private GenericKeyedObjectPool createPool()
{
- PBPoolInfo poolInfo = getPBPoolConfiguration();
- GenericKeyedObjectPool.Config conf = new GenericKeyedObjectPool.Config();
- conf.maxActive = poolInfo.getMaxActive();
- conf.maxIdle = poolInfo.getMaxIdle();
- conf.maxWait = poolInfo.getMaxWait();
- conf.whenExhaustedAction = poolInfo.getWhenExhaustedAction();
- conf.minEvictableIdleTimeMillis = poolInfo.getMinEvictableIdleTimeMillis();
- conf.timeBetweenEvictionRunsMillis = poolInfo.getTimeBetweenEvictionRunsMillis();
+ GenericKeyedObjectPool.Config conf = poolConfig.getKeyedObjectPoolConfig();
if (log.isDebugEnabled())
- log.debug("PersistenceBroker pool will be setup with the following" +
- " configuration" + LoggingHelper.traceObject(conf));
-
- return new GenericKeyedObjectPool(new PBKeyedPoolableObjectFactory(this), conf);
- }
-
- /**
- * Return a PB pool configuration object, comprised all settings
- * made in OJB config files.
- */
- public PBPoolInfo getPBPoolConfiguration()
- {
- return new PBPoolInfo();
+ log.debug("PersistenceBroker pool will be setup with the following configuration " +
+ LoggingHelper.traceObject(conf));
+ GenericKeyedObjectPool pool = new GenericKeyedObjectPool(null, conf);
+ pool.setFactory(new PBKeyedPoolableObjectFactory(this, pool));
+ return pool;
}
//**************************************************************************************
@@ -305,42 +300,67 @@
//**************************************************************************************
//
-// /**
-// * This is a {@link org.apache.commons.pool.KeyedPoolableObjectFactory} implementation,
-// * manage the life-cycle of {@link org.apache.ojb.broker.PersistenceBroker} instances
-// * hold in an {@link org.apache.commons.pool.KeyedObjectPool}.
-// *
-// * @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
-// */
-// class PBKeyedPoolableObjectFactory implements KeyedPoolableObjectFactory
-// {
-// private PersistenceBrokerFactoryIF pbf;
-//
-// public PBKeyedPoolableObjectFactory(PersistenceBrokerFactoryIF pbf)
-// {
-// this.pbf = pbf;
-// }
-//
-// public Object makeObject(Object key) throws Exception
-// {
-// return null;
-// }
-//
-// public void destroyObject(Object key, Object obj) throws Exception
-// {
-// }
-//
-// public boolean validateObject(Object key, Object obj)
-// {
-// return false;
-// }
-//
-// public void activateObject(Object key, Object obj) throws Exception
-// {
-// }
-//
-// public void passivateObject(Object key, Object obj) throws Exception
-// {
-// }
-// }
+ /**
+ * This is a {@link org.apache.commons.pool.KeyedPoolableObjectFactory} implementation,
+ * manage the life-cycle of {@link org.apache.ojb.broker.PersistenceBroker} instances
+ * hold in an {@link org.apache.commons.pool.KeyedObjectPool}.
+ *
+ * @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
+ */
+ class PBKeyedPoolableObjectFactory implements KeyedPoolableObjectFactory
+ {
+ private PersistenceBrokerFactoryDefaultImpl pbf;
+ private KeyedObjectPool pool;
+
+ public PBKeyedPoolableObjectFactory(PersistenceBrokerFactoryDefaultImpl pbf, KeyedObjectPool pool)
+ {
+ this.pbf = pbf;
+ this.pool = pool;
+ }
+
+ public Object makeObject(Object key) throws Exception
+ {
+ return new PoolablePersistenceBroker(pbf.createNewBrokerInstance((PBKey) key), pool);
+ }
+
+ /**
+ * Do all cleanup stuff here.
+ */
+ public void destroyObject(Object key, Object obj) throws Exception
+ {
+ if (obj instanceof PersistenceBrokerImpl)
+ {
+ ((PersistenceBrokerImpl) obj).releaseAllResources();
+ }
+ }
+
+ /**
+ * no-op - to use this feature, override
+ * {@link org.apache.ojb.broker.ta.PBPoolInfo#init}
+ * method. See documentation jakarta-connons-pool api.
+ */
+ public boolean validateObject(Object key, Object obj)
+ {
+ //here we could validate the PB instance
+ //if corresponding configuration properties are set
+ return true;
+ }
+
+ /**
+ * Called before borrow object from pool.
+ */
+ public void activateObject(Object key, Object obj) throws Exception
+ {
+ ((PBState) obj).setClosed(false);
+ }
+
+ /**
+ * Called before return object to pool.
+ */
+ public void passivateObject(Object key, Object obj) throws Exception
+ {
+ //this maybe already done before
+ ((PBState) obj).setClosed(true);
+ }
+ }
}
1.2 +21 -5 jakarta-ojb/src/java/org/apache/ojb/broker/ta/PBPoolInfo.java
Index: PBPoolInfo.java
===================================================================
RCS file: /home/cvs/jakarta-ojb/src/java/org/apache/ojb/broker/ta/PBPoolInfo.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PBPoolInfo.java 2 Aug 2002 18:52:24 -0000 1.1
+++ PBPoolInfo.java 28 Nov 2002 22:10:57 -0000 1.2
@@ -1,29 +1,45 @@
package org.apache.ojb.broker.ta;
-import org.apache.ojb.broker.util.pooling.PoolInfo;
import org.apache.ojb.broker.util.configuration.Configurable;
import org.apache.ojb.broker.util.configuration.Configuration;
import org.apache.ojb.broker.util.configuration.ConfigurationException;
import org.apache.ojb.broker.util.configuration.impl.OjbConfigurator;
import org.apache.ojb.broker.util.logging.LoggerFactory;
+import org.apache.ojb.broker.util.pooling.PoolConfiguration;
+
+import java.util.Properties;
/**
- * Make available configuration pool properties used in
+ * Encapsulates the PB-pool configuration properties used in
+ * in the {@link org.apache.ojb.broker.ta.PersistenceBrokerFactoryIF}
+ * implementations, e.g.
* {@link org.apache.ojb.broker.ta.PersistenceBrokerDefaultImpl}.
*
* @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
*/
-public class PBPoolInfo extends PoolInfo implements Configurable
+public class PBPoolInfo extends PoolConfiguration implements Configurable
{
public PBPoolInfo()
{
+ super();
+ init();
+ OjbConfigurator.getInstance().configure(this);
+ }
+
+ public PBPoolInfo(Properties properties)
+ {
+ super();
init();
OjbConfigurator.getInstance().configure(this);
+ this.putAll(properties);
}
+ /**
+ * Read in the configuration properties.
+ */
public void configure(Configuration pConfig) throws ConfigurationException
{
- if(pConfig instanceof PBPoolConfiguration)
+ if (pConfig instanceof PBPoolConfiguration)
{
PBPoolConfiguration conf = (PBPoolConfiguration) pConfig;
this.setMaxActive(conf.getMaxActive());
@@ -35,7 +51,7 @@
}
else
{
- LoggerFactory.getDefaultLogger().error(this.getClass().getName()+
+ LoggerFactory.getDefaultLogger().error(this.getClass().getName() +
" cannot read configuration properties, use default.");
}
}
1.3 +5 -1 jakarta-ojb/src/java/org/apache/ojb/broker/ta/PBKeyedPoolableObjectFactory.java
Index: PBKeyedPoolableObjectFactory.java
===================================================================
RCS file: /home/cvs/jakarta-ojb/src/java/org/apache/ojb/broker/ta/PBKeyedPoolableObjectFactory.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PBKeyedPoolableObjectFactory.java 2 Aug 2002 18:52:24 -0000 1.2
+++ PBKeyedPoolableObjectFactory.java 28 Nov 2002 22:10:57 -0000 1.3
@@ -12,6 +12,8 @@
*
* @see org.apache.ojb.broker.ta.PersistenceBrokerFactoryDefaultImpl
*
+ * @deprecated
+ *
* @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
*/
class PBKeyedPoolableObjectFactory implements KeyedPoolableObjectFactory
@@ -25,7 +27,9 @@
public Object makeObject(Object key) throws Exception
{
- return pbf.createNewBrokerInstance((PBKey)key);
+ /*@todo implementation*/
+ throw new UnsupportedOperationException("Not implemented!!");
+// return pbf.createNewBrokerInstance((PBKey)key);
}
/**
1.84 +2 -17 jakarta-ojb/src/java/org/apache/ojb/broker/singlevm/PersistenceBrokerImpl.java
Index: PersistenceBrokerImpl.java
===================================================================
RCS file: /home/cvs/jakarta-ojb/src/java/org/apache/ojb/broker/singlevm/PersistenceBrokerImpl.java,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -r1.83 -r1.84
--- PersistenceBrokerImpl.java 27 Nov 2002 05:55:12 -0000 1.83
+++ PersistenceBrokerImpl.java 28 Nov 2002 22:10:57 -0000 1.84
@@ -275,18 +275,6 @@
{
this.setClosed(true);
}
-
- /*@todo while pbf.releaseInstance was public, we setClosed(true)
- in further versions this method should only called by the pool*/
- try
- {
- this.pbf.releaseInstance(this);
- }
- catch (Throwable t)
- {
- logger.error("Release this PB using PBF failed", t);
- return false;
- }
PersistenceBrokerThreadMapping.unsetCurrentPersistenceBroker(this.pbKey, this);
return true;
}
@@ -1939,7 +1927,7 @@
// cache object for symmetry with getObjectByXXX()
- objectCache.cache(obj);
+ objectCache.cache(new Identity(obj, this), obj);
LoadedObjectsRegistry.register(obj);
// 4. store 1:n and m:n associations
storeCollections(obj, cld.getCollectionDescriptors(), markedForStore);
@@ -2460,7 +2448,6 @@
private OJBIterator getReportQueryIteratorFromQuery(Query query, ClassDescriptor cld) throws PersistenceBrokerException
{
RsIteratorFactory factory = ReportRsIteratorFactoryImpl.getInstance();
-
return getRsIteratorFromQueryExtentAware(query, cld, factory);
}
@@ -2517,7 +2504,6 @@
private boolean isPKautoIncrement(FieldDescriptor[] fdesc)
{
int fieldDescriptorSize = fdesc.length;
-
for (int i = 0; i < fieldDescriptorSize; i++)
{
/**
@@ -2530,7 +2516,6 @@
return false;
}
}
-
return true;
}
1.1 jakarta-ojb/src/java/org/apache/ojb/broker/singlevm/PoolablePersistenceBroker.java
Index: PoolablePersistenceBroker.java
===================================================================
package org.apache.ojb.broker.singlevm;
import org.apache.commons.pool.KeyedObjectPool;
import org.apache.ojb.broker.PersistenceBroker;
import org.apache.ojb.broker.util.logging.LoggerFactory;
/**
* A delegating PersistenceBroker that, rather than closing the underlying
* PersistenceBroker, returns itself to an ObjectPool when closed.
*
* <b>FOR INTERNAL USE ONLY</b>
*
* @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
* @version $Id: PoolablePersistenceBroker.java,v 1.1 2002/11/28 22:10:57 arminw Exp $
*/
public class PoolablePersistenceBroker extends DelegatingPersistenceBroker
{
private KeyedObjectPool pool;
public PoolablePersistenceBroker(PersistenceBroker broker, KeyedObjectPool pool)
{
super(broker);
this.pool = pool;
}
public boolean close()
{
super.close();
try
{
pool.returnObject(this.getPBKey(), this);
return true;
}
catch (Exception e)
{
LoggerFactory.getDefaultLogger().error("Unexpected exception when returning instance to pool", e);
return false;
}
}
}
1.1 jakarta-ojb/src/java/org/apache/ojb/broker/singlevm/DelegatingPersistenceBroker.java
Index: DelegatingPersistenceBroker.java
===================================================================
package org.apache.ojb.broker.singlevm;
import org.apache.ojb.broker.Identity;
import org.apache.ojb.broker.ManageableCollection;
import org.apache.ojb.broker.PBKey;
import org.apache.ojb.broker.PBState;
import org.apache.ojb.broker.PersistenceBroker;
import org.apache.ojb.broker.PersistenceBrokerException;
import org.apache.ojb.broker.PersistenceBrokerListener;
import org.apache.ojb.broker.TransactionAbortedException;
import org.apache.ojb.broker.TransactionInProgressException;
import org.apache.ojb.broker.TransactionNotInProgressException;
import org.apache.ojb.broker.accesslayer.ConnectionManagerIF;
import org.apache.ojb.broker.accesslayer.StatementManagerIF;
import org.apache.ojb.broker.metadata.ClassDescriptor;
import org.apache.ojb.broker.metadata.DescriptorRepository;
import org.apache.ojb.broker.metadata.FieldDescriptor;
import org.apache.ojb.broker.query.Query;
import org.apache.ojb.broker.util.ObjectModification;
import org.apache.ojb.broker.util.configuration.Configuration;
import org.apache.ojb.broker.util.configuration.ConfigurationException;
import java.util.Collection;
import java.util.Enumeration;
import java.util.Iterator;
/**
* Delegating implementation of a PersistenceBroker
*
* @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
*/
public class DelegatingPersistenceBroker implements PersistenceBroker, PBState
{
protected PersistenceBroker broker;
public DelegatingPersistenceBroker(PersistenceBroker broker)
{
this.broker = broker;
}
public boolean isClosed()
{
return ((PBState) broker).isClosed();
}
public void setClosed(boolean closed)
{
((PBState) broker).setClosed(closed);
}
public void beginTransaction()
throws TransactionInProgressException, TransactionAbortedException
{
broker.beginTransaction();
}
public void commitTransaction()
throws TransactionNotInProgressException, TransactionAbortedException
{
broker.commitTransaction();
}
public void abortTransaction() throws TransactionNotInProgressException
{
broker.abortTransaction();
}
public boolean isInTransaction() throws PersistenceBrokerException
{
return broker.isInTransaction();
}
public boolean close()
{
return broker.close();
}
public void delete(Object obj) throws PersistenceBrokerException
{
broker.delete(obj);
}
public void store(Object obj) throws PersistenceBrokerException
{
broker.store(obj);
}
public void store(Object obj,
ObjectModification modification) throws PersistenceBrokerException
{
broker.store(obj, modification);
}
public PBKey getPBKey()
{
return broker.getPBKey();
}
public void setPBKey(PBKey key)
{
broker.setPBKey(key);
}
public void removeFromCache(Object obj) throws PersistenceBrokerException
{
broker.removeFromCache(obj);
}
public void clearCache() throws PersistenceBrokerException
{
broker.clearCache();
}
public void invalidate(Identity oid) throws PersistenceBrokerException
{
broker.invalidate(oid);
}
public DescriptorRepository getDescriptorRepository()
{
return broker.getDescriptorRepository();
}
public void removeAllListeners() throws PersistenceBrokerException
{
broker.removeAllListeners();
}
public void removeListener(PersistenceBrokerListener listener) throws PersistenceBrokerException
{
broker.removeListener(listener);
}
public void addListener(PersistenceBrokerListener listener) throws PersistenceBrokerException
{
broker.addListener(listener);
}
public void retrieveReference(Object pInstance, String pAttributeName) throws PersistenceBrokerException
{
broker.retrieveReference(pInstance, pAttributeName);
}
public void retrieveAllReferences(Object pInstance) throws PersistenceBrokerException
{
broker.retrieveAllReferences(pInstance);
}
public ConnectionManagerIF getConnectionManager()
{
return broker.getConnectionManager();
}
public StatementManagerIF getStatementManager()
{
return broker.getStatementManager();
}
public Class getExtentClass(Class clazz) throws PersistenceBrokerException
{
return broker.getExtentClass(clazz);
}
public void setClassDescriptor(ClassDescriptor modifiedOrNewDescriptor) throws PersistenceBrokerException
{
broker.setClassDescriptor(modifiedOrNewDescriptor);
}
public boolean hasClassDescriptor(Class clazz)
{
return broker.hasClassDescriptor(clazz);
}
public ClassDescriptor getClassDescriptor(Class clazz) throws PersistenceBrokerException
{
return broker.getClassDescriptor(clazz);
}
public Object getUniqueObject(Class extent, String attribute) throws PersistenceBrokerException
{
return broker.getUniqueObject(extent, attribute);
}
public String getUniqueString(Class extent, String attribute) throws PersistenceBrokerException
{
return broker.getUniqueString(extent, attribute);
}
public long getUniqueLong(Class extent, String attribute) throws PersistenceBrokerException
{
return broker.getUniqueLong(extent, attribute);
}
public int getUniqueId(Class extent, String attribute) throws PersistenceBrokerException
{
return broker.getUniqueId(extent, attribute);
}
public int getUniqueId(FieldDescriptor field) throws PersistenceBrokerException
{
return broker.getUniqueId(field);
}
public long getUniqueLong(FieldDescriptor field) throws PersistenceBrokerException
{
return broker.getUniqueLong(field);
}
public String getUniqueString(FieldDescriptor field) throws PersistenceBrokerException
{
return broker.getUniqueString(field);
}
public Object getUniqueObject(FieldDescriptor field) throws PersistenceBrokerException
{
return broker.getUniqueObject(field);
}
public Enumeration getPKEnumerationByQuery(Class primaryKeyClass,
Query query) throws PersistenceBrokerException
{
return broker.getPKEnumerationByQuery(primaryKeyClass, query);
}
public Object getObjectByQuery(Query query) throws PersistenceBrokerException
{
return broker.getObjectByQuery(query);
}
public Object getObjectByIdentity(Identity id) throws PersistenceBrokerException
{
return broker.getObjectByIdentity(id);
}
public Iterator getReportQueryIteratorByQuery(Query query) throws PersistenceBrokerException
{
return broker.getReportQueryIteratorByQuery(query);
}
public Iterator getIteratorByQuery(Query query) throws PersistenceBrokerException
{
return broker.getIteratorByQuery(query);
}
public ManageableCollection getCollectionByQuery(Class collectionClass, Query query)
throws PersistenceBrokerException
{
return broker.getCollectionByQuery(collectionClass, query);
}
public int getCount(Query query) throws PersistenceBrokerException
{
return broker.getCount(query);
}
public Collection getCollectionByQuery(Query query) throws PersistenceBrokerException
{
return broker.getCollectionByQuery(query);
}
public void configure(Configuration pConfig) throws ConfigurationException
{
broker.configure(pConfig);
}
public org.odbms.Query query()
{
return broker.query();
}
public void deleteByQuery(Query query) throws PersistenceBrokerException
{
broker.deleteByQuery(query);
}
}