You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2007/06/29 05:02:57 UTC

svn commit: r551778 - in /roller/trunk/apps/weblogger: src/java/org/apache/roller/weblogger/webservices/atomprotocol/ web/WEB-INF/classes/

Author: snoopdave
Date: Thu Jun 28 20:02:55 2007
New Revision: 551778

URL: http://svn.apache.org/viewvc?view=rev&rev=551778
Log:
Added final APP namespace URI and support for app:edited. Tested against latest Ape, there's still one error that needs to be fixed.

Added:
    roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModule.java
      - copied, changed from r551531, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModule.java
    roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleGenerator.java
      - copied, changed from r551531, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleGenerator.java
    roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleImpl.java
      - copied, changed from r551531, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleImpl.java
    roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleParser.java
      - copied, changed from r551531, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleParser.java
Removed:
    roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModule.java
    roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleGenerator.java
    roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleImpl.java
    roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleParser.java
Modified:
    roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomService.java
    roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java
    roller/trunk/apps/weblogger/web/WEB-INF/classes/rome.properties

Copied: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModule.java (from r551531, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModule.java)
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModule.java?view=diff&rev=551778&p1=roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModule.java&r1=551531&p2=roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModule.java&r2=551778
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModule.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModule.java Thu Jun 28 20:02:55 2007
@@ -18,9 +18,12 @@
 package org.apache.roller.weblogger.webservices.atomprotocol;
 
 import com.sun.syndication.feed.module.Module;
+import java.util.Date;
 
