@Test
  @RunAsClient
  public void putJsonProjectIteration() throws Exception {
    final ProjectIteration newIteration = new ProjectIteration("new-iteration");

    new ResourceRequest(
        getRestEndpointUrl("/projects/p/sample-project/iterations/i/" + newIteration.getId()),
        "PUT",
        getAuthorizedEnvironment()) {
      @Override
      protected void prepareRequest(ClientRequest request) {
        request.body(
            MediaTypes.APPLICATION_ZANATA_PROJECT_ITERATION_JSON, jsonMarshal(newIteration));
      };

      @Override
      protected void onResponse(ClientResponse response) {
        assertThat(response.getStatus(), is(Status.CREATED.getStatusCode())); // 201
      }
    }.run();

    // Retreive it again
    IProjectIterationResource iterationClient =
        super.createProxy(
            createClientProxyFactory(TRANSLATOR, TRANSLATOR_KEY),
            IProjectIterationResource.class,
            "/projects/p/sample-project/iterations/i/" + newIteration.getId());

    ClientResponse<ProjectIteration> getResponse = iterationClient.get();

    assertThat(getResponse.getStatus(), is(Status.OK.getStatusCode())); // 200

    ProjectIteration it = getResponse.getEntity();
    assertThat(it.getId(), is("new-iteration"));
  }
 public <T> T execute(Command<T> command) {
   ClientRequest restRequest = new ClientRequest(url);
   try {
     restRequest.body(MediaType.APPLICATION_XML, new JaxbCommandsRequest(deploymentId, command));
     ClientResponse<Object> response = restRequest.post(Object.class);
     if (response.getResponseStatus() == Status.OK) {
       JaxbCommandsResponse commandResponse = response.getEntity(JaxbCommandsResponse.class);
       List<JaxbCommandResponse<?>> responses = commandResponse.getResponses();
       if (responses.size() == 0) {
         return null;
       } else if (responses.size() == 1) {
         JaxbCommandResponse<?> responseObject = responses.get(0);
         if (responseObject instanceof JaxbExceptionResponse) {
           JaxbExceptionResponse exceptionResponse = (JaxbExceptionResponse) responseObject;
           String causeMessage = exceptionResponse.getCauseMessage();
           throw new RuntimeException(
               exceptionResponse.getMessage()
                   + (causeMessage == null ? "" : " Caused by: " + causeMessage));
         } else {
           return (T) responseObject.getResult();
         }
       } else {
         throw new RuntimeException("Unexpected number of results: " + responses.size());
       }
     } else {
       // TODO error handling
       throw new RuntimeException("REST request error code " + response.getResponseStatus());
     }
   } catch (Exception e) {
     throw new RuntimeException("Unable to execute REST request: " + e.getMessage(), e);
   }
 }
コード例 #3
0
 /**
  * Deletes all resources created by tests, after all tests have been run.
  *
  * <p>This cleanup method will always be run, even if one or more tests fail. For this reason, it
  * attempts to remove all resources created at any point during testing, even if some of those
  * resources may be expected to be deleted by certain tests.
  */
 @AfterClass(alwaysRun = true)
 public void cleanUp() {
   String noTest = System.getProperty("noTestCleanup");
   if (Boolean.TRUE.toString().equalsIgnoreCase(noTest)) {
     if (logger.isDebugEnabled()) {
       logger.debug("Skipping Cleanup phase ...");
     }
     return;
   }
   if (logger.isDebugEnabled()) {
     logger.debug("Cleaning up temporary resources created for testing ...");
   }
   IntakeClient intakeClient = new IntakeClient();
   // Note: Any non-success responses are ignored and not reported.
   for (String resourceId : intakeIdsCreated) {
     ClientResponse<Response> res = intakeClient.delete(resourceId);
     res.releaseConnection();
   }
   // Delete persons before PersonAuth
   OrgAuthorityClient personAuthClient = new OrgAuthorityClient();
   for (String resourceId : orgIdsCreated) {
     ClientResponse<Response> res = personAuthClient.deleteItem(orgAuthCSID, resourceId);
     res.releaseConnection();
   }
   if (orgAuthCSID != null) {
     personAuthClient.delete(orgAuthCSID).releaseConnection();
   }
 }
コード例 #4
0
 @Test
 public void testTimeout() throws Exception {
   ClientRequest request = new ClientRequest("http://localhost:8080/timeout");
   ClientResponse<String> response = request.get(String.class);
   Assert.assertEquals(
       408, response.getStatus()); // exception mapper from another test overrides 503 to 408
 }
