Migration from Apache Abdera to Apache Wink
Apache Wink is an excellent the perfect solution for consuming and producing Atom, APP and APP 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
- 2) a) Producing Atom Documents
- 2) b) Producing Atom Documents Using Apache Wink - the JAX-RS Wayway
- Producing 3) Consuming RSS Documents
- Creating 4) Producing RSS Documents
- 5) Writing Atom Publishing Protocol (APP) Server
- 6) Writing Atom Publishing Protocol (APP) Client
- Object Models Comparison for Atom Syndication Format (ASF)
- Object Models Comparison for Atom Publishing Protocol (APP)
- Object Models Comparison for RSS (Really Simple Syndication)
...
1) Consuming Atom Documents
The following code example demonstrates the consumption of Atom documents using Apache Abdera.
...
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 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 In order to produce an Atom document according to the JAX-RS specification using Apache Wink perform the following stepsway as described below:
- Open the Eclipse development environment and then create a "Dynamic Web Project".
- Add Apache Wink & its dependent JARs into Java Build Path and under Java EE Module Dependencies.
- 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 - 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 - Deploy the web-application and access it using the url http://localhost:8080/ProduceAtom_Wink_Elegant/rest/getAtom
- 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 cunsuming consuming of RSS documents using Apache Abdera.
...
The following code example demonstrates the cunsuming consuming of RSS documents using Apache Wink.
Apache Wink - Click on link to Download - ConsumeRssUsingWink.java | ||
---|---|---|
|
Producing RSS Documents
...
4) Producing RSS Documents
Apache Abdera
Apache Abdera version 0.4 does not support RSS write.
Apache Wink
The 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
In order to write and publish an APP server using Apache Abdera and Apache Wink perfoorm the following steps:
The following scenario explains how to Implement 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/
...
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
- Apache Wink's "SimpleDefects" example: http://svn.apache.org/repos/asf/incubator/wink/tags/wink-0.1-incubating/wink-examples/apps/SimpleDefects/src/main/java/org/apache/wink/example/simpledefects/resources/DefectsResource.java
- Abdera Feed Sample shipped with IBM WebSphere Feature Pack for Web 2.0 http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.ajax.feed.samples.help/docs/GettingStarted_useage.html
- Abdera Server Implementation Guide -> http://cwiki.apache.org/ABDERA/server-implementation-guide.html
- Abdera Collection Adapter Implementation Guide -> http://cwiki.apache.org/ABDERA/collection-adapter-implementation-guide.html
...
6) Writing Atom Publishing Protocol (APP) Client
In order to write an Atom Publishing Protocol client refer to the following examples. TBD
Info | ||
---|---|---|
| ||
Make sure that the APP_Server_Abdera.war and the APP_Server_Wink.war provid3ed provided in the previous exmple example are deployed before running this examplethese 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
|
Object Models Comparison for Atom Syndication Format (ASF)
TBD
Object Models Comparison for Atom Publishing Protocol (APP)
TBD
Object Models Comparison for RSS (Really Simple Syndication)
...
...