-public interface PubControlModule extends Module {
-    public static final String URI = "http://purl.org/atom/app#";
+public interface AppModule extends Module {
+    public static final String URI = "http://www.w3.org/2007/app";
     public boolean getDraft();
     public void setDraft(boolean draft);
+    public Date getEdited();
+    public void setEdited(Date edited);
 }

Copied: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleGenerator.java (from r551531, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleGenerator.java)
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleGenerator.java?view=diff&rev=551778&p1=roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleGenerator.java&r1=551531&p2=roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleGenerator.java&r2=551778
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleGenerator.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleGenerator.java Thu Jun 28 20:02:55 2007
@@ -20,6 +20,8 @@
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
+import org.apache.roller.weblogger.util.DateUtil;
+import org.apache.roller.weblogger.util.Utilities;
 
 import org.jdom.Element;
 import org.jdom.Namespace;
@@ -27,19 +29,19 @@
 import com.sun.syndication.feed.module.Module;
 import com.sun.syndication.io.ModuleGenerator;
 
-public class PubControlModuleGenerator implements ModuleGenerator {
-    private static final Namespace PUBCONTROL_NS  = 
-        Namespace.getNamespace("app", PubControlModule.URI);
+public class AppModuleGenerator implements ModuleGenerator {
+    private static final Namespace APP_NS  = 
+        Namespace.getNamespace("app", AppModule.URI);
 
     public String getNamespaceUri() {
-        return PubControlModule.URI;
+        return AppModule.URI;
     }
 
     private static final Set NAMESPACES;
 
     static {
         Set nss = new HashSet();
-        nss.add(PUBCONTROL_NS);
+        nss.add(APP_NS);
         NAMESPACES = Collections.unmodifiableSet(nss);
     }
 
@@ -48,17 +50,23 @@
     }
 
     public void generate(Module module, Element element) {
-        PubControlModule m = (PubControlModule)module;
+        AppModule m = (AppModule)module;
+        
         String draft = m.getDraft() ? "yes" : "no";
-        Element control = new Element("control", PUBCONTROL_NS);
+        Element control = new Element("control", APP_NS);
         control.addContent(generateSimpleElement("draft", draft));
         element.addContent(control);
+        
+        if (m.getEdited() != null) {
+            Element edited = new Element("edited", APP_NS);
+            edited.addContent(DateUtil.formatIso8601(m.getEdited()));
+            element.addContent(edited);
+        }
     }
 
     protected Element generateSimpleElement(String name, String value)  {
-        Element element = new Element(name, PUBCONTROL_NS);
+        Element element = new Element(name, APP_NS);
         element.addContent(value);
         return element;
     }
-
 }

Copied: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleImpl.java (from r551531, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleImpl.java)
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleImpl.java?view=diff&rev=551778&p1=roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleImpl.java&r1=551531&p2=roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleImpl.java&r2=551778
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleImpl.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleImpl.java Thu Jun 28 20:02:55 2007
@@ -18,24 +18,38 @@
 package org.apache.roller.weblogger.webservices.atomprotocol;
 
 import com.sun.syndication.feed.module.ModuleImpl;
+import java.util.Date;
 
-public class PubControlModuleImpl extends ModuleImpl implements PubControlModule {
-    private boolean _draft = false;
-
-    public PubControlModuleImpl() {
-        super(PubControlModule.class,PubControlModule.URI);
+public class AppModuleImpl extends ModuleImpl implements AppModule {
+    private boolean draft = false;
+    private Date edited = null;
+    
+    public AppModuleImpl() {
+        super(AppModule.class, AppModule.URI);
     }
+    
     public boolean getDraft() {
-        return _draft;
+        return draft;
     }
+    
     public void setDraft(boolean draft) {
-        _draft = draft;
+        this.draft = draft;
+    }
+    
+    public Date getEdited() {
+        return edited;
+    }
+
+    public void setEdited(Date edited) {
+        this.edited = edited;
     }
+    
     public Class getInterface() {
-        return PubControlModule.class;
+        return AppModule.class;
     }
+    
     public void copyFrom(Object obj) {
-        PubControlModule m = (PubControlModule)obj;
+        AppModule m = (AppModule)obj;
         setDraft(m.getDraft());
     }
 }

Copied: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleParser.java (from r551531, roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleParser.java)
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleParser.java?view=diff&rev=551778&p1=roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleParser.java&r1=551531&p2=roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleParser.java&r2=551778
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/PubControlModuleParser.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AppModuleParser.java Thu Jun 28 20:02:55 2007
@@ -17,31 +17,39 @@
 */
 package org.apache.roller.weblogger.webservices.atomprotocol;
 
+import org.apache.roller.weblogger.util.DateUtil;
 import org.jdom.Element;
 import org.jdom.Namespace;
 
 import com.sun.syndication.feed.module.Module;
 import com.sun.syndication.io.ModuleParser;
 
-public class PubControlModuleParser implements ModuleParser {
+public class AppModuleParser implements ModuleParser {
 
     public String getNamespaceUri() {
-        return PubControlModule.URI;
+        return AppModule.URI;
     }
 
     public Namespace getContentNamespace() {
-        return Namespace.getNamespace(PubControlModule.URI);
+        return Namespace.getNamespace(AppModule.URI);
     }
+    
     public Module parse(Element elem) {
         boolean foundSomething = false;
-        PubControlModule m = new PubControlModuleImpl();
-        Element e = elem.getChild("control", getContentNamespace());
-        if (e != null) {
-            Element draftElem = e.getChild("draft", getContentNamespace());
+        AppModule m = new AppModuleImpl();
+        Element control = elem.getChild("control", getContentNamespace());
+        if (control != null) {
+            Element draftElem = control.getChild("draft", getContentNamespace());
             if (draftElem != null) {
                 if ("yes".equals(draftElem.getText())) m.setDraft(true); 
                 if ("no".equals(draftElem.getText())) m.setDraft(false);                
             }
+        }
+        Element edited = elem.getChild("editied", getContentNamespace());
+        if (edited != null) {
+            try {
+                m.setEdited(DateUtil.parseIso8601(edited.getTextTrim()));
+            } catch (Exception ignored) {}
         }
         return m;
     }

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomService.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomService.java?view=diff&rev=551778&r1=551777&r2=551778
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomService.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/AtomService.java Thu Jun 28 20:02:55 2007
@@ -28,58 +28,8 @@
 
 /**
  * This class models an Atom Publishing Protocol AtomService Document.
- * <p />
- * Based on: draft-ietf-atompub-protocol-10.txt
- * <p />
+ * Based on: draft-ietf-atompub-protocol-10.txt.
  * Designed to be Roller independent.
- *//* 
-
-	namespace app = "http://purl.org/atom/app#"
-	start = appService
-	             
-	appService =
-	   element app:service {
-	      appCommonAttributes,
-	      ( appWorkspace+
-	        & extensionElement* )
-	   }
-	   
-	For example:
-	 
-	<?xml version="1.0" encoding='utf-8'?>
-	<service xmlns="http://purl.org/atom/app#"
-	         xmlns:atom="http://www.w3.org/2005/Atom">
-	  <workspace>
-	    <atom:title>Main Site</atom:title>
-	    <collection
-	        href="http://example.org/reilly/main" >
-	      <atom:title>My Blog Entries</atom:title>
-	      <categories
-	         href="http://example.com/cats/forMain.cats" />
-	    </collection>
-	    <collection
-	        href="http://example.org/reilly/pic" >
-	      <atom:title>Pictures</atom:title>
-	      <accept>image/*</accept>
-	    </collection>
-	  </workspace>
-	  <workspace>
-	    <atom:title>Side Bar Blog</atom:title>
-	    <collection
-	        href="http://example.org/reilly/list" >
-	      <atom:title>Remaindered Links</atom:title>
-	      <accept>entry</accept>
-	      <categories fixed="yes">
-	        <atom:category
-	          scheme="http://example.org/extra-cats/"
-	          term="joke" />
-	        <atom:category
-	          scheme="http://example.org/extra-cats/"
-	          term="serious" />
-	      </categories>
-	    </collection>
-	  </workspace>
-	</service>
  */
 public class AtomService {
 
@@ -91,7 +41,7 @@
     
     /** Namespace for Atom Publishing Protocol */
     public static Namespace ATOM_PROTOCOL = 
-        Namespace.getNamespace("app","http://purl.org/atom/app#");  
+        Namespace.getNamespace("app","http://www.w3.org/2007/app");  
         
     public AtomService() {
     }

Modified: roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java?view=diff&rev=551778&r1=551777&r2=551778
==============================================================================
--- roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java (original)
+++ roller/trunk/apps/weblogger/src/java/org/apache/roller/weblogger/webservices/atomprotocol/RollerAtomHandler.java Thu Jun 28 20:02:55 2007
@@ -1032,10 +1032,10 @@
         atomEntry.setOtherLinks(otherlinks);
         
         List modules = new ArrayList();
-        PubControlModule pubControl = new PubControlModuleImpl();
-        pubControl.setDraft(
-                !WeblogEntry.PUBLISHED.equals(entry.getStatus()));
-        modules.add(pubControl);
+        AppModule app = new AppModuleImpl();
+        app.setDraft(!WeblogEntry.PUBLISHED.equals(entry.getStatus()));
+        app.setEdited(entry.getUpdateTime());
+        modules.add(app);
         atomEntry.setModules(modules);
         
         return atomEntry;
@@ -1085,6 +1085,13 @@
         contents.add(content);
         entry.setContents(contents);
         
+        List modules = new ArrayList();
+        AppModule app = new AppModuleImpl();
+        app.setDraft(false);
+        app.setEdited(entry.getUpdated());
+        modules.add(app);
+        entry.setModules(modules);
+        
         return entry;
     }
     
@@ -1113,8 +1120,8 @@
         rollerEntry.setPubTime(pubTime);
         rollerEntry.setUpdateTime(updateTime);
         
-        PubControlModule control =
-                (PubControlModule)entry.getModule("http://purl.org/atom/app#");
+        AppModule control =
+                (AppModule)entry.getModule("http://purl.org/atom/app#");
         if (control!=null && control.getDraft()) {
             rollerEntry.setStatus(WeblogEntry.DRAFT);
         } else {

Modified: roller/trunk/apps/weblogger/web/WEB-INF/classes/rome.properties
URL: http://svn.apache.org/viewvc/roller/trunk/apps/weblogger/web/WEB-INF/classes/rome.properties?view=diff&rev=551778&r1=551777&r2=551778
==============================================================================
--- roller/trunk/apps/weblogger/web/WEB-INF/classes/rome.properties (original)
+++ roller/trunk/apps/weblogger/web/WEB-INF/classes/rome.properties Thu Jun 28 20:02:55 2007
@@ -54,9 +54,9 @@
                                   
 # Handle Atom Pub Protocol pubcontrol extension
                                       
-atom_1.0.item.ModuleParser.classes   =org.apache.roller.weblogger.webservices.atomprotocol.PubControlModuleParser
+atom_1.0.item.ModuleParser.classes   =org.apache.roller.weblogger.webservices.atomprotocol.AppModuleParser
 
-atom_1.0.item.ModuleGenerator.classes =org.apache.roller.weblogger.webservices.atomprotocol.PubControlModuleGenerator
+atom_1.0.item.ModuleGenerator.classes =org.apache.roller.weblogger.webservices.atomprotocol.AppModuleGenerator