Author: chathura
Date: Tue Jan 15 21:11:38 2008
New Revision: 12303

Log:


Removed deleted resource paths from tag based search results and advanced 
search results.



Modified:
   
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/TagsDAO.java
   
trunk/registry/modules/core/src/test/java/org/wso2/registry/jdbc/TagsTest.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/AdvancedSearchAction.java
   
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/utils/AdvancedResourceQuery.java

Modified: 
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/TagsDAO.java
==============================================================================
--- 
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/TagsDAO.java
   (original)
+++ 
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/TagsDAO.java
   Tue Jan 15 21:11:38 2008
@@ -21,6 +21,7 @@
 
 import org.wso2.registry.Tag;
 import org.wso2.registry.TaggedResourcePath;
+import org.wso2.registry.RegistryConstants;
 import org.wso2.registry.jdbc.DatabaseConstants;
 import org.wso2.registry.jdbc.dataobjects.TaggingDO;
 
@@ -148,13 +149,13 @@
 
         String sql = null;
         if (tags.length == 1) {
-            sql = "SELECT DISTINCT R.PATH FROM ARTIFACTS R, TAGS T WHERE 
R.AID=T.AID AND T.TAG_NAME=?";
+            sql = "SELECT DISTINCT R.PATH FROM ARTIFACTS R, TAGS T WHERE 
R.AID=T.AID AND R.STATE=" + RegistryConstants.ACTIVE_STATE + " AND 
T.TAG_NAME=?";
         } else if (tags.length == 2) {
             sql =
-                    "SELECT DISTINCT R.PATH FROM ARTIFACTS R, TAGS T WHERE 
R.AID=T.AID AND (T.TAG_NAME=? OR T.TAG_NAME=?)";
+                    "SELECT DISTINCT R.PATH FROM ARTIFACTS R, TAGS T WHERE 
R.AID=T.AID AND R.STATE=" + RegistryConstants.ACTIVE_STATE + " AND 
(T.TAG_NAME=? OR T.TAG_NAME=?)";
         } else if (tags.length == 3) {
             sql =
-                    "SELECT DISTINCT R.PATH FROM ARTIFACTS R, TAGS T WHERE 
R.AID=T.AID AND (T.TAG_NAME=? OR T.TAG_NAME=? OR T.TAG_NAME=?)";
+                    "SELECT DISTINCT R.PATH FROM ARTIFACTS R, TAGS T WHERE 
R.AID=T.AID AND R.STATE=" + RegistryConstants.ACTIVE_STATE + " AND 
(T.TAG_NAME=? OR T.TAG_NAME=? OR T.TAG_NAME=?)";
         }
 
         PreparedStatement s = conn.prepareStatement(sql);

Modified: 
trunk/registry/modules/core/src/test/java/org/wso2/registry/jdbc/TagsTest.java
==============================================================================
--- 
trunk/registry/modules/core/src/test/java/org/wso2/registry/jdbc/TagsTest.java  
    (original)
+++ 
trunk/registry/modules/core/src/test/java/org/wso2/registry/jdbc/TagsTest.java  
    Tue Jan 15 21:11:38 2008
@@ -121,15 +121,8 @@
         } catch (RegistryException e) {
             fail("Failed to get resources with tag 'jsp'");
         }
-        boolean artifactFound2 = false;
-        for (int i = 0; i < paths2.length; i++) {
-            if (paths2[i].getResourcePath().equals("/d11/r1")) {
-                artifactFound2 = true;
-                break;
-            }
-        }
-        assertTrue("Tagging 'jsp' should still be associated with the deleted 
resource /d11/r1",
-                   artifactFound2);
+
+        assertEquals("Tag based search should not return paths of deleted 
resources.", paths2.length, 0);
     }
 
     public void testMultipleUserTags() {

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/AdvancedSearchAction.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/AdvancedSearchAction.java
        (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/AdvancedSearchAction.java
        Tue Jan 15 21:11:38 2008
@@ -98,128 +98,6 @@
                 }
             }
         }
