Index: src/java/org/apache/juddi/datastore/DataStore.java =================================================================== RCS file: /home/cvspublic/ws-juddi/src/java/org/apache/juddi/datastore/DataStore.java,v retrieving revision 1.3 diff -u -b -B -w -u -r1.3 DataStore.java --- src/java/org/apache/juddi/datastore/DataStore.java 30 Apr 2004 03:52:26 -0000 1.3 +++ src/java/org/apache/juddi/datastore/DataStore.java 10 Jun 2004 14:11:47 -0000 @@ -227,6 +227,12 @@ /** * */ + void hideTModel(String tModelKey) + throws RegistryException; + + /** + * + */ void deleteTModel(String tModelKey) throws RegistryException; Index: src/java/org/apache/juddi/datastore/jdbc/FindTModelByNameQuery.java =================================================================== RCS file: /home/cvspublic/ws-juddi/src/java/org/apache/juddi/datastore/jdbc/FindTModelByNameQuery.java,v retrieving revision 1.4 diff -u -b -B -w -u -r1.4 FindTModelByNameQuery.java --- src/java/org/apache/juddi/datastore/jdbc/FindTModelByNameQuery.java 1 May 2004 00:55:12 -0000 1.4 +++ src/java/org/apache/juddi/datastore/jdbc/FindTModelByNameQuery.java 10 Jun 2004 14:11:47 -0000 @@ -113,17 +113,20 @@ */ private static void appendWhere(DynamicQuery sql,String name,FindQualifiers qualifiers) { + // Make sure that logicaly deleted TModels are not returned. + sql.append("WHERE M.DELETED IS NULL "); + if ((name == null) || (name.length() == 0)) return; if ((qualifiers != null) && (qualifiers.exactNameMatch)) { - sql.append("WHERE M.NAME = ? "); + sql.append("AND M.NAME = ? "); sql.addValue(name); } else { - sql.append("WHERE M.NAME LIKE ? "); + sql.append("AND M.NAME LIKE ? "); sql.addValue(name.endsWith("%") ? name : name+"%"); } } @@ -142,9 +145,6 @@ if (keysIn == null) return; - if ((name == null) || (name.length() == 0)) - sql.append("WHERE M.TMODEL_KEY IN ("); - else sql.append("AND M.TMODEL_KEY IN ("); int keyCount = keysIn.size(); Index: src/java/org/apache/juddi/datastore/jdbc/JDBCDataStore.java =================================================================== RCS file: /home/cvspublic/ws-juddi/src/java/org/apache/juddi/datastore/jdbc/JDBCDataStore.java,v retrieving revision 1.5 diff -u -b -B -w -u -r1.5 JDBCDataStore.java --- src/java/org/apache/juddi/datastore/jdbc/JDBCDataStore.java 4 Jun 2004 13:46:42 -0000 1.5 +++ src/java/org/apache/juddi/datastore/jdbc/JDBCDataStore.java 10 Jun 2004 14:11:48 -0000 @@ -1182,6 +1182,25 @@ /** * */ + public void hideTModel(String tModelKey) + throws org.apache.juddi.error.RegistryException + { + try + { + if ((tModelKey != null) && (connection != null)) + { + TModelTable.hide(tModelKey,connection); + } + } + catch(java.sql.SQLException sqlex) + { + throw new RegistryException(sqlex); + } + } + + /** + * + */ public void deleteTModel(String tModelKey) throws org.apache.juddi.error.RegistryException { @@ -1190,12 +1209,12 @@ 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); } } Index: src/java/org/apache/juddi/datastore/jdbc/TModelTable.java =================================================================== RCS file: /home/cvspublic/ws-juddi/src/java/org/apache/juddi/datastore/jdbc/TModelTable.java,v retrieving revision 1.3 diff -u -b -B -w -u -r1.3 TModelTable.java --- src/java/org/apache/juddi/datastore/jdbc/TModelTable.java 1 May 2004 00:58:54 -0000 1.3 +++ src/java/org/apache/juddi/datastore/jdbc/TModelTable.java 10 Jun 2004 14:11:48 -0000 @@ -40,6 +40,7 @@ private static Log log = LogFactory.getLog(TModelTable.class); static String insertSQL = null; + static String hideSQL = null; static String deleteSQL = null; static String selectSQL = null; static String selectByPublisherSQL = null; @@ -68,6 +69,12 @@ sql.append("UPDATE TMODEL "); sql.append("SET DELETED='true' "); sql.append("WHERE TMODEL_KEY=?"); + hideSQL = sql.toString(); + + // build deleteSQL + sql = new StringBuffer(100); + sql.append("DELETE FROM TMODEL "); + sql.append("WHERE TMODEL_KEY=?"); deleteSQL = sql.toString(); // build selectSQL @@ -149,7 +156,40 @@ } /** - * Delete row from the TMODEL table. + * Hide a row from the TMODEL table. + * + * @param tModelKey + * @param connection JDBC connection + * @throws java.sql.SQLException + */ + public static void hide(String tModelKey,Connection connection) + throws java.sql.SQLException + { + PreparedStatement statement = null; + + try + { + // prepare the statement + statement = connection.prepareStatement(hideSQL); + statement.setString(1,tModelKey.toString()); + + log.debug(hideSQL + + "\n\t TMODEL_KEY=" + tModelKey.toString() + "\n"); + + // execute + statement.executeUpdate(); + } + finally + { + try { + statement.close(); + } + catch (Exception e) { /* ignored */ } + } + } + + /** + * Delete a row from the TMODEL table. * * @param tModelKey * @param connection JDBC connection Index: src/java/org/apache/juddi/function/DeleteTModelFunction.java =================================================================== RCS file: /home/cvspublic/ws-juddi/src/java/org/apache/juddi/function/DeleteTModelFunction.java,v retrieving revision 1.5 diff -u -b -B -w -u -r1.5 DeleteTModelFunction.java --- src/java/org/apache/juddi/function/DeleteTModelFunction.java 30 Apr 2004 03:52:24 -0000 1.5 +++ src/java/org/apache/juddi/function/DeleteTModelFunction.java 10 Jun 2004 14:11:48 -0000 @@ -89,15 +89,15 @@ 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 (logicaly) delete it. + dataStore.hideTModel(tModelKey); } // delete the TModels for (int i=0; i