Appendix A - Feeds Support
Skip to end of metadata
Go to start of metadata

Migration from Apache Abdera to Apache Wink

Apache Wink is the perfect solution for consuming and producing Atom, APP and RSS documents. The following section describes how to migrate from Apache Abdera to Apache Wink by providing a set of examples that cover most use cases.

Advantages of Apache Wink over Apache Abdera

  • Standardized APIs (using JAX-RS and JAXB)
  • Support for handling XML and JSON more easily
  • Support for handling RSS and ATOM more easily

This section contains the following topics:


1) Consuming Atom Documents

The following code example demonstrates the consumption of Atom documents using Apache Abdera.

Apache Abdera - Click on link to Download - ConsumeAtomUsingAbdera.java

The following code example demonstrates the consumption of Atom documents using Apache Wink.

Apache Wink - Click on link to Download - ConsumeAtomUsingWink.java


2) a) Producing Atom Documents

The following code example demonstrates the production of Atom documents using Apache Abdera.

Apache Abdera - Click on links to Download - ProduceAtomUsingAbdera.java ProduceAtomUsingAbdera_web.xml

The following code example demonstrates the production of Atom documents using Apache Wink.

Apache Wink - Click on links to Download - ProduceAtomUsingWink.java ProduceAtomUsingWink_web.xml

2) b) Producing Atom Documents - the JAX-RS way

A more elegant way of producing Atom documents using Apache Wink is the JAX-RS way as described below:

  1. Open the Eclipse development environment and create a "Dynamic Web Project".
  2. Add Apache Wink & its dependent JARs under Java EE Module Dependencies.
  3. Create a POJO class and a method that creates Atom feed document. Annotate the class & its methods with the required JAX-RS annotations as below:
    ProduceAtom.java
  4. Add org.apache.wink.server.internal.servlet.RestServlet into web.xml and specify the path of above Resource class in it's init-param.
    See ProduceAtomWinkElegant_web.xml and application
  5. Deploy the web-application and access it using the url http://localhost:8080/ProduceAtom_Wink_Elegant/rest/getAtom
  6. Final WAR -> ProduceAtom_Wink_Elegant.zip (add Wink & its dependent JARs under ProduceAtom_Wink_Elegant\WEB-INF\lib and re-zip it as WAR).

3) Consuming RSS Documents

The following code example demonstrates the consuming of RSS documents using Apache Abdera.

Apache Abdera - Click on link to Download - ConsumeRssUsingAbdera.java

The following code example demonstrates the consuming of RSS documents using Apache Wink.

Apache Wink - Click on link to Download - ConsumeRssUsingWink.java


4) Producing RSS Documents

Apache Abdera

Apache Abdera version 0.4 does not support RSS write.

Apache Wink

Same as in 2) b) Producing Atom Documents - the JAX-RS way. However the resource method now returns an RssFeed object instead of AtomFeed object.

Apache Wink - Click on link to Download - ProduceRss_Wink_Elegant.zip


5) Writing Atom Publishing Protocol (APP) Server

The following steps explain how to implement an APP server as described in the following beautiful article by James Snell: http://www.ibm.com/developerworks/library/x-atompp1/

Apache Abdera

  1. Open the Eclipse development environment and create a "Dynamic Web Project".
  2. Add Apache Abdera & its dependent JARs under Java EE Module Dependencies.
  3. Add the following CollectionAdapter and Provider classes under src/myPackage directory: APP_CollectionAdapter.java APP_ContentProvider.java
  4. Add org.apache.abdera.protocol.server.servlet.AbderaServlet into web.xml and point the following init paramters to the classes added above.
    org.apache.abdera.protocol.server.Provider
    org.apache.abdera.protocol.server.CollectionAdapter
    APP_Server_Abdera_web.xml
  5. Add the following index.jsp which has help on how to perform the APP operations: APP_Server_Abdera_index.jsp
  6. Deploy and run the application.

Final WAR -> APP_Server_Abdera.zip (add Apache Abdera & its dependent JARs under APP_Server_Abdera\WEB-INF\lib and re-zip it as WAR).

Apache Wink

  1. Open the Eclipse development environment and create a "Dynamic Web Project".
  2. Add Apache Wink & its dependent JARs under Java EE Module Dependencies.
  3. Add the following Resource class under src/myPackage directory: EntriesCollection.java
  4. Add org.apache.wink.server.internal.servlet.RestServlet into web.xml and specify the path of above Resource class in it's init-param. APP_Server_Wink_web.xml APP_Server_Wink_application
  5. Add the following index.jsp which has help on how to perform the APP operations: APP_Server_Wink_index.jsp
  6. Deploy and run the application.

Final WAR -> APP_Server_Wink.zip (add Apache Wink & its dependent JARs under APP_Server_Wink\WEB-INF\lib and re-zip it as WAR)

References


6) Writing Atom Publishing Protocol (APP) Client

In order to write an Atom Publishing Protocol client refer to the following examples.

Important Note

Icon

Make sure that the APP_Server_Abdera.war and the APP_Server_Wink.war provided in the previous example are deployed before running these examples.

Apache Abdera - Click on link to Download - APP_Client_Abdera.java

   1. Acessing Service Document:

   2. Getting a Feed

   3. Posting an entry to a Feed

   4. Putting a change to an Entry

   5. Getting an Entry

   6. Deleting an Entry

Apache Wink - Click on link to Download - APP_Client_Wink.java

   1. Acessing Service Document:

   2. Getting a Feed

   3. Posting an entry to a Feed

   4. Putting a change to an Entry

   5. Getting an Entry

   6. Deleting an Entry


Labels
  • No labels