You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@abdera.apache.org by jm...@apache.org on 2011/10/27 21:30:25 UTC

svn commit: r1189957 - in /abdera/abdera2: activities/src/main/java/org/apache/abdera2/activities/protocol/ common/src/main/java/org/apache/abdera2/common/protocol/ common/src/main/java/org/apache/abdera2/common/protocol/servlet/ common/src/main/java/o...

Author: jmsnell
Date: Thu Oct 27 19:30:24 2011
New Revision: 1189957

URL: http://svn.apache.org/viewvc?rev=1189957&view=rev
Log:
Fixes...

Modified:
    abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/protocol/AbstractActivitiesCollectionAdapter.java
    abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/AbstractCollectionAdapter.java
    abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/AbstractAbderaServlet.java
    abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaTask.java
    abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubCollectionAdapter.java
    abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubWorkspaceProvider.java
    abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/multipart/AbstractMultipartCollectionAdapter.java

Modified: abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/protocol/AbstractActivitiesCollectionAdapter.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/protocol/AbstractActivitiesCollectionAdapter.java?rev=1189957&r1=1189956&r2=1189957&view=diff
==============================================================================
--- abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/protocol/AbstractActivitiesCollectionAdapter.java (original)
+++ abdera/abdera2/activities/src/main/java/org/apache/abdera2/activities/protocol/AbstractActivitiesCollectionAdapter.java Thu Oct 27 19:30:24 2011
@@ -35,6 +35,7 @@ import org.apache.abdera2.common.protoco
 import org.joda.time.DateTime;
 
 import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
 
 public abstract class AbstractActivitiesCollectionAdapter
   extends AbstractCollectionAdapter
@@ -119,6 +120,6 @@ public abstract class AbstractActivities
   }
 
   public Predicate<RequestContext> acceptable() {
-    return AbstractActivitiesWorkspaceProvider.isJson();
+    return Predicates.or(super.acceptable(),AbstractActivitiesWorkspaceProvider.isJson());
   }
 }

Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/AbstractCollectionAdapter.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/AbstractCollectionAdapter.java?rev=1189957&r1=1189956&r2=1189957&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/AbstractCollectionAdapter.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/AbstractCollectionAdapter.java Thu Oct 27 19:30:24 2011
@@ -21,6 +21,7 @@ import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.abdera2.activities.protocol.AbstractActivitiesWorkspaceProvider;
 import org.apache.abdera2.common.text.UrlEncoding;
 import org.apache.abdera2.common.date.DateTimes;
 import org.apache.abdera2.common.http.EntityTag;
@@ -211,4 +212,19 @@ public abstract class AbstractCollection
           return ProviderHelper.notfound(input);
         }
     };
+    
+    public static Predicate<RequestContext> HAS_NO_ENTITY = 
+      new Predicate<RequestContext>() {
+        public boolean apply(RequestContext input) {
+          String method = input.getMethod();
+          return method.equalsIgnoreCase("GET") ||
+                 method.equalsIgnoreCase("DELETE") ||
+                 method.equalsIgnoreCase("HEAD") ||
+                 method.equalsIgnoreCase("OPTIONS");
+        }
+    };
+    
+    public Predicate<RequestContext> acceptable() {
+      return HAS_NO_ENTITY;
+    }
 }

Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/AbstractAbderaServlet.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/AbstractAbderaServlet.java?rev=1189957&r1=1189956&r2=1189957&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/AbstractAbderaServlet.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/AbstractAbderaServlet.java Thu Oct 27 19:30:24 2011
@@ -18,6 +18,7 @@
 package org.apache.abdera2.common.protocol.servlet;
 
 import java.io.IOException;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.Enumeration;
 import java.util.HashMap;
