.fail(new FailFunction(url)) .build(); return request.execute(METHOD_MAPPING.get(method)).transform(responseTransformation);
.fail(new FailFunction(url)) .build(); return request.execute(METHOD_MAPPING.get(method)).transform(responseTransformation);
private Response getSyncHandlerResponse(String addonKey, URI callbackUri, String jsonEventData, Optional<String> authHeader) throws LifecycleCallbackException { try { Request.Builder request = httpClient.newRequest(callbackUri); request.setAttribute("purpose", "web-hook-notification"); request.setAttribute("pluginKey", addonKey); request.setContentType(MediaType.APPLICATION_JSON); request.setEntity(jsonEventData); if (authHeader.isPresent()) { request.setHeader(AUTHORIZATION_HEADER, authHeader.get()); } request.setHeader(HttpHeaderNames.ATLASSIAN_CONNECT_VERSION, getConnectPluginVersion()); return request.execute(Request.Method.POST).claim(); } catch (Exception e) { log.error("Error contacting remote application at " + callbackUri + " [" + e.getMessage() + "]", e); String message = "Error contacting remote application [" + e.getMessage() + "]"; Throwable cause = e.getCause(); if (cause instanceof UnknownHostException) { throw new LifecycleCallbackBadResponseException(message, "connect.install.error.remote.host.bad.domain", callbackUri.getHost()); } else if (cause instanceof SocketTimeoutException) { throw new LifecycleCallbackBadResponseException(message, "connect.install.error.remote.host.timeout", removeQuery(callbackUri)); } else if (cause instanceof SSLException) { throw new LifecycleCallbackBadResponseException(message, "connect.install.error.remote.host.ssl", removeQuery(callbackUri), cause.getMessage()); } throw new LifecycleCallbackException(message, "connect.remote.upm.install.exception"); } }
builder.execute(Request.Method.valueOf(request.getMethod().name())) .then(new Promise.TryConsumer<Response>() { @Override
private Response getSyncHandlerResponse(String addonKey, URI callbackUri, String jsonEventData, Optional<String> authHeader) throws LifecycleCallbackException { try { Request.Builder request = httpClient.newRequest(callbackUri); request.setCacheDisabled(); request.setAttribute("purpose", "web-hook-notification"); request.setAttribute("pluginKey", addonKey); request.setContentType(MediaType.APPLICATION_JSON); request.setEntity(jsonEventData); if (authHeader.isPresent()) { request.setHeader(AUTHORIZATION_HEADER, authHeader.get()); } request.setHeader(HttpHeaderNames.ATLASSIAN_CONNECT_VERSION, getConnectPluginVersion()); return request.execute(Request.Method.POST).claim(); } catch (Exception e) { log.error("Error contacting remote application at " + callbackUri + " [" + e.getMessage() + "]", e); String message = "Error contacting remote application [" + e.getMessage() + "]"; Throwable cause = e.getCause(); if (cause instanceof UnknownHostException) { throw new LifecycleCallbackBadResponseException(message, "connect.install.error.remote.host.bad.domain", callbackUri.getHost()); } else if (cause instanceof SocketTimeoutException) { throw new LifecycleCallbackBadResponseException(message, "connect.install.error.remote.host.timeout", removeQuery(callbackUri)); } else if (cause instanceof SSLException) { throw new LifecycleCallbackBadResponseException(message, "connect.install.error.remote.host.ssl", removeQuery(callbackUri), cause.getMessage()); } throw new LifecycleCallbackException(message, "connect.remote.upm.install.exception"); } }
public Either<MarketplaceInstallationError, String> getDescriptorFromMarketplace(String addonKey) { try { Option<Addon> maybeAddon = MarketplaceClientFactory .createMarketplaceClient(URI.create(getMpacUrl())) .addons() .getByKey(addonKey, AddonQuery.builder().withVersion(true).hosting(Option.some(HostingType.CLOUD)).build()); if (maybeAddon.isEmpty()) { return Either.left(MarketplaceInstallationError.NOT_FOUND); } Option<AddonVersion> maybeVersion = maybeAddon.get().getVersion(); if (maybeVersion.isEmpty()) { return Either.left(MarketplaceInstallationError.NO_PUBLIC_VERSION_AVAILABLE); } URI descriptorUri = maybeVersion.get().getArtifactUri().get(); Request.Builder request = httpClient.newRequest(descriptorUri); String json = request.execute(Request.Method.GET).claim().getEntity(); return Either.right(json); } catch (Exception e) { log.error("Exception when retrieving add-on from Marketplace", e); return Either.left(MarketplaceInstallationError.COMMUNICATION_ERROR); } } }