-
-    }
-
-    public void executeDeprecated(HttpServletRequest request) throws 
RegistryException {
-
-        setRequest(request);
-
-        // contructing sqls is prefered here, as otherwise we have to create 
and store very large
-        // number of query resources to support combined criterias.
-
-        boolean queryStarted = false;
-
-        String pathQuery = "";
-        if (resourcePath != null && resourcePath.length() != 0) {
-            pathQuery = " WHERE R.PATH='" + resourcePath + "'";
-            queryStarted = true;
-        }
-
-        String authorQuery = "";
-        if (authorName != null && authorName.length() != 0) {
-            if (queryStarted) {
-                authorQuery = " AND R.AUTHOR='" + authorName + "'";
-            } else {
-                authorQuery = " WHERE R.AUTHOR='" + authorName + "'";
-                queryStarted = true;
-            }
-        }
-
-        //String sql = "SELECT A.AID FROM ARTIFACTS A, VERSIONS V, TAGS T, 
COMMENTS C WHERE A.AID=V.AID AND V.VN IN (SELECT MAX(V2.VN) FROM VERSIONS V2 
WHERE A.AID=V2.AID) AND A.AID=T.AID AND A.AID=C.AID AND A.PATH='c1200/r4'";
-        String fromVersions = "";
-        String versionQuery = "";
-        if (updaterName != null && updaterName.length() != 0) {
-            fromVersions = ", VERSIONS V";
-            if (queryStarted) {
-                versionQuery = " AND V.AID=R.AID AND V.VN IN (SELECT 
MAX(V2.VN) FROM VERSIONS V2 WHERE R.AID=V2.AID) AND V.AUTHOR='" + updaterName + 
"'";
-            } else {
-                versionQuery = " WHERE V.AID=R.AID AND V.VN IN (SELECT 
MAX(V2.VN) FROM VERSIONS V2 WHERE R.AID=V2.AID) AND V.AUTHOR='" + updaterName + 
"'";
-            }
-        }
-
-        String fromComments = "";
-        String commentsQuery = "";
-        if (commentWords != null && commentWords.length() != 0) {
-            fromComments = ", COMMENTS C";
-            if (queryStarted) {
-                commentsQuery = " AND C.AID=R.AID AND C.COMMENT_TEXT LIKE '" + 
commentWords + "'";
-            } else {
-                commentsQuery = " WHERE C.AID=R.AID AND C.COMMENT_TEXT LIKE 
'%" + commentWords + "%'";
-                queryStarted = true;
-            }
-        }
-
-        String fromTags = "";
-        String tagsQuery = "";
-        if (tags != null && tags.length() != 0) {
-            String[] tag = tags.split(" ");
-            if (tag.length > 0) {
-                fromTags = ", TAGS T";
-
-                // todo: complete with OR tags
-                if (queryStarted) {
-                    tagsQuery = " AND T.AID=R.AID AND";
-                } else {
-                    tagsQuery = " WHERE T.AID=R.AID AND";
-                    queryStarted = true;
-                }
-
-                tagsQuery = tagsQuery + " (T.TAG_NAME='" + tag[0] + "'";
-                for (int i = 1; i < tag.length; i++) {
-                    tagsQuery = tagsQuery + " OR T.TAG_NAME='" + tag[i] + "'";
-                }
-                tagsQuery = tagsQuery + ")";
-            }
-        }
-
-        String sql = "SELECT R.PATH FROM ARTIFACTS R" + fromVersions + 
fromComments + fromTags + pathQuery + authorQuery + versionQuery + 
commentsQuery + tagsQuery;
-
-        Registry registry = getRegistry();
-        Resource q1 = new Resource();
-        q1.setContent(sql);
-        q1.setMediaType(RegistryConstants.SQL_QUERY_MEDIA_TYPE);
-        q1.setProperty(RegistryConstants.RESULT_TYPE_PROPERTY_NAME,
-                RegistryConstants.RESOURCES_RESULT_TYPE);
-        String qPath = "/queries/advanced/" + getUserName() + "/q1";
-        registry.put(qPath, q1);
-
-        Resource qResults = registry.executeQuery(qPath, new String[] {} );
-
-        String[] childPaths = (String[]) qResults.getContent();
-        for (int i = 0; i < childPaths.length; i++) {
-
-            ResourceData resourceData = new ResourceData();
-            resourceData.setResourcePath(childPaths[i]);
-
-            if (childPaths[i] != null) {
-                if (RegistryConstants.ROOT_PATH.equals(childPaths[i])) {
-                    resourceData.setName("root");
-                } else {
-                    String[] parts = 
childPaths[i].split(RegistryConstants.PATH_SEPARATOR);
-                    resourceData.setName(parts[parts.length - 1]);
-                }
-            }
-
-            try {
-                Resource child = registry.get(childPaths[i]);
-
-                resourceData.setResourceType(
-                        child.isDirectory()? ResourceData.COLLECTION : 
ResourceData.RESOURCE);
-                resourceData.setAuthorUserName(child.getAuthorUserName());
-                resourceData.setDescription(child.getDescription());
-                
resourceData.setAverageRating(registry.getAverageRating(child.getPath()));
-                resourceData.setCreatedOn(child.getCreatedTime());
-                calculateAverageStars(resourceData);
-                
-                resourceDataList.add(resourceData);
-
-            } catch (AuthorizationFailedException e) {
-                continue;
-            }
-
-
-        }
     }
 
     public String getResourcePath() {

Modified: 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/utils/AdvancedResourceQuery.java
==============================================================================
--- 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/utils/AdvancedResourceQuery.java
 (original)
+++ 
trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/actions/utils/AdvancedResourceQuery.java
 Tue Jan 15 21:11:38 2008
@@ -301,7 +301,9 @@
 
     private String generateSQL() {
 
-        boolean queryStarted = false;
+        // for now, we always show only the active (not deleted) resources. as 
we always append the
+        // state=active query to the sql, query is always started.
+        boolean queryStarted = true;
 
         String pathQuery = "";
         if (resourceName != null && resourceName.length() != 0) {
@@ -432,7 +434,7 @@
             }
         }
 
-        String sql = "SELECT R.PATH FROM ARTIFACTS R" + fromVersions + 
fromComments + fromTags + pathQuery + authorQuery + updaterNameQuery + 
createdAfterQuery + createdBeforeQuery + updatedAfterQuery + updatedBeforeQuery 
+ commentsQuery + tagsQuery;
+        String sql = "SELECT R.PATH FROM ARTIFACTS R WHERE R.STATE=" + 
RegistryConstants.ACTIVE_STATE + fromVersions + fromComments + fromTags + 
pathQuery + authorQuery + updaterNameQuery + createdAfterQuery + 
createdBeforeQuery + updatedAfterQuery + updatedBeforeQuery + commentsQuery + 
tagsQuery;
 
         return sql;
     }

_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev

Reply via email to