@PUT @Path("{applinkId}") public Response update(@PathParam("applinkId") String applinkId, ApplinkEntity entity) { try { MutableApplicationLink link = linkService.getApplicationLink(new ApplicationId(applinkId)); ApplicationLinkDetails.Builder builder = ApplicationLinkDetails.builder(link); if (entity.rpcUrl != null) { builder.rpcUrl(URI.create(entity.rpcUrl)); } if (entity.displayUrl != null) { builder.displayUrl(URI.create(entity.displayUrl)); } if (entity.name != null) { builder.name(entity.name); } // add more fields as necessary link.update(builder.build()); return Response.ok(new ApplinkEntity(link)).build(); } catch (TypeNotInstalledException e) { return Response.serverError() .entity("Failed to set applink system flag for '" + applinkId + "': " + e) .build(); } }
public void update(final ApplicationLinkDetails details) { applicationLinkProperties.setName(details.getName()); applicationLinkProperties.setDisplayUrl(details.getDisplayUrl()); //TODO: Do we support to change the RPC URL at all? applicationLinkProperties.setRpcUrl(details.getRpcUrl()); eventPublisher.publish(new ApplicationLinkDetailsChangedEvent(this)); }
public ApplicationLinkDetails build() { // be nice - rpcUrl & displayUrl are generally the same thing, so accept either if (rpcUrl == null) { rpcUrl = displayUrl; } else if (displayUrl == null) { displayUrl = rpcUrl; } if (rpcUrl == null) { throw new NullPointerException("either displayUrl or rpcUrl must be set before build()"); } cleanUriPaths(); return new ApplicationLinkDetails(checkNotNull(name, "name"), checkNotNull(displayUrl, "displayUrl"), checkNotNull(rpcUrl, "rpcUrl"), isPrimary); }
@Override public void validateUpdate(@Nonnull ReadOnlyApplicationLink applink, @Nonnull ApplicationLinkDetails details) throws ValidationException { checkNotNull(applink, "applink"); checkNotNull(details, "details"); ValidationExceptionBuilder validationBuilder = new ValidationExceptionBuilder(i18nResolver); Iterable<ReadOnlyApplicationLink> existingLinks = getExistingLinks(applink.getId()); validateSystemLink(applink, validationBuilder); validateUri("rpcUrl", details.getRpcUrl(), validationBuilder); validateUri("displayUrl", details.getDisplayUrl(), validationBuilder); validateDuplicates(details, existingLinks, validationBuilder); if (validationBuilder.hasErrors()) { throw validationBuilder.origin(details).build(); } }
applicationLinkProperties.setName(findSuitableName(details.getName())); applicationLinkProperties.setDisplayUrl(details.getDisplayUrl()); applicationLinkProperties.setRpcUrl(details.getRpcUrl()); eventPublisher); if (details.isPrimary() || onlyLinkOfItsType) { try { makePrimary(id);
if (applicationLinkService.isNameInUse(linkDetails.getName(), applicationId)) { return RestUtil.badRequest(i18nResolver.getText("applinks.error.duplicate.name", applicationLink.getName())); if (!existing.getRpcUrl().equals(linkDetails.getRpcUrl())) { return RestUtil.badRequest(i18nResolver.getText("applinks.error.cannot.update.rpcurl"));
public ApplicationLink createApplicationLink(final ApplicationType type, final ApplicationLinkDetails linkDetails) throws ManifestNotFoundException { final Manifest manifest = manifestRetriever.getManifest(linkDetails.getRpcUrl(), type); return addApplicationLink(manifest.getId(), type, linkDetails); }
if (applicationLinkService.isNameInUse(linkDetails.getName(), applicationId)) { return badRequest(i18nResolver.getText("applinks.error.duplicate.name", applicationLink.getName())); if (!existing.getRpcUrl().equals(linkDetails.getRpcUrl())) { return badRequest(i18nResolver.getText("applinks.error.cannot.update.rpcurl"));
private Response update(final MutableApplicationLink link, final URI rpcUrl, final URI displayUrl) { link.update(ApplicationLinkDetails .builder(link) .rpcUrl(rpcUrl) .displayUrl(displayUrl) .build()); LOG.info("Changed RPC URL from {} to {} and display URL from {} to {} for ApplicationLink {} .", link.getRpcUrl(), rpcUrl, link.getDisplayUrl(), displayUrl, link.getId()); return noContent(); // returning the updated applink might be more restful } }
private void validateDuplicates(ApplicationLinkDetails details, Iterable<ReadOnlyApplicationLink> existingLinks, ValidationExceptionBuilder validationBuilder) { if (toStream(existingLinks).anyMatch(withName(details.getName()))) { validationBuilder.error("name", "applinks.service.error.validation.applink.duplicate.name", details.getName()); } if (toStream(existingLinks).anyMatch(withRpcUrl(details.getRpcUrl()))) { validationBuilder.error("rpcUrl", "applinks.service.error.validation.applink.duplicate.rpcUrl"); } if (toStream(existingLinks).anyMatch(withDisplayUrl(details.getDisplayUrl()))) { validationBuilder.error("displayUrl", "applinks.service.error.validation.applink.duplicate.displayUrl"); } }
linkService.createReciprocalLink(uri, null, entity.username, entity.password); ApplicationLink link = linkService.createApplicationLink(type, ApplicationLinkDetails.builder() .displayUrl(uri) .rpcUrl(uri) if (entity.urlOverride != null) { log.debug("Overriding display and RPC URL with " + entity.urlOverride); ApplicationLinkDetails newDetails = ApplicationLinkDetails.builder() .name(link.getName()) .rpcUrl(URI.create(entity.urlOverride))
@POST @Path("createStaticUrlAppLink") public javax.ws.rs.core.Response createStaticUrlAppLink(@QueryParam("typeId") final String typeId) throws Exception { final StaticUrlApplicationType type = (StaticUrlApplicationType) typeAccessor.loadApplicationType(typeId); Manifest manifest = manifestRetriever.getManifest(type.getStaticUrl(), type); ApplicationLinkDetails details = ApplicationLinkDetails.builder().name(type.getI18nKey()) .displayUrl(type.getStaticUrl()).rpcUrl(type.getStaticUrl()).isPrimary(true).build(); final ApplicationLink createdApplicationLink = applicationLinkService.addApplicationLink(manifest.getId(), type, details); return ok(new CreatedApplicationLinkEntity(toApplicationLinkEntity(createdApplicationLink), true)); }
id = ApplicationIdUtil.generate(apiUri); final ApplicationLinkDetails linkDetails = ApplicationLinkDetails.builder() .displayUrl(displayUri) .rpcUrl(apiUri)
@Nonnull public ApplicationLinkDetails toDetails() throws IllegalRestRepresentationStateException { return ApplicationLinkDetails.builder() .name(validateString(NAME, getName())) .rpcUrl(validateURI(RPC_URL, getRpcUrl())) .displayUrl(validateURI(DISPLAY_URL, getDisplayUrl())) .isPrimary(isPrimary()) .build(); }
public ApplicationLinkDetails getDetails() { return ApplicationLinkDetails .builder() .name(getName()) .displayUrl(getDisplayUrl()) .rpcUrl(getRpcUrl()) .isPrimary(isPrimary()) .build(); } }
aid, typeAccessor.loadApplicationType(new TypeId(RefAppApplicationType.class.getCanonicalName())), ApplicationLinkDetails.builder() .displayUrl(new URI("http://unvoodoo.com")) .rpcUrl(new URI("http://unvoodoo.com/rpc"))
public ApplicationLinkDetails getDetails() { return ApplicationLinkDetails .builder() .name(getName()) .displayUrl(getDisplayUrl()) .rpcUrl(getRpcUrl()) .isPrimary(isPrimary()) .build(); } }
@Override public void createAppLink(final ConnectAddonBean addon, final String baseUrl, final AuthenticationType authType, final String publicKey, final String addonUserKey) { transactionTemplate.execute((TransactionCallback<Void>) () -> { String pluginKey = addon.getKey(); URI baseUri = URI.create(baseUrl); final ApplicationId expectedApplicationId = ApplicationIdUtil.generate(baseUri); final RemotePluginContainerApplicationType applicationType = typeAccessor.getApplicationType(RemotePluginContainerApplicationType.class); deleteOldAppLinks(pluginKey, expectedApplicationId); final ApplicationLinkDetails details = ApplicationLinkDetails.builder() .displayUrl(baseUri) .isPrimary(false) .name(addon.getName() != null ? addon.getName() : addon.getKey()) .rpcUrl(baseUri) .build(); log.info("Creating an application link for Connect add-on with key '{}'", pluginKey); ApplicationLink link = applicationLinkService.addApplicationLink(expectedApplicationId, applicationType, details); link.putProperty(PLUGIN_KEY_PROPERTY, pluginKey); link.putProperty(JwtConstants.AppLinks.ADD_ON_USER_KEY_PROPERTY_NAME, addonUserKey); link.putProperty("IS_ACTIVITY_ITEM_PROVIDER", Boolean.FALSE.toString()); link.putProperty("system", Boolean.TRUE.toString()); link.putProperty(JwtConstants.AppLinks.AUTH_METHOD_PROPERTY_NAME, authType.toString()); if (authType == AuthenticationType.JWT) { link.putProperty(JwtConstants.AppLinks.SHARED_SECRET_PROPERTY_NAME, publicKey); } return null; }); }
final ApplicationLinkDetails linkDetails = ApplicationLinkDetails.builder() .rpcUrl(remoteRpcUrl)