コード例 #5
0
 @Test
 public void testAsync() throws Exception {
   ClientRequest request = new ClientRequest("http://localhost:8080/");
   ClientResponse<String> response = request.get(String.class);
   Assert.assertEquals(200, response.getStatus());
   Assert.assertEquals("hello", response.getEntity());
 }
コード例 #6
0
  @Test
  public void testSuccessFirst() throws Exception {
    try {
      String testName = "testSuccessFirst";
      startup();
      deployTopic(testName);

      ClientRequest request = new ClientRequest(generateURL("/topics/" + testName));

      ClientResponse<?> response = request.head();
      response.releaseConnection();
      Assert.assertEquals(200, response.getStatus());
      Link sender =
          MessageTestBase.getLinkByTitle(
              manager.getTopicManager().getLinkStrategy(), response, "create");
      System.out.println("create: " + sender);
      Link pushSubscriptions =
          MessageTestBase.getLinkByTitle(
              manager.getTopicManager().getLinkStrategy(), response, "push-subscriptions");
      System.out.println("push subscriptions: " + pushSubscriptions);

      String sub1 = generateURL("/subscribers/1");
      String sub2 = generateURL("/subscribers/2");

      PushTopicRegistration reg = new PushTopicRegistration();
      reg.setDurable(true);
      XmlLink target = new XmlLink();
      target.setHref(sub1);
      reg.setTarget(target);
      response = pushSubscriptions.request().body("application/xml", reg).post();
      response.releaseConnection();
      Assert.assertEquals(201, response.getStatus());

      reg = new PushTopicRegistration();
      reg.setDurable(true);
      target = new XmlLink();
      target.setHref(sub2);
      reg.setTarget(target);
      response = pushSubscriptions.request().body("application/xml", reg).post();
      response.releaseConnection();
      Assert.assertEquals(201, response.getStatus());

      shutdown();
      startup();
      deployTopic(testName);

      ClientResponse<?> res = sender.request().body("text/plain", Integer.toString(1)).post();
      res.releaseConnection();
      Assert.assertEquals(201, res.getStatus());

      Receiver.latch.await(1, TimeUnit.SECONDS);

      Assert.assertEquals("1", Receiver.subscriber1);
      Assert.assertEquals("1", Receiver.subscriber2);

      manager.getTopicManager().getPushStore().removeAll();
    } finally {
      shutdown();
    }
  }
コード例 #7
0
 @Test(dependsOnMethods = {"updateCollectionObject"})
 public void deleteCollectionObject() {
   ClientResponse<Response> res = collectionObjectClient.deleteCollectionObject(deleteId);
   verbose("deleteCollectionObject: csid=" + deleteId);
   verbose("deleteCollectionObject: status = " + res.getStatus());
   Assert.assertEquals(res.getStatus(), Response.Status.NO_CONTENT.getStatusCode());
 }
コード例 #8
0
  private ClientResponse<?> buildClientResponse() {
    @SuppressWarnings("unchecked")
    final ClientResponse<String> response = mock(ClientResponse.class);
    when(response.getStatus()).thenReturn(OK_STATUS);

    return response;
  }
コード例 #9
0
ファイル: PushReg.java プロジェクト: dejanb/mqtt-artemis
  public static void main(String[] args) throws Exception {
    // get the push consumers factory resource
    ClientRequest request = new ClientRequest("http://localhost:9095/queues/jms.queue.orders");
    ClientResponse res = request.head();
    Link pushConsumers = res.getHeaderAsLink("msg-push-consumers");

    // next create the XML document that represents the registration
    // Really, just create a link with the shipping URL and the type you want posted
    PushRegistration reg = new PushRegistration();
    BasicAuth authType = new BasicAuth();
    authType.setUsername("guest");
    authType.setPassword("guest");
    Authentication auth = new Authentication();
    auth.setType(authType);
    reg.setAuthenticationMechanism(auth);
    XmlLink target = new XmlLink();
    target.setHref("http://localhost:9095/queues/jms.queue.shipping");
    target.setType("application/xml");
    target.setRelationship("destination");
    reg.setTarget(target);

    res = pushConsumers.request().body("application/xml", reg).post();
    System.out.println(
        "Create push registration.  Resource URL: " + res.getLocationLink().getHref());
  }
