Author: jsdelfino
Date: Sat Mar 22 12:08:41 2008
New Revision: 640063

URL: http://svn.apache.org/viewvc?rev=640063&view=rev
Log:
Merged changes from trunk SVN revision r640053. Fixed support for query strings 
in the RSS binding. Added a query method to the RSS and ATOM binding collection 
interfaces. Changed binding-rss-rome to return Synd feeds instead of Atom 
feeds. Adjusted samples and demos to these changes.

Removed:
    
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator-webapp/src/main/java/feed/SampleServer.java
Modified:
    
incubator/tuscany/branches/sca-java-1.2/demos/alert-aggregator-webapp/src/main/java/org/apache/tuscany/sca/demos/aggregator/AlertsFeedServiceImpl.java
    
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/collection/Collection.java
    
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java
    
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomServiceBindingProvider.java
    
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/test/java/org/apache/tuscany/sca/binding/atom/CustomerCollectionImpl.java
    
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/collection/Collection.java
    
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingInvoker.java
    
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingListenerServlet.java
    
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSServiceBindingProvider.java
    
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerClientImpl.java
    
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerCollectionImpl.java
    
incubator/tuscany/branches/sca-java-1.2/modules/implementation-widget/src/test/java/store/ShoppingCartImpl.java
    
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator-webapp/src/main/java/feed/AggregatorImpl.java
    
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator/src/main/java/feed/AggregatorImpl.java
    
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator/src/main/java/feed/SampleServer.java
    
incubator/tuscany/branches/sca-java-1.2/samples/store/src/main/java/services/ShoppingCartImpl.java

Modified: 
incubator/tuscany/branches/sca-java-1.2/demos/alert-aggregator-webapp/src/main/java/org/apache/tuscany/sca/demos/aggregator/AlertsFeedServiceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/demos/alert-aggregator-webapp/src/main/java/org/apache/tuscany/sca/demos/aggregator/AlertsFeedServiceImpl.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/demos/alert-aggregator-webapp/src/main/java/org/apache/tuscany/sca/demos/aggregator/AlertsFeedServiceImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/demos/alert-aggregator-webapp/src/main/java/org/apache/tuscany/sca/demos/aggregator/AlertsFeedServiceImpl.java
 Sat Mar 22 12:08:41 2008
@@ -84,6 +84,10 @@
         
         return feed;
     }
+    
+    public Feed query(String queryString) {
+        return getFeed();
+    }
 
     public void delete(String id) throws NotFoundException {
     }

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/collection/Collection.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/collection/Collection.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/collection/Collection.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/collection/Collection.java
 Sat Mar 22 12:08:41 2008
