Package org.agoncal.book.javaee7.chapter15

Source Code of org.agoncal.book.javaee7.chapter15.BookClient

package org.agoncal.book.javaee7.chapter15;

import org.glassfish.jersey.message.internal.MediaTypes;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriBuilder;
import java.net.URI;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;

/**
* @author Antonio Goncalves
*         APress Book - Beginning Java EE 7 with Glassfish 4
*         http://www.apress.com/
*         http://www.antoniogoncalves.org
*         --
*/
public class BookClient {

  // ======================================
  // =             Attributes             =
  // ======================================

  private static URI uri = UriBuilder.fromUri("http://localhost/chapter15-service-1.0/rs").port(8080).build();
  private static Client client = ClientBuilder.newClient();
  private static Response response;

  // ======================================
  // =           Public Methods           =
  // ======================================

  public static void main(String[] args) {
    if (args.length == 0) {
      System.out.println("Usage : ");
      System.out.println("\tgetall [xml|json]");
      System.out.println("\tget <id> [xml|json]");
      System.out.println("\tpost [null]");
      System.out.println("\tput <id>");
      System.out.println("\tdelete <id>");
      System.out.println("\tinfo");
      System.out.println("\twadl");
      System.out.println("\tall");
    }

    switch (args[0]) {
      case "getall":
        getall(args[1]);
        break;
      case "get":
        get(args[1], args[2]);
        break;
      case "post":
        post(args.length > 1 ? args[1] : null);
        break;
      case "put":
        put(args[1]);
        break;
      case "delete":
        delete(args[1]);
        break;
      case "info":
        info();
        break;
      case "wadl":
        wadl();
        break;
      case "all":
        all();
        break;
    }
  }

  public static void getall(String mediaType) {
    System.out.println("-- Get All (" + mediaType + ")--");
    System.out.println("--------------------------");
    response = client.target(uri).path("book").request("application/" + mediaType).get();
    System.out.println("\tStatus : " + response.getStatus());
    System.out.println("\tEntity : " + response.readEntity(String.class));
  }

  public static void get(String id, String mediaType) {
    System.out.println("-- Get (" + id + " - " + mediaType + ")--");
    System.out.println("--------------------------");
    response = client.target(uri).path("book").path(id).request("application/" + mediaType).get();
    System.out.println("\tStatus : " + response.getStatus());
    System.out.println("\tEntity : " + response.readEntity(String.class));
  }

  public static void post(String bookNull) {
    System.out.println("-- Post --");
    System.out.println("--------------------------");
    Book book = null;
    if (bookNull == null)
      book = new Book("The Hitchhiker's Guide to the Galaxy", 12.5F, "Science fiction comedy book", "1-84023-742-2", 354, false);
    response = client.target(uri).path("book").request().post(Entity.entity(book, MediaType.APPLICATION_XML));
    System.out.println("\tStatus : " + response.getStatus());
    System.out.println("\tLocation : " + response.getLocation());
  }

  public static void put(String id) {
    System.out.println("-- Put (" + id + ")--");
    System.out.println("--------------------------");
    Book book = new Book(id, "Updated Title", 12.5F, "Updated Desc", "Updated ISBN", 354, false);
//    response = client.target(uri).path("book").path(id).request().put(Entity.entity(book, MediaType.APPLICATION_XML));
    response = client.target(uri).path("book").request().put(Entity.entity(book, MediaType.APPLICATION_XML));
    System.out.println("\tStatus : " + response.getStatus());
  }

  public static void delete(String id) {
    System.out.println("-- Delete (" + id + ")--");
    System.out.println("--------------------------");
    response = client.target(uri).path("book").path(id).request().delete();
    System.out.println("\tStatus : " + response.getStatus());
    System.out.println("\tEntity : " + response.readEntity(String.class));
  }

  private static void info() {
    System.out.println("-- Info --");
    System.out.println("--------------------------");
    response = client.target(uri).path("book").request().get();
    System.out.println("getEntity : " + response.getEntity());
    System.out.println("getEntityTag : " + response.getEntityTag());
    System.out.println("getStringHeaders : " + response.getStringHeaders());
    System.out.println("getMetadata : " + response.getMetadata());
    System.out.println("getHeaders : " + response.getHeaders());
    System.out.println("getLinks : " + response.getLinks());
    System.out.println("getLanguage : " + response.getLanguage());
    System.out.println("getCookies : " + response.getCookies());
    System.out.println("getAllowedMethods : " + response.getAllowedMethods());
    System.out.println("hasEntity : " + response.hasEntity());
    System.out.println("StatusInfo : " + response.getStatusInfo());
    System.out.println("Status : " + response.getStatus());
    System.out.println("Location : " + response.getLocation());
    System.out.println("Length : " + response.getLength());
    System.out.println("LastModified : " + response.getLastModified());
    System.out.println("Date : " + response.getDate());
    System.out.println("ToString : " + response.toString());
  }

  private static void wadl() {
    System.out.println("-- WADL --");
    System.out.println("--------------------------");
    response = client.target(uri).path("application.wadl").request(MediaTypes.WADL).get();
    System.out.println("\tStatus : " + response.getStatus());
    System.out.println("\tEntity : " + response.readEntity(String.class));
  }

  private static void all() {
    System.out.println("-- ALL --");
    System.out.println("--------------------------");

    URI rootURI = UriBuilder.fromUri("http://localhost/chapter15-service-1.0/rs/book").port(8080).build();
    Client client = ClientBuilder.newClient();
    Response response;

    System.out.println("--- GET all books in XML");
    response = client.target(rootURI).request(MediaType.APPLICATION_XML).get();
    System.out.println("\tStatus : " + response.getStatus());
    System.out.println(response.readEntity(String.class));

    System.out.println("--- POST new book");
    Book book = new Book("The Hitchhiker's Guide to the Galaxy", 12.5F, "Science fiction comedy book", "1-84023-742-2", 354, false);
    response = client.target(rootURI).request().post(Entity.entity(book, MediaType.APPLICATION_XML));
    System.out.println("\tStatus : " + response.getStatus());
    URI bookURI = response.getLocation();
    System.out.println("\tLocation : " + bookURI);
    book.setId(response.getLocation().toString().split("/")[6]);

    System.out.println("--- GET the created book in JSon");
    System.out.println(client.target(bookURI).request(MediaType.APPLICATION_JSON).get(String.class));

    System.out.println("-- PUT updated book");
    System.out.println("--------------------------");
    book.setTitle("Updated title");
    response = client.target(rootURI).request().put(Entity.entity(book, MediaType.APPLICATION_XML));
    System.out.println("\tStatus : " + response.getStatus());

    System.out.println("--- GET the created book in XML");
    System.out.println(client.target(bookURI).request(MediaType.APPLICATION_XML).get(String.class));

    System.out.println("--- DELETE the book");
    response = client.target(rootURI).path(book.getId()).request().delete();
    System.out.println("\tStatus : " + response.getStatus());

    System.out.println("--- GET the deted book (404-Not Found)");
    response = client.target(bookURI).request(MediaType.APPLICATION_XML).get();
    System.out.println("\tStatus : " + response.getStatus());
  }
}
TOP

Related Classes of org.agoncal.book.javaee7.chapter15.BookClient

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.