public static ServiceName resource(String appId, Class<? extends RootResource> cls) { return Services.resource(appId, cls.getName()); }
@Override public void mountPrivate(RootResource resource) { target.addService(Services.systemResource(moduleId, this.id), new ValueService<RootResource>(new ImmediateValue<>(resource))) .install(); mountPrivate(Services.systemResource(moduleId, this.id)); }
@Override public void instance(String id, SystemExtensionContext context) throws Exception { ServiceName serviceName = Services.instanceResource(context.moduleId(), id); ApplicationTemplateService templateService = new ApplicationTemplateService(id); context.target().addService(serviceName, templateService) .addDependency(SYSTEM_APPLICATION_TEMPLATE_REGISTRY, TemplateRegistry.class, templateService.templateRegistryInjector) .install(); context.mountInstance(serviceName); }
@Override public void extend(ApplicationExtensionContext context) throws Exception { String appId = context.application().id(); ServiceTarget target = context.target(); AuthzResourceService resource = new AuthzResourceService(context.resourceId()); target.addService(Services.resource(appId, context.resourceId()), resource) .addDependency(Services.CLIENT, Client.class, resource.clientInjector()) .install(); AuthzConfigResourceService configResource = new AuthzConfigResourceService(context.resourceId()); target.addService(Services.adminResource(appId, context.resourceId()), configResource) .addDependency(Services.resource(appId, context.resourceId()), AuthzServiceRootResource.class, configResource.rootResourceInjector()) .install(); context.mountPublic(); context.mountPrivate(); }
ServiceName configManagerName = Services.applicationConfigurationManager(this.id); ApplicationConfigurationService configManager = new ApplicationConfigurationService(applicationJson); target.addService(configManagerName, configManager) .install(); target.addService(Services.applicationEnvironmentProperties(this.id), new ValueService<>(new ImmediateValue<>(envProperties()))) .install(); ServiceName appContextName = Services.applicationContext(this.id); if (!this.app.versioned() && null != context.getController().getServiceContainer().getService(Services.extension("git"))) { GitResourceInstallService gitInstaller = new GitResourceInstallService(); target.addService(Services.application(this.app.id()).append("git-install"), gitInstaller) .addDependency(configManagerName) .addInjectionValue(gitInstaller.applicationInjector(), this) target.addService(Services.applicationConfigurationFile(this.id), applicationConfigurationFileService) .install(); .install(); MediaTypeMountService<ApplicationContext> appContextMount = new MediaTypeMountService<>(null, MediaType.JSON, true); this.app.contextController(target.addService(Services.defaultMount(appContextName), appContextMount) .addDependency(Services.GLOBAL_CONTEXT, MountPointResource.class, appContextMount.mountPointInjector()) .addDependency(appContextName, ApplicationContext.class, appContextMount.resourceInjector()) ServiceName appResourceName = Services.applicationAdminResource(this.id); ApplicationResourceService appResource = new ApplicationResourceService(this.app); target.addService(appResourceName, appResource)
ServiceName systemName = Services.resource(ZeroExtension.APPLICATION_ID, "system"); target.addService(systemName, new ValueService<>(new ImmediateValue<>(new SystemResource()))) .install(); .addDependency(Services.applicationContext(ZeroExtension.APPLICATION_ID), MountPointResource.class, mount.mountPointInjector()) .addDependency(systemName, RootResource.class, mount.resourceInjector()) .install(); ServiceName applicationsName = Services.resource(ZeroExtension.APPLICATION_ID, "applications"); ApplicationsResourceService applicationsResource = new ApplicationsResourceService(); target.addService(applicationsName, applicationsResource) target.addService(Services.defaultMount(applicationsName), mediaTypeMount) .addDependency(Services.applicationContext(ZeroExtension.APPLICATION_ID), MountPointResource.class, mediaTypeMount.mountPointInjector()) .addDependency(applicationsName, RootResource.class, mediaTypeMount.resourceInjector()) .install(); ServiceName localApplicationsName = Services.resource(ZeroExtension.APPLICATION_ID, "local-applications"); LocalApplicationsResourceService localAppsResourceService = new LocalApplicationsResourceService(); target.addService(localApplicationsName, localAppsResourceService) target.addService(Services.defaultMount(localApplicationsName), localAppMediaTypeMount) .addDependency(Services.applicationContext(ZeroExtension.APPLICATION_ID), MountPointResource.class, localAppMediaTypeMount.mountPointInjector()) .addDependency(localApplicationsName, RootResource.class, localAppMediaTypeMount.resourceInjector()) .install(); ServiceName gitApplicationsName = Services.resource(ZeroExtension.APPLICATION_ID, "git-applications"); GitApplicationsResourceService gitAppsResourceService = new GitApplicationsResourceService(); target.addService(gitApplicationsName, gitAppsResourceService)
@Override public void mountPrivate(RootResource privateResource, MediaType mediaType, boolean makeDefault) { ValueService<RootResource> service = new ValueService<RootResource>(new ImmediateValue<>(privateResource)); this.target.addService(Services.adminResource(application().id(), resourceId()), service) .install(); mountPrivate(Services.adminResource(application().id(), resourceId()), mediaType, makeDefault); }
ServiceTarget target = context.getChildTarget(); ServiceName name = Services.extension(this.id); ServiceName moduleName = Services.resource(ZeroExtension.APPLICATION_ID, "system").append(MODULE).append(id); .addDependency(Services.resource(ZeroExtension.APPLICATION_ID, "system"), MountPointResource.class, instanceMount.mountPointInjector()) .addDependency(moduleName, RootResource.class, instanceMount.resourceInjector()) .install();
@Override public void extend(SystemExtensionContext context) throws Exception { analyticsServiceName = Services.instanceResource(context.moduleId(), context.id()); // install AnalyticsService that handles Analytics singleton AnalyticsService analyticsService = new AnalyticsService(); context.target().addService(analyticsServiceName, analyticsService) .install(); // install AnalyticsExtensionConfigService which provides extension config root resource (rest endpoint) via getValue() ServiceName configServiceName = Services.systemResource(context.moduleId(), context.id()); AnalyticsExtensionConfigService configService = new AnalyticsExtensionConfigService(context.id()); context.target().addService(configServiceName, configService) .addDependency(analyticsServiceName, AnalyticsService.class, configService.analyticsServiceInjector()) .install(); context.mountPrivate(configServiceName); }
@Override public void extend(SystemExtensionContext context) throws Exception { ServiceTarget target = context.target(); target.addService(KeycloakServices.address(), new KeycloakConfigService()) .install(); ServiceName serviceName = Services.systemResource(context.moduleId(), context.id()); KeycloakConfigResourceService resource = new KeycloakConfigResourceService(context.id()); target.addService(serviceName, resource) .addDependency(KeycloakServices.address(), KeycloakConfig.class, resource.address()) .install(); context.mountPrivate(serviceName); // Install AuthInterceptor AuthInterceptorService authInterceptor = new AuthInterceptorService(); ServiceController<AuthInterceptor> authController = target.addService(Services.interceptor("auth"), authInterceptor) .addDependency(Services.CLIENT, Client.class, authInterceptor.clientInjector()) .install(); InterceptorRegistrationHelper.installInterceptor(target, authController); // Install Keycloak URL Service KeycloakBaseUrlService baseUrlService = new KeycloakBaseUrlService(); target.addService(Services.SECURITY_BASE_URL, baseUrlService) .addDependency(KeycloakServices.address(), KeycloakConfig.class, baseUrlService.configInjector()) .addDependency(serviceName.append("apply-config")) .install(); }
public InternalApplicationExtension extend(String extensionId, String resourceId, ObjectNode configuration, boolean boottime) throws Exception { ServiceTarget target = this.target.subTarget(); StabilityMonitor monitor = new StabilityMonitor(); target.addMonitor(monitor); ServiceName resourceServiceName = Services.applicationExtension(this.id, resourceId); ApplicationExtensionService appExt = new ApplicationExtensionService(extensionId, resourceId, configuration, boottime); ServiceController<InternalApplicationExtension> controller = target.addService(resourceServiceName, appExt) .addDependency(Services.extension(extensionId), Extension.class, appExt.extensionInjector()) .addDependency(Services.application(this.id), InternalApplication.class, appExt.applicationInjector()) .addDependency(Services.SERVICE_REGISTRY, ServiceRegistry.class, appExt.serviceRegistryInjector()) .install(); monitor.awaitStability(); InternalApplicationExtension intAppExt = controller.awaitValue(); if (intAppExt.exception() != null) { intAppExt.remove(); log.error(intAppExt.exception()); throw intAppExt.exception(); } target.removeMonitor(monitor); return intAppExt; }
public static ServiceName applicationConfigurationFile(String appId) { return application(appId).append("config-files"); }
public static void installInterceptor(ServiceTarget serviceContainer, String name, Interceptor interceptor) { ServiceName serviceName = interceptor(name); ServiceController<Interceptor> controller = serviceContainer.addService(serviceName, new ValueService<Interceptor>(new ImmediateValue<Interceptor>(interceptor))) .install(); installInterceptor(serviceContainer, controller); }
@Override public void extend(ApplicationExtensionContext context) throws Exception { MongoConfigResourceService mongoConfigResourceService = new MongoConfigResourceService(context.resourceId()); context.target().addService(Services.adminResource(context.application().id(), context.resourceId()), mongoConfigResourceService) .addDependency(SYSTEM_MONGO_DATASTORE_CONFIG_SERVICE, MongoDatastoresRegistry.class, mongoConfigResourceService.mongoDatastoreInjector) .install(); RootMongoResourceService rootMongoResourceService = new RootMongoResourceService(context.resourceId()); context.target().addService(Services.resource(context.application().id(), context.resourceId()), rootMongoResourceService) .addDependency(Services.adminResource(context.application().id(), context.resourceId()), RootMongoConfigResource.class, rootMongoResourceService.mongoConfigInjector) .install(); context.mountPrivate(); context.mountPublic(); }
@Override public void extend(ApplicationExtensionContext context) throws Exception { ApplicationClientsResourceService service = new ApplicationClientsResourceService(context.application()); ServiceName serviceName = Services.adminResource(context.application().id(), context.resourceId()); context.target().addService(serviceName, service) .addDependency(Services.SECURITY_CLIENT, SecurityClient.class, service.securityClientInjector()) .addDependency(Services.SECURITY_DIRECT_ACCESS_CLIENT, DirectAccessClient.class, service.directAccessClientInjector()) .install(); context.mountPrivate(serviceName); }
public static ServiceName applicationEnvironmentProperties(String appId) { return application(appId).append("env-props"); }
@Override public void extend(SystemExtensionContext context) throws Exception { context.mountPrivate(new DefaultRootResource(context.id())); // Install AuthzInterceptor ServiceTarget target = context.target(); AuthzInterceptorService authzInterceptor = new AuthzInterceptorService(); ServiceController<AuthzInterceptor> authzController = target.addService(Services.interceptor("authz"), authzInterceptor) .addDependency(Services.CLIENT, Client.class, authzInterceptor.clientInjector()) .install(); InterceptorRegistrationHelper.installInterceptor(target, authzController); }
@Override public void extend(ApplicationExtensionContext context) throws Exception { ServiceName configServiceName = Services.adminResource(context.application().id(), context.resourceId()); MongoConfigResourceService mongoConfigResourceService = new MongoConfigResourceService(context.resourceId()); context.target().addService(configServiceName, mongoConfigResourceService) .addDependency(SYSTEM_MONGO_DATASTORE_CONFIG_SERVICE, MongoDatastoresRegistry.class, mongoConfigResourceService.mongoDatastoreInjector) .install(); context.mountPrivate(); GridFSResourceService publicResource = new GridFSResourceService(context.resourceId()); context.target().addService(Services.resource(context.application().id(), context.resourceId()), publicResource) .addDependency(Services.VERTX, Vertx.class, publicResource.vertxInjector()) .addDependency(TMP_DIR, File.class, publicResource.tmpDirInjector()) .addDependency(configServiceName, RootMongoConfigResource.class, publicResource.configResourceInjector()) .install(); context.mountPublic(Services.resource(context.application().id(), context.resourceId())); }
@Override public void mountPublic(RootResource publicResource, MediaType mediaType, boolean makeDefault) { ValueService<RootResource> service = new ValueService<RootResource>(new ImmediateValue<>(publicResource)); this.target.addService(Services.resource(application().id(), resourceId()), service) .install(); mountPublic(Services.resource(application().id(), resourceId()), mediaType, makeDefault); }
@Override public void mountPrivate() { mountPrivate(Services.adminResource(application().id(), resourceId())); }