blob: 58ba2cf18f83562bb1355f2e4076276e28f9c06f [file] [log] [blame]
package myPackage;
import java.util.Date;
import java.util.List;
import org.apache.abdera.Abdera;
import org.apache.abdera.factory.Factory;
import org.apache.abdera.model.Collection;
import org.apache.abdera.model.Document;
import org.apache.abdera.model.Entry;
import org.apache.abdera.model.Feed;
import org.apache.abdera.model.Service;
import org.apache.abdera.model.Workspace;
import org.apache.abdera.protocol.client.AbderaClient;
import org.apache.abdera.protocol.client.ClientResponse;
import org.apache.abdera.protocol.client.RequestOptions;
public class APP_Client_Abdera {
private static String SERVICE_URL = "http://localhost:8080/APP_Server_Abdera/blog";
private static String FEED_URL = "http://localhost:8080/APP_Server_Abdera/blog/entries";
private static String ENTRY_URL = "http://localhost:8080/APP_Server_Abdera/blog/entries/kan_ocr";
private static Abdera abdera = new Abdera();
public static void main(String[] args) {
System.out.println("--- I. Contents of Service Document at " + SERVICE_URL + " ---");
getServiceDocument();
System.out.println("--- II. Contents of Feed Document at " + FEED_URL + " ---");
getEntries();
Entry newEntry = createNewEntry();
System.out.println("--- III. Posting a new entry into the Feed ---");
postEntry(newEntry);
System.out.println("--- IV. Contents of Feed Document after Post ---");
getEntries();
Entry changedEntry = changeEntry(newEntry);
System.out.println("--- V. Changing the last entry posted ---");
putEntry(changedEntry);
System.out.println("--- VI. Entry content after change ---");
getEntry();
System.out.println("--- VII. Deleting the last entry posted ---");
deleteEntry();
System.out.println("--- VIII. Contents of Feed Document after Delete ---");
getEntries();
}
private static void getServiceDocument() {
AbderaClient abderaClient = new AbderaClient(abdera);
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");
}
}
private static void getEntries() {
AbderaClient abderaClient = new AbderaClient(abdera);
RequestOptions opts = new RequestOptions();
opts.setContentType("application/atom+xml;type=feed");
ClientResponse response = abderaClient.get(FEED_URL, opts);
Feed feed = (Feed)response.getDocument().getRoot();
int counter = 1;
System.out.println("\t" + feed.getTitle() + "\n");
List<Entry> entries = feed.getEntries();
for (Entry atomEntry : entries) {
System.out.print("\t" + counter++ + ") ");
displayEntry(atomEntry);
}
}
private static Entry createNewEntry() {
Factory factory = abdera.getFactory();
Entry entry = factory.newEntry();
entry.setId("kan_ocr");
entry.setTitle("New algorithm to detect and split merged characters in Kannada OCR");
entry.addLink(FEED_URL + "/kan_ocr");
entry.setUpdated(new Date());
entry.setPublished(new Date());
entry.setSummary("The new algorithm to detect and split merged characters in " +
"Kannada OCR is yeilding good results. We will soon be publishing the " +
"algorithm and results in one of the upcoming conferences.");
entry.addAuthor("ShivaHR");
return entry;
}
private static Entry changeEntry(Entry curEntry) {
curEntry.setTitle("A new algorithm to detect and split merged characters in Kannada OCR will be published soon!");
return curEntry;
}
private static void postEntry(Entry newEntry) {
AbderaClient abderaClient = new AbderaClient(abdera);
RequestOptions opts = new RequestOptions();
opts.setContentType("application/atom+xml;type=entry");
ClientResponse response = abderaClient.post(FEED_URL, newEntry, opts);
if (response.getStatus() == 201) {
System.out.println("\t" + "Post successful\n");
} else {
System.out.println("\t" + "Response code received from server = "
+ response.getStatus()
+ "\n");
}
}
private static void putEntry(Entry changedEntry) {
AbderaClient abderaClient = new AbderaClient(abdera);
RequestOptions opts = new RequestOptions();
opts.setContentType("application/atom+xml;type=entry");
ClientResponse response = abderaClient.put(ENTRY_URL, changedEntry.getDocument(), opts);
if (response.getStatus() == 200) {
System.out.println("\t" + "Change successful\n");
} else {
System.out.println("\t" + "Response code received from server = "
+ response.getStatus()
+ "\n");
}
}
private static void getEntry() {
AbderaClient abderaClient = new AbderaClient(abdera);
RequestOptions opts = new RequestOptions();
opts.setContentType("application/atom+xml;type=entry");
ClientResponse response = abderaClient.get(ENTRY_URL, opts);
Entry entry = (Entry)response.getDocument().getRoot();
System.out.print("\t");
displayEntry(entry);
}
private static void deleteEntry() {
AbderaClient abderaClient = new AbderaClient(abdera);
ClientResponse response = abderaClient.delete(ENTRY_URL);
if (response.getStatus() == 204) {
System.out.println("\t" + "Delete successful\n");
} else {
System.out.println("\t" + "Response code received from server = "
+ response.getStatus()
+ "\n");
}
}
private static void displayEntry(Entry atomEntry) {
System.out.println(atomEntry.getTitle());
System.out.println("\t" + atomEntry.getUpdated().toString());
System.out.println("\t" + atomEntry.getSummary() + "\n");
}
}