2
* Copyright 2005-2012 Restlet S.A.S.
4
* The contents of this file are subject to the terms of one of the following
5
* open source licenses: Apache 2.0 or LGPL 3.0 or LGPL 2.1 or CDDL 1.0 or EPL
6
* 1.0 (the "Licenses"). You can select the license that you prefer but you may
7
* not use this file except in compliance with one of these Licenses.
9
* You can obtain a copy of the Apache 2.0 license at
10
* http://www.opensource.org/licenses/apache-2.0
12
* You can obtain a copy of the LGPL 3.0 license at
13
* http://www.opensource.org/licenses/lgpl-3.0
15
* You can obtain a copy of the LGPL 2.1 license at
16
* http://www.opensource.org/licenses/lgpl-2.1
18
* You can obtain a copy of the CDDL 1.0 license at
19
* http://www.opensource.org/licenses/cddl1
21
* You can obtain a copy of the EPL 1.0 license at
22
* http://www.opensource.org/licenses/eclipse-1.0
24
* See the Licenses for the specific language governing permissions and
25
* limitations under the Licenses.
27
* Alternatively, you can obtain a royalty free commercial license with less
28
* limitations, transferable or non-transferable, directly at
29
* http://www.restlet.com/products/restlet-framework
31
* Restlet is a registered trademark of Restlet S.A.S.
34
package org.restlet.example.book.restlet.ch04.sec6.client;
36
import org.restlet.Client;
37
import org.restlet.Context;
38
import org.restlet.data.Protocol;
39
import org.restlet.example.book.restlet.ch02.sect5.sub5.common.AccountResource;
40
import org.restlet.example.book.restlet.ch02.sect5.sub5.common.AccountsResource;
41
import org.restlet.example.book.restlet.ch02.sect5.sub5.common.RootResource;
42
import org.restlet.resource.ClientResource;
47
public class MailClient {
50
* Mail client interacting with the RESTful mail server.
53
* The optional arguments.
56
public static void main(String[] args) throws Exception {
57
System.out.println("\n1) Set-up the service client resource\n");
58
Client client = new Client(new Context(), Protocol.HTTP);
59
ClientResource service = new ClientResource("http://localhost:8111");
60
service.setNext(client);
62
System.out.println("\n2) Display the root resource\n");
63
RootResource mailRoot = service.getChild("/", RootResource.class);
64
System.out.println(mailRoot.represent());
66
System.out.println("\n3) Display the initial list of accounts\n");
67
AccountsResource mailAccounts = service.getChild("/accounts/",
68
AccountsResource.class);
69
String list = mailAccounts.represent();
70
System.out.println(list == null ? "<empty>\n" : list);
72
System.out.println("4) Adds new accounts\n");
73
mailAccounts.add("Tim Berners-Lee");
74
mailAccounts.add("Roy Fielding");
75
mailAccounts.add("Mark Baker");
76
System.out.println("Three accounts added !");
78
System.out.println("\n5) Display the updated list of accounts\n");
79
System.out.println(mailAccounts.represent());
81
System.out.println("6) Display the second account\n");
82
AccountResource mailAccount = service.getChild("/accounts/2",
83
AccountResource.class);
84
System.out.println(mailAccount.represent());
87
.println("\n7) Update the individual account and display it again\n");
88
mailAccount.store("Roy T. Fielding");
89
System.out.println(mailAccount.represent());
92
.println("\n8) Delete the first account and display the list again\n");
93
mailAccount = service.getChild("/accounts/1", AccountResource.class);
95
System.out.println(mailAccounts.represent());