You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by re...@apache.org on 2001/01/20 21:08:29 UTC
cvs commit: jakarta-slide/src/stores/slidestore/reference FileContentStore.java JDBCDescriptorsStore.java
remm 01/01/20 12:08:29
Modified: src/stores/slidestore/file FileContentStore.java
FileContentStoreNoVersioning.java
FileDescriptorsStoreNoVersioning.java
src/stores/slidestore/jdbc JDBCDescriptorsStore.java
src/stores/slidestore/memory MemoryDescriptorsStore.java
src/stores/slidestore/reference FileContentStore.java
JDBCDescriptorsStore.java
Log:
- Update the standard stores to extend AbstractSimpleService.
- Added some commit / rollback calls on the underlying connection in the
JDBC store.
Revision Changes Path
1.4 +5 -5 jakarta-slide/src/stores/slidestore/file/FileContentStore.java
Index: FileContentStore.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/stores/slidestore/file/FileContentStore.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- FileContentStore.java 2001/01/12 17:42:46 1.3
+++ FileContentStore.java 2001/01/20 20:08:28 1.4
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/file/FileContentStore.java,v 1.3 2001/01/12 17:42:46 juergen Exp $
- * $Revision: 1.3 $
- * $Date: 2001/01/12 17:42:46 $
+ * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/file/FileContentStore.java,v 1.4 2001/01/20 20:08:28 remm Exp $
+ * $Revision: 1.4 $
+ * $Date: 2001/01/20 20:08:28 $
*
* ====================================================================
*
@@ -76,9 +76,9 @@
* Filesystem implementation of ContentStore.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.3 $
+ * @version $Revision: 1.4 $
*/
-public class FileContentStore extends ServiceImpl
+public class FileContentStore extends AbstractSimpleService
implements ContentStore {
1.5 +5 -5 jakarta-slide/src/stores/slidestore/file/FileContentStoreNoVersioning.java
Index: FileContentStoreNoVersioning.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/stores/slidestore/file/FileContentStoreNoVersioning.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- FileContentStoreNoVersioning.java 2001/01/12 17:42:47 1.4
+++ FileContentStoreNoVersioning.java 2001/01/20 20:08:28 1.5
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/file/FileContentStoreNoVersioning.java,v 1.4 2001/01/12 17:42:47 juergen Exp $
- * $Revision: 1.4 $
- * $Date: 2001/01/12 17:42:47 $
+ * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/file/FileContentStoreNoVersioning.java,v 1.5 2001/01/20 20:08:28 remm Exp $
+ * $Revision: 1.5 $
+ * $Date: 2001/01/20 20:08:28 $
*
* ====================================================================
*
@@ -76,9 +76,9 @@
* Filesystem implementation of ContentStore.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
*/
-public class FileContentStoreNoVersioning extends ServiceImpl
+public class FileContentStoreNoVersioning extends AbstractSimpleService
implements ContentStore {
1.3 +5 -5 jakarta-slide/src/stores/slidestore/file/FileDescriptorsStoreNoVersioning.java
Index: FileDescriptorsStoreNoVersioning.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/stores/slidestore/file/FileDescriptorsStoreNoVersioning.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- FileDescriptorsStoreNoVersioning.java 2001/01/08 17:08:38 1.2
+++ FileDescriptorsStoreNoVersioning.java 2001/01/20 20:08:28 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/file/FileDescriptorsStoreNoVersioning.java,v 1.2 2001/01/08 17:08:38 remm Exp $
- * $Revision: 1.2 $
- * $Date: 2001/01/08 17:08:38 $
+ * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/file/FileDescriptorsStoreNoVersioning.java,v 1.3 2001/01/20 20:08:28 remm Exp $
+ * $Revision: 1.3 $
+ * $Date: 2001/01/20 20:08:28 $
*
* ====================================================================
*
@@ -78,9 +78,9 @@
* Filesystem implementation of Store.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
-public class FileDescriptorsStoreNoVersioning extends ServiceImpl
+public class FileDescriptorsStoreNoVersioning extends AbstractSimpleService
implements RevisionDescriptorsStore, RevisionDescriptorStore,
SecurityStore, NodeStore {
1.3 +48 -16 jakarta-slide/src/stores/slidestore/jdbc/JDBCDescriptorsStore.java
Index: JDBCDescriptorsStore.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/stores/slidestore/jdbc/JDBCDescriptorsStore.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JDBCDescriptorsStore.java 2000/12/05 05:18:01 1.2
+++ JDBCDescriptorsStore.java 2001/01/20 20:08:28 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/jdbc/JDBCDescriptorsStore.java,v 1.2 2000/12/05 05:18:01 remm Exp $
- * $Revision: 1.2 $
- * $Date: 2000/12/05 05:18:01 $
+ * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/jdbc/JDBCDescriptorsStore.java,v 1.3 2001/01/20 20:08:28 remm Exp $
+ * $Revision: 1.3 $
+ * $Date: 2001/01/20 20:08:28 $
*
* ====================================================================
*
@@ -81,10 +81,10 @@
* JDBC 1.0 and 2.0 compliant DataSource implementation.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
public class JDBCDescriptorsStore
- extends ServiceImpl
+ extends AbstractSimpleService
implements LockStore, NodeStore, RevisionDescriptorsStore,
RevisionDescriptorStore, SecurityStore {
@@ -330,7 +330,8 @@
public void disconnect()
throws ServiceDisconnectionFailedException {
try {
- connection.close();
+ if (connection != null)
+ connection.close();
connection = null;
} catch (SQLException e) {
throw new ServiceDisconnectionFailedException(this, e);
@@ -448,11 +449,13 @@
*/
public void commit()
throws ServiceAccessException {
- try {
- connection.commit();
- } catch (SQLException e) {
- throw new ServiceAccessException(this, e);
- }
+ /*
+ try {
+ connection.commit();
+ } catch (SQLException e) {
+ throw new ServiceAccessException(this, e);
+ }
+ */
}
@@ -576,9 +579,19 @@
try {
Statement statement = connection.createStatement();
+ String s = "select * from objects where uri='" + uri + "'";
+
+ statement.execute(s);
+ ResultSet res = statement.getResultSet();
+
+ // Parsing result set
+
+ if (!res.next()) {
+ throw new ObjectNotFoundException(uri);
+ }
+
// Updating children
- String s = "delete from children where uri='" + object.getUri()
- + "'";
+ s = "delete from children where uri='" + object.getUri() + "'";
statement.execute(s);
Enumeration children = object.enumerateChildren();
while (children.hasMoreElements()) {
@@ -588,6 +601,7 @@
}
// Updating inbound links
+ /*
s = "delete from links where linkto='" + object.getUri() + "'";
statement.execute(s);
Enumeration links = object.enumerateLinks();
@@ -597,6 +611,7 @@
+ object.getUri() + "')";
statement.execute(s);
}
+ */
// Updating links
s = "delete from links where link='" + object.getUri() + "'";
@@ -644,7 +659,19 @@
}
Statement statement = connection.createStatement();
- String s = "insert into objects values('" + uri + "', "
+
+ String s = "select * from objects where uri='" + uri + "'";
+
+ statement.execute(s);
+ ResultSet res = statement.getResultSet();
+
+ // Parsing result set
+
+ if (res.next()) {
+ throw new ObjectAlreadyExistsException(uri.toString());
+ }
+
+ s = "insert into objects values('" + uri + "', "
+ objectType + ")";
statement.execute(s);
@@ -658,6 +685,7 @@
}
// Updating inbound links
+ /*
Enumeration links = object.enumerateLinks();
while (children.hasMoreElements()) {
s = "insert into links values('"
@@ -665,6 +693,7 @@
+ object.getUri() + "')";
statement.execute(s);
}
+ */
// If the object is a link, also store the link information
if (objectType == LINK) {
@@ -703,8 +732,10 @@
statement.execute(s);
// Removing inbound links
+ /*
s = "delete from links where linkto='" + object.getUri() + "'";
statement.execute(s);
+ */
// Removing links
s = "delete from links where link='" + object.getUri() + "'";
@@ -1278,13 +1309,14 @@
while (res.next()) {
String propertyName = res.getString(PROPERTY_NAME);
+ String propertyNamespace = res.getString(PROPERTY_NAMESPACE);
NodeProperty property =
new NodeProperty(propertyName,
res.getString(PROPERTY_VALUE),
- res.getString(PROPERTY_NAMESPACE),
+ propertyNamespace,
res.getString(PROPERTY_TYPE),
(res.getInt(PROPERTY_PROTECTED) == 1));
- properties.put(propertyName, property);
+ properties.put(propertyNamespace + propertyName, property);
}
revisionDescriptor =
1.3 +5 -5 jakarta-slide/src/stores/slidestore/memory/MemoryDescriptorsStore.java
Index: MemoryDescriptorsStore.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/stores/slidestore/memory/MemoryDescriptorsStore.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- MemoryDescriptorsStore.java 2000/11/22 19:06:48 1.2
+++ MemoryDescriptorsStore.java 2001/01/20 20:08:29 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/memory/MemoryDescriptorsStore.java,v 1.2 2000/11/22 19:06:48 remm Exp $
- * $Revision: 1.2 $
- * $Date: 2000/11/22 19:06:48 $
+ * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/memory/MemoryDescriptorsStore.java,v 1.3 2001/01/20 20:08:29 remm Exp $
+ * $Revision: 1.3 $
+ * $Date: 2001/01/20 20:08:29 $
*
* ====================================================================
*
@@ -80,9 +80,9 @@
* Reference implementation.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
-public class MemoryDescriptorsStore extends ServiceImpl
+public class MemoryDescriptorsStore extends AbstractSimpleService
implements LockStore, NodeStore, RevisionDescriptorsStore,
RevisionDescriptorStore, SecurityStore {
1.3 +5 -5 jakarta-slide/src/stores/slidestore/reference/FileContentStore.java
Index: FileContentStore.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/stores/slidestore/reference/FileContentStore.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- FileContentStore.java 2001/01/12 17:43:05 1.2
+++ FileContentStore.java 2001/01/20 20:08:29 1.3
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/reference/FileContentStore.java,v 1.2 2001/01/12 17:43:05 juergen Exp $
- * $Revision: 1.2 $
- * $Date: 2001/01/12 17:43:05 $
+ * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/reference/FileContentStore.java,v 1.3 2001/01/20 20:08:29 remm Exp $
+ * $Revision: 1.3 $
+ * $Date: 2001/01/20 20:08:29 $
*
* ====================================================================
*
@@ -76,9 +76,9 @@
* Filesystem implementation of ContentStore.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.2 $
+ * @version $Revision: 1.3 $
*/
-public class FileContentStore extends ServiceImpl
+public class FileContentStore extends AbstractSimpleService
implements ContentStore {
1.6 +58 -24 jakarta-slide/src/stores/slidestore/reference/JDBCDescriptorsStore.java
Index: JDBCDescriptorsStore.java
===================================================================
RCS file: /home/cvs/jakarta-slide/src/stores/slidestore/reference/JDBCDescriptorsStore.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- JDBCDescriptorsStore.java 2000/12/07 18:01:53 1.5
+++ JDBCDescriptorsStore.java 2001/01/20 20:08:29 1.6
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/reference/JDBCDescriptorsStore.java,v 1.5 2000/12/07 18:01:53 remm Exp $
- * $Revision: 1.5 $
- * $Date: 2000/12/07 18:01:53 $
+ * $Header: /home/cvs/jakarta-slide/src/stores/slidestore/reference/JDBCDescriptorsStore.java,v 1.6 2001/01/20 20:08:29 remm Exp $
+ * $Revision: 1.6 $
+ * $Date: 2001/01/20 20:08:29 $
*
* ====================================================================
*
@@ -70,6 +70,8 @@
import java.io.FileWriter;
import java.io.IOException;
import java.sql.*;
+import javax.transaction.xa.XAException;
+import javax.transaction.xa.Xid;
import org.apache.slide.common.*;
import org.apache.slide.store.*;
import org.apache.slide.structure.*;
@@ -78,13 +80,14 @@
import org.apache.slide.content.*;
/**
- * JDBC 1.0 and 2.0 compliant DataSource implementation.
+ * JDBC 1.0 and 2.0 compliant store implementation.
*
* @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision: 1.5 $
+ * @version $Revision: 1.6 $
*/
+
public class JDBCDescriptorsStore
- extends ServiceImpl
+ extends AbstractSimpleService
implements LockStore, NodeStore, RevisionDescriptorsStore,
RevisionDescriptorStore, SecurityStore {
@@ -203,7 +206,7 @@
private int jdbcVersion;
- // ---------------------------------------------------- ServiceImpl Methods
+ // -------------------------------------------------------- Service Methods
/**
@@ -443,23 +446,6 @@
/**
- * Commit changes to DataSource.
- *
- * @exception ServiceAccessException Error accessing DataSource
- */
- public void commit()
- throws ServiceAccessException {
- /*
- try {
- connection.commit();
- } catch (SQLException e) {
- throw new ServiceAccessException(this, e);
- }
- */
- }
-
-
- /**
* This function tells whether or not the data source is connected.
*
* @return boolean true if we are connected
@@ -471,6 +457,54 @@
return ((connection != null) && (!connection.isClosed()));
} catch (SQLException e) {
throw new ServiceAccessException(this, e);
+ }
+ }
+
+
+ // ----------------------------------------------------- XAResource Methods
+
+
+ /**
+ * Commit the global transaction specified by xid.
+ */
+ public void commit(Xid xid, boolean onePhase)
+ throws XAException {
+ super.commit(xid, onePhase);
+ try {
+ connection.commit();
+ connection.setAutoCommit(true);
+ } catch (SQLException e) {
+ throw new XAException(XAException.XA_RBCOMMFAIL);
+ }
+ }
+
+
+ /**
+ * Inform the resource manager to roll back work done on behalf of a
+ * transaction branch.
+ */
+ public void rollback(Xid xid)
+ throws XAException {
+ super.rollback(xid);
+ try {
+ connection.rollback();
+ connection.setAutoCommit(true);
+ } catch (SQLException e) {
+ throw new XAException(XAException.XA_HEURCOM);
+ }
+ }
+
+
+ /**
+ * Start work on behalf of a transaction branch specified in xid.
+ */
+ public void start(Xid xid, int flags)
+ throws XAException {
+ super.start(xid, flags);
+ try {
+ connection.setAutoCommit(false);
+ } catch (SQLException e) {
+ throw new XAException(XAException.XAER_RMERR);
}
}