01: /*
02: * Copyright 2005-2007 Noelios Consulting.
03: *
04: * The contents of this file are subject to the terms of the Common Development
05: * and Distribution License (the "License"). You may not use this file except in
06: * compliance with the License.
07: *
08: * You can obtain a copy of the license at
09: * http://www.opensource.org/licenses/cddl1.txt See the License for the specific
10: * language governing permissions and limitations under the License.
11: *
12: * When distributing Covered Code, include this CDDL HEADER in each file and
13: * include the License file at http://www.opensource.org/licenses/cddl1.txt If
14: * applicable, add the following below this CDDL HEADER, with the fields
15: * enclosed by brackets "[]" replaced with your own identifying information:
16: * Portions Copyright [yyyy] [name of copyright owner]
17: */
18:
19: package org.restlet.example.book.rest.ch3;
20:
21: import java.util.ArrayList;
22: import java.util.List;
23:
24: import org.restlet.data.Response;
25: import org.restlet.resource.DomRepresentation;
26: import org.w3c.dom.Node;
27:
28: /**
29: * Amazon S3 client application. Returns a list of buckets.
30: *
31: * @author Jerome Louvel (contact@noelios.com)
32: */
33: public class S3App extends S3Authorized {
34:
35: public static void main(String... args) {
36: for (S3Bucket bucket : new S3App().getBuckets()) {
37: System.out.println(bucket.getName() + " : "
38: + bucket.getUri());
39: }
40: }
41:
42: public List<S3Bucket> getBuckets() {
43: List<S3Bucket> result = new ArrayList<S3Bucket>();
44:
45: // Fetch a resource: an XML document with our list of buckets
46: Response response = authorizedGet(HOST);
47: DomRepresentation document = response.getEntityAsDom();
48:
49: // Use XPath to find the bucket names
50: for (Node node : document.getNodes("//Bucket/Name")) {
51: result.add(new S3Bucket(node.getTextContent()));
52: }
53:
54: return result;
55: }
56: }
|