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>