@@ -38,6 +39,7 @@ import org.apache.abdera2.common.protoco
 import org.apache.abdera2.common.protocol.ServiceManager;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.joda.time.DateTime;
 
 public abstract class AbstractAbderaServlet
   extends HttpServlet {
@@ -116,6 +118,10 @@ public abstract class AbstractAbderaServ
                 for (Object value : headers) {
                     if (value instanceof Date)
                         response.addDateHeader(name, ((Date)value).getTime());
+                    else if (value instanceof DateTime)
+                        response.addDateHeader(name, ((DateTime)value).getMillis());
+                    else if (value instanceof Calendar)
+                        response.addDateHeader(name, ((Calendar)value).getTimeInMillis());
                     else
                         response.addHeader(name, value.toString());
                 }

Modified: abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaTask.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaTask.java?rev=1189957&r1=1189956&r2=1189957&view=diff
==============================================================================
--- abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaTask.java (original)
+++ abdera/abdera2/common/src/main/java/org/apache/abdera2/common/protocol/servlet/async/AbderaTask.java Thu Oct 27 19:30:24 2011
@@ -18,6 +18,7 @@
 package org.apache.abdera2.common.protocol.servlet.async;
 
 import java.io.IOException;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.UUID;
 
@@ -32,6 +33,7 @@ import org.apache.abdera2.common.protoco
 import org.apache.abdera2.common.protocol.Provider;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.joda.time.DateTime;
 
 public class AbderaTask {
 
@@ -131,10 +133,14 @@ public class AbderaTask {
                 Iterable<Object> headers = context.getHeaders(name);
                 for (Object value : headers) {
                   log.debug(String.format("Header [%s]: %s", name, value.toString()));
-                    if (value instanceof Date)
-                        response.addDateHeader(name, ((Date)value).getTime());
-                    else
-                        response.addHeader(name, value.toString());
+                  if (value instanceof Date)
+                    response.addDateHeader(name, ((Date)value).getTime());
+                  else if (value instanceof DateTime)
+                    response.addDateHeader(name, ((DateTime)value).getMillis());
+                  else if (value instanceof Calendar)
+                    response.addDateHeader(name, ((Calendar)value).getTimeInMillis());
+                  else
+                    response.addHeader(name, value.toString());
                 }
             }
             if (!request.getMethod().equals("HEAD") && context.hasEntity()) {

Modified: abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubCollectionAdapter.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubCollectionAdapter.java?rev=1189957&r1=1189956&r2=1189957&view=diff
==============================================================================
--- abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubCollectionAdapter.java (original)
+++ abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubCollectionAdapter.java Thu Oct 27 19:30:24 2011
@@ -39,6 +39,7 @@ import org.apache.abdera2.protocol.serve
 import org.joda.time.DateTime;
 
 import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
 
 /**
  * Base CollectionAdapter implementation that provides a number of helper utility methods for adapter implementations.
@@ -147,6 +148,6 @@ public abstract class AbstractAtompubCol
     }
     
     public Predicate<RequestContext> acceptable() {
-      return ProviderHelper.isAtom();
+      return Predicates.or(super.acceptable(),ProviderHelper.isAtom());
     }
 }

Modified: abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubWorkspaceProvider.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubWorkspaceProvider.java?rev=1189957&r1=1189956&r2=1189957&view=diff
==============================================================================
--- abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubWorkspaceProvider.java (original)
+++ abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/impl/AbstractAtompubWorkspaceProvider.java Thu Oct 27 19:30:24 2011
@@ -30,6 +30,7 @@ import org.apache.abdera2.common.protoco
 import org.apache.abdera2.common.protocol.TargetType;
 import org.apache.abdera2.protocol.server.AtompubProvider;
 import org.apache.abdera2.protocol.server.model.AtompubWorkspaceManager;
+import org.apache.abdera2.protocol.server.processors.CategoriesRequestProcessor;
 import org.apache.abdera2.protocol.server.processors.ServiceRequestProcessor;
 
 public abstract class AbstractAtompubWorkspaceProvider 
@@ -48,7 +49,7 @@ public abstract class AbstractAtompubWor
     this.requestProcessors.put(
       TargetType.TYPE_CATEGORIES, 
       RequestProcessor.forClass(
-        ServiceRequestProcessor.class, 
+          CategoriesRequestProcessor.class, 
         this));
     this.requestProcessors.put(
       TargetType.TYPE_COLLECTION,

Modified: abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/multipart/AbstractMultipartCollectionAdapter.java
URL: http://svn.apache.org/viewvc/abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/multipart/AbstractMultipartCollectionAdapter.java?rev=1189957&r1=1189956&r2=1189957&view=diff
==============================================================================
--- abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/multipart/AbstractMultipartCollectionAdapter.java (original)
+++ abdera/abdera2/server/src/main/java/org/apache/abdera2/protocol/server/multipart/AbstractMultipartCollectionAdapter.java Thu Oct 27 19:30:24 2011
@@ -42,10 +42,12 @@ import org.apache.abdera2.protocol.serve
 import org.apache.abdera2.common.Constants;
 import org.apache.abdera2.common.io.MultipartInputStream;
 import org.apache.abdera2.common.mediatype.MimeTypeHelper;
+import org.apache.abdera2.common.protocol.AbstractCollectionAdapter;
 import org.apache.abdera2.common.protocol.RequestContext;
 import org.apache.commons.codec.binary.Base64;
 
 import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
 import com.google.common.collect.Iterables;
 
 @SuppressWarnings("unchecked")
@@ -66,14 +68,16 @@ public abstract class AbstractMultipartC
     protected Map<String, String> accepts;
 
     public Predicate<RequestContext> acceptable() {
-      return new Predicate<RequestContext>() {
+      return Predicates.or(
+        AbstractCollectionAdapter.HAS_NO_ENTITY,
+        new Predicate<RequestContext>() {
         public boolean apply(RequestContext input) {
           MimeType mt = input.getContentType();
           if (mt == null) return false;
           return MimeTypeHelper.isMultipart(mt.toString()) ||
                  MimeTypeHelper.isAtom(mt.toString());
         }
-      };
+      });
     }
     
     public Iterable<String> getAccepts(RequestContext request) {