You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/11/13 09:49:26 UTC

svn commit: r474194 - in /incubator/tuscany/java/sca/services/persistence/store.jdbc/src: main/java/org/apache/tuscany/service/persistence/store/jdbc/ main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/ test/java/org/apache/tuscany/s...

Author: jmarino
Date: Mon Nov 13 00:49:25 2006
New Revision: 474194

URL: http://svn.apache.org/viewvc?view=rev&rev=474194
Log:
bug fixes for updates in the  jdbc store

Modified:
    incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/JDBCStore.java
    incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/AbstractConverter.java
    incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/HSQLDBConverter.java
    incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/JDBCConverter.java
    incubator/tuscany/java/sca/services/persistence/store.jdbc/src/test/java/org/apache/tuscany/service/persistence/store/jdbc/JDBCStoreTestCase.java

Modified: incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/JDBCStore.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/JDBCStore.java?view=diff&rev=474194&r1=474193&r2=474194
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/JDBCStore.java (original)
+++ incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/JDBCStore.java Mon Nov 13 00:49:25 2006
@@ -54,11 +54,6 @@
  */
 public class JDBCStore implements Store {
 
-    public static final int LEAST_SIGNIFICANT_BITS = 1;
-    public static final int MOST_SIGNIFICANT_BITS = 2;
-    public static final int EXPIRATION = 3;
-    public static final int DATA = 4;
-
     private DataSource dataSource;
     private StoreMonitor monitor;
     private Converter converter;

Modified: incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/AbstractConverter.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/AbstractConverter.java?view=diff&rev=474194&r1=474193&r2=474194
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/AbstractConverter.java (original)
+++ incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/AbstractConverter.java Mon Nov 13 00:49:25 2006
@@ -18,12 +18,11 @@
  */
 package org.apache.tuscany.service.persistence.store.jdbc.converter;
 
+import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.ObjectOutputStream;
 import java.io.Serializable;
-import java.io.ObjectInputStream;
-import java.io.ByteArrayInputStream;
 
 import org.apache.tuscany.service.persistence.store.jdbc.Converter;
 import org.apache.tuscany.service.persistence.store.jdbc.TCCLObjectInputStream;
@@ -34,6 +33,14 @@
  * @version $Rev$ $Date$
  */
 public abstract class AbstractConverter implements Converter {
+    public static final int DATA = 4;
+    public static final int MOST_SIGNIFICANT_BITS = 1;
+    public static final int LEAST_SIGNIFICANT_BITS = 2;
+    public static final int EXPIRATION = 3;
+    public static final int OBJECT_UPDATE = 1;
+    public static final int MOST_SIGNIFICANT_BITS_UPDATE = 2;
+    public static final int LEAST_SIGNIFICANT_BITS_UPDATE = 3;
+
     protected String findSql = "SELECT * FROM CONVERSATION_STATE WHERE ID_1 = ? AND ID_2 = ?";
     protected String insertSql = "INSERT INTO CONVERSATION_STATE (ID_1, ID_2, EXPIRATION, OBJECT) VALUES (?, ?, ?, ?)";
     protected String updateSql = "UPDATE CONVERSATION_STATE SET OBJECT = ? WHERE ID_1 = ? AND ID_2 = ?";

Modified: incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/HSQLDBConverter.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/HSQLDBConverter.java?view=diff&rev=474194&r1=474193&r2=474194
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/HSQLDBConverter.java (original)
+++ incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/HSQLDBConverter.java Mon Nov 13 00:49:25 2006
@@ -28,10 +28,6 @@
 
 import org.apache.tuscany.service.persistence.store.StoreReadException;
 import org.apache.tuscany.service.persistence.store.StoreWriteException;
-import static org.apache.tuscany.service.persistence.store.jdbc.JDBCStore.DATA;
-import static org.apache.tuscany.service.persistence.store.jdbc.JDBCStore.EXPIRATION;
-import static org.apache.tuscany.service.persistence.store.jdbc.JDBCStore.LEAST_SIGNIFICANT_BITS;
-import static org.apache.tuscany.service.persistence.store.jdbc.JDBCStore.MOST_SIGNIFICANT_BITS;
 
 /**
  * Performs writing and reading operations to HSQLDB
@@ -55,7 +51,9 @@
 
     public void update(PreparedStatement stmt, UUID id, Serializable object) throws StoreWriteException {
         try {
-            stmt.setBytes(DATA, serialize(object));
+            stmt.setBytes(OBJECT_UPDATE, serialize(object));
+            stmt.setLong(MOST_SIGNIFICANT_BITS_UPDATE, id.getMostSignificantBits());
+            stmt.setLong(LEAST_SIGNIFICANT_BITS_UPDATE, id.getLeastSignificantBits());
         } catch (SQLException e) {
             throw new StoreWriteException(e);
         } catch (IOException e) {

Modified: incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/JDBCConverter.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/JDBCConverter.java?view=diff&rev=474194&r1=474193&r2=474194
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/JDBCConverter.java (original)
+++ incubator/tuscany/java/sca/services/persistence/store.jdbc/src/main/java/org/apache/tuscany/service/persistence/store/jdbc/converter/JDBCConverter.java Mon Nov 13 00:49:25 2006
@@ -33,10 +33,6 @@
 
 import org.apache.tuscany.service.persistence.store.StoreReadException;
 import org.apache.tuscany.service.persistence.store.StoreWriteException;
-import static org.apache.tuscany.service.persistence.store.jdbc.JDBCStore.DATA;
-import static org.apache.tuscany.service.persistence.store.jdbc.JDBCStore.EXPIRATION;
-import static org.apache.tuscany.service.persistence.store.jdbc.JDBCStore.LEAST_SIGNIFICANT_BITS;
-import static org.apache.tuscany.service.persistence.store.jdbc.JDBCStore.MOST_SIGNIFICANT_BITS;
 
 /**
  * Performs writing and reading operations to a JDBC driver/database combination that supports Blobs

Modified: incubator/tuscany/java/sca/services/persistence/store.jdbc/src/test/java/org/apache/tuscany/service/persistence/store/jdbc/JDBCStoreTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/services/persistence/store.jdbc/src/test/java/org/apache/tuscany/service/persistence/store/jdbc/JDBCStoreTestCase.java?view=diff&rev=474194&r1=474193&r2=474194
==============================================================================
--- incubator/tuscany/java/sca/services/persistence/store.jdbc/src/test/java/org/apache/tuscany/service/persistence/store/jdbc/JDBCStoreTestCase.java (original)
+++ incubator/tuscany/java/sca/services/persistence/store.jdbc/src/test/java/org/apache/tuscany/service/persistence/store/jdbc/JDBCStoreTestCase.java Mon Nov 13 00:49:25 2006
@@ -27,11 +27,9 @@
 import junit.framework.TestCase;
 import static org.apache.tuscany.service.persistence.store.Store.NEVER;
 import org.apache.tuscany.service.persistence.store.StoreMonitor;
-import static org.apache.tuscany.service.persistence.store.jdbc.JDBCStore.EXPIRATION;
-import static org.apache.tuscany.service.persistence.store.jdbc.JDBCStore.LEAST_SIGNIFICANT_BITS;
-import static org.apache.tuscany.service.persistence.store.jdbc.JDBCStore.MOST_SIGNIFICANT_BITS;
 import static org.apache.tuscany.service.persistence.store.jdbc.TestUtils.SELECT_SQL;
 import org.apache.tuscany.service.persistence.store.jdbc.converter.HSQLDBConverter;
+import org.apache.tuscany.service.persistence.store.jdbc.converter.AbstractConverter;
 import org.easymock.EasyMock;
 
 /**
@@ -43,7 +41,7 @@
     private DataSource ds;
     private JDBCStore store;
 
-    public void testWriteMetaData() throws Exception {
+    public void testAppendMetaData() throws Exception {
         store.init();
         Foo foo = new Foo("test");
         UUID id = UUID.randomUUID();
@@ -51,12 +49,12 @@
         Statement stmt = ds.getConnection().createStatement();
         ResultSet rs = stmt.executeQuery(SELECT_SQL);
         rs.next();
-        assertEquals(id.getMostSignificantBits(), rs.getLong(MOST_SIGNIFICANT_BITS));
-        assertEquals(id.getLeastSignificantBits(), rs.getLong(LEAST_SIGNIFICANT_BITS));
-        assertEquals(NEVER, rs.getLong(EXPIRATION));
+        assertEquals(id.getMostSignificantBits(), rs.getLong(AbstractConverter.MOST_SIGNIFICANT_BITS));
+        assertEquals(id.getLeastSignificantBits(), rs.getLong(AbstractConverter.LEAST_SIGNIFICANT_BITS));
+        assertEquals(NEVER, rs.getLong(AbstractConverter.EXPIRATION));
     }
 
-    public void testWriteRead() throws Exception {
+    public void testAppendRead() throws Exception {
         store.init();
         Foo foo = new Foo("test");
         UUID id = UUID.randomUUID();
@@ -65,13 +63,14 @@
         assertEquals("test", foo2.data);
     }
 
+
     public void testNotFound() throws Exception {
         store.init();
         UUID id = UUID.randomUUID();
         assertNull(store.readRecord(id));
     }
 
-    public void testBatchWrite() throws Exception {
+    public void testBatchAppend() throws Exception {
         store.setBatchSize(2);
         store.init();
         Foo foo = new Foo("test");
@@ -111,6 +110,29 @@
         store.appendRecord(id, foo, System.currentTimeMillis() + 20);
         Thread.sleep(100);
         assertNull(store.readRecord(id));
+    }
+
+    public void testUpdateRead() throws Exception {
+        store.init();
+        Foo foo = new Foo("test");
+        UUID id = UUID.randomUUID();
+        store.appendRecord(id, foo, NEVER);
+        foo.data = "test2";
+        store.updateRecord(id, foo);
+        Foo foo2 = (Foo) store.readRecord(id);
+        assertEquals("test2", foo2.data);
+    }
+
+    public void testCacheUpdateRead() throws Exception {
+        store.setBatchSize(10);
+        store.init();
+        Foo foo = new Foo("test");
+        UUID id = UUID.randomUUID();
+        store.appendRecord(id, foo, NEVER);
+        foo.data = "test2";
+        store.updateRecord(id, foo);
+        Foo foo2 = (Foo) store.readRecord(id);
+        assertEquals("test2", foo2.data);
     }
 
     protected void setUp() throws Exception {



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org