You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ba...@apache.org on 2002/03/11 16:40:53 UTC

cvs commit: jakarta-commons-sandbox/simplestore/src/test/org/apache/commons/simplestore TestSample.java

baliuka     02/03/11 07:40:53

  Modified:    simplestore/src/java/org/apache/commons/simplestore/persistence
                        InternalTransaction.java
               simplestore/src/java/org/apache/commons/simplestore/persistence/impl
                        AbstractStorage.java DBStorage.java
                        TransactionImpl.java
               simplestore/src/test/org/apache/commons/simplestore
                        TestSample.java
  Log:
  Some refactoring for Collection type support
  
  Revision  Changes    Path
  1.2       +3 -1      jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/InternalTransaction.java
  
  Index: InternalTransaction.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/InternalTransaction.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- InternalTransaction.java	11 Feb 2002 20:23:30 -0000	1.1
  +++ InternalTransaction.java	11 Mar 2002 15:40:53 -0000	1.2
  @@ -59,7 +59,7 @@
   /**
    *@author     Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
    *      baliuka@mwm.lt</a>
  - *@version    $Id: InternalTransaction.java,v 1.1 2002/02/11 20:23:30 froehlich Exp $
  + *@version    $Id: InternalTransaction.java,v 1.2 2002/03/11 15:40:53 baliuka Exp $
    */
   
   public interface InternalTransaction extends Transaction {
  @@ -72,6 +72,8 @@
   
       void add(MetaObject props);
   
  +    java.util.Collection getTransactionalObjects();
  +    
       void setAttribute(String name, Object value);
   
       Object getAttribute(String name);
  
  
  
  1.6       +12 -31    jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/AbstractStorage.java
  
  Index: AbstractStorage.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/AbstractStorage.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AbstractStorage.java	11 Mar 2002 09:53:07 -0000	1.5
  +++ AbstractStorage.java	11 Mar 2002 15:40:53 -0000	1.6
  @@ -68,7 +68,7 @@
   /**
    *@author     Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
    *      baliuka@mwm.lt</a>
  - *@version    $Id: AbstractStorage.java,v 1.5 2002/03/11 09:53:07 baliuka Exp $
  + *@version    $Id: AbstractStorage.java,v 1.6 2002/03/11 15:40:53 baliuka Exp $
    */
   
   public abstract class AbstractStorage
  @@ -98,8 +98,7 @@
           try {
               internalBegin();
           } catch (Throwable t) {
  -            // TODO
  -            t.printStackTrace();
  +              t.printStackTrace();
               throw new RuntimeException(t.getClass() + ":" + t.getMessage());
           }
       }
  @@ -109,33 +108,19 @@
       }
       
       public void commit() {
  -        try {
  -           // getTransaction().commit();
  -          //  internalCommit();
              throw new java.lang.NoSuchMethodError(); 
  -        } catch (Throwable t) {
  -            // TODO
  -            t.printStackTrace();
  -            throw new RuntimeException(t.getClass() + ":" + t.getMessage());
  -        }
  -    }
  +       }
       
       public void begin() {
  -        try {
  -        //    getTransaction().begin();
  -        //    internalBegin();
              throw new java.lang.NoSuchMethodError(); 
  -        } catch (Throwable t) {
  -            // TODO
  -            throw new RuntimeException(t.getClass() + ":" + t.getMessage());
  -        }
  +      
       }
       
       public void rollback(Set objects) {
           try {
  -            //TODO implement roolback
  +      
               internalRollback();
  -          //  objects.clear();
  +      
           } catch (Throwable t) {
               throw new RuntimeException(t.getClass() + ":" + t.getMessage());
           }
  @@ -143,14 +128,7 @@
       
       public void rollback() {
           
  -        try {
  -          //  getTransaction().rollback();
  -         //   internalRollback();
               throw new java.lang.NoSuchMethodError();
  -        } catch (Throwable t) {
  -            // TODO
  -            throw new RuntimeException(t.getClass() + ":" + t.getMessage());
  -        }
           
       }
       
  @@ -178,11 +156,10 @@
                   }
                   throw new java.lang.IllegalStateException(pp.toString());
               }
  -           // objects.clear();
  +      
               internalCommit();
           } catch (Throwable t) {
  -            // TODO
  -            t.printStackTrace();
  +          t.printStackTrace();
               throw new RuntimeException(t.getMessage() + " "  + pp);
           }
           
  @@ -200,6 +177,10 @@
       protected abstract void internalBegin() throws StorageException;
       
       public abstract java.util.Collection retrieve(Class clasz, int index, Object value)throws StorageException; 
  +    
  +    public java.util.Collection getTransactionalObjects() {
  +        throw new java.lang.NoSuchMethodError();
  +    }
       
   }
   
  
  
  
  1.9       +10 -1     jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/DBStorage.java
  
  Index: DBStorage.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/DBStorage.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DBStorage.java	11 Mar 2002 10:37:22 -0000	1.8
  +++ DBStorage.java	11 Mar 2002 15:40:53 -0000	1.9
  @@ -85,7 +85,7 @@
   /**
    *@author     Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
    *      baliuka@mwm.lt</a>
  - *@version    $Id: DBStorage.java,v 1.8 2002/03/11 10:37:22 baliuka Exp $
  + *@version    $Id: DBStorage.java,v 1.9 2002/03/11 15:40:53 baliuka Exp $
    */
   public class DBStorage extends AbstractStorage implements org.apache.commons.simplestore.tools.Constants {
       
  @@ -429,6 +429,15 @@
           final String sql = "SELECT "+ mClass.getOIDName() + " AS " + INTERNAL_OID +
                                 ", * FROM " + mClass.getName() +
           " WHERE " + mClass.getPropertyName(index) + "=?";
  +        
  +        java.util.Collection tObjects = getTransaction().getTransactionalObjects();
  +        for( java.util.Iterator i = tObjects.iterator(); i.hasNext(); ){
  +          MetaObject mo = (MetaObject)i.next();
  +          if( mo.getPersistentClass().equals(clasz) && mo.getProperty(index).equals(value) ){
  +              objects.add( mo.getObject() );
  +          }
  +        }
  +        
            
           excecute( sql, new Object[]{value}, new QueryHandler(objects, clasz));
           
  
  
  
  1.4       +17 -5     jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/TransactionImpl.java
  
  Index: TransactionImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/TransactionImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TransactionImpl.java	10 Mar 2002 12:32:30 -0000	1.3
  +++ TransactionImpl.java	11 Mar 2002 15:40:53 -0000	1.4
  @@ -68,7 +68,7 @@
   /**
    *@author     Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
    *      baliuka@mwm.lt</a>
  - *@version    $Id: TransactionImpl.java,v 1.3 2002/03/10 12:32:30 baliuka Exp $
  + *@version    $Id: TransactionImpl.java,v 1.4 2002/03/11 15:40:53 baliuka Exp $
    */
   
   public class TransactionImpl 
  @@ -147,6 +147,9 @@
       public void rollback() {
           checkState();
           checkState(!complete);
  +        doRollback();
  +    }
  +  private void doRollback() {
           Iterator i = objects.iterator();
           while (i.hasNext()) {
               MetaObject mo = (MetaObject) i.next();
  @@ -173,18 +176,15 @@
       }
   
       public void begin(Set objects) {
  -       // transaction.begin(objects);
          throw new java.lang.NoSuchMethodError(); 
       }
   
       public void rollback(Set objects) {
           throw new java.lang.NoSuchMethodError();
  -       // transaction.rollback(objects);
       }
   
       public void commit(Set objects) {
  -       // transaction.commit(objects);
  -        throw new java.lang.NoSuchMethodError();
  +            throw new java.lang.NoSuchMethodError();
       }
   
       public void removeAttribute(String name) {
  @@ -201,6 +201,18 @@
           int id = getCurrentThreadId();
           if (threadId != id) {
               throw new IllegalStateException("Accessed Transaction " + threadId + " in " + id);
  +        }
  +    }
  +    
  +    public java.util.Collection getTransactionalObjects() {
  +        return java.util.Collections.unmodifiableCollection(objects);
  +    }
  +    protected void finalize()throws Throwable{
  +        try{
  +          checkState(complete);
  +        }catch(Throwable t){
  +           t.printStackTrace();//FATAL
  +           doRollback();
           }
       }
   }
  
  
  
  1.13      +1 -3      jakarta-commons-sandbox/simplestore/src/test/org/apache/commons/simplestore/TestSample.java
  
  Index: TestSample.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/simplestore/src/test/org/apache/commons/simplestore/TestSample.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- TestSample.java	11 Mar 2002 09:53:08 -0000	1.12
  +++ TestSample.java	11 Mar 2002 15:40:53 -0000	1.13
  @@ -73,7 +73,7 @@
   /**
    *@author     Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
    *      baliuka@mwm.lt</a>
  - *@version    $Id: TestSample.java,v 1.12 2002/03/11 09:53:08 baliuka Exp $
  + *@version    $Id: TestSample.java,v 1.13 2002/03/11 15:40:53 baliuka Exp $
    */
   public class TestSample extends TestCase implements org.apache.commons.simplestore.tools.Constants{
       
  @@ -124,9 +124,7 @@
               object3.setStrVal1("" + i);
               object3.setBoolVal(true);
               object3.setParent(object2);
  -            transaction.commit();
               
  -            transaction.begin();
               assertTrue("Single child", object2.getChildren().size() == 1);
               transaction.commit();
               
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>