You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2008/03/12 18:00:34 UTC

svn commit: r636416 - /incubator/tuscany/java/sca/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java

Author: jsdelfino
Date: Wed Mar 12 10:00:26 2008
New Revision: 636416

URL: http://svn.apache.org/viewvc?rev=636416&view=rev
Log:
Merged some of the changes I had made while the module was getting renamed. Fixed support for self, related and alternate links. Temporarily disabled HTTP basic auth as it doesn't work with Firefox.

Modified:
    incubator/tuscany/java/sca/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java

Modified: incubator/tuscany/java/sca/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java?rev=636416&r1=636415&r2=636416&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java (original)
+++ incubator/tuscany/java/sca/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java Wed Mar 12 10:00:26 2008
@@ -157,14 +157,14 @@
             requestFeedType = feedType;
 
         if (! requestFeedType.startsWith("atom_")) {
-        	throw new UnsupportedOperationException(requestFeedType + " Not supported !");
+                throw new UnsupportedOperationException(requestFeedType + " Not supported !");
         }
         
         logger.info(">>> FeedEndPointServlet (" + requestFeedType + ") " + request.getRequestURI());
 
         // Handle an Atom request
         if (path != null && path.equals("/atomsvc")) {
-        	/*
+                /*
              <?xml version='1.0' encoding='UTF-8'?>
              <service xmlns="http://www.w3.org/2007/app" xmlns:atom="http://www.w3.org/2005/Atom">
                 <workspace>
@@ -176,8 +176,8 @@
                    </collection>
                 </workspace>
              </service>
-        	 */
-        	
+                 */
+                
             // Return the Atom service document
             response.setContentType("application/atomsvc+xml; charset=utf-8");
             
@@ -202,9 +202,9 @@
 
             //FIXME add prettyPrint support
             try {
-            	service.getDocument().writeTo(response.getOutputStream());
+                service.getDocument().writeTo(response.getOutputStream());
             } catch (IOException ioe) {
-            	throw new ServletException(ioe);
+                throw new ServletException(ioe);
             }
 
         } else if (path == null || path.length() == 0 || path.equals("/")) {
@@ -254,7 +254,7 @@
                 // Write the Atom feed
                 response.setContentType("application/atom+xml; charset=utf-8");
                 try {
-                	 feed.getDocument().writeTo(response.getOutputStream());
+                         feed.getDocument().writeTo(response.getOutputStream());
                 } catch (IOException ioe) {
                     throw new ServletException(ioe);
                 }
@@ -277,7 +277,7 @@
             }
             
             if (supportsFeedEntries) {
-            	// The service implementation returns a feed entry 
+                // The service implementation returns a feed entry 
                 feedEntry = responseMessage.getBody();
             } else {
                 // The service implementation only returns a data item, create an entry
@@ -289,7 +289,7 @@
             if (feedEntry != null) {
                 response.setContentType("application/atom+xml; charset=utf-8");
                 try {
-                	feedEntry.writeTo(getWriter(response));
+                        feedEntry.writeTo(getWriter(response));
                 } catch (IOException ioe) {
                     throw new ServletException(ioe);
                 }
@@ -317,10 +317,10 @@
             
             Entry feedEntry = abdera.getFactory().newEntry();
             if (key != null) {
-            	feedEntry.setId(key.toString());
+                feedEntry.setId(key.toString());
             }
             feedEntry.setTitle(item.getTitle());
-            feedEntry.setContent(item.getContents());
+            feedEntry.setContentAsHtml(item.getContents());
 
             String href = item.getLink();
             if (href == null && key != null) {
@@ -328,13 +328,15 @@
             }
 
             if (href != null) {
-                feedEntry.addLink(href, "edit");
-                feedEntry.addLink(href,"alternate");
+                feedEntry.addLink(href);
             }
-                
             String related = item.getRelated();
             if (related != null) {
-                feedEntry.addLink(href, "related");
+                feedEntry.addLink(related, "related");
+            }
+            String alternate = item.getAlternate();
+            if (alternate != null) {
+                feedEntry.addLink(alternate, "alternate");
             }
                 
             Date date = item.getDate();
@@ -358,9 +360,8 @@
              
              feedEntry.setContentElement(content);
 
-             feedEntry.addLink(key.toString(), "edit");
-             feedEntry.addLink(key.toString(), "alternate");
-     
+             feedEntry.addLink(key.toString());
+                  
              return feedEntry;
         } else {
             return null;
@@ -383,16 +384,14 @@
                 item.setContents(feedEntry.getContent());
                 
                 for (Link link : feedEntry.getLinks()) {
-                    if (link.getRel() == null || "edit".equals(link.getRel())) {
+                    if (link.getRel() == null || "self".equals(link.getRel())) {
                         if (item.getLink() == null) {
-                            String href = link.getHref().toString();
-                            item.setLink(href);
+                            item.setLink(link.getHref().toString());
                         }
                     } else if ("related".equals(link.getRel())) {
-                        if (item.getRelated() == null) {
-                            String related = link.getHref().toString();
-                            item.setRelated(related);
-                        }
+                        item.setRelated(link.getHref().toString());
+                    } else if ("alternate".equals(link.getRel())) {
+                        item.setAlternate(link.getHref().toString());
                     }
                 }
                 
@@ -401,16 +400,16 @@
                 return new org.apache.tuscany.sca.implementation.data.collection.Entry<Object, Object>(key, item);
                 
             } else {
-            	String key = null; 
-            	if ( feedEntry.getId() != null) {
-            		feedEntry.getId().toString();
-            	}
+                String key = null; 
+                if ( feedEntry.getId() != null) {
+                        feedEntry.getId().toString();
+                }
                 
                 // Create the item from XML
-            	if (feedEntry.getContentElement().getElements().size() == 0) {
-            		return null;
-            	}
-            	
+                if (feedEntry.getContentElement().getElements().size() == 0) {
+                        return null;
+                }
+                
                 String value = feedEntry.getContent();
                 Object data = mediator.mediate(value, itemXMLType, itemClassType, null);
 
@@ -445,8 +444,8 @@
                 // Read the entry from the request
                 Entry feedEntry;
                 try {
-                	Document<Entry> doc = Abdera.getNewParser().parse(request.getReader());
-                	feedEntry = doc.getRoot();
+                        Document<Entry> doc = Abdera.getNewParser().parse(request.getReader());
+                        feedEntry = doc.getRoot();
                 } catch (ParseException pe) {
                     throw new ServletException(pe);
                 }
@@ -500,16 +499,16 @@
             if (createdFeedEntry != null) {
 
                 // Set location of the created entry in the Location header
-            	Link editLink = createdFeedEntry.getEditLink();
-				if (editLink.getRel() == null || "edit".equals(editLink.getRel())) {
-					response.addHeader("Location", editLink.getHref().toString());
-				}
+                Link link = createdFeedEntry.getSelfLink();
+                if (link != null) {
+                    response.addHeader("Location", link.getHref().toString());
+                }
 
                 // Write the created Atom entry
                 response.setStatus(HttpServletResponse.SC_CREATED);
                 response.setContentType("application/atom+xml; charset=utf-8");
                 try {
-                	createdFeedEntry.writeTo(getWriter(response));
+                        createdFeedEntry.writeTo(getWriter(response));
                 } catch (ParseException pe) {
                     throw new ServletException(pe);
                 }
@@ -551,8 +550,8 @@
                 // Read the entry from the request
                 Entry feedEntry;
                 try {
-                	Document<Entry> doc = Abdera.getNewParser().parse(request.getReader());
-                	feedEntry = doc.getRoot();
+                        Document<Entry> doc = Abdera.getNewParser().parse(request.getReader());
+                        feedEntry = doc.getRoot();
                 } catch (ParseException pe) {
                     throw new ServletException(pe);
                 }
@@ -656,6 +655,11 @@
      * @throws ServletException
      */
     private String processAuthorizationHeader(HttpServletRequest request) throws ServletException {
+        
+        // FIXME temporarily disabling this as it doesn't work with all browsers 
+        if (true)
+            return "admin";
+        
         try {
             String authorization = request.getHeader("Authorization");
             if (authorization != null) {



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org