[Registry-dev] svn commit r9939 - in
trunk/registry/modules/core/src: main/java/org/wso2/registry
main/java/org/wso2/registry/jdbc
main/java/org/wso2/registry/jdbc/dao
main/java/org/wso2/registry/jdbc/dataobjects
main/java/org/wso2/registry/jdbc/queries
main/java/org/wso2/registry/jdbc/urlhandlers
main/resources/org/wso2/registry/i18n
test/java/org/wso2/registry/jdbc
svn at wso2.org
svn at wso2.org
Tue Nov 20 00:47:20 PST 2007
Author: chathura
Date: Tue Nov 20 00:46:41 2007
New Revision: 9939
Added:
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dataobjects/RatingDO.java
- copied, changed from r9928, trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/Rating.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dataobjects/TaggingDO.java
Removed:
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/Rating.java
Modified:
trunk/registry/modules/core/src/main/java/org/wso2/registry/RegistryConstants.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/DatabaseConstants.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/RatingsDAO.java
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/queries/SQLQueryProcessor.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/urlhandlers/TagURLHandler.java
trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/urlhandlers/URLHandlerManager.java
trunk/registry/modules/core/src/main/resources/org/wso2/registry/i18n/resource.properties
trunk/registry/modules/core/src/test/java/org/wso2/registry/jdbc/JDBCRegistryTest.java
Log:
Implemented support for dynamic queries returning tags as search results.
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/RegistryConstants.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/RegistryConstants.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/RegistryConstants.java Tue Nov 20 00:46:41 2007
@@ -63,7 +63,8 @@
public static final String SQL_QUERY_MEDIA_TYPE = "sql-query";
public static final String COMMENT_MEDIA_TYPE = "comment";
public static final String RATING_MEDIA_TYPE = "rating";
-
+ public static final String TAG_MEDIA_TYPE = "tag";
+
public static final String SYNPASE_REPOSITORY_MEDIA_TYPE = "synapse-repo";
public static final String SYNAPSE_CONF_COLLECTION_MEDIA_TYPE = "synapse-conf";
public static final String SYNAPSE_SEQUENCE_COLLECTION_MEDIA_TYPE = "synapse-seq";
@@ -78,5 +79,6 @@
public static final String RESOURCES_RESULT_TYPE = "Resource";
public static final String COMMENTS_RESULT_TYPE = "Comments";
public static final String RATINGS_RESULT_TYPE = "Ratings";
+ public static final String TAGS_RESULT_TYPE = "Tags";
}
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/DatabaseConstants.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/DatabaseConstants.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/DatabaseConstants.java Tue Nov 20 00:46:41 2007
@@ -57,6 +57,10 @@
public static final String TAG_ID_FIELD = "TAG_ID";
public static final String TAG_NAME_FIELD = "TAG_NAME";
+ // Field names of Taggings table
+ public static final String TAGGED_TIME_FIELD = "TAGGED_TIME";
+ public static final String TAGGING_ID_FIELD = "TN_ID";
+
// Field names of Comments table
public static final String COMMENT_ID_FIELD = "CM_ID";
public static final String COMMENT_TEXT_FIELD = "COMMENT_TEXT";
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/RatingsDAO.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/RatingsDAO.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/RatingsDAO.java Tue Nov 20 00:46:41 2007
@@ -20,6 +20,7 @@
package org.wso2.registry.jdbc.dao;
import org.wso2.registry.jdbc.DatabaseConstants;
+import org.wso2.registry.jdbc.dataobjects.RatingDO;
import org.wso2.registry.LogEntry;
import java.sql.*;
@@ -164,7 +165,7 @@
return userNames;
}
- public Rating getRating(long ratingID, Connection conn) throws SQLException {
+ public RatingDO getRating(long ratingID, Connection conn) throws SQLException {
String sql = "SELECT A.PATH, R.AID, R.USER_ID, R.RATING, R.RATED_TIME FROM RATINGS R, ARTIFACTS A WHERE A.AID=R.AID AND R.R_ID=?";
@@ -177,14 +178,14 @@
java.util.Date ratedTime = new java.util.Date(
results.getTimestamp(DatabaseConstants.RATED_TIME_FIELD).getTime());
- Rating rating = new Rating();
- rating.setRatedUserName(results.getString(DatabaseConstants.USER_ID_FIELD));
- rating.setRatedTime(ratedTime);
- rating.setRating(results.getInt(DatabaseConstants.RATING_FIELD));
- rating.setResourcePath(results.getString(DatabaseConstants.PATH_FIELD));
- rating.setResourceID(results.getLong(DatabaseConstants.AID_FIELD));
+ RatingDO ratingDAO = new RatingDO();
+ ratingDAO.setRatedUserName(results.getString(DatabaseConstants.USER_ID_FIELD));
+ ratingDAO.setRatedTime(ratedTime);
+ ratingDAO.setRating(results.getInt(DatabaseConstants.RATING_FIELD));
+ ratingDAO.setResourcePath(results.getString(DatabaseConstants.PATH_FIELD));
+ ratingDAO.setResourceID(results.getLong(DatabaseConstants.AID_FIELD));
- return rating;
+ return ratingDAO;
}
return null;
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 Nov 20 00:46:41 2007
@@ -23,10 +23,11 @@
import org.wso2.registry.TaggedResourcePath;
import org.wso2.registry.jdbc.DatabaseConstants;
import org.wso2.registry.jdbc.dataobjects.TagDO;
+import org.wso2.registry.jdbc.dataobjects.TaggingDO;
import java.sql.*;
-import java.util.ArrayList;
-import java.util.List;
+import java.sql.Date;
+import java.util.*;
public class TagsDAO {
@@ -189,4 +190,63 @@
return (Tag[]) tagList.toArray(new Tag[tagList.size()]);
}
+
+ public TaggingDO getTagging(String path, String tagName, String userName, Connection conn)
+ throws SQLException {
+
+ ResourceDAO resourceDAO = new ResourceDAO();
+ long aid = resourceDAO.getArtifactID(path, conn);
+
+ String sql = "SELECT T.TAGGED_TIME FROM TAGGINGS T, TAGS TG, ARTIFACTS A WHERE A.AID=T.AID AND T.TAG_ID=TG.TAG_ID AND T.AID=? AND T.USER_ID=? AND TG.TAG_NAME=?";
+
+ PreparedStatement s = conn.prepareStatement(sql);
+ s.setLong(1, aid);
+ s.setString(2, userName);
+ s.setString(3, tagName);
+
+ ResultSet result = s.executeQuery();
+ if (result.next()) {
+
+ java.util.Date taggedTime = new java.util.Date(
+ result.getTimestamp(DatabaseConstants.TAGGED_TIME_FIELD).getTime());
+
+ TaggingDO taggingDO = new TaggingDO();
+ taggingDO.setResourceID(aid);
+ taggingDO.setResourcePath(path);
+ taggingDO.setTagName(tagName);
+ taggingDO.setTaggedTime(taggedTime);
+ taggingDO.setTaggedUserName(userName);
+
+ return taggingDO;
+ }
+
+ return null;
+ }
+
+ public TaggingDO getTagging(long taggingID, Connection conn)
+ throws SQLException {
+
+ String sql = "SELECT A.AID, A.PATH, T.USER_ID, TG.TAG_NAME, T.TAGGED_TIME FROM TAGGINGS T, TAGS TG, ARTIFACTS A WHERE A.AID=T.AID AND T.TAG_ID=TG.TAG_ID AND T.TN_ID=?";
+
+ PreparedStatement s = conn.prepareStatement(sql);
+ s.setLong(1, taggingID);
+
+ ResultSet result = s.executeQuery();
+ if (result.next()) {
+
+ java.util.Date taggedTime = new java.util.Date(
+ result.getTimestamp(DatabaseConstants.TAGGED_TIME_FIELD).getTime());
+
+ TaggingDO taggingDO = new TaggingDO();
+ taggingDO.setResourceID(result.getLong(DatabaseConstants.AID_FIELD));
+ taggingDO.setResourcePath(result.getString(DatabaseConstants.PATH_FIELD));
+ taggingDO.setTagName(result.getString(DatabaseConstants.TAG_NAME_FIELD));
+ taggingDO.setTaggedUserName(result.getString(DatabaseConstants.USER_ID_FIELD));
+ taggingDO.setTaggedTime(taggedTime);
+
+ return taggingDO;
+ }
+
+ return null;
+ }
}
Copied: trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dataobjects/RatingDO.java (from r9928, trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/Rating.java)
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dao/Rating.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dataobjects/RatingDO.java Tue Nov 20 00:46:41 2007
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package org.wso2.registry.jdbc.dao;
+package org.wso2.registry.jdbc.dataobjects;
import java.util.Date;
-public class Rating {
+public class RatingDO {
private long resourceID;
private String resourcePath;
Added: trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dataobjects/TaggingDO.java
==============================================================================
--- (empty file)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/dataobjects/TaggingDO.java Tue Nov 20 00:46:41 2007
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2006, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.wso2.registry.jdbc.dataobjects;
+
+import java.util.Date;
+
+public class TaggingDO {
+
+ private long resourceID;
+ private String resourcePath;
+ private String taggedUserName;
+ private String tagName;
+ private Date taggedTime;
+
+ public long getResourceID() {
+ return resourceID;
+ }
+
+ public void setResourceID(long resourceID) {
+ this.resourceID = resourceID;
+ }
+
+ public String getResourcePath() {
+ return resourcePath;
+ }
+
+ public void setResourcePath(String resourcePath) {
+ this.resourcePath = resourcePath;
+ }
+
+ public String getTaggedUserName() {
+ return taggedUserName;
+ }
+
+ public void setTaggedUserName(String taggedUserName) {
+ this.taggedUserName = taggedUserName;
+ }
+
+ public String getTagName() {
+ return tagName;
+ }
+
+ public void setTagName(String tagName) {
+ this.tagName = tagName;
+ }
+
+ public Date getTaggedTime() {
+ return taggedTime;
+ }
+
+ public void setTaggedTime(Date taggedTime) {
+ this.taggedTime = taggedTime;
+ }
+}
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/queries/SQLQueryProcessor.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/queries/SQLQueryProcessor.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/queries/SQLQueryProcessor.java Tue Nov 20 00:46:41 2007
@@ -22,8 +22,10 @@
import org.wso2.registry.RegistryConstants;
import org.wso2.registry.RegistryException;
import org.wso2.registry.jdbc.DatabaseConstants;
+import org.wso2.registry.jdbc.dataobjects.RatingDO;
+import org.wso2.registry.jdbc.dataobjects.TaggingDO;
import org.wso2.registry.jdbc.dao.RatingsDAO;
-import org.wso2.registry.jdbc.dao.Rating;
+import org.wso2.registry.jdbc.dao.TagsDAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -74,7 +76,7 @@
Resource ratingsCollection = fillRatingsCollection(results, conn);
return ratingsCollection;
- } else if (resultType.equals("Tags")) {
+ } else if (resultType.equals(RegistryConstants.TAGS_RESULT_TYPE)) {
Resource tagsCollection = fillTagsCollection(results, conn);
return tagsCollection;
@@ -181,9 +183,9 @@
long ratingID = results.getLong(DatabaseConstants.RATING_ID_FIELD);
RatingsDAO ratingsDAO = new RatingsDAO();
- Rating rating = ratingsDAO.getRating(ratingID, conn);
+ RatingDO ratingDAO = ratingsDAO.getRating(ratingID, conn);
- String ratingPath = rating.getResourcePath() + ";ratings:" + rating.getRatedUserName();
+ String ratingPath = ratingDAO.getResourcePath() + ";ratings:" + ratingDAO.getRatedUserName();
ratingPathList.add(ratingPath);
}
@@ -199,36 +201,41 @@
private Resource fillTagsCollection(ResultSet results, Connection conn) throws SQLException {
- // URL for a tag /p1/r1?tag=java&user=xyz
+ // URL for a tag /p1/r1;tags:tagName:userName
List tagPathList = new ArrayList();
while (results.next()) {
- String userName = results.getString(DatabaseConstants.USER_ID_FIELD);
- long artifactID = results.getLong(DatabaseConstants.ARTIFACT_ID_FIELD);
- long tagID = results.getLong(DatabaseConstants.TAG_ID_FIELD);
-
- String artifactSQL = "SELECT PATH FROM ARTIFACTS WHERE AID=?";
- PreparedStatement s1 = conn.prepareStatement(artifactSQL);
- s1.setLong(1, artifactID);
- ResultSet result1 = s1.executeQuery();
-
- String taggedPath = "";
- if (result1.next()) {
- taggedPath = result1.getString(DatabaseConstants.PATH_FIELD);
- }
+ long taggingID = results.getLong(DatabaseConstants.TAGGING_ID_FIELD);
- String tagSQL = "SELECT TAG_NAME FROM TAGS WHERE TAG_ID=?";
- PreparedStatement s2 = conn.prepareStatement(tagSQL);
- s2.setLong(1, tagID);
- ResultSet result2 = s2.executeQuery();
-
- String tag = "";
- if (result2.next()) {
- tag = result2.getString(DatabaseConstants.TAG_NAME_FIELD);
- }
+ TagsDAO tagsDAO = new TagsDAO();
+ TaggingDO taggingDO = tagsDAO.getTagging(taggingID, conn);
+
+ //String userName = results.getString(DatabaseConstants.USER_ID_FIELD);
+ //long artifactID = results.getLong(DatabaseConstants.ARTIFACT_ID_FIELD);
+ //long tagID = results.getLong(DatabaseConstants.TAG_ID_FIELD);
+ //
+ //String artifactSQL = "SELECT PATH FROM ARTIFACTS WHERE AID=?";
+ //PreparedStatement s1 = conn.prepareStatement(artifactSQL);
+ //s1.setLong(1, artifactID);
+ //ResultSet result1 = s1.executeQuery();
+ //
+ //String taggedPath = "";
+ //if (result1.next()) {
+ // taggedPath = result1.getString(DatabaseConstants.PATH_FIELD);
+ //}
+ //
+ //String tagSQL = "SELECT TAG_NAME FROM TAGS WHERE TAG_ID=?";
+ //PreparedStatement s2 = conn.prepareStatement(tagSQL);
+ //s2.setLong(1, tagID);
+ //ResultSet result2 = s2.executeQuery();
+ //
+ //String tag = "";
+ //if (result2.next()) {
+ // tag = result2.getString(DatabaseConstants.TAG_NAME_FIELD);
+ //}
- String tagPath = taggedPath + "?tag=" + tag + "&user=" + userName;
+ String tagPath = taggingDO.getResourcePath() + ";tags:" + taggingDO.getTagName() + ":" + taggingDO.getTaggedUserName();
tagPathList.add(tagPath);
}
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/urlhandlers/TagURLHandler.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/urlhandlers/TagURLHandler.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/urlhandlers/TagURLHandler.java Tue Nov 20 00:46:41 2007
@@ -18,7 +18,13 @@
import org.wso2.registry.Resource;
import org.wso2.registry.RegistryException;
+import org.wso2.registry.RegistryConstants;
import org.wso2.registry.jdbc.ConnectionFactory;
+import org.wso2.registry.jdbc.dataobjects.TaggingDO;
+import org.wso2.registry.jdbc.dao.TagsDAO;
+
+import java.sql.Connection;
+import java.sql.SQLException;
public class TagURLHandler extends URLHandler {
@@ -27,7 +33,7 @@
}
/**
- * Accepts the URLs in the form <path>?tag=<tag-name>&user=<user-name>
+ * Accepts the URLs in the form <path>;tags:<tag-name>:<user-name>
*
* @param url
* @param resource
@@ -36,7 +42,7 @@
*/
public boolean handleURL(String url, Resource resource) throws RegistryException {
- String[] parts = url.split("?");
+ String[] parts = url.split(";");
if (parts.length != 2) {
return false;
@@ -46,24 +52,40 @@
return false;
}
- String[] queries = parts[1].split("&");
+ String[] queries = parts[1].split(":");
- if (queries.length != 2) {
+ if (queries.length != 3) {
return false;
}
- if (!queries[0].startsWith("tag=")) {
- return false;
- }
+ String resourcePath = parts[0];
+ String tagName = queries[1];
+ String userName = queries[2];
+
+ Connection conn = connectionFactory.getConnection();
+
+ try {
+ TagsDAO tagsDAO = new TagsDAO();
+ TaggingDO taggingDO = tagsDAO.getTagging(resourcePath, tagName, userName, conn);
+
+ resource.setMediaType(RegistryConstants.TAG_MEDIA_TYPE);
+ resource.setContent(taggingDO.getTagName());
+ resource.setAuthorUserName(taggingDO.getTaggedUserName());
+ resource.setCreatedTime(taggingDO.getTaggedTime());
+ resource.setProperty("resourcePath", taggingDO.getResourcePath());
+
+ } catch (SQLException e) {
+ String msg = "Could not get tagging. Caused by: " + e.getMessage();
+ throw new RegistryException(msg, e);
+
+ } finally {
+ try {
+ conn.close();
+ } catch (SQLException ignore) {
- if (!queries[1].startsWith("user=")) {
- return false;
+ }
}
- String tagName = queries[0].substring("tag=".length());
- String userName = queries[0].substring("user=".length());
-
- // todo: return the tag resource
- return false;
+ return true;
}
}
Modified: trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/urlhandlers/URLHandlerManager.java
==============================================================================
--- trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/urlhandlers/URLHandlerManager.java (original)
+++ trunk/registry/modules/core/src/main/java/org/wso2/registry/jdbc/urlhandlers/URLHandlerManager.java Tue Nov 20 00:46:41 2007
@@ -34,6 +34,7 @@
urlHandlers.add(new CommentCollectionURLHandler(connectionFactory));
urlHandlers.add(new RatingURLHandler(connectionFactory));
urlHandlers.add(new RatingsCollectionURLHandler(connectionFactory));
+ urlHandlers.add(new TagURLHandler(connectionFactory));
}
public Resource handleURL(String url)
Modified: trunk/registry/modules/core/src/main/resources/org/wso2/registry/i18n/resource.properties
==============================================================================
--- trunk/registry/modules/core/src/main/resources/org/wso2/registry/i18n/resource.properties (original)
+++ trunk/registry/modules/core/src/main/resources/org/wso2/registry/i18n/resource.properties Tue Nov 20 00:46:41 2007
@@ -61,7 +61,7 @@
resource.comment.fail="Could not comment the resource {0} with comment {1}.
get.comments.fail=Could not get the comments for the resource {0}.
resource.rating.fail=Could not rate the resource {0}.
-get.average.rating.fail=Could not get the average rating for the resource {0}.
+get.average.rating.fail=Could not get the average ratingDAO for the resource {0}.
define.query.fail=Could not define the query {0} with SQL: {1}.
execute.query.fail=Failed to execute the predefined query {0}.
resource.already.tagged=Resource {0} is already tagged with tag {1} by the user {2}.
\ No newline at end of file
Modified: trunk/registry/modules/core/src/test/java/org/wso2/registry/jdbc/JDBCRegistryTest.java
==============================================================================
--- trunk/registry/modules/core/src/test/java/org/wso2/registry/jdbc/JDBCRegistryTest.java (original)
+++ trunk/registry/modules/core/src/test/java/org/wso2/registry/jdbc/JDBCRegistryTest.java Tue Nov 20 00:46:41 2007
@@ -670,6 +670,69 @@
}
}
+ public void testUserDefinedTagsQuery() {
+
+ try {
+
+ Resource r1 = new Resource();
+ String r1Content = "this is r1 content";
+ r1.setContent(r1Content.getBytes());
+ r1.setDescription("production ready.");
+ String r1Path = "/c3/r1";
+ registry.put(r1Path, r1);
+
+ Resource r2 = new Resource();
+ String r2Content = "content for r2 :)";
+ r2.setContent(r2Content);
+ r2.setDescription("ready for production use.");
+ String r2Path = "/c3/r2";
+ registry.put(r2Path, r2);
+
+ Resource r3 = new Resource();
+ String r3Content = "content for r3 :)";
+ r3.setContent(r3Content);
+ r3.setDescription("only for government use.");
+ String r3Path = "/c3/r3";
+ registry.put(r3Path, r3);
+
+ registry.applyTag("/c3/r1", "java");
+ registry.applyTag("/c3/r2", "jsp");
+ registry.applyTag("/c3/r3", "ajax");
+
+ String sql1 = "SELECT T.TN_ID FROM TAGGINGS T, ARTIFACTS A WHERE A.AID=T.AID AND A.DESCRIPTION LIKE ?";
+ Resource q1 = new Resource();
+ q1.setContent(sql1);
+ q1.setMediaType(RegistryConstants.SQL_QUERY_MEDIA_TYPE);
+ q1.setProperty(RegistryConstants.RESULT_TYPE_PROPERTY_NAME,
+ RegistryConstants.TAGS_RESULT_TYPE);
+ registry.put("/qs/q3", q1);
+
+ } catch (RegistryException e) {
+ fail("Valid put resource scenarios failed.");
+ }
+
+ try {
+ Resource result1 = registry.executeQuery("/qs/q3", new String[] {"%production%"});
+
+ assertTrue("Search with result type tags should return a directory.",
+ result1.isDirectory());
+
+ String[] tagPaths = (String[]) result1.getContent();
+ assertEquals("There should be two matching tags.", tagPaths.length, 2);
+
+ Resource tag1 = registry.get(tagPaths[0]);
+ assertEquals("First matching tag should be 'java'",
+ (String)tag1.getContent(), "java");
+
+ Resource tag2 = registry.get(tagPaths[1]);
+ assertEquals("First matching tag should be 'jsp'",
+ (String)tag2.getContent(), "jsp");
+
+ } catch (RegistryException e) {
+ fail("Failed to execute query.");
+ }
+ }
+
public void testTagsAsResources() {
//Resource r1 = new Resource();
More information about the Registry-dev
mailing list