예제 #1
0
 public static RequestBuilder newCacheManagerRequest(Method httpMethod, String url) {
   if (!authenticated) {
     GWT.log("Attempts to build a request when no credentials present");
     return null;
   }
   RequestBuilder request = new RequestBuilder(httpMethod, url);
   request.setTimeoutMillis(35000);
   request.setHeader("Authorization", base64);
   request.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");
   // request.setUser(defaultUsername);
   // request.setPassword(defaultPassword);
   return request;
 }
  @Override
  public <A extends RestAction<?>> RequestBuilder build(A action, String securityToken)
      throws ActionException {
    Method httpMethod = HTTP_METHODS.get(action.getHttpMethod());
    String url = buildUrl(action);
    String xsrfToken = action.isSecured() ? securityToken : "";

    RequestBuilder requestBuilder = httpRequestBuilderFactory.create(httpMethod, url);
    requestBuilder.setTimeoutMillis(requestTimeoutMs);

    buildHeaders(requestBuilder, xsrfToken, action);
    buildBody(requestBuilder, action);

    return requestBuilder;
  }
예제 #3
0
  /** Send the name from the nameField to the server and wait for a response. */
  private void sendToServer(RequestBuilder.Method httpMethod) {
    // Then, we send the input to the server.
    textToServerLabel.setText("");
    serverResponseLabel.setText("");

    RequestBuilder request = buildRequest(httpMethod);
    request.setTimeoutMillis(10000);
    request.setCallback(
        new RequestCallback() {

          @Override
          public void onError(Request request, Throwable exception) {
            // Show the error message to the user
            dialogBox.setText("RESTful Call - Failure");
            serverResponseLabel.addStyleName("serverResponseLabelError");
            serverResponseLabel.setHTML(SERVER_ERROR);
            dialogBox.center();
            closeButton.setFocus(true);
          }

          @Override
          public void onResponseReceived(Request request, Response response) {
            dialogBox.setText("RESTful Call");
            serverResponseLabel.removeStyleName("serverResponseLabelError");
            serverResponseLabel.setHTML(
                response.getStatusCode()
                    + " "
                    + response.getStatusText()
                    + "<p>"
                    + response.getText());
            dialogBox.center();
            closeButton.setFocus(true);

            if (response.getStatusCode() == HTTP_OK) {
              parseXml(response.getText());
            }
          }
        });
    try {
      request.send();
    } catch (RequestException re) {
      re.printStackTrace();
    }
  }
예제 #4
0
 public Method timeout(int timeout) {
   builder.setTimeoutMillis(timeout);
   return this;
 }
예제 #5
0
 private void doSetTimeout() {
   if (Defaults.getRequestTimeout() > -1) {
     builder.setTimeoutMillis(Defaults.getRequestTimeout());
   }
 }
예제 #6
0
  @Override
  public void annotate(
      final IBioPortalTextminingRequestCompleted completionCallback,
      String source,
      String textContent,
      String include,
      String exclude)
      throws IllegalArgumentException {
    String url =
        GWT.getModuleBaseURL()
            + "nif/annotate?format=json&content="
            + URL.encode(textContent)
            + "&url="
            + source
            + "&categoriesIn="
            + include
            + "&categoriesOut="
            + exclude;
    if (!_application.isHostedMode())
      url =
          ApplicationUtils.getUrlBase(GWT.getModuleBaseURL())
              + "nif/annotate?format=json&content="
              + URL.encode(textContent)
              + "&url="
              + source
              + "&categoriesIn="
              + include
              + "&categoriesOut="
              + exclude;

    RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
    builder.setTimeoutMillis(10000);
    try {
      Request request =
          builder.sendRequest(
              null,
              new RequestCallback() {
                public void onError(Request request, Throwable exception) {
                  if (exception instanceof RequestTimeoutException) {
                    _application
                        .getLogger()
                        .exception(
                            this,
                            "Couldn't reach NIF annotator (timeout) " + exception.getMessage());
                    completionCallback.textMiningNotCompleted("Timeout");
                  } else {
                    _application
                        .getLogger()
                        .exception(this, "Couldn't retrieve NIF annotator JSON");
                    completionCallback.textMiningNotCompleted();
                  }
                }

                public void onResponseReceived(Request request, Response response) {
                  if (200 == response.getStatusCode()) {
                    JsAnnotationSet set = (JsAnnotationSet) parseJson(response.getText());
                    completionCallback.returnTextminingResults(set);
                  } else if (503 == response.getStatusCode()) {
                    _application.getLogger().exception(this, "503: " + response.getText());
                    completionCallback.textMiningNotCompleted("Couldn't run Nif Annotator (503)");
                  } else {
                    _application
                        .getLogger()
                        .exception(this, response.getStatusCode() + ": " + response.getText());
                    completionCallback.textMiningNotCompleted(
                        "Couldn't run Nif Annotator " + response.getStatusCode());
                  }
                }
              });
    } catch (RequestException e) {
      _application.getLogger().exception(this, "Couldn't retrieve NIF annotator JSON");
      completionCallback.textMiningNotCompleted();
    }
  }
예제 #7
0
  @Override
  public void searchData(
      final INifDataRequestCompleted completionCallback,
      String textQuery,
      String type,
      String vendor,
      String resource,
      int pageNumber,
      int pageSize)
      throws IllegalArgumentException {

    if (resource.equals("nif-0000-07730-1")) {

      String url =
          GWT.getModuleBaseURL()
              + "nif/data?format=json&resource="
              + resource
              + "&query="
              + URL.encode(textQuery)
              + "&type="
              + URL.encode(type)
              + "&vendor="
              + URL.encode(vendor);
      if (!_application.isHostedMode())
        url =
            ApplicationUtils.getUrlBase(GWT.getModuleBaseURL())
                + "nif/data?format=json&resource="
                + resource
                + "&query="
                + URL.encode(textQuery)
                + "&type="
                + URL.encode(type)
                + "&vendor="
                + URL.encode(vendor);
      RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
      builder.setTimeoutMillis(10000);
      _application.getLogger().debug(this, "Search Data with url" + url);
      try {
        Request request =
            builder.sendRequest(
                null,
                new RequestCallback() {
                  public void onError(Request request, Throwable exception) {
                    if (exception instanceof RequestTimeoutException) {
                      _application
                          .getLogger()
                          .exception(
                              this,
                              "Couldn't reach NIF data search (timeout) " + exception.getMessage());
                      completionCallback.reportException("Timeout");
                    } else {
                      _application
                          .getLogger()
                          .exception(
                              this, "Couldn't retrieve NIF data JSON " + exception.getMessage());
                      completionCallback.reportException();
                    }
                  }

                  public void onResponseReceived(Request request, Response response) {
                    if (200 == response.getStatusCode()) {
                      ArrayList<MGenericResource> data = new ArrayList<MGenericResource>();
                      JsoNifDataSearchResultsWrapper results =
                          (JsoNifDataSearchResultsWrapper) parseJson(response.getText());
                      JsArray<JsoNifDataEntry> res = results.getResults();
                      for (int i = 0; i < res.length(); i++) {
                        JsoNifDataEntry entry = res.get(i);

                        MGenericResource source =
                            ResourcesFactory.createGenericResource(
                                entry.getSourceUri(), entry.getSourceLabel());
                        MGenericResource normalizedResource =
                            _application.getResourcesManager().cacheResource(source);
                        if (source == normalizedResource)
                          _application
                              .getLogger()
                              .debug(
                                  this,
                                  "Resource cache size (after insert): "
                                      + _application.getResourcesManager().getResourceCacheSize());

                        MAntibody antibody =
                            new MAntibody(entry.getUri(), entry.getLabel(), normalizedResource);
                        antibody.setCloneId(entry.getCloneId());
                        antibody.setVendor(entry.getVendor());
                        antibody.setOrganism(entry.getOrganism());
                        antibody.setType(entry.getType());
                        antibody.setCatalog(entry.getCatalog());
                        // antibody.setSource(normalizedResource);
                        data.add(antibody);
                      }
                      _application
                          .getLogger()
                          .debug(this, "Number NIF Data results: " + data.size());
                      completionCallback.returnData(data);
                    } else if (503 == response.getStatusCode()) {
                      _application.getLogger().exception(this, "503: " + response.getText());
                      completionCallback.reportException("Couldn't run Nif data search (503)");
                    } else {
                      _application
                          .getLogger()
                          .exception(this, response.getStatusCode() + ": " + response.getText());
                      completionCallback.reportException(
                          "Couldn't run Nif data search " + response.getStatusCode());
                    }
                  }
                });
      } catch (RequestException e) {
        _application.getLogger().exception(this, "Couldn't retrieve NIF data JSON");
        completionCallback.reportException();
      }
    } else if (resource.equals("nlx_144509-1") || resource.equals("nif-0000-08137-1")) {
      String url =
          GWT.getModuleBaseURL()
              + "nif/data?format=json&resource="
              + resource
              + "&query="
              + URL.encode(textQuery)
              + "&type="
              + URL.encode(type);
      if (!_application.isHostedMode())
        url =
            ApplicationUtils.getUrlBase(GWT.getModuleBaseURL())
                + "nif/data?format=json&resource="
                + resource
                + "&query="
                + URL.encode(textQuery)
                + "&type="
                + URL.encode(type);
      RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);
      builder.setTimeoutMillis(10000);
      _application.getLogger().debug(this, "Search NIF resources with url" + url);
      try {
        Request request =
            builder.sendRequest(
                null,
                new RequestCallback() {
                  public void onError(Request request, Throwable exception) {
                    if (exception instanceof RequestTimeoutException) {
                      _application
                          .getLogger()
                          .exception(
                              this,
                              "Couldn't reach NIF resources search (timeout) "
                                  + exception.getMessage());
                      completionCallback.reportException("Timeout");
                    } else {
                      _application
                          .getLogger()
                          .exception(
                              this,
                              "Couldn't retrieve NIF resources JSON " + exception.getMessage());
                      completionCallback.reportException();
                    }
                  }

                  public void onResponseReceived(Request request, Response response) {
                    if (200 == response.getStatusCode()) {
                      ArrayList<MGenericResource> data = new ArrayList<MGenericResource>();
                      JsoNifDataSearchResultsWrapper results =
                          (JsoNifDataSearchResultsWrapper) parseJson(response.getText());
                      JsArray<JsoNifDataEntry> res = results.getResults();
                      for (int i = 0; i < res.length(); i++) {
                        JsoNifDataEntry entry = res.get(i);

                        MGenericResource source =
                            ResourcesFactory.createGenericResource(
                                entry.getSourceUri(), entry.getSourceLabel());
                        _application
                            .getLogger()
                            .debug(
                                this,
                                "Resource cache size: "
                                    + _application.getResourcesManager().getResourceCacheSize());
                        MGenericResource normalizedResource =
                            _application.getResourcesManager().cacheResource(source);
                        _application
                            .getLogger()
                            .debug(
                                this,
                                "Resource cache size: "
                                    + _application.getResourcesManager().getResourceCacheSize());

                        MLinkedResource resource =
                            new MLinkedResource(
                                entry.getUri(), entry.getLabel(), entry.getDescription());
                        resource.setSource(normalizedResource);
                        data.add(resource);
                      }
                      _application
                          .getLogger()
                          .debug(this, "Number NIF resources results: " + data.size());
                      completionCallback.returnData(data);
                    } else if (503 == response.getStatusCode()) {
                      _application.getLogger().exception(this, "503: " + response.getText());
                      completionCallback.reportException("Couldn't run Nif resources search (503)");
                    } else {
                      _application
                          .getLogger()
                          .exception(this, response.getStatusCode() + ": " + response.getText());
                      completionCallback.reportException(
                          "Couldn't run Nif resources search " + response.getStatusCode());
                    }
                  }
                });
      } catch (RequestException e) {
        _application.getLogger().exception(this, "Couldn't retrieve NIF resources JSON");
        completionCallback.reportException();
      }
    }
  }
예제 #8
0
  @Override
  public void sendHttpRequest(
      final HttpRequest httpRequest, final HttpResponseListener httpResultListener) {
    if (httpRequest.getUrl() == null) {
      httpResultListener.failed(
          new GdxRuntimeException("can't process a HTTP request without URL set"));
      return;
    }

    final String method = httpRequest.getMethod();
    final String value = httpRequest.getContent();
    final boolean valueInBody =
        method.equalsIgnoreCase(HttpMethods.POST) || method.equals(HttpMethods.PUT);

    RequestBuilder builder;

    String url = httpRequest.getUrl();
    if (method.equalsIgnoreCase(HttpMethods.GET)) {
      if (value != null) {
        url += "?" + value;
      }
      builder = new RequestBuilder(RequestBuilder.GET, url);
    } else if (method.equalsIgnoreCase(HttpMethods.POST)) {
      builder = new RequestBuilder(RequestBuilder.POST, url);
    } else if (method.equalsIgnoreCase(HttpMethods.DELETE)) {
      if (value != null) {
        url += "?" + value;
      }
      builder = new RequestBuilder(RequestBuilder.DELETE, url);
    } else if (method.equalsIgnoreCase(HttpMethods.PUT)) {
      builder = new RequestBuilder(RequestBuilder.PUT, url);
    } else {
      throw new GdxRuntimeException("Unsupported HTTP Method");
    }

    Map<String, String> content = httpRequest.getHeaders();
    Set<String> keySet = content.keySet();
    for (String name : keySet) {
      builder.setHeader(name, content.get(name));
    }

    builder.setTimeoutMillis(httpRequest.getTimeOut());

    try {
      Request request =
          builder.sendRequest(
              valueInBody ? value : null,
              new RequestCallback() {

                @Override
                public void onResponseReceived(Request request, Response response) {
                  httpResultListener.handleHttpResponse(new HttpClientResponse(response));
                  requests.remove(httpRequest);
                  listeners.remove(httpRequest);
                }

                @Override
                public void onError(Request request, Throwable exception) {
                  httpResultListener.failed(exception);
                  requests.remove(httpRequest);
                  listeners.remove(httpRequest);
                }
              });
      requests.put(httpRequest, request);
      listeners.put(httpRequest, httpResultListener);

    } catch (Throwable e) {
      httpResultListener.failed(e);
    }
  }