コード例 #10
0
  /**
   * Creates a WSDL artifact in the s-ramp repository.
   *
   * @return the new artifact
   * @throws Exception
   */
  private XmlDocument createXmlArtifact() throws Exception {
    String artifactFileName = "PO.xml";
    InputStream contentStream =
        this.getClass().getResourceAsStream("/sample-files/core/" + artifactFileName);
    try {
      ClientRequest request = clientRequest("/s-ramp/core/XmlDocument");
      request.header("Slug", artifactFileName);
      request.body("application/xml", contentStream);

      ClientResponse<Entry> response = request.post(Entry.class);

      Entry entry = response.getEntity();
      Assert.assertEquals(artifactFileName, entry.getTitle());
      BaseArtifactType arty = ArtificerAtomUtils.unwrapSrampArtifact(entry);
      Assert.assertTrue(arty instanceof XmlDocument);
      XmlDocument doc = (XmlDocument) arty;
      Assert.assertEquals(artifactFileName, doc.getName());
      Long size = doc.getContentSize();
      Assert.assertTrue(size >= 825L);
      Assert.assertEquals("application/xml", doc.getContentType());
      return doc;
    } finally {
      IOUtils.closeQuietly(contentStream);
    }
  }
  private JaxbCommandResponse<?> executeTaskCommand(String deploymentId, Command<?> command)
      throws Exception {
    List<Command<?>> commands = new ArrayList<Command<?>>();
    commands.add(command);

    String urlString =
        new URL(
                deploymentUrl,
                deploymentUrl.getPath() + "rest/runtime/" + DEPLOYMENT_ID + "/execute")
            .toExternalForm();
    logger.info("Client request to: " + urlString);
    ClientRequest restRequest = new ClientRequest(urlString);

    JaxbCommandsRequest commandMessage = new JaxbCommandsRequest(commands);
    assertNotNull("Commands are null!", commandMessage.getCommands());
    assertTrue("Commands are empty!", commandMessage.getCommands().size() > 0);

    String body = JaxbSerializationProvider.convertJaxbObjectToString(commandMessage);
    restRequest.body(MediaType.APPLICATION_XML, body);

    ClientResponse<JaxbCommandsResponse> responseObj = restRequest.post(JaxbCommandsResponse.class);
    checkResponse(responseObj);

    JaxbCommandsResponse cmdsResp = responseObj.getEntity();
    return cmdsResp.getResponses().get(0);
  }
コード例 #12
0
 private JsonNode sendRequest() throws Exception {
   final ClientRequest clientRequest = new ClientRequest(SEARCH_URI);
   // For capturing Response
   final ClientResponse<String> clientResponse = clientRequest.get(String.class);
   // Collecting response in JsonNode
   final JsonNode jsonReply = new ObjectMapper().readTree(clientResponse.getEntity());
   return jsonReply;
 }
コード例 #13
0
 protected ClientResponse handleExpired(
     ClientExecutionContext ctx, ClientRequest request, BrowserCache.Entry entry)
     throws Exception {
   ClientResponse response = ctx.proceed();
   if (response.getStatus() == Response.Status.NOT_MODIFIED.getStatusCode()) {
     return updateOnNotModified(request, entry, (BaseClientResponse) response);
   }
   return cache(request, response);
 }
コード例 #14
0
  // ---------------------------------------------------------------
  // CRUD tests : CREATE tests
  // ---------------------------------------------------------------
  // Success outcomes
  @Test(dataProvider = "testName", dataProviderClass = AbstractServiceTestImpl.class)
  public void createIntakeWithAuthRefs(String testName) throws Exception {
    testSetup(STATUS_CREATED, ServiceRequestType.CREATE);

    // Submit the request to the service and store the response.
    String identifier = createIdentifier();

    // Create all the organization refs and entities
    createOrgRefs();

    IntakeClient intakeClient = new IntakeClient();
    PoxPayloadOut multipart =
        createIntakeInstance(
            "entryNumber-" + identifier,
            CURRENT_DATE_UTC,
            currentOwnerRefName,
            // Use currentOwnerRefName twice to test fix for CSPACE-2863
            currentOwnerRefName, // depositorRefName,
            conditionCheckerAssessorRefName,
            insurerRefName,
            valuerRefName);

    ClientResponse<Response> res = intakeClient.create(multipart);
    try {
      int statusCode = res.getStatus();

      // Check the status code of the response: does it match
      // the expected response(s)?
      //
      // Specifically:
      // Does it fall within the set of valid status codes?
      // Does it exactly match the expected status code?
      if (logger.isDebugEnabled()) {
        logger.debug(testName + ": status = " + statusCode);
      }
      Assert.assertTrue(
          testRequestType.isValidStatusCode(statusCode),
          invalidStatusCodeMessage(testRequestType, statusCode));
      Assert.assertEquals(statusCode, testExpectedStatusCode);
    } finally {
      res.releaseConnection();
    }

    // Store the ID returned from the first resource created
    // for additional tests below.
    if (knownIntakeId == null) {
      knownIntakeId = extractId(res);
      if (logger.isDebugEnabled()) {
        logger.debug(testName + ": knownIntakeId=" + knownIntakeId);
      }
    }

    // Store the IDs from every resource created by tests,
    // so they can be deleted after tests have been run.
    intakeIdsCreated.add(extractId(res));
  }