@@ -31,12 +31,20 @@
 public interface Collection {
 
     /**
-     * Get an RSS or Atom feed for a collection of resources.
+     * Get an Atom feed for a collection of resources.
      * 
-     * @param uri the uri of the feed
-     * @return the RSS or Atom feed
+     * @return the Atom feed
      */
     Feed getFeed();
+
+    /**
+     * Get an Atom feed for a collection of resources resulting
+     * from a query.
+     * 
+     * @param queryString a query string
+     * @return the Atom feed
+     */
+    Feed query(String queryString);
 
     /**
      * Creates a new entry.

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomBindingListenerServlet.java
 Sat Mar 22 12:08:41 2008
@@ -82,7 +82,6 @@
     private Invoker putMediaInvoker;
     private Invoker deleteInvoker;
     private MessageFactory messageFactory;
-    private String feedType;
     private String title;
     private Mediator mediator;
     private DataType<?> itemClassType;
@@ -96,11 +95,10 @@
      * @param messageFactory
      * @param feedType
      */
-    AtomBindingListenerServlet(RuntimeWire wire, MessageFactory 
messageFactory, Mediator mediator, String feedType, String title) {
+    AtomBindingListenerServlet(RuntimeWire wire, MessageFactory 
messageFactory, Mediator mediator, String title) {
         this.wire = wire;
         this.messageFactory = messageFactory;
         this.mediator = mediator;
-        this.feedType = feedType;
         this.title = title;
 
         // Get the invokers for the supported operations
@@ -152,17 +150,7 @@
         // Get the request path
         String path = 
URLDecoder.decode(request.getRequestURI().substring(request.getServletPath().length()),
 "UTF-8");
 
-        // The feedType parameter is used to override what type of feed is 
going
-        // to be produced
-        String requestFeedType = request.getParameter("feedType");
-        if (requestFeedType == null)
-            requestFeedType = feedType;
-
-        if (! requestFeedType.startsWith("atom_")) {
-                throw new UnsupportedOperationException(requestFeedType + " 
Not supported !");
-        }
-        
-        logger.info(">>> FeedEndPointServlet (" + requestFeedType + ") " + 
request.getRequestURI());
+        logger.info(">>> FeedEndPointServlet " + request.getRequestURI());
 
         // Handle an Atom request
         if (path != null && path.equals("/atomsvc")) {
@@ -217,7 +205,13 @@
 
                 // The service implementation supports feed entries, invoke 
its getFeed operation
                 Message requestMessage = messageFactory.createMessage();
-                Message responseMessage = 
getFeedInvoker.invoke(requestMessage);
+                Message responseMessage;
+                if (request.getQueryString() != null) {
+                    requestMessage.setBody(new Object[] 
{request.getQueryString()});
+                    responseMessage = queryInvoker.invoke(requestMessage);
+                } else {
+                    responseMessage = getFeedInvoker.invoke(requestMessage);
+                }
                 if (responseMessage.isFault()) {
                     throw new 
ServletException((Throwable)responseMessage.getBody());
                 }

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomServiceBindingProvider.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomServiceBindingProvider.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/main/java/org/apache/tuscany/sca/binding/atom/provider/AtomServiceBindingProvider.java
 Sat Mar 22 12:08:41 2008
@@ -67,7 +67,7 @@
         RuntimeWire wire = componentService.getRuntimeWire(binding);
 
         AtomBindingListenerServlet servlet =
-            new AtomBindingListenerServlet(wire, messageFactory, mediator, 
"atom_1.0", binding.getTitle());
+            new AtomBindingListenerServlet(wire, messageFactory, mediator, 
binding.getTitle());
 
         servletMapping = binding.getURI();
         if (!servletMapping.endsWith("/")) {

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/test/java/org/apache/tuscany/sca/binding/atom/CustomerCollectionImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/test/java/org/apache/tuscany/sca/binding/atom/CustomerCollectionImpl.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/test/java/org/apache/tuscany/sca/binding/atom/CustomerCollectionImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/binding-atom-abdera/src/test/java/org/apache/tuscany/sca/binding/atom/CustomerCollectionImpl.java
 Sat Mar 22 12:08:41 2008
@@ -111,14 +111,17 @@
         feed.setUpdated(new Date());
         feed.addLink("");
         feed.addLink("","self");
-        
-        
 
         for (Entry entry : entries.values()) {
                feed.addEntry(entry);
         }
 
         return feed;
+    }
+
+    public Feed query(String queryString) {
+        System.out.println(">>> ResourceCollectionImpl.query collection " + 
queryString);
+        return getFeed();
     }
 
 }

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/collection/Collection.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/collection/Collection.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/collection/Collection.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/collection/Collection.java
 Sat Mar 22 12:08:41 2008
@@ -20,10 +20,11 @@
 
 import org.osoa.sca.annotations.Remotable;
 
-import com.sun.syndication.feed.atom.Entry;
+import com.sun.syndication.feed.synd.SyndFeed;
+
 
 /**
- * Provides access to a collection of resources using Atom.
+ * Provides access to a collection of resources using RSS.
  * 
  * @version $Rev$ $Date$
  */
@@ -31,43 +32,18 @@
 public interface Collection {
 
     /**
-     * Get an RSS or Atom feed for a collection of resources.
-     * 
-     * @param uri the uri of the feed
-     * @return the RSS or Atom feed
-     */
-    com.sun.syndication.feed.atom.Feed getFeed();
-
-    /**
-     * Creates a new entry.
-     * 
-     * @param entry
-     * @return
-     */
-    Entry post(Entry entry);
-
-    /**
-     * Retrieves an entry.
-     * 
-     * @param id
-     * @return
-     */
-    Entry get(String id) throws NotFoundException;
-
-    /**
-     * Update an entry.
+     * Get an RSS feed for a collection of resources.
      * 
-     * @param id
-     * @param entry
-     * @return
+     * @return the RSS feed
      */
-    void put(String id, Entry entry) throws NotFoundException;
+    SyndFeed getFeed();
 
     /**
-     * Delete an entry.
+     * Get an RSS feed for a collection of resources resulting from a query.
      * 
-     * @param id
+     * @param query the query string
+     * @return the RSS feed
      */
-    void delete(String id) throws NotFoundException;
+    SyndFeed query(String queryString);
 
 }

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingInvoker.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingInvoker.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingInvoker.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingInvoker.java
 Sat Mar 22 12:08:41 2008
@@ -27,11 +27,9 @@
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
 
-import com.sun.syndication.feed.atom.Feed;
 import com.sun.syndication.feed.synd.SyndFeed;
 import com.sun.syndication.io.FeedException;
 import com.sun.syndication.io.SyndFeedInput;
-import com.sun.syndication.io.WireFeedInput;
 import com.sun.syndication.io.XmlReader;
 
 /**
@@ -45,27 +43,15 @@
 
     RSSBindingInvoker(String uri, String feedType) {
         this.uri = uri;
-        this.feedType = feedType;
     }
 
     public Message invoke(Message msg) {
         try {
             logger.info(">>> RSSBindingInvoker (" + feedType + ") " + uri);
 
-            // Read the configured feed URI into a Feed object
-            Feed feed;
-            if (feedType.startsWith("atom_")) {
-
-                // Read an Atom feed
-                WireFeedInput input = new WireFeedInput();
-                feed = (Feed)input.build(new XmlReader(new URL(uri)));
-            } else {
-
-                // Read an RSS feed and convert it to an Atom feed
-                SyndFeedInput input = new SyndFeedInput();
-                SyndFeed syndFeed = input.build(new XmlReader(new URL(uri)));
-                feed = (Feed)syndFeed.createWireFeed("atom_1.0");
-            }
+            // Read an RSS feed into a Synd feed
+            SyndFeedInput input = new SyndFeedInput();
+            SyndFeed feed = input.build(new XmlReader(new URL(uri)));
             
             //FIXME Support conversion to data-api entries
             

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingListenerServlet.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingListenerServlet.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingListenerServlet.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSBindingListenerServlet.java
 Sat Mar 22 12:08:41 2008
@@ -48,18 +48,20 @@
 import org.apache.tuscany.sca.invocation.MessageFactory;
 import org.apache.tuscany.sca.runtime.RuntimeWire;
 
-import com.sun.syndication.feed.atom.Content;
-import com.sun.syndication.feed.atom.Entry;
-import com.sun.syndication.feed.atom.Feed;
-import com.sun.syndication.feed.atom.Link;
+import com.sun.syndication.feed.synd.SyndContent;
+import com.sun.syndication.feed.synd.SyndContentImpl;
+import com.sun.syndication.feed.synd.SyndEntry;
+import com.sun.syndication.feed.synd.SyndEntryImpl;
 import com.sun.syndication.feed.synd.SyndFeed;
 import com.sun.syndication.feed.synd.SyndFeedImpl;
+import com.sun.syndication.feed.synd.SyndLink;
+import com.sun.syndication.feed.synd.SyndLinkImpl;
 import com.sun.syndication.io.FeedException;
 import com.sun.syndication.io.SyndFeedOutput;
 
 /**
- * A resource collection binding listener, implemented as a servlet and
- * registered in a servlet host provided by the SCA hosting runtime.
+ * An RSS binding listener, implemented as a Servlet and
+ * registered in a Servlet host provided by the SCA hosting runtime.
  */
 class RSSBindingListenerServlet extends HttpServlet {
     private static final Logger logger = 
Logger.getLogger(RSSBindingListenerServlet.class.getName());
@@ -69,9 +71,7 @@
     private Invoker getFeedInvoker;
     private Invoker getAllInvoker;
     private Invoker queryInvoker;
-    private Invoker getInvoker;
     private MessageFactory messageFactory;
-    private String feedType;
     private Mediator mediator;
     private DataType<?> itemClassType;
     private DataType<?> itemXMLType;
@@ -82,13 +82,11 @@
      * 
      * @param wire
      * @param messageFactory
-     * @param feedType
      */
-    RSSBindingListenerServlet(RuntimeWire wire, MessageFactory messageFactory, 
Mediator mediator, String feedType) {
+    RSSBindingListenerServlet(RuntimeWire wire, MessageFactory messageFactory, 
Mediator mediator) {
         this.wire = wire;
         this.messageFactory = messageFactory;
         this.mediator = mediator;
-        this.feedType = feedType;
 
         // Get the invokers for the supported operations
         Operation getOperation = null;
@@ -103,7 +101,6 @@
             } else if (operationName.equals("query")) {
                 queryInvoker = invocationChain.getHeadInvoker();
             } else if (operationName.equals("get")) {
-                getInvoker = invocationChain.getHeadInvoker();
                 getOperation = operation;
             }
         }
@@ -111,7 +108,7 @@
         // Determine the collection item type
         itemXMLType = new DataTypeImpl<Class<?>>(String.class.getName(), 
String.class, String.class);
         Class<?> itemClass = getOperation.getOutputType().getPhysical();
-        if (itemClass == Entry.class) {
+        if (itemClass == SyndEntry.class) {
             supportsFeedEntries = true;
         }
         DataType<XMLType> outputType = getOperation.getOutputType();
@@ -129,24 +126,13 @@
         // Get the request path
         String path = 
URLDecoder.decode(request.getRequestURI().substring(request.getServletPath().length()),
 "UTF-8");
 
-        // The feedType parameter is used to override what type of feed is 
going
-        // to be produced
-        String requestFeedType = request.getParameter("feedType");
-        if (requestFeedType == null) {
-            requestFeedType = feedType;
-        }
-        
-        if (requestFeedType.startsWith("atom_")) {
-               throw new UnsupportedOperationException(requestFeedType + " Not 
supported !");
-        }
-
-        logger.info(">>> FeedEndPointServlet (" + requestFeedType + ") " + 
request.getRequestURI());
+        logger.info(">>> RSSBindingListenerServlet " + 
request.getRequestURI());
 
         // Handle an RSS request
         if (path == null || path.length() == 0 || path.equals("/")) {
 
             // Return an RSS feed containing the entries in the collection
-            Feed feed = null;
+            SyndFeed feed = null;
             if (supportsFeedEntries) {
 
                 // The service implementation supports feed entries, invoke 
its getFeed operation
@@ -155,7 +141,7 @@
                 if (responseMessage.isFault()) {
                     throw new 
ServletException((Throwable)responseMessage.getBody());
                 }
-                feed = (Feed)responseMessage.getBody();
+                feed = (SyndFeed)responseMessage.getBody();
                 
             } else {
 
@@ -177,11 +163,11 @@
                     
(org.apache.tuscany.sca.implementation.data.collection.Entry<Object, 
Object>[])responseMessage.getBody();
                 if (collection != null) {
                     // Create the feed
-                    feed = new Feed();
+                    feed = new SyndFeedImpl();
                     feed.setTitle("Feed");
                     
                     for 
(org.apache.tuscany.sca.implementation.data.collection.Entry<Object, Object> 
entry: collection) {
-                        Entry feedEntry = createFeedEntry(entry);
+                        SyndEntry feedEntry = createFeedEntry(entry);
                         feed.getEntries().add(feedEntry);
                     }
                 }
@@ -190,13 +176,11 @@
             // Convert to an RSS feed
             if (feed != null) {
                 response.setContentType("application/rss+xml; charset=utf-8");
-                feed.setFeedType("atom_1.0");
-                SyndFeed syndFeed = new SyndFeedImpl(feed);
-                syndFeed.setFeedType(requestFeedType);
-                syndFeed.setLink(path);
+                feed.setFeedType("rss_2.0");
+                feed.setLink(path);
                 SyndFeedOutput syndOutput = new SyndFeedOutput();
                 try {
-                    syndOutput.output(syndFeed, getWriter(response));
+                    syndOutput.output(feed, getWriter(response));
                 } catch (FeedException e) {
                     throw new ServletException(e);
                 }
@@ -214,22 +198,22 @@
      * @param entry 
      * @return
      */
-    private Entry 
createFeedEntry(org.apache.tuscany.sca.implementation.data.collection.Entry<Object,
 Object> entry) {
+    private SyndEntry 
createFeedEntry(org.apache.tuscany.sca.implementation.data.collection.Entry<Object,
 Object> entry) {
         Object key = entry.getKey();
         Object data = entry.getData();
         if (data instanceof Item) {
             Item item = (Item)data;
             
-            Entry feedEntry = new Entry();
-            feedEntry.setId(key.toString());
+            SyndEntry feedEntry = new SyndEntryImpl();
+            feedEntry.setUri(key.toString());
             feedEntry.setTitle(item.getTitle());
     
             String value = item.getContents();
             if (value != null) {
-                Content content = new Content();
+                SyndContent content = new SyndContentImpl();
                 content.setType("text/xml");
                 content.setValue(value);
-                List<Content> contents = new ArrayList<Content>();
+                List<SyndContent> contents = new ArrayList<SyndContent>();
                 contents.add(content);
                 feedEntry.setContents(contents);
             }
@@ -238,47 +222,47 @@
             if (href == null) {
                 href = key.toString();
             }
-            Link link = new Link();
+            SyndLink link = new SyndLinkImpl();
             link.setRel("edit");
             link.setHref(href);
-            feedEntry.getOtherLinks().add(link);
-            link = new Link();
+            feedEntry.getLinks().add(link);
+            link = new SyndLinkImpl();
             link.setRel("alternate");
             link.setHref(href);
-            feedEntry.getAlternateLinks().add(link);
+            feedEntry.getLinks().add(link);
     
             Date date = item.getDate();
             if (date == null) {
                 date = new Date();
             }
-            feedEntry.setCreated(date);
+            feedEntry.setPublishedDate(date);
             return feedEntry;
             
         } else if (data != null) {
-            Entry feedEntry = new Entry();
-            feedEntry.setId(key.toString());
+            SyndEntry feedEntry = new SyndEntryImpl();
+            feedEntry.setUri(key.toString());
             feedEntry.setTitle("item");
     
             // Convert the item to XML
             String value = mediator.mediate(data, itemClassType, itemXMLType, 
null).toString();
             
-            Content content = new Content();
+            SyndContent content = new SyndContentImpl();
             content.setType("text/xml");
             content.setValue(value);
-            List<Content> contents = new ArrayList<Content>();
+            List<SyndContent> contents = new ArrayList<SyndContent>();
             contents.add(content);
             feedEntry.setContents(contents);
     
-            Link link = new Link();
+            SyndLink link = new SyndLinkImpl();
             link.setRel("edit");
             link.setHref(key.toString());
-            feedEntry.getOtherLinks().add(link);
-            link = new Link();
+            feedEntry.getLinks().add(link);
+            link = new SyndLinkImpl();
             link.setRel("alternate");
             link.setHref(key.toString());
-            feedEntry.getAlternateLinks().add(link);
+            feedEntry.getLinks().add(link);
     
-            feedEntry.setCreated(new Date());
+            feedEntry.setPublishedDate(new Date());
             return feedEntry;
         } else {
             return null;
@@ -286,27 +270,27 @@
     }
 
     /**
-     * Create a data collection entry from an Atom entry.
+     * Create a data collection entry from an RSS entry.
      * @param feedEntry
      * @return
      */
-    private 
org.apache.tuscany.sca.implementation.data.collection.Entry<Object, Object> 
createEntry(Entry feedEntry) {
+    private 
org.apache.tuscany.sca.implementation.data.collection.Entry<Object, Object> 
createEntry(SyndEntry feedEntry) {
         if (feedEntry != null) {
             if (itemClassType.getPhysical() == Item.class) {
-                String key = feedEntry.getId();
+                String key = feedEntry.getUri();
                 
                 Item item = new Item();
                 item.setTitle(feedEntry.getTitle());
                 
                 List<?> contents = feedEntry.getContents();
                 if (!contents.isEmpty()) {
-                    Content content = (Content)contents.get(0);
+                    SyndContent content = (SyndContent)contents.get(0);
                     String value = content.getValue();
                     item.setContents(value);
                 }
                 
-                for (Object l : feedEntry.getOtherLinks()) {
-                    Link link = (Link)l;
+                for (Object l : feedEntry.getLinks()) {
+                    SyndLink link = (SyndLink)l;
                     if (link.getRel() == null || "edit".equals(link.getRel())) 
{
                         String href = link.getHref();
                         if (href.startsWith("null/")) {
@@ -317,19 +301,19 @@
                     }
                 }
                 
-                item.setDate(feedEntry.getCreated());
+                item.setDate(feedEntry.getPublishedDate());
                 
                 return new 
org.apache.tuscany.sca.implementation.data.collection.Entry<Object, 
Object>(key, item);
                 
             } else {
-                String key = feedEntry.getId();
+                String key = feedEntry.getUri();
                 
                 // Create the item from XML
                 List<?> contents = feedEntry.getContents();
                 if (contents.isEmpty()) {
                     return null;
                 }
-                Content content = (Content)contents.get(0);
+                SyndContent content = (SyndContent)contents.get(0);
                 String value = content.getValue();
                 Object data = mediator.mediate(value, itemXMLType, 
itemClassType, null);
 

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSServiceBindingProvider.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSServiceBindingProvider.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSServiceBindingProvider.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/main/java/org/apache/tuscany/sca/binding/rss/provider/RSSServiceBindingProvider.java
 Sat Mar 22 12:08:41 2008
@@ -67,7 +67,7 @@
         RuntimeWire wire = componentService.getRuntimeWire(binding);
 
         RSSBindingListenerServlet servlet =
-            new RSSBindingListenerServlet(wire, messageFactory, mediator, 
"rss_2.0");
+            new RSSBindingListenerServlet(wire, messageFactory, mediator);
 
         servletMapping = binding.getURI();
         servletHost.addServletMapping(servletMapping, servlet);

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerClientImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerClientImpl.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerClientImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerClientImpl.java
 Sat Mar 22 12:08:41 2008
@@ -19,15 +19,12 @@
 
 package org.apache.tuscany.sca.binding.rss;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.apache.tuscany.sca.binding.rss.collection.Collection;
 import org.osoa.sca.annotations.Reference;
 
-import com.sun.syndication.feed.atom.Content;
-import com.sun.syndication.feed.atom.Entry;
-import com.sun.syndication.feed.atom.Feed;
+import com.sun.syndication.feed.synd.SyndEntry;
+import com.sun.syndication.feed.synd.SyndFeed;
+
 
 public class CustomerClientImpl implements CustomerClient {
 
@@ -36,62 +33,13 @@
 
     public void testCustomerCollection() throws Exception {
 
-        Entry newEntry = newEntry("Sponge Bob");
-        System.out.println(">>> post entry=" + newEntry.getTitle());
-        newEntry = resourceCollection.post(newEntry);
-        System.out.println("<<< post id=" + newEntry.getId() + " entry=" + 
newEntry.getTitle());
-
-        newEntry = newEntry("Jane Bond");
-        System.out.println(">>> post entry=" + newEntry.getTitle());
-        newEntry = resourceCollection.post(newEntry);
-        System.out.println("<<< post id=" + newEntry.getId() + " entry=" + 
newEntry.getTitle());
-
-        System.out.println(">>> get id=" + newEntry.getId());
-        Entry entry = resourceCollection.get(newEntry.getId());
-        System.out.println("<<< get id=" + entry.getId() + " entry=" + 
entry.getTitle());
-
-        System.out.println(">>> put id=" + newEntry.getId() + " entry=" + 
entry.getTitle());
-        resourceCollection.put(entry.getId(), updateEntry(entry, "James 
Bond"));
-        System.out.println("<<< put id=" + entry.getId() + " entry=" + 
entry.getTitle());
-
-        System.out.println(">>> delete id=" + entry.getId());
-        resourceCollection.delete(entry.getId());
-        System.out.println("<<< delete id=" + entry.getId());
-
         System.out.println(">>> get collection");
-        Feed feed = resourceCollection.getFeed();
+        SyndFeed feed = resourceCollection.getFeed();
         System.out.println("<<< get collection");
         for (Object o : feed.getEntries()) {
-            Entry e = (Entry)o;
-            System.out.println("id = " + e.getId() + " entry = " + 
e.getTitle());
+            SyndEntry e = (SyndEntry)o;
+            System.out.println("id = " + e.getUri() + " entry = " + 
e.getTitle());
         }
     }
 
-    private Entry newEntry(String value) {
-
-        Entry entry = new Entry();
-        entry.setTitle("customer " + value);
-
-        Content content = new Content();
-        content.setValue(value);
-        content.setType(Content.TEXT);
-        List<Object> list = new ArrayList<Object>();
-        list.add(content);
-        entry.setContents(list);
-
-        return entry;
-    }
-
-    private Entry updateEntry(Entry entry, String value) {
-
-        entry.setTitle("customer " + value);
-        Content content = new Content();
-        content.setValue(value);
-        content.setType(Content.TEXT);
-        List<Object> list = new ArrayList<Object>();
-        list.add(content);
-        entry.setContents(list);
-
-        return entry;
-    }
 }

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerCollectionImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerCollectionImpl.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerCollectionImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/binding-rss-rome/src/test/java/org/apache/tuscany/sca/binding/rss/CustomerCollectionImpl.java
 Sat Mar 22 12:08:41 2008
@@ -31,104 +31,71 @@
 import org.osoa.sca.annotations.Scope;
 
 import com.sun.syndication.feed.atom.Content;
-import com.sun.syndication.feed.atom.Entry;
-import com.sun.syndication.feed.atom.Feed;
-import com.sun.syndication.feed.atom.Link;
+import com.sun.syndication.feed.synd.SyndContent;
+import com.sun.syndication.feed.synd.SyndContentImpl;
+import com.sun.syndication.feed.synd.SyndEntry;
+import com.sun.syndication.feed.synd.SyndEntryImpl;
+import com.sun.syndication.feed.synd.SyndFeed;
+import com.sun.syndication.feed.synd.SyndFeedImpl;
+import com.sun.syndication.feed.synd.SyndLink;
+import com.sun.syndication.feed.synd.SyndLinkImpl;
 
 @Scope("COMPOSITE")
 public class CustomerCollectionImpl implements Collection {
 
-    private Map<String, Entry> entries = new HashMap<String, Entry>();
+    private Map<String, SyndEntry> entries = new HashMap<String, SyndEntry>();
 
     public CustomerCollectionImpl() {
 
         for (int i = 0; i < 4; i++) {
             String id = "urn:uuid:customer-" + UUID.randomUUID().toString();
 
-            Entry entry = new Entry();
+            SyndEntry entry = new SyndEntryImpl();
             entry.setTitle("customer " + "Jane Doe_" + String.valueOf(i));
-            entry.setId(id);
+            entry.setUri(id);
 
-            Content content = new Content();
+            SyndContent content = new SyndContentImpl();
             content.setValue("Jane Doe_" + String.valueOf(i));
             content.setType(Content.TEXT);
             entry.setContents(Collections.singletonList(content));
 
-            List<Link> links = new ArrayList<Link>();
-            Link link = new Link();
+            List<SyndLink> links = new ArrayList<SyndLink>();
+            SyndLink link = new SyndLinkImpl();
             link.setRel("edit");
             link.setHref("" + id);
             links.add(link);
-            entry.setOtherLinks(links);
+            entry.setLinks(links);
 
-            links = new ArrayList<Link>();
-            link = new Link();
+            links = new ArrayList<SyndLink>();
+            link = new SyndLinkImpl();
             link.setRel("alternate");
             link.setHref("" + id);
             links.add(link);
-            entry.setAlternateLinks(links);
+            entry.setLinks(links);
 
-            entry.setCreated(new Date());
+            entry.setPublishedDate(new Date());
 
             entries.put(id, entry);
             System.out.println(">>> id=" + id);
         }
     }
 
-    public Entry post(Entry entry) {
-        System.out.println(">>> ResourceCollectionImpl.post entry=" + 
entry.getTitle());
+    public SyndFeed getFeed() {
+        System.out.println(">>> CustomerCollectionImpl.getFeed");
 
-        String id = "urn:uuid:customer-" + UUID.randomUUID().toString();
-        entry.setId(id);
-
-        List<Link> links = new ArrayList<Link>();
-        Link link = new Link();
-        link.setRel("edit");
-        link.setHref("" + id);
-        links.add(link);
-        entry.setOtherLinks(links);
-
-        links = new ArrayList<Link>();
-        link = new Link();
-        link.setRel("alternate");
-        link.setHref("" + id);
-        links.add(link);
-        entry.setAlternateLinks(links);
-
-        entry.setCreated(new Date());
-
-        entries.put(id, entry);
-        System.out.println(">>> ResourceCollectionImpl.post return id=" + id);
-
-        return entry;
-    }
-
-    public Entry get(String id) {
-        System.out.println(">>> ResourceCollectionImpl.get id=" + id);
-        return entries.get(id);
-    }
-
-    public void put(String id, Entry entry) {
-        System.out.println(">>> ResourceCollectionImpl.put id=" + id + " 
entry=" + entry.getTitle());
-
-        entry.setUpdated(new Date());
-        entries.put(id, entry);
-    }
-
-    public void delete(String id) {
-        System.out.println(">>> ResourceCollectionImpl.delete id=" + id);
-        entries.remove(id);
+        SyndFeed feed = new SyndFeedImpl();
+        feed.setTitle("customers");
+        feed.setDescription("This is a sample feed");
+        feed.getEntries().addAll(entries.values());
+        return feed;
     }
 
-    @SuppressWarnings("unchecked")
-    public Feed getFeed() {
-        System.out.println(">>> ResourceCollectionImpl.get collection");
+    public SyndFeed query(String queryString) {
+        System.out.println(">>> CustomerCollectionImpl.query");
 
-        Feed feed = new Feed();
+        SyndFeed feed = new SyndFeedImpl();
         feed.setTitle("customers");
-        Content subtitle = new Content();
-        subtitle.setValue("This is a sample feed");
-        feed.setSubtitle(subtitle);
+        feed.setDescription("This is a sample feed");
         feed.getEntries().addAll(entries.values());
         return feed;
     }

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/implementation-widget/src/test/java/store/ShoppingCartImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/implementation-widget/src/test/java/store/ShoppingCartImpl.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/implementation-widget/src/test/java/store/ShoppingCartImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/implementation-widget/src/test/java/store/ShoppingCartImpl.java
 Sat Mar 22 12:08:41 2008
@@ -40,10 +40,30 @@
         feed.setSubtitle("Total : " + getTotal());
         
         for (Entry entry : cart.values()) {
-               feed.addEntry(entry);
+            feed.addEntry(entry);
         }
 
         return feed;
+    }
+    
+    public Feed query(String queryString) {
+        if (queryString.startsWith("name=")) {
+            String name = queryString.substring(5);
+
+            Feed feed = Abdera.getNewFactory().newFeed();
+            feed.setTitle("shopping cart");
+            feed.setSubtitle("Total : " + getTotal());
+            
+            for (Entry entry : cart.values()) {
+                if (entry.getTitle().contains(name)) {
+                    feed.addEntry(entry);
+                }
+            }
+            return feed;
+            
+        } else {
+            return getFeed();
+        }
     }
 
     public Entry get(String id) throws NotFoundException {

Modified: 
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator-webapp/src/main/java/feed/AggregatorImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator-webapp/src/main/java/feed/AggregatorImpl.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator-webapp/src/main/java/feed/AggregatorImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator-webapp/src/main/java/feed/AggregatorImpl.java
 Sat Mar 22 12:08:41 2008
@@ -22,6 +22,7 @@
 import java.io.ByteArrayOutputStream;
 import java.io.OutputStreamWriter;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import org.apache.abdera.Abdera;
@@ -116,6 +117,29 @@
         return feed;
     }
 
+    public Feed query(String queryString) {
+        Factory factory = Abdera.getNewFactory();
+        Feed feed = factory.newFeed();
+        feed.setTitle(feedTitle);
+        feed.setSubtitle(feedDescription);
+        Person author = factory.newAuthor();
+        author.setName(feedAuthor);
+        feed.addAuthor(author);
+        feed.addLink("http://incubator.apache.org/tuscany";, "alternate");
+        
+        Feed allFeed = getFeed();
+        if (queryString.startsWith("title=")) {
+            String title = queryString.substring(6);
+
+            for (Entry entry: allFeed.getEntries()) {
+                if (entry.getTitle().contains(title)) {
+                    feed.addEntry(entry);
+                }
+            }
+        }
+        return feed;
+    }
+
     public void delete(String id) throws NotFoundException {
     }
 
@@ -136,10 +160,9 @@
      * @param romeFeed
      * @return
      */
-    private static Feed atomFeed(com.sun.syndication.feed.atom.Feed romeFeed) {
+    private static Feed atomFeed(SyndFeed syndFeed) {
         ByteArrayOutputStream bos = new ByteArrayOutputStream();
         
-        SyndFeed syndFeed = new SyndFeedImpl(romeFeed);
         syndFeed.setFeedType("atom_1.0");
         SyndFeedOutput syndOutput = new SyndFeedOutput();
         try {

Modified: 
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator/src/main/java/feed/AggregatorImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator/src/main/java/feed/AggregatorImpl.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator/src/main/java/feed/AggregatorImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator/src/main/java/feed/AggregatorImpl.java
 Sat Mar 22 12:08:41 2008
@@ -22,6 +22,7 @@
 import java.io.ByteArrayOutputStream;
 import java.io.OutputStreamWriter;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 import org.apache.abdera.Abdera;
@@ -116,6 +117,29 @@
         return feed;
     }
 
+    public Feed query(String queryString) {
+        Factory factory = Abdera.getNewFactory();
+        Feed feed = factory.newFeed();
+        feed.setTitle(feedTitle);
+        feed.setSubtitle(feedDescription);
+        Person author = factory.newAuthor();
+        author.setName(feedAuthor);
+        feed.addAuthor(author);
+        feed.addLink("http://incubator.apache.org/tuscany";, "alternate");
+        
+        Feed allFeed = getFeed();
+        if (queryString.startsWith("title=")) {
+            String title = queryString.substring(6);
+
+            for (Entry entry: allFeed.getEntries()) {
+                if (entry.getTitle().contains(title)) {
+                    feed.addEntry(entry);
+                }
+            }
+        }
+        return feed;
+    }
+
     public void delete(String id) throws NotFoundException {
     }
 
@@ -136,10 +160,9 @@
      * @param romeFeed
      * @return
      */
-    private static Feed atomFeed(com.sun.syndication.feed.atom.Feed romeFeed) {
+    private static Feed atomFeed(SyndFeed syndFeed) {
         ByteArrayOutputStream bos = new ByteArrayOutputStream();
         
-        SyndFeed syndFeed = new SyndFeedImpl(romeFeed);
         syndFeed.setFeedType("atom_1.0");
         SyndFeedOutput syndOutput = new SyndFeedOutput();
         try {

Modified: 
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator/src/main/java/feed/SampleServer.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator/src/main/java/feed/SampleServer.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator/src/main/java/feed/SampleServer.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/samples/feed-aggregator/src/main/java/feed/SampleServer.java
 Sat Mar 22 12:08:41 2008
@@ -34,8 +34,6 @@
             System.out.println("http://localhost:8083/atomAggregator";);
             System.out.println("http://localhost:8083/atomAggregator/atomsvc 
(for the Atom service document)");
             System.out.println("http://localhost:8083/rssAggregator";);
-            
System.out.println("http://localhost:8083/atomAggregator?feedType=rss_2.0";);
-            
System.out.println("http://localhost:8083/rssAggregator?feedType=atom_1.0";);
             System.out.println();
             System.in.read();
         } catch (IOException e) {

Modified: 
incubator/tuscany/branches/sca-java-1.2/samples/store/src/main/java/services/ShoppingCartImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/samples/store/src/main/java/services/ShoppingCartImpl.java?rev=640063&r1=640062&r2=640063&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/samples/store/src/main/java/services/ShoppingCartImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/samples/store/src/main/java/services/ShoppingCartImpl.java
 Sat Mar 22 12:08:41 2008
@@ -47,6 +47,26 @@
         return feed;
     }
 
+    public Feed query(String queryString) {
+        if (queryString.startsWith("name=")) {
+            String name = queryString.substring(5);
+
+            Feed feed = Abdera.getNewFactory().newFeed();
+            feed.setTitle("shopping cart");
+            feed.setSubtitle("Total : " + getTotal());
+            
+            for (Entry entry : cart.values()) {
+                if (entry.getTitle().contains(name)) {
+                    feed.addEntry(entry);
+                }
+            }
+            return feed;
+            
+        } else {
+            return getFeed();
+        }
+    }
+
     public Entry get(String id) throws NotFoundException {
         return cart.get(id);
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to