Author: deepal
Date: Wed Jan 30 00:53:12 2008
New Revision: 13167
Log:
Now we are generate valid atom feed according to w3c
Modified:
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/app/APPConstants.java
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/app/AtomRegistry.java
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/app/RemoteRegistry.java
Modified:
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/app/APPConstants.java
==============================================================================
---
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/app/APPConstants.java
(original)
+++
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/app/APPConstants.java
Wed Jan 30 00:53:12 2008
@@ -15,10 +15,12 @@
*/
package org.wso2.registry.app;
+import org.wso2.registry.RegistryConstants;
+
import javax.xml.namespace.QName;
public interface APPConstants {
- static final QName COMMENTS_QNAME = new QName("isComments");
- static final QName COMMENTID_QNAME = new QName("commentID");
+ static final QName COMMENTS_QNAME = new QName(RegistryConstants.NAMESPACE
, "isComments");
+ static final QName COMMENTID_QNAME = new QName(RegistryConstants.NAMESPACE
,"commentID");
static final String IMPORT_MEDIATYPE = "application/resource-import";
}
Modified:
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/app/AtomRegistry.java
==============================================================================
---
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/app/AtomRegistry.java
(original)
+++
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/app/AtomRegistry.java
Wed Jan 30 00:53:12 2008
@@ -19,7 +19,6 @@
package org.wso2.registry.app;
import org.apache.abdera.Abdera;
-import org.apache.abdera.i18n.text.UrlEncoding;
import org.apache.abdera.factory.Factory;
import org.apache.abdera.model.*;
import org.apache.abdera.parser.Parser;
@@ -137,14 +136,17 @@
// } else {
Resource resource = new Resource();
// }
- String attValue = entry.getSimpleExtension(new QName("directory"));
+ String attValue = entry.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,
+ "directory"));
Properties properties =
entry.getExtension(PropertyExtensionFactory.PROPERTIES);
RemoteRegistry.createPropertiesFromExtensionElement(properties,
resource);
- String mediaType = entry.getSimpleExtension(new
QName("mediaType"));
+ String mediaType = entry.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,
+ "mediaType"));
if (mediaType != null) {
resource.setMediaType(mediaType);
}
- String parentPath = entry.getSimpleExtension(new
QName("parentPath"));
+ String parentPath = entry.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,
+ "parentPath"));
if (parentPath != null && !"".equals(parentPath)) {
resource.setParentPath(parentPath);
}
@@ -155,7 +157,8 @@
resource.setDescription(entry.getSummary());
}
String contentModified = entry.getSimpleExtension(
- new QName("contentModified"));
+ new QName(RegistryConstants.NAMESPACE ,
+ "contentModified"));
if (attValue != null && "true".equals(attValue)) {
// Directory
resource.setDirectory(true);
@@ -351,6 +354,7 @@
feed.setSubtitle(Messages.getMessage("resource.version",
resourcePath));
feed.setUpdated(new Date());
feed.addLink(request.getBaseUri() + "atom" + resourcePath);
+ feed.addLink(request.getBaseUri() + "atom" + resourcePath
,"self");
//Versions will be added as entries
createEntriesFromStringArray(versions,
request.getBaseUri().toString(),
abdera, "versionLink",
@@ -488,11 +492,15 @@
//if the resource is deleted then there will be comment saying that
the resource is
// deleted
if (resource.getState() == RegistryConstants.DELETED_STATE) {
- feed.addSimpleExtension(new QName("state"), "Deleted");
+ feed.addSimpleExtension(new QName(RegistryConstants.NAMESPACE ,
"state"), "Deleted");
}
feed.setId("http://wso2.org/jdbcregistry:atom" + resource.getId());
- feed.setSubtitle(resource.getDescription());
- feed.addAuthor(resource.getAuthorUserName());
+ if (resource.getDescription() != null &&
!"".equals(resource.getDescription())) {
+ feed.setSubtitle(resource.getDescription());
+ }
+ if (resource.getAuthorUserName()!=null) {
+ feed.addAuthor(resource.getAuthorUserName());
+ }
feed.setTitle(path);
if (resource.getLastModified() != null) {
feed.setUpdated(resource.getLastModified());
@@ -501,21 +509,23 @@
}
// resource.getCreatedTime()
if (resource.getCreatedTime() != null) {
- feed.addSimpleExtension(new QName("createdTime"),
+ feed.addSimpleExtension(new QName(RegistryConstants.NAMESPACE
,"createdTime"),
"" + resource.getCreatedTime().getTime());
}
- feed.addSimpleExtension(new QName("mediaType"),
resource.getMediaType());
- feed.addSimpleExtension(new QName("parentPath"),
resource.getParentPath());
+ feed.addSimpleExtension(new QName(RegistryConstants.NAMESPACE
,"mediaType"),
+ resource.getMediaType());
+ feed.addSimpleExtension(new QName(RegistryConstants.NAMESPACE
,"parentPath"),
+ resource.getParentPath());
path = RemoteRegistry.encodeURL(path);
String href = baseURI + "atom" + path;
feed.addLink(href);
feed.addLink(href, "self");
- feed.addLink(href, "path");
- feed.addSimpleExtension(new QName("lastUpdatedUser"),
resource.getLastUpdaterUserName());
+ feed.addSimpleExtension(new QName(RegistryConstants.NAMESPACE ,
+ "lastUpdatedUser"), resource.getLastUpdaterUserName());
//if the content type is comment then the resource will contains ,
// String array of comments
if (resource.isDirectory()) {
- feed.addSimpleExtension(new QName("directory"), "true");
+ feed.addSimpleExtension(new QName(RegistryConstants.NAMESPACE
,"directory"), "true");
}
if (exceuteQuery) {
String values[] = (String[])resource.getContent();
@@ -541,17 +551,17 @@
} else {
//Now the resource is a actual resource , so need to send the
content
//adding attribute to indicate the resource is not a directory
- feed.addSimpleExtension(new QName("directory"), "false");
+ feed.addSimpleExtension(new QName(RegistryConstants.NAMESPACE
,"directory"), "false");
Object content = resource.getContent();
Entry entry = abdera.getFactory().newEntry();
String link = baseURI + "atom" + path;
entry.setId(link);
entry.setTitle(path);
- entry.setUpdated(resource.getLastModified());
+ entry.setUpdated(feed.getUpdated());
entry.setPublished(resource.getCreatedTime());
+ String resourcePath = baseURI + "resources" + path;
if (content != null && content instanceof byte[]) {
- String resourcePath = baseURI + "resources" + path;
entry.addLink(resourcePath, "edit-media");
feed.addLink(resourcePath, "self");
} else {
@@ -559,6 +569,10 @@
entry.setContent(content.toString());
}
}
+ if (resource.getAuthorUserName()!=null) {
+ entry.addAuthor(resource.getAuthorUserName());
+ }
+ entry.addLink(resourcePath ,"alternate");
feed.addEntry(entry);
}
}
@@ -579,16 +593,28 @@
Abdera abdera,
String rel,
Feed feed) {
+ String authorName = null;
+ Person person = feed.getAuthor();
+ if (person!=null) {
+ authorName = person.getName();
+ feed.addAuthor(authorName);
+ }
for (String value : values) {
String nodeLink = baseURI + "atom" + value;
nodeLink = RemoteRegistry.encodeURL(nodeLink);
- value = RemoteRegistry.encodeURL(value);
Entry entry = abdera.getFactory().newEntry();
entry.addLink(nodeLink);
entry.setTitle(value);
+ entry.setUpdated(new Date());
+ value = RemoteRegistry.encodeURL(value);
entry.addLink(nodeLink, "self");
//adding child node as and setting the ref as path
entry.addLink(value, rel);
+ if (authorName!=null) {
+ entry.addAuthor(authorName);
+ }
+ entry.setId(nodeLink);
+ entry.setContent("");
feed.addEntry(entry);
}
}
@@ -726,7 +752,7 @@
Entry entry = abdera.getFactory().newEntry();
entry.setTitle(tag.getTagName());
entry.setContent(tag.getTagName());
- entry.addSimpleExtension(new QName("taggings"), "" +
tag.getTagCount());
+ entry.addSimpleExtension(new QName(RegistryConstants.NAMESPACE
,"taggings"), "" + tag.getTagCount());
feed.addEntry(entry);
}
return feed;
@@ -777,17 +803,19 @@
try {
Factory factory = abdera.getFactory();
Feed feed = factory.newFeed();
- feed.addSimpleExtension(new QName("directory"), "true");
+ feed.addSimpleExtension(new QName(RegistryConstants.NAMESPACE
,"directory"), "true");
feed.addSimpleExtension(COMMENTS_QNAME, "true");
Comment comments[] = getSecureRegistry(request).getComments(path);
- feed.setId("http://wso2.org/jdbcregistry,Comments" + path);
+ feed.setId("http://wso2.org/registry,Comments" + path);
feed.setUpdated(new Date());
feed.setTitle("comments for the resource " + path);
for (Comment comment : comments) {
Entry entry = abdera.getFactory().newEntry();
entry.addLink(comment.getResourcePath(), "path");
entry.addLink(comment.getCommentPath(), "direct");
- entry.setId("http://wso2.org/jdbcregistry/atom/comment");
+ entry.addLink(comment.getCommentPath(), "self");
+ entry.setTitle(comment.getResourcePath());
+ entry.setId("http://wso2.org/registry" +
comment.getCommentPath());
entry.addAuthor(comment.getUser());
entry.setUpdated(comment.getTime());
entry.setContent(comment.getText());
@@ -827,7 +855,7 @@
Entry entry = abdera.getFactory().newEntry();
String path = tagPath.getResourcePath();
entry.setTitle(path);
- entry.addSimpleExtension(new QName("taggings"), "" +
tagPath.getTagCount());
+ entry.addSimpleExtension(new QName(RegistryConstants.NAMESPACE
,"taggings"), "" + tagPath.getTagCount());
Map tagCounts = tagPath.getTagCounts();
Iterator iCounts = tagCounts.keySet().iterator();
java.util.Properties properties = new java.util.Properties();
@@ -907,8 +935,10 @@
entry.setEdited(logentry.getDate());
entry.setContent(logentry.getActionData());
entry.addAuthor(logentry.getUserName());
- entry.addSimpleExtension(new QName("action"), "" +
logentry.getAction());
- entry.addSimpleExtension(new QName("path"),
logentry.getResourcePath());
+ entry.addSimpleExtension(new QName(RegistryConstants.NAMESPACE ,
+ "action"), "" + logentry.getAction());
+ entry.addSimpleExtension(new QName(RegistryConstants.NAMESPACE ,
+ "path"), logentry.getResourcePath());
feed.addEntry(entry);
}
return feed;
Modified:
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/app/RemoteRegistry.java
==============================================================================
---
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/app/RemoteRegistry.java
(original)
+++
branches/registry/1_0/modules/core/src/main/java/org/wso2/registry/app/RemoteRegistry.java
Wed Jan 30 00:53:12 2008
@@ -19,8 +19,6 @@
package org.wso2.registry.app;
import org.apache.abdera.Abdera;
-import org.apache.abdera.i18n.text.UrlEncoding;
-import org.apache.abdera.i18n.text.Filter;
import org.apache.abdera.factory.Factory;
import org.apache.abdera.model.*;
import org.apache.abdera.protocol.Response;
@@ -39,7 +37,6 @@
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
-import java.net.URLEncoder;
import java.util.*;
public class RemoteRegistry implements Registry, RegistryConstants,
APPConstants {
@@ -96,7 +93,7 @@
}
Document introspection = clientResponse.getDocument();
Feed feed = (Feed)introspection.getRoot();
- String state = feed.getSimpleExtension(new QName("state"));
+ String state = feed.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,"state"));
if (state != null && state.equals("Deleted")) {
throw new ResourceNotFoundException(path);
}
@@ -115,7 +112,7 @@
* : If user is unable to open the URL connection
*/
private Resource createResourceFromFeed(Feed feed, boolean isQuery) throws
RegistryException {
- String isDirectory = feed.getSimpleExtension(new QName("directory"));
+ String isDirectory = feed.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,"directory"));
Resource resource = new Resource();
Properties properties =
feed.getExtension(PropertyExtensionFactory.PROPERTIES);
RemoteRegistry.createPropertiesFromExtensionElement(properties,
resource);
@@ -123,26 +120,27 @@
resource.setAuthorUserName(feed.getAuthor().getName());
}
resource.setLastModified(feed.getUpdated());
- String createdDate = feed.getSimpleExtension(new QName("createdTime"));
+ String createdDate = feed.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,"createdTime"));
if (createdDate != null) {
resource.setCreatedTime(new Date(Long.parseLong(createdDate)));
}
- String lastUpdatedUser = feed.getSimpleExtension(new
QName("lastUpdatedUser"));
+ String lastUpdatedUser = feed.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,
+ "lastUpdatedUser"));
if (lastUpdatedUser != null) {
resource.setLastUpdaterUserName(lastUpdatedUser);
}
- String mediaType = feed.getSimpleExtension(new QName("mediaType"));
+ String mediaType = feed.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,"mediaType"));
if (mediaType != null) {
resource.setMediaType(mediaType);
}
- String parentPath = feed.getSimpleExtension(new QName("parentPath"));
+ String parentPath = feed.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,"parentPath"));
if (parentPath != null) {
resource.setParentPath(parentPath);
}
resource.setPath(feed.getTitle());
resource.setDescription(feed.getSubtitle());
- String state = feed.getSimpleExtension(new QName("state"));
+ String state = feed.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,"state"));
if (state != null && "Deleted".equals(state)) {
resource.setState(DELETED_STATE);
}
@@ -227,15 +225,20 @@
java.util.Properties properties = resource.getProperties();
addPropertyExtensionElement(properties, abdera, entry,
PropertyExtensionFactory.PROPERTIES,
PropertyExtensionFactory.PROPERTY);
- entry.addSimpleExtension(new QName("mediaType"),
resource.getMediaType());
- entry.addSimpleExtension(new QName("parentPath"),
resource.getParentPath());
+ entry.addSimpleExtension(new QName(RegistryConstants.NAMESPACE ,
+ "mediaType"), resource.getMediaType());
+ entry.addSimpleExtension(new QName(RegistryConstants.NAMESPACE ,
+ "parentPath"), resource.getParentPath());
if (resource.isContentModified()) {
- entry.addSimpleExtension(new QName("contentModified"), "true");
+ entry.addSimpleExtension(new QName(RegistryConstants.NAMESPACE ,
+ "contentModified"), "true");
}
if (resource.isDirectory()) {
- entry.addSimpleExtension(new QName("directory"), "true");
+ entry.addSimpleExtension(new QName(RegistryConstants.NAMESPACE ,
+ "directory"), "true");
} else {
- entry.addSimpleExtension(new QName("directory"), "false");
+ entry.addSimpleExtension(new QName(RegistryConstants.NAMESPACE ,
+ "directory"), "false");
Object content = resource.getContent();
if (content != null && content instanceof byte[]) {
ByteArrayInputStream in = new
ByteArrayInputStream((byte[])content);
@@ -442,7 +445,8 @@
TaggedResourcePath tagpath = new TaggedResourcePath();
tagpath.setResourcePath(entry.getTitle());
tagpath.setTagCount(
- Long.parseLong(entry.getSimpleExtension(new
QName("taggings"))));
+ Long.parseLong(entry.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,
+ "taggings"))));
taggedResourcePaths[i] = tagpath;
tagpath.setTagCounts(map);
}
@@ -467,7 +471,8 @@
for (int i = 0; i < entries.size(); i++) {
Entry entry = (Entry)entries.get(i);
Tag tag = new Tag();
- tag.setTagCount(Long.parseLong(entry.getSimpleExtension(new
QName("taggings"))));
+ tag.setTagCount(Long.parseLong(entry.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,
+ "taggings"))));
tag.setTagName(entry.getTitle());
tags[i] = tag;
}
@@ -683,8 +688,10 @@
logEntry.setDate(entry.getEdited());
logEntry.setActionData(entry.getContent());
logEntry.setUserName(entry.getAuthor().getName());
-
logEntry.setAction(Integer.parseInt(entry.getSimpleExtension(new
QName("action"))));
- logEntry.setResourcePath(entry.getSimpleExtension(new
QName("path")));
+
logEntry.setAction(Integer.parseInt(entry.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE,
+ "action"))));
+ logEntry.setResourcePath(entry.getSimpleExtension(new
QName(RegistryConstants.NAMESPACE ,
+ "path")));
logs[i] = logEntry;
}
}
_______________________________________________
Registry-dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/registry-dev