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]

Reply via email to