You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by sv...@apache.org on 2004/08/25 19:31:58 UTC

cvs commit: ws-juddi/src/java/org/apache/juddi/datastore DataStore.java

sviens      2004/08/25 10:31:58

  Modified:    src/java/org/apache/juddi/function DeleteTModelFunction.java
               src/java/org/apache/juddi/datastore/jdbc JDBCDataStore.java
                        TModelTable.java
               src/java/org/apache/juddi/datastore DataStore.java
  Log:
  The save_tModel request has been updated to physically remove (i.e. DELETE) an existing TModel prior re-INSERTing it.  This fix resoves issue JUDDI-37 (http://nagoya.apache.org/jira/browse/JUDDI-37). When performing a delete_tModel the DELETED column of the associated TMODEL row is set to the value 'true'.
  
  Revision  Changes    Path
  1.6       +2 -2      ws-juddi/src/java/org/apache/juddi/function/DeleteTModelFunction.java
  
  Index: DeleteTModelFunction.java
  ===================================================================
  RCS file: /home/cvs/ws-juddi/src/java/org/apache/juddi/function/DeleteTModelFunction.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DeleteTModelFunction.java	30 Apr 2004 03:52:24 -0000	1.5
  +++ DeleteTModelFunction.java	25 Aug 2004 17:31:55 -0000	1.6
  @@ -89,8 +89,8 @@
           if (!dataStore.isTModelPublisher(tModelKey,publisherID))
             throw new UserMismatchException("publisher="+publisherID+" tModelKey="+tModelKey);
   
  -        // TModel exists and we control it so let's delete it.
  -        dataStore.deleteTModel(tModelKey);
  +        // TModel exists and we control it so let's marke it as deleted.
  +        dataStore.markTModelAsDeleted(tModelKey);
         }
   
         // delete the TModels
  
  
  
  1.7       +25 -5     ws-juddi/src/java/org/apache/juddi/datastore/jdbc/JDBCDataStore.java
  
  Index: JDBCDataStore.java
  ===================================================================
  RCS file: /home/cvs/ws-juddi/src/java/org/apache/juddi/datastore/jdbc/JDBCDataStore.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- JDBCDataStore.java	2 Jul 2004 14:32:44 -0000	1.6
  +++ JDBCDataStore.java	25 Aug 2004 17:31:56 -0000	1.7
  @@ -1190,13 +1190,33 @@
         if ((tModelKey != null) && (connection != null))
         {
           // delete the dependents of TModel
  -        //TModelCategoryTable.delete(tModelKey,connection);
  -        //TModelDescTable.delete(tModelKey,connection);
  -        //TModelDocDescTable.delete(tModelKey,connection);
  -        //TModelIdentifierTable.delete(tModelKey,connection);
  +        TModelCategoryTable.delete(tModelKey,connection);
  +        TModelDescTable.delete(tModelKey,connection);
  +        TModelDocDescTable.delete(tModelKey,connection);
  +        TModelIdentifierTable.delete(tModelKey,connection);
   
  -        // mark the TModel as deleted (don't actually delete it)
  +        // delete the TModel
           TModelTable.delete(tModelKey,connection);
  +      }
  +    }
  +    catch(java.sql.SQLException sqlex)
  +    {
  +      throw new RegistryException(sqlex);
  +    }
  +  }
  +
  +  /**
  +   *
  +   */
  +  public void markTModelAsDeleted(String tModelKey)
  +    throws org.apache.juddi.error.RegistryException
  +  {
  +    try
  +    {
  +      if ((tModelKey != null) && (connection != null))
  +      {
  +        // mark the TModel as deleted 
  +        TModelTable.markAsDeleted(tModelKey,connection);
         }
       }
       catch(java.sql.SQLException sqlex)
  
  
  
  1.5       +43 -2     ws-juddi/src/java/org/apache/juddi/datastore/jdbc/TModelTable.java
  
  Index: TModelTable.java
  ===================================================================
  RCS file: /home/cvs/ws-juddi/src/java/org/apache/juddi/datastore/jdbc/TModelTable.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TModelTable.java	2 Jul 2004 20:11:40 -0000	1.4
  +++ TModelTable.java	25 Aug 2004 17:31:56 -0000	1.5
  @@ -41,6 +41,7 @@
   
     static String insertSQL = null;
     static String deleteSQL = null;
  +  static String updateSQL = null;
     static String selectSQL = null;
     static String selectByPublisherSQL = null;
     static String verifyOwnershipSQL = null;
  @@ -65,10 +66,16 @@
   
       // build deleteSQL
       sql = new StringBuffer(100);
  +    sql.append("DELETE FROM TMODEL ");
  +    sql.append("WHERE TMODEL_KEY=?");
  +    deleteSQL = sql.toString();
  +
  +    // build updateSQL
  +    sql = new StringBuffer(100);
       sql.append("UPDATE TMODEL ");
       sql.append("SET DELETED='true' ");
       sql.append("WHERE TMODEL_KEY=?");
  -    deleteSQL = sql.toString();
  +    updateSQL = sql.toString();
   
       // build selectSQL
       sql = new StringBuffer(200);
  @@ -187,6 +194,39 @@
     }
   
     /**
  +   * Update the TMODEL table setting the value of the DELETED column to 'true'.
  +   *
  +   * @param  tModelKey
  +   * @param  connection JDBC connection
  +   * @throws java.sql.SQLException
  +   */
  +  public static void markAsDeleted(String tModelKey,Connection connection)
  +    throws java.sql.SQLException
  +  {
  +    PreparedStatement statement = null;
  +
  +    try
  +    {
  +      // prepare the delete
  +      statement = connection.prepareStatement(updateSQL);
  +      statement.setString(1,tModelKey.toString());
  +
  +      log.debug(updateSQL +
  +        "\n\t TMODEL_KEY=" + tModelKey.toString() + "\n");
  +
  +      // execute
  +      statement.executeUpdate();
  +    }
  +    finally
  +    {
  +      try {
  +        statement.close();
  +      }
  +      catch (Exception e) { /* ignored */ }
  +    }
  +  }
  +
  +  /**
      * Select one row from the TMODEL table.
      *
      * @param  tModelKey
  @@ -393,7 +433,8 @@
           TModelTable.verifyOwnership(tModelKey,"sviens",connection);
   
           // delete that TModel object
  -        //TModelTable.delete(tModelKey,connection);
  +        TModelTable.delete(tModelKey,connection);
  +        //TModelTable.markAsDeleted(tModelKey,connection);
   
           // re-select that TModel object
           tModel = TModelTable.select(tModelKey,connection);
  
  
  
  1.4       +6 -0      ws-juddi/src/java/org/apache/juddi/datastore/DataStore.java
  
  Index: DataStore.java
  ===================================================================
  RCS file: /home/cvs/ws-juddi/src/java/org/apache/juddi/datastore/DataStore.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- DataStore.java	30 Apr 2004 03:52:26 -0000	1.3
  +++ DataStore.java	25 Aug 2004 17:31:57 -0000	1.4
  @@ -233,6 +233,12 @@
     /**
      *
      */
  +  void markTModelAsDeleted(String tModelKey)
  +   throws RegistryException;
  +
  +  /**
  +   *
  +   */
     boolean isValidTModelKey(String tModelKey)
       throws RegistryException;