Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Migration from Apache Abdera to Apache Wink

Apache Wink is an excellent 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.

...

This section contains the following topics:

...

Apache Abdera version 0.4 does not support RSS write.

Apache Wink

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

...

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

       1. Acessing Service Document:

Code Block
Document<Service> introspection = abderaClient.get(SERVICE_URL).getDocument();
Service service = introspection.getRoot();
List<Workspace> workspaces = service.getWorkspaces();
for (Workspace workspace : workspaces) {
    System.out.println("\t" + workspace.getTitle());
    List<Collection> collections = workspace.getCollections();
    for (Collection collection : collections) {
        System.out.println("\t" + collection.getTitle() + "\t:\t" + collection.getHref());
    }
    System.out.print("\n");
}

       2. Getting a Feed

Code Block
RequestOptions opts = new RequestOptions();
opts.setContentType("application/atom+xml;type=feed");
ClientResponse response = abderaClient.get(FEED_URL, opts);
Feed feed = (Feed)response.getDocument().getRoot();

       3. Posting an entry to a Feed

Code Block
RequestOptions opts = new RequestOptions();
opts.setContentType("application/atom+xml;type=entry");
ClientResponse response = abderaClient.post(FEED_URL, newEntry, opts);

       4. Putting a change to an Entry

Code Block
RequestOptions opts = new RequestOptions();
opts.setContentType("application/atom+xml;type=entry");
ClientResponse response = abderaClient.put(ENTRY_URL, changedEntry.getDocument(), opts);

       5. Getting an Entry

Code Block
RequestOptions opts = new RequestOptions();
opts.setContentType("application/atom+xml;type=entry");
ClientResponse response = abderaClient.get(ENTRY_URL, opts);
Entry entry = (Entry)response.getDocument().getRoot();

       6. Deleting an Entry

Code Block
ClientResponse response = abderaClient.delete(ENTRY_URL);

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

       1. Acessing Service Document:

Code Block
Resource resource = restClient.resource(SERVICE_URL);
AppService service = resource.accept(MediaTypeUtils.ATOM_SERVICE_DOCUMENT).get(AppService.class);
List<AppWorkspace> workspaces = service.getWorkspace();
for (AppWorkspace workspace : workspaces) {
    System.out.println("\t" + workspace.getTitle().getValue());
    List<AppCollection> collections = workspace.getCollection();
    for (AppCollection collection : collections) {
        System.out.println("\t" + collection.getTitle().getValue()
            + "\t:\t"
            + collection.getHref());
    }
    System.out.print("\n");
}

       2. Getting a Feed

Code Block
Resource feedResource = restClient.resource(FEED_URL);
AtomFeed feed = feedResource.accept(MediaType.APPLICATION_ATOM_XML).get(AtomFeed.class);

       3. Posting an entry to a Feed

Code Block
Resource feedResource = restClient.resource(FEED_URL);
ClientResponse response =
    feedResource.contentType(MediaType.APPLICATION_ATOM_XML).post(newEntry);

       4. Putting a change to an Entry

Code Block
Resource feedResource = restClient.resource(ENTRY_URL);
ClientResponse response =
    feedResource.contentType(MediaType.APPLICATION_ATOM_XML).put(changedEntry);

       5. Getting an Entry

Code Block
Resource feedResource = restClient.resource(ENTRY_URL);
AtomEntry atomEntry = feedResource.accept(MediaType.APPLICATION_ATOM_XML).get(AtomEntry.class);

       6. Deleting an Entry

Code Block
Resource feedResource = restClient.resource(ENTRY_URL);
ClientResponse response = feedResource.delete();

...