Return-Path: Delivered-To: apmail-incubator-abdera-commits-archive@locus.apache.org Received: (qmail 8816 invoked from network); 30 Jan 2008 23:12:21 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 30 Jan 2008 23:12:21 -0000 Received: (qmail 40412 invoked by uid 500); 30 Jan 2008 23:12:09 -0000 Delivered-To: apmail-incubator-abdera-commits-archive@incubator.apache.org Received: (qmail 40398 invoked by uid 500); 30 Jan 2008 23:12:09 -0000 Mailing-List: contact abdera-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: abdera-dev@incubator.apache.org Delivered-To: mailing list abdera-commits@incubator.apache.org Received: (qmail 40279 invoked by uid 99); 30 Jan 2008 23:12:09 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Jan 2008 15:12:08 -0800 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Jan 2008 23:11:59 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 125A61A9832; Wed, 30 Jan 2008 15:11:51 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r616940 - in /incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server: context/ResponseContextException.java impl/AbstractEntityCollectionAdapter.java impl/AbstractWorkspaceManager.java Date: Wed, 30 Jan 2008 23:11:50 -0000 To: abdera-commits@incubator.apache.org From: dandiep@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080130231151.125A61A9832@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: dandiep Date: Wed Jan 30 15:11:48 2008 New Revision: 616940 URL: http://svn.apache.org/viewvc?rev=616940&view=rev Log: Clean up AECA - allow the use of different feed URLs for individual entries. Fix putMedia. Add a setter for AbstractWorkspaceManager.workspaces. Modified: incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/context/ResponseContextException.java incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractEntityCollectionAdapter.java incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractWorkspaceManager.java Modified: incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/context/ResponseContextException.java URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/context/ResponseContextException.java?rev=616940&r1=616939&r2=616940&view=diff ============================================================================== --- incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/context/ResponseContextException.java (original) +++ incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/context/ResponseContextException.java Wed Jan 30 15:11:48 2008 @@ -17,19 +17,21 @@ */ package org.apache.abdera.protocol.server.context; +import org.apache.abdera.protocol.server.ResponseContext; + public class ResponseContextException extends Exception { private static final long serialVersionUID = -3031651143835987024L; - private AbstractResponseContext responseContext; + private ResponseContext responseContext; - public ResponseContextException(AbstractResponseContext responseContext, Throwable t) { + public ResponseContextException(ResponseContext responseContext, Throwable t) { super(t); this.responseContext = responseContext; } - public ResponseContextException(AbstractResponseContext responseContext) { + public ResponseContextException(ResponseContext responseContext) { super(); this.responseContext = responseContext; } @@ -47,7 +49,7 @@ this.responseContext.setStatusText(msg); } - public AbstractResponseContext getResponseContext() { + public ResponseContext getResponseContext() { return responseContext; } Modified: incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractEntityCollectionAdapter.java URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractEntityCollectionAdapter.java?rev=616940&r1=616939&r2=616940&view=diff ============================================================================== --- incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractEntityCollectionAdapter.java (original) +++ incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractEntityCollectionAdapter.java Wed Jan 30 15:11:48 2008 @@ -19,6 +19,7 @@ import java.io.IOException; import java.io.InputStream; +import java.net.URL; import java.util.Date; import java.util.List; @@ -58,16 +59,18 @@ @Override public ResponseContext postMedia(RequestContext request) { try { - T doc = postMedia(request.getContentType(), request.getSlug(), - request.getInputStream(), request); + T entryObj = postMedia(request.getContentType(), + request.getSlug(), + request.getInputStream(), + request); - IRI entryIri = getFeedIRI(request); + IRI entryIri = getFeedIRI(entryObj, request); Entry entry = request.getAbdera().getFactory().newEntry(); - addEntryDetails(request, entry, entryIri, doc); + addEntryDetails(request, entry, entryIri, entryObj); - addMediaContent(entryIri, entry, doc); + addMediaContent(entryIri, entry, entryObj); return buildCreateMediaEntryResponse(entryIri, entry); } catch (IOException e) { @@ -76,6 +79,29 @@ return createErrorResponse(e); } } + + @Override + public ResponseContext putMedia(RequestContext request) { + try { + String id = getEntryID(request); + T entryObj = getEntry(id, request); + + putMedia(entryObj, request.getContentType(), request.getSlug(), + request.getInputStream(), request); + + return new EmptyResponseContext(200); + } catch (IOException e) { + return new EmptyResponseContext(500); + } catch (ResponseContextException e) { + return createErrorResponse(e); + } + } + + public void putMedia(T entryObj, MimeType contentType, String slug, + InputStream inputStream, RequestContext request) + throws ResponseContextException { + throw new ResponseContextException(ProviderHelper.notallowed(request)); + } public ResponseContext postEntry(RequestContext request) { try { @@ -95,7 +121,7 @@ entry.getContentElement(), request); entry.getIdElement().setValue(getId(entryObj)); - IRI entryBaseUri = getFeedIRI(request); + IRI entryBaseUri = getFeedIRI(entryObj, request); IRI entryIri = entryBaseUri.resolve(getName(entryObj)); entry.addLink(entryIri.toString(), "edit"); @@ -175,18 +201,17 @@ protected void addFeedDetails(Feed feed, RequestContext request) throws ResponseContextException { feed.setUpdated(new Date()); - - IRI entryIri = getFeedIRI(request); Iterable entries = getEntries(request); if (entries != null) { for (T entryObj : entries) { Entry e = feed.addEntry(); - addEntryDetails(request, e, entryIri, entryObj); + IRI feedIri = new IRI(getFeedIriForEntry(entryObj, request)); + addEntryDetails(request, e, feedIri, entryObj); if (isMediaEntry(entryObj)) { - addMediaContent(entryIri, e, entryObj); + addMediaContent(feedIri, e, entryObj); } else { addContent(e, entryObj, request); } @@ -194,10 +219,10 @@ } } - private IRI getFeedIRI(RequestContext request) { - IRI entryIri = new IRI(getHref(request) + "/"); - return entryIri; + private IRI getFeedIRI(T entryObj, RequestContext request) { + return new IRI(getFeedIriForEntry(entryObj, request) + "/"); } + /** * Gets the UUID for the specified entry. * @param entry @@ -262,7 +287,7 @@ return new EmptyResponseContext(404); } - Entry orig_entry = getEntryFromCollectionProvider(entryObj, new IRI(getHref(request)), request); + Entry orig_entry = getEntryFromCollectionProvider(entryObj, new IRI(getFeedIriForEntry(entryObj, request)), request); if (orig_entry != null) { MimeType contentType = request.getContentType(); @@ -299,6 +324,10 @@ } + protected String getFeedIriForEntry(T entryObj, RequestContext request) { + return getHref(request); + } + public abstract void putEntry(T entry, String title, Date updated, List authors, String summary, Content content, RequestContext request) throws ResponseContextException; @@ -314,8 +343,8 @@ } protected void addEntryDetails(RequestContext request, Entry e, - IRI entryBaseIri, T entryObj) throws ResponseContextException { - IRI entryIri = entryBaseIri.resolve(getName(entryObj)); + IRI feedIri, T entryObj) throws ResponseContextException { + IRI entryIri = feedIri.resolve(getName(entryObj)); e.addLink(entryIri.toString(), "edit"); e.setId(getId(entryObj)); e.setTitle(getTitle(entryObj)); @@ -348,16 +377,16 @@ protected ResponseContext createMediaEntry(RequestContext request) { try { - T doc = postMedia(request.getContentType(), request.getSlug(), + T entryObj = postMedia(request.getContentType(), request.getSlug(), request.getInputStream(), request); - IRI feedUri = getFeedIRI(request); + IRI feedUri = getFeedIRI(entryObj, request); Entry entry = request.getAbdera().getFactory().newEntry(); - addEntryDetails(request, entry, feedUri, doc); + addEntryDetails(request, entry, feedUri, entryObj); - addMediaContent(feedUri, entry, doc); + addMediaContent(feedUri, entry, entryObj); return buildCreateMediaEntryResponse(feedUri, entry); } catch (IOException e) { @@ -386,7 +415,7 @@ entry.getIdElement().setValue(getId(entryObj)); - IRI feedUri = getFeedIRI(request); + IRI feedUri = getFeedIRI(entryObj, request); IRI entryIri = feedUri.resolve(getName(entryObj)); entry.addLink(entryIri.toString(), "edit"); Modified: incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractWorkspaceManager.java URL: http://svn.apache.org/viewvc/incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractWorkspaceManager.java?rev=616940&r1=616939&r2=616940&view=diff ============================================================================== --- incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractWorkspaceManager.java (original) +++ incubator/abdera/java/trunk/server/src/main/java/org/apache/abdera/protocol/server/impl/AbstractWorkspaceManager.java Wed Jan 30 15:11:48 2008 @@ -33,6 +33,10 @@ return workspaces; } + public void setWorkspaces(Collection workspaces) { + this.workspaces = workspaces; + } + public void addWorkspace(WorkspaceInfo workspace) { if (workspaces == null) { workspaces = new HashSet();