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);
           }
       }