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

Reply via email to