content: /*
   *
   */
  package org.lightview.business.pool.boundary;
  
  import javax.annotation.PostConstruct;
  import javax.inject.Inject;
  import javax.json.JsonObject;
  import javax.ws.rs.client.Client;
  import javax.ws.rs.client.ClientBuilder;
  import javax.ws.rs.client.WebTarget;
  import javax.ws.rs.core.MediaType;
  import javax.ws.rs.core.Response;
  import org.lightview.business.pool.entity.PoolStatistics;
  import org.lightview.presentation.dashboard.DashboardModel;
  
  /**
   *
   * @author adam-bien.com
   */
  public class EJBPoolMonitoring {
  
      private Client client;
  
      @Inject
      DashboardModel model;
  
      @PostConstruct
      public void init() {
          this.client = ClientBuilder.newClient();
      }
  
      public PoolStatistics getPoolStats(String application, String ejbName) {
          final String uri = getUri();
          System.out.println("Uri: " + uri);
          WebTarget target = this.client.target(uri);
  
          Response response = target.
                  resolveTemplate("application", application).
                  resolveTemplate("ejb", ejbName).
                  request(MediaType.APPLICATION_JSON).get(Response.class);
  
          if (response.getStatus() == 404) {
              return null;
          }
          return new PoolStatistics(response.readEntity(JsonObject.class));
      }
  
      public String getUri() {
          return model.serverUriProperty().get() + "/resources/applications/{application}/ejbs/{ejb}/pool";
      }
  }
  