コード例 #15
0
ファイル: EJBTest.java プロジェクト: 9esa/Resteasy
 /**
  * Verify that EJBBookReader and EJBBookWriterImpl are correctly injected into EJBBookResource.
  *
  * @throws Exception
  */
 @Test
 public void testVerifyInjectionJaxRs() throws Exception {
   log.info("starting testVerifyInjectionJaxRs()");
   ClientRequest request =
       new ClientRequest("http://localhost:8080/resteasy-ejb-test/verifyInjection/");
   ClientResponse<?> response = request.get();
   log.info("result: " + response.getEntity(Integer.class));
   assertEquals(200, response.getStatus());
   assertEquals(200, response.getEntity(Integer.class).intValue());
 }
コード例 #16
0
  // Success outcomes
  @Test(
      dataProvider = "testName",
      dataProviderClass = AbstractServiceTestImpl.class,
      dependsOnMethods = {"createIntakeWithAuthRefs"})
  public void readAndCheckAuthRefDocs(String testName) throws Exception {
    // Perform setup.
    testSetup(STATUS_OK, ServiceRequestType.READ);

    // Get the auth ref docs and check them
    OrgAuthorityClient orgAuthClient = new OrgAuthorityClient();
    ClientResponse<AuthorityRefDocList> refDocListResp =
        orgAuthClient.getReferencingObjects(orgAuthCSID, currentOwnerOrgCSID);
    AuthorityRefDocList list = null;
    try {
      assertStatusCode(refDocListResp, testName);
      list = refDocListResp.getEntity();
      Assert.assertNotNull(list);
    } finally {
      if (refDocListResp != null) {
        refDocListResp.releaseConnection();
      }
    }

    // Optionally output additional data about list members for debugging.
    boolean iterateThroughList = true;
    int nIntakesFound = 0;
    if (iterateThroughList && logger.isDebugEnabled()) {
      List<AuthorityRefDocList.AuthorityRefDocItem> items = list.getAuthorityRefDocItem();
      int i = 0;
      logger.debug(testName + ": Docs that use: " + currentOwnerRefName);
      for (AuthorityRefDocList.AuthorityRefDocItem item : items) {
        logger.debug(
            testName
                + ": list-item["
                + i
                + "] "
                + item.getDocType()
                + "("
                + item.getDocId()
                + ") Name:["
                + item.getDocName()
                + "] Number:["
                + item.getDocNumber()
                + "] in field:["
                + item.getSourceField()
                + "]");
        if (knownIntakeId.equalsIgnoreCase(item.getDocId())) {
          nIntakesFound++;
        }
        i++;
      }
      //
      Assert.assertTrue((nIntakesFound == 2), "Did not find Intake (twice) with authref!");
    }
  }
コード例 #17
0
  @Ignore("needs mock connection to test with")
  @Test
  public void doesnotexist() {
    CandlepinConnection conn = new CandlepinConnection(new CandlepinCommonTestConfig());
    Credentials creds = new UsernamePasswordCredentials("admin", "admin");
    OwnerClient client = conn.connect(OwnerClient.class, creds, "http://localhost:8080/candlepin/");
    ClientResponse<Owner> resp = client.replicateOwner("doesnotexist");

    assertNotNull(resp);
    assertEquals(404, resp.getStatus());
  }
