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/05/12 13:40:02 UTC

cvs commit: jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl AbstractStorage.java DBStorage.java JDBMStorage.java KeyPair.java PersistenceManagerImpl.java PersistentProxy.java TransactionImpl.java

baliuka     02/05/12 04:40:02

  Modified:    simplestore/src/java/org/apache/commons/simplestore/persistence/impl
                        AbstractStorage.java DBStorage.java
                        JDBMStorage.java KeyPair.java
                        PersistenceManagerImpl.java PersistentProxy.java
                        TransactionImpl.java
  Log:
  
  
  Revision  Changes    Path
  1.13      +4 -9      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.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- AbstractStorage.java	9 May 2002 17:02:39 -0000	1.12
  +++ AbstractStorage.java	12 May 2002 11:40:02 -0000	1.13
  @@ -71,7 +71,7 @@
   /**
    *@author     Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
    *      baliuka@mwm.lt</a>
  - *@version    $Id: AbstractStorage.java,v 1.12 2002/05/09 17:02:39 baliuka Exp $
  + *@version    $Id: AbstractStorage.java,v 1.13 2002/05/12 11:40:02 baliuka Exp $
    */
   
   public abstract class AbstractStorage
  @@ -81,7 +81,7 @@
       
       public InternalTransaction getTransaction() {
           
  -        return TransactionImpl.getInstance(this);
  +        return TransactionImpl.getInstance(this,context);
       }
       
       public Object getAttribute(String name) {
  @@ -183,7 +183,7 @@
       public  java.util.Collection retrieve(Class clasz, int index, Object value)throws StorageException{
       
          
  -        Object key = new KeyPair(clasz,new KeyPair(new Integer(index),value));
  +        Object key = KeyPair.newKey(clasz, new Integer(index), value );
           
           java.util.Set objects = null;
           
  @@ -216,12 +216,7 @@
         if( cachedObjects != null ){
              return cachedObjects;
           }
  -        
  -        
  -         
  -          
  -        
  -        
  +           
        retrieveInternal(clasz,index,value,objects);   
        return objects;
       
  
  
  
  1.21      +8 -23     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.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- DBStorage.java	8 May 2002 18:04:48 -0000	1.20
  +++ DBStorage.java	12 May 2002 11:40:02 -0000	1.21
  @@ -85,15 +85,15 @@
   /**
    *@author     Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
    *      baliuka@mwm.lt</a>
  - *@version    $Id: DBStorage.java,v 1.20 2002/05/08 18:04:48 baliuka Exp $
  + *@version    $Id: DBStorage.java,v 1.21 2002/05/12 11:40:02 baliuka Exp $
    */
   public class DBStorage extends AbstractStorage implements org.apache.commons.simplestore.tools.Constants {
       
       private final static String CONNECTION = "org.apache.commons.simplestore.jdbc.DBStorage.connection";
       private final static String INTERNAL_OID = "INTERNAL_OID";
       private ConnectionFactory ds;
  -
  -   
  +    
  +    
       /**
        * Creates new DBStorageManager
        *
  @@ -174,19 +174,11 @@
       
       
       public Object retrieveObject( final Class clasz, Object id ) throws StorageException {
  -        
  -        //try cahce first
  -        Persistent result = (Persistent) context.getCache().get(id);
  -        
  -        if (result != null) {
  -            return result;
  -        }
  -        
  -        
  +         
           final MetaClass mClass =  context.getMetaClass( clasz );
           final java.beans.PropertyDescriptor[] descriptors = mClass.getProperties();
           final String sql = "SELECT * FROM " + mClass.getName() + " WHERE "+mClass.getOIDName()+"=?";
  -        result = (Persistent) mClass.newInstance( id );
  +        Persistent result = (Persistent) mClass.newInstance( id );
           final MetaObject pc = result.getMetaObject();
           final Object props[] = pc.getProperties();
           ResultSetHandler rsh =
  @@ -215,9 +207,7 @@
               throw new ObjectNotFound(pc.getOID().toString(), null);
           }
           
  -        context.getCache().put(id, result);
  -        
  -        return result;
  +         return result;
       }
       
       public void enumerateInternal(final Class clasz, Set objects, final EnumeratorCallback callback) throws StorageException {
  @@ -225,10 +215,8 @@
           final MetaClass mClass =  context.getMetaClass(clasz);
           final String sql = "SELECT "+ mClass.getOIDName() + " AS " + INTERNAL_OID + ", * FROM " + mClass.getName();
           
  -        
           excecute( sql, null, new QueryHandler(objects,clasz,callback));
           
  -        
       }
       
       
  @@ -379,7 +367,7 @@
       public void retrieveInternal(Class clasz, int index, Object value,java.util.Set objects)
       throws StorageException{
           
  -    
  +        
           final MetaClass mClass =  context.getMetaClass(clasz);
           final String sql = "SELECT "+ mClass.getOIDName() + " AS " + INTERNAL_OID +
           ", * FROM " + mClass.getName() +
  @@ -396,9 +384,6 @@
           )
           );
           
  -       
  -        
  -        
       }
       
       
  @@ -444,7 +429,7 @@
                   }
                   
                   props[  mClass.getPropertyIndex( name ) ] = value ;
  -              
  +                
                   return true;
                   
               } catch (Throwable t) {
  
  
  
  1.4       +3 -9      jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/JDBMStorage.java
  
  Index: JDBMStorage.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/JDBMStorage.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- JDBMStorage.java	8 May 2002 18:04:48 -0000	1.3
  +++ JDBMStorage.java	12 May 2002 11:40:02 -0000	1.4
  @@ -94,7 +94,7 @@
   /**
    *@author     Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
    *      baliuka@mwm.lt</a>
  - *@version    $Id: JDBMStorage.java,v 1.3 2002/05/08 18:04:48 baliuka Exp $
  + *@version    $Id: JDBMStorage.java,v 1.4 2002/05/12 11:40:02 baliuka Exp $
    */
   
   public class JDBMStorage extends AbstractStorage implements org.apache.commons.simplestore.tools.Constants {
  @@ -243,11 +243,6 @@
       
       public Object retrieveObject(Class clasz, Object id) throws StorageException {
           try{
  -            Persistent result = (Persistent) context.getCache().get(id);
  -            
  -            if (result != null) {
  -                return result;
  -            }
               BTree tree = getTree(clasz.getName());
               
               Object obj = tree.find(id);
  @@ -255,12 +250,11 @@
                   throw new ObjectNotFound();
               }
               MetaClass mClass =  context.getMetaClass(clasz);
  -            result = (Persistent) mClass.newInstance( id );
  +            Persistent result = (Persistent) mClass.newInstance( id );
               MetaObject pc = result.getMetaObject();
               Object props[] = pc.getProperties();
               System.arraycopy(obj,0,props,0,props.length);
  -            context.getCache().put(id,result);
  -            return result;
  +           return result;
           }catch(java.io.IOException ioe){
               throw new StorageException(ioe.getMessage(),ioe);
           }
  
  
  
  1.3       +17 -7     jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/KeyPair.java
  
  Index: KeyPair.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/KeyPair.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- KeyPair.java	9 May 2002 17:02:39 -0000	1.2
  +++ KeyPair.java	12 May 2002 11:40:02 -0000	1.3
  @@ -55,10 +55,12 @@
   
   package org.apache.commons.simplestore.persistence.impl;
   
  +import org.apache.commons.simplestore.persistence.MetaObject;
  +import org.apache.commons.simplestore.persistence.Persistent;
   /**
    *@author     Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
    *      baliuka@mwm.lt</a>
  - *@version    $Id: KeyPair.java,v 1.2 2002/05/09 17:02:39 baliuka Exp $
  + *@version    $Id: KeyPair.java,v 1.3 2002/05/12 11:40:02 baliuka Exp $
    */
   public class KeyPair {
      Object left;
  @@ -69,6 +71,14 @@
           this.right = right;
           
       }
  +   
  +   public static Object newKey(Object o1, Object o2, Object o3){
  +      return new KeyPair(o1,new KeyPair(o2,o3));
  +   } 
  +   public static Object newKey(Object o1, Object o2, Object o3,Object o4){
  +      return newKey(new KeyPair(o1,o2),o3,o4);
  +   } 
  +    
       
       public int hashCode() {
           int retValue;
  @@ -87,13 +97,13 @@
              
                KeyPair  object = (KeyPair)obj;
                
  -            return
  +            return (
                  ( left == null ? object.left == null : left.equals(object.left) )&&
  -               ( right == null ? object.right == null : right.equals(object.right) );
  -             
  -               
  -               
  -            
  +               ( right == null ? object.right == null : right.equals(object.right) )
  +              ) || (
  +               ( left == null ? object.left == null : left.equals(object.right) )&&
  +               ( right == null ? object.right == null : right.equals(object.left) )
  +            );
                  
              }else{
              
  
  
  
  1.5       +14 -7     jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/PersistenceManagerImpl.java
  
  Index: PersistenceManagerImpl.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/PersistenceManagerImpl.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PersistenceManagerImpl.java	8 May 2002 18:04:48 -0000	1.4
  +++ PersistenceManagerImpl.java	12 May 2002 11:40:02 -0000	1.5
  @@ -73,12 +73,11 @@
   /**
    *@author     Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
    *      baliuka@mwm.lt</a>
  - *@version    $Id: PersistenceManagerImpl.java,v 1.4 2002/05/08 18:04:48 baliuka Exp $
  + *@version    $Id: PersistenceManagerImpl.java,v 1.5 2002/05/12 11:40:02 baliuka Exp $
    */
   
   public class PersistenceManagerImpl implements PersistenceManager{
       
  -    private static PersistenceManager pm;
       private Context context;
       private static final Object ALL = "org.apache.commons.simplestore."+
                                         "persistence.PersistenceManagerImpl.ALL";
  @@ -94,11 +93,10 @@
       }
   
       public static PersistenceManager getPersistenceManager( Context context ) {
  -        if (pm == null) {
  -            pm = new PersistenceManagerImpl( context );
  +       
  +        return new PersistenceManagerImpl( context );
               
  -        }
  -        return pm;
  +       
       }
   
       public Transaction getTransaction() {
  @@ -125,7 +123,16 @@
       }
   
       public Object findInstance( Class clasz, Object oid ) throws StorageException {
  -        return context.getStorage().retrieveObject( clasz, oid );
  +            //try cahce first
  +        Object result =  context.getCache().get(oid);
  +        
  +        if (result != null) {
  +            return result;
  +        }
  +    
  +       result = context.getStorage().retrieveObject( clasz, oid );
  +       context.getCache().put(oid,result);
  +       return result;
       }
   
       public Set findAll(Class clasz) throws StorageException {
  
  
  
  1.33      +2 -2      jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/PersistentProxy.java
  
  Index: PersistentProxy.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/simplestore/src/java/org/apache/commons/simplestore/persistence/impl/PersistentProxy.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- PersistentProxy.java	11 May 2002 16:48:15 -0000	1.32
  +++ PersistentProxy.java	12 May 2002 11:40:02 -0000	1.33
  @@ -77,7 +77,7 @@
    *      baliuka@mwm.lt</a>
    *@author     Gerhard Froehlich <a href="mailto:g-froehlich@gmx.de">
    *      g-froehlich@gmx.de</a>
  - *@version    $Id: PersistentProxy.java,v 1.32 2002/05/11 16:48:15 baliuka Exp $
  + *@version    $Id: PersistentProxy.java,v 1.33 2002/05/12 11:40:02 baliuka Exp $
    */
   public class PersistentProxy
   implements MetaObject,  org.apache.commons.simplestore.tools.Constants ,
  @@ -360,7 +360,7 @@
               }
               
               
  -            Object key = new KeyPair(m_clazz,new KeyPair(new Integer(index),oldValue));
  +            Object key = KeyPair.newKey(m_clazz, new Integer(index), oldValue );
               java.util.Set set = (java.util.Set)m_context.getCache().get(key);
               
               if( set != null ){
  
  
  
  1.8       +9 -10     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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- TransactionImpl.java	9 May 2002 17:02:39 -0000	1.7
  +++ TransactionImpl.java	12 May 2002 11:40:02 -0000	1.8
  @@ -59,6 +59,7 @@
   import org.apache.commons.simplestore.persistence.InternalTransaction;
   import org.apache.commons.simplestore.persistence.MetaObject;
   import org.apache.commons.simplestore.persistence.IllegalTransactionStateException;
  +import org.apache.commons.simplestore.persistence.Context;
   
   import java.util.HashMap;
   import java.util.HashSet;
  @@ -69,14 +70,13 @@
   /**
    *@author     Juozas Baliuka <a href="mailto:baliuka@mwm.lt">
    *      baliuka@mwm.lt</a>
  - *@version    $Id: TransactionImpl.java,v 1.7 2002/05/09 17:02:39 baliuka Exp $
  + *@version    $Id: TransactionImpl.java,v 1.8 2002/05/12 11:40:02 baliuka Exp $
    */
   
   public class TransactionImpl 
         implements org.apache.commons.simplestore.tools.Constants ,
                                                   InternalTransaction {
   
  -    private static Cache instances = SoftRefMemoryCache.getInstance(new HashMap(), 0x00);
   
       int threadId = getCurrentThreadId();
       InternalTransaction transaction;
  @@ -97,16 +97,17 @@
   
       }
   
  -    public static InternalTransaction getInstance(InternalTransaction transaction) {
  +    public static InternalTransaction getInstance(InternalTransaction transaction,
  +                                                  Context context  ) {
   
  -        Number threadId = new Integer(getCurrentThreadId());
  -        InternalTransaction tr = (InternalTransaction) instances.get(threadId);
  +        Object  threadId = new KeyPair(InternalTransaction.class, new Integer(getCurrentThreadId()));
  +        InternalTransaction tr = (InternalTransaction) context.getCache().get(threadId);
           if (tr != null) {
               return tr;
           }
   
           tr = new TransactionImpl(transaction, new HashSet());
  -        instances.put(threadId, tr);
  +        context.getCache().put(threadId, tr);
   
           return tr;
       }
  @@ -156,7 +157,7 @@
           Iterator i = objects.iterator();
           while (i.hasNext()) {
               MetaObject mo = (MetaObject) i.next();
  -            mo.assign((MetaObject) storedState.get(mo.getOID()));// NPE ?
  +            mo.assign((MetaObject) storedState.get(mo.getOID()));
           }
           storedState.clear();
           transaction.rollback(objects);
  @@ -169,9 +170,7 @@
           if (objects.add(props)) {
               try {
                   storedState.put(props.getOID(), props.clone());
  -                if(DEBUG){
  -                 System.out.println("Added to transaction: " + props);
  -                }
  +                
               } catch (CloneNotSupportedException cnse) {
                   throw new UnsupportedOperationException(cnse.getMessage());
               }
  
  
  

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