Inital commit
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
/* Copyright (c) 2008 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
// All Rights Reserved.
|
||||
|
||||
package sample.tester;
|
||||
|
||||
import com.google.gdata.client.GoogleService;
|
||||
import com.google.gdata.data.BaseEntry;
|
||||
import com.google.gdata.data.Entry;
|
||||
import com.google.gdata.data.Feed;
|
||||
import com.google.gdata.data.PlainTextConstruct;
|
||||
import com.google.gdata.data.TextContent;
|
||||
import com.google.gdata.util.ServiceException;
|
||||
import sample.util.SimpleCommandLineParser;
|
||||
|
||||
import java.net.URL;
|
||||
|
||||
/**
|
||||
* An application that serves as a sample to show how the GData
|
||||
* Service object can be used to create/read/update/delete data
|
||||
* in a Google service.
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class Tester {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
SimpleCommandLineParser parser = new SimpleCommandLineParser(args);
|
||||
String serviceName = parser.getValue("serviceName", "service", "s");
|
||||
String appName = parser.getValue("appName", "app", "a");
|
||||
String feedUrlString = parser.getValue("feedUrl", "feed", "f");
|
||||
String username = parser.getValue("username", "user", "u");
|
||||
String password = parser.getValue("password", "pass", "p");
|
||||
boolean updateEntry = parser.containsKey("update");
|
||||
boolean help = parser.containsKey("help", "h");
|
||||
|
||||
if (help) {
|
||||
usage();
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
if (serviceName == null) {
|
||||
throw new IllegalArgumentException("Must specify service name");
|
||||
}
|
||||
|
||||
if (appName == null) {
|
||||
throw new IllegalArgumentException("Must specify application name");
|
||||
}
|
||||
|
||||
if (feedUrlString == null) {
|
||||
throw new IllegalArgumentException("Must specify feed URL");
|
||||
}
|
||||
|
||||
GoogleService service = new GoogleService(serviceName, appName);
|
||||
|
||||
try {
|
||||
|
||||
// URL of service endpoint.
|
||||
URL feedUrl = new URL(feedUrlString);
|
||||
|
||||
// Set up authentication.
|
||||
if (username != null) {
|
||||
if (password == null) {
|
||||
throw new IllegalArgumentException("Must specify password");
|
||||
}
|
||||
service.setUserCredentials(username, password);
|
||||
}
|
||||
|
||||
// Send the query request and receive the response.
|
||||
Feed feed = service.getFeed(feedUrl, Feed.class);
|
||||
|
||||
// Print the title and update time of the returned feed.
|
||||
System.out.println("Feed title " + feed.getTitle().getPlainText() +
|
||||
" (" + feed.getUpdated() + ")");
|
||||
|
||||
// Print the title and update time and body of each entry.
|
||||
System.out.println("Entries:");
|
||||
for (Entry e : feed.getEntries()) {
|
||||
String content =
|
||||
(e.getContent() != null ?
|
||||
((TextContent) e.getContent()).getContent().getPlainText() :
|
||||
"");
|
||||
System.out.println(" " + e.getTitle().getPlainText() +
|
||||
" (" + e.getUpdated() + ")" +
|
||||
(content.length() > 0 ? ": " : "") + content);
|
||||
}
|
||||
|
||||
// Insert, update, and delete an entry if so requested.
|
||||
if (updateEntry) {
|
||||
BaseEntry newEntry = new Entry();
|
||||
newEntry.setTitle(new PlainTextConstruct("Sample entry title"));
|
||||
newEntry.setContent(new PlainTextConstruct("Sample entry content"));
|
||||
BaseEntry e = service.insert(feedUrl, newEntry);
|
||||
System.out.println("Inserted an entry, ID is " + e.getId());
|
||||
e.setContent(new PlainTextConstruct("New sample entry content"));
|
||||
service.update(new URL(e.getEditLink().getHref()), e);
|
||||
System.out.println("Updated the entry");
|
||||
service.delete(new URL(e.getEditLink().getHref()));
|
||||
System.out.println("Deleted the entry");
|
||||
}
|
||||
|
||||
} catch (ServiceException e) {
|
||||
throw new RuntimeException(e.getMessage() + "\n" + e.getResponseBody());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints usage of this application.
|
||||
*/
|
||||
private static void usage() {
|
||||
System.out.println("Usage: java Tester --serviceName [service] " +
|
||||
"--appName [app] --feedUrl [feed] --username [user] " +
|
||||
"--password [pass] --update");
|
||||
System.out.println(
|
||||
"\nA generic client for querying a GData feed and optionally\n" +
|
||||
"inserting/updating/deleting entries.\n\n" +
|
||||
"It uses the specified Google Account username and password to\n" +
|
||||
"query the specified feed URL and displays the title and content\n" +
|
||||
"of each entry returned. If --update is specified, it will insert\n" +
|
||||
"an entry, update it, and then delete it.\n");
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user