Author: mkalen Date: Wed Apr 11 06:20:18 2007 New Revision: 527484 URL: http://svn.apache.org/viewvc?view=rev&rev=527484 Log: Reimplement default sequence manager (fix regression if no explicit SequenceDescriptor / <sequence-manager/>).
Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/PersistenceBrokerImpl.java db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerHelper.java Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/PersistenceBrokerImpl.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/PersistenceBrokerImpl.java?view=diff&rev=527484&r1=527483&r2=527484 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/PersistenceBrokerImpl.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/core/PersistenceBrokerImpl.java Wed Apr 11 06:20:18 2007 @@ -221,7 +221,7 @@ SequenceDescriptor sd = serviceConnectionManager().getConnectionDescriptor().getSequenceDescriptor(); if(logger.isDebugEnabled()) logger.debug("Create sequence manager for descriptor: " + sd); sequenceManager = SequenceManagerHelper.createManager(this, sd); - if(sd.isPerFieldSequences()) + if(sd != null && sd.isPerFieldSequences()) { if(logger.isDebugEnabled()) logger.debug("Enable per field sequence manager declaration"); sequenceManager = new PerFieldManager(this, sequenceManager); @@ -1914,7 +1914,7 @@ { store(obj, mod, false); } - + public void store(Object obj, ObjectModification mod, boolean ignoreReferences) throws PersistenceBrokerException { obj = extractObjectToStore(obj); @@ -2382,8 +2382,8 @@ /** * Creates a proxy instance. - * - * @param baseClassForProxy The base class that the Proxy should extend. For dynamic Proxies, the method of + * + * @param baseClassForProxy The base class that the Proxy should extend. For dynamic Proxies, the method of * generation is dependent on the ProxyFactory implementation. * @param realSubjectsIdentity The identity of the subject * @return An instance of the proxy subclass Modified: db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerHelper.java URL: http://svn.apache.org/viewvc/db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerHelper.java?view=diff&rev=527484&r1=527483&r2=527484 ============================================================================== --- db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerHelper.java (original) +++ db/ojb/branches/OJB_1_0_RELEASE/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerHelper.java Wed Apr 11 06:20:18 2007 @@ -517,10 +517,18 @@ */ public static SequenceManager createManager(PersistenceBroker broker, SequenceDescriptor descriptor) { + // Default sequence manager (if no explicit SequenceDescriptor / <sequence-manager/>) + // is SequenceManagerHighLowImpl, according to: + // http://db.apache.org/ojb/docu/guides/sequencemanager.html#How+to+change+the+sequence+manager%3F + // (mkalen: NB! The deprecated SequenceManagerFactory used SequenceManagerInMemoryImpl as default) + Class sequenceManagerClass = SequenceManagerHighLowImpl.class; + if(descriptor != null) { + sequenceManagerClass = descriptor.getSequenceManagerClass(); + } try { return (SequenceManager) ClassHelper.newInstance( - descriptor.getSequenceManagerClass(), + sequenceManagerClass, new Class[]{PersistenceBroker.class, SequenceDescriptor.class}, new Object[]{broker, descriptor}); } @@ -530,7 +538,7 @@ try { return (SequenceManager) ClassHelper.newInstance( - descriptor.getSequenceManagerClass(), + sequenceManagerClass, new Class[]{PersistenceBroker.class}, new Object[]{broker}); } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]