コード例 #18
0
 public void run() {
   try {
     ClientRequest req = new ClientRequest(url);
     req.header("Accept-Wait", acceptWaitTime);
     ClientResponse<?> response = req.post();
     response.releaseConnection();
     isFinished = true;
   } catch (Exception e) {
     failed = true;
   }
 }
コード例 #19
0
  @Test
  public void createCollectionObject() {
    long identifier = this.createIdentifier();

    CollectionObject collectionObject = createCollectionObject(identifier);
    ClientResponse<Response> res = collectionObjectClient.createCollectionObject(collectionObject);
    Assert.assertEquals(res.getStatus(), Response.Status.CREATED.getStatusCode());

    // store updateId locally for "update" test
    if (updateId == null) updateId = extractId(res);
    else deleteId = extractId(res);
  }
コード例 #20
0
  @Test
  public void showUser() {
    ObjectMapper m = new ObjectMapper();
    ObjectNode body = m.createObjectNode();

    ClientResponse<JsonNode> response =
        client.showUser(
            (String) properties.getProperty(PROPERTY_NAME_CKAN_AUTHORIZATION_KEY), body);
    if (response.getStatus() == Response.Status.OK.getStatusCode()) {
      log.info(response.getEntity().toString());
    }
  }
コード例 #21
0
  /** Creates the organization refs. */
  protected void createOrgRefs() {
    OrgAuthorityClient orgAuthClient = new OrgAuthorityClient();
    // orgAuthRefName =
    //	OrgAuthorityClientUtils.createOrgAuthRefName(ORGANIZATION_AUTHORITY_NAME, null);
    PoxPayloadOut multipart =
        OrgAuthorityClientUtils.createOrgAuthorityInstance(
            ORGANIZATION_AUTHORITY_NAME,
            ORGANIZATION_AUTHORITY_NAME,
            orgAuthClient.getCommonPartName());
    ClientResponse<Response> res = orgAuthClient.create(multipart);
    int statusCode = res.getStatus();

    Assert.assertTrue(
        testRequestType.isValidStatusCode(statusCode),
        invalidStatusCodeMessage(testRequestType, statusCode));
    Assert.assertEquals(statusCode, STATUS_CREATED);
    orgAuthCSID = extractId(res);

    currentOwnerOrgCSID =
        createOrganization("olivierOwnerCompany", "Olivier Owner Company", "Olivier Owner Company");
    orgIdsCreated.add(currentOwnerOrgCSID);
    currentOwnerRefName =
        OrgAuthorityClientUtils.getOrgRefName(orgAuthCSID, currentOwnerOrgCSID, orgAuthClient);

    String newOrgCSID =
        createOrganization(
            "debbieDepositorAssocs",
            "Debbie Depositor & Associates",
            "Debbie Depositor & Associates");
    depositorRefName =
        OrgAuthorityClientUtils.getOrgRefName(orgAuthCSID, newOrgCSID, orgAuthClient);
    orgIdsCreated.add(newOrgCSID);

    newOrgCSID =
        createOrganization(
            "andrewCheckerAssessorLtd",
            "Andrew Checker-Assessor Ltd.",
            "Andrew Checker-Assessor Ltd.");
    conditionCheckerAssessorRefName =
        OrgAuthorityClientUtils.getOrgRefName(orgAuthCSID, newOrgCSID, orgAuthClient);
    orgIdsCreated.add(newOrgCSID);

    newOrgCSID =
        createOrganization("ingridInsurerBureau", "Ingrid Insurer Bureau", "Ingrid Insurer Bureau");
    insurerRefName = OrgAuthorityClientUtils.getOrgRefName(orgAuthCSID, newOrgCSID, orgAuthClient);
    orgIdsCreated.add(newOrgCSID);

    newOrgCSID = createOrganization("vinceValuerLLC", "Vince Valuer LLC", "Vince Valuer LLC");
    valuerRefName = OrgAuthorityClientUtils.getOrgRefName(orgAuthCSID, newOrgCSID, orgAuthClient);
    orgIdsCreated.add(newOrgCSID);
  }
コード例 #22
0
ファイル: Regression636Test.java プロジェクト: 9esa/Resteasy
  // @Test
  public void testInheritance() throws Exception {
    ResteasyDeployment dep = deployment;
    ClientRequest request = new ClientRequest(generateURL("/datacenters/1"));
    ClientResponse res = request.get();
    Assert.assertEquals(200, res.getStatus());
    DataCenter dc = (DataCenter) res.getEntity(DataCenter.class);
    Assert.assertEquals(dc.getName(), "Bill");
    request = new ClientRequest(generateURL("/datacenters/1"));

    res = request.body("application/xml", dc).put();
    Assert.assertEquals(200, res.getStatus());
    dc = (DataCenter) res.getEntity(DataCenter.class);
    Assert.assertEquals(dc.getName(), "Bill");
  }
コード例 #23
0
 public void run() {
   try {
     isFinished = false;
     ClientRequest request = new ClientRequest(url);
     ClientResponse<?> response = request.post();
     response.releaseConnection();
     System.out.println("NPS response: " + response.getStatus());
     Assert.assertEquals(201, response.getStatus());
     isFinished = true;
   } catch (Exception e) {
     System.out.println("Exception " + e);
     failed = true;
   }
 }
コード例 #24
0
ファイル: DtgovApiClient.java プロジェクト: Governance/dtgov
 /**
  * Gets a list of custom deployers from the dtgov server.
  *
  * @throws DtgovApiClientException
  */
 @SuppressWarnings({"unchecked", "rawtypes"})
 public List<Deployer> getCustomDeployers() throws DtgovApiClientException {
   try {
     String url =
         String.format("%1$s/system/config/deployers/custom", this.endpoint); // $NON-NLS-1$
     ClientRequest request = createClientRequest(url);
     request.accept(MediaType.APPLICATION_XML);
     ClientResponse<List> response = request.get(new GenericType<List<Deployer>>() {});
     response.getEntity();
     List<Deployer> deployers = response.getEntity();
     return deployers;
   } catch (Throwable e) {
     throw new DtgovApiClientException(e);
   }
 }
コード例 #25
0
  @Ignore
  public void testDeleteMember() throws Exception {
    final String Path = "/members/1";
    ClientRequest webResource = new ClientRequest(BASE_URI + Path);

    ClientResponse response = null;

    ClientRequest resource = webResource;

    resource.queryParameter("auth_token", AUTH_TOKEN);

    response = resource.delete(ClientResponse.class);

    assertTrue(response.getStatus() == HTTP_STATUS_OK);
  }
コード例 #26
0
ファイル: CookieTest.java プロジェクト: soul2zimate/resteasy2
 private void _test(ClientRequest request, UriBuilder uriBuilder, String path) {
   request.clear();
   uriBuilder.replacePath(generateURL(path));
   try {
     ClientResponse<String> response = request.get(String.class);
     Assert.assertEquals(HttpResponseCodes.SC_OK, response.getStatus());
     MultivaluedMap<String, String> headers = response.getHeaders();
     for (Object key : headers.keySet()) {
       System.out.println(key + ": " + headers.get(key));
     }
     response.releaseConnection();
   } catch (Exception e) {
     throw new RuntimeException(e);
   }
 }
コード例 #27
0
  @BeforeClass
  public static void deployServer() throws InterruptedException {
    System.out.println("server default charset: " + Charset.defaultCharset());
    Map<String, Charset> charsets = Charset.availableCharsets();
    Charset charset = null;
    for (Iterator<String> it = charsets.keySet().iterator(); it.hasNext(); ) {
      String cs = it.next();
      if (!cs.equals(Charset.defaultCharset().name())) {
        charset = charsets.get(cs);
        break;
      }
    }
    System.out.println("server using charset: " + charset);

    System.out.println(TestServerExpand.class.getCanonicalName());
    String separator = System.getProperty("file.separator");
    String classpath = System.getProperty("java.class.path");
    String path = System.getProperty("java.home") + separator + "bin" + separator + "java";
    System.out.println("classpath: " + classpath);
    System.out.println("path: " + path);
    ProcessBuilder processBuilder =
        new ProcessBuilder(path, "-cp", classpath, TestServerNoExpand.class.getCanonicalName());

    try {
      System.out.println("Starting server JVM");
      process = processBuilder.start();
      System.out.println("Started server JVM");
    } catch (IOException e1) {
      e1.printStackTrace();
    }

    ClientRequest request = new ClientRequest(generateURL("/junk"));
    ClientResponse<?> response = null;
    while (true) {
      try {
        response = request.get();
        if (response.getStatus() == 200) {
          System.out.println("Server started: " + response.getEntity(String.class));
          break;
        }
        System.out.println("Waiting on server ...");
      } catch (Exception e) {
        // keep trying
      }
      System.out.println("Waiting for server");
      Thread.sleep(1000);
    }
  }
コード例 #28
0
  /**
   * The purpose of this method is to run the external REST request.
   *
   * @param url The url of the RESTful service
   * @param mediaType The mediatype of the RESTful service
   */
  private String runRequest(String url, MediaType mediaType) {
    String result = null;

    System.out.println("===============================================");
    System.out.println("URL: " + url);
    System.out.println("MediaType: " + mediaType.toString());

    try {
      // Using the RESTEasy libraries, initiate a client request
      // using the url as a parameter
      ClientRequest request = new ClientRequest(url);

      // Be sure to set the mediatype of the request
      request.accept(mediaType);

      // Request has been made, now let's get the response
      ClientResponse<String> response = request.get(String.class);

      // Check the HTTP status of the request
      // HTTP 200 indicates the request is OK
      if (response.getStatus() != 200) {
        throw new RuntimeException("Failed request with HTTP status: " + response.getStatus());
      }

      // We have a good response, let's now read it
      BufferedReader br =
          new BufferedReader(
              new InputStreamReader(new ByteArrayInputStream(response.getEntity().getBytes())));

      // Loop over the br in order to print out the contents
      System.out.println("\n*** Response from Server ***\n");
      String output = null;
      while ((output = br.readLine()) != null) {
        System.out.println(output);
        result = output;
      }
    } catch (ClientProtocolException cpe) {
      System.err.println(cpe);
    } catch (IOException ioe) {
      System.err.println(ioe);
    } catch (Exception e) {
      System.err.println(e);
    }

    System.out.println("\n===============================================");

    return result;
  }
コード例 #29
0
  @Test
  public void testExecuteHttpCodeNoSuccess() throws Exception {

    final SpanId mockSpanId = mock(SpanId.class);
    when(mockSpanId.getTraceId()).thenReturn(TRACE_ID);
    when(mockSpanId.getSpanId()).thenReturn(SPAN_ID);
    when(mockSpanId.getParentSpanId()).thenReturn(PARENT_SPAN_ID);

    when(mockClientTracer.startNewSpan(PATH)).thenReturn(mockSpanId);
    when(mockClientResponse.getStatus()).thenReturn(SERVER_ERROR_STATUS);

    assertSame(mockClientResponse, interceptor.execute(mockExecutionContext));

    final InOrder inOrder = inOrder(mockClientTracer, mockClientRequest, mockExecutionContext);

    inOrder.verify(mockClientTracer).startNewSpan(PATH);
    inOrder.verify(mockClientRequest).header(BraveHttpHeaders.Sampled.getName(), "true");
    inOrder.verify(mockClientRequest).header(BraveHttpHeaders.TraceId.getName(), TRACE_ID_HEX);
    inOrder.verify(mockClientRequest).header(BraveHttpHeaders.SpanId.getName(), SPAN_ID_HEX);
    inOrder
        .verify(mockClientRequest)
        .header(BraveHttpHeaders.ParentSpanId.getName(), PARENT_SPAN_ID_HEX);
    inOrder.verify(mockClientTracer).setCurrentClientServiceName(CONTEXT_PATH);
    inOrder
        .verify(mockClientTracer)
        .submitBinaryAnnotation(REQUEST_ANNOTATION, HTTP_METHOD + " " + URI);
    inOrder.verify(mockClientTracer).setClientSent();
    inOrder.verify(mockExecutionContext).proceed();
    inOrder
        .verify(mockClientTracer)
        .submitBinaryAnnotation("http.responsecode", SERVER_ERROR_STATUS);
    inOrder.verify(mockClientTracer).submitAnnotation("failure");
    inOrder.verify(mockClientTracer).setClientReceived();
    verifyNoMoreInteractions(mockClientTracer);
  }
コード例 #30
0
 @SuppressWarnings("rawtypes")
 public void handle(ClientResponse response) throws RuntimeException {
   try {
     BaseClientResponse r = (BaseClientResponse) response;
     String message = "SomeApplikationException. Status Code: " + response.getStatus();
     InputStream stream = r.getStreamFactory().getInputStream();
     stream.reset();
     if (response.getStatus() == 523) {
       System.out.println(
           "ClientExceptionmapper: Mapped Stauscode 523 to SomeApplicationException");
       throw new SomeApplicationException(message);
     }
   } catch (IOException e) {
     e.printStackTrace();
   }
 }