@Override public void updateProperties(RequestContext ctx, ResourceState state, Responder responder) throws Exception { String name = (String) state.getProperty("name"); if (name != null && !name.isEmpty()) { this.app.setName(name); } Boolean visible = (Boolean) state.getProperty("visible"); if (visible != null) { this.app.setVisible(visible); } String htmlPath = (String) state.getProperty("html-app"); if (htmlPath != null) { if (!htmlPath.startsWith("/" + this.app.id())) { htmlPath = "/" + this.app.id() + htmlPath; } this.app.setHtmlApplicationPath(htmlPath); } String versionResourceId = (String) state.getProperty("version-resource-id"); if (versionResourceId != null) { boolean resourceFound = false; for (Resource resource : this.extensions.members(ctx)) { if (resource.id().equals(versionResourceId)) { resourceFound = true; break; } } if (!resourceFound) { throw new PropertyException("No versioning resource found with id: " + versionResourceId); } this.app.setVersionResourceId(versionResourceId); } this.configManager.updateApplication(this.app); Boolean partOfGitInstallProcess = (Boolean) state.getProperty("git-install-process"); if (this.app.versioned() && (partOfGitInstallProcess == null || !partOfGitInstallProcess)) { // Wrap current responder with one that will perform commit of version changes responder = new ConfigVersioningResponder( responder, app.versioned(), app.versionedResourcePath(), this.client, ctx.securityContext()); } responder.resourceUpdated(this); }