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