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;