@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { final String name = context.getCurrentAddressValue(); ModClusterService.install(name, context.getCapabilityServiceTarget(), model, context); }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { String driverName = context.getCurrentAddressValue(); String moduleName = DriverDefinition.MODULE_ATTRIBUTE.resolveModelAttribute(context, model).asString(); boolean classDefined = DriverDefinition.CLASS_ATTRIBUTE.resolveModelAttribute(context, model).isDefined(); String className = classDefined ? DriverDefinition.CLASS_ATTRIBUTE.resolveModelAttribute(context, model).asString() : null; Service<?> driverService = new ValueService<>(new Value<Class<?>>() { @Override public Class<?> getValue() throws IllegalStateException, IllegalArgumentException { if (className != null) { return loadClass(driverName, moduleName, className); } else { return loadDriver(driverName, moduleName); } } }); context.getCapabilityServiceTarget().addCapability(DriverDefinition.AGROAL_DRIVER_CAPABILITY.fromBaseCapability(driverName), driverService).install(); } }
ServiceBuilder<?> builder = context.getCapabilityServiceTarget().addCapability(EJB3RemoteResourceDefinition.EJB_REMOTE_CAPABILITY, ejbRemoteConnectorService) .addAliases(EJBRemoteConnectorService.SERVICE_NAME)
@Override public void installServices(OperationContext context, ModelNode model) throws OperationFailedException { PathAddress address = context.getCurrentAddress(); PathAddress hostAddress = address.getParent(); PathAddress serverAddress = hostAddress.getParent(); String hostName = hostAddress.getLastElement().getValue(); String serverName = serverAddress.getLastElement().getValue(); String domain = ModelNodes.optionalString(DOMAIN.resolveModelAttribute(context, model)).orElse(null); String path = PATH.resolveModelAttribute(context, model).asString(); boolean secure = SECURE.resolveModelAttribute(context, model).asBoolean(); boolean httpOnly = HTTP_ONLY.resolveModelAttribute(context, model).asBoolean(); String cookieName = COOKIE_NAME.resolveModelAttribute(context, model).asString(); ServiceName serviceName = UndertowService.ssoServiceName(serverName, hostName); ServiceName virtualHostServiceName = HostDefinition.HOST_CAPABILITY.getCapabilityServiceName(serverName,hostName); CapabilityServiceTarget target = context.getCapabilityServiceTarget(); ServiceName managerServiceName = serviceName.append("manager"); DistributableHostSingleSignOnManagerServiceConfiguratorProvider.INSTANCE.map(provider -> provider.getServiceConfigurator(managerServiceName, serverName, hostName)) .orElse(new SimpleCapabilityServiceConfigurator<>(managerServiceName, new InMemorySingleSignOnManager())) .configure(context).build(target).setInitialMode(ServiceController.Mode.ON_DEMAND).install(); SingleSignOnService service = new SingleSignOnService(domain, path, httpOnly, secure, cookieName); target.addCapability(HostSingleSignOnDefinition.HOST_SSO_CAPABILITY, service) .addAliases(serviceName) .addDependency(virtualHostServiceName, Host.class, service.getHost()) .addDependency(managerServiceName, SingleSignOnManager.class, service.getSingleSignOnSessionManager()) .setInitialMode(ServiceController.Mode.ACTIVE) .install(); }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { final PathAddress address = context.getCurrentAddress(); final String proxyName = address.getElement(address.size() - 2).getValue(); final String socketBinding = OUTBOUND_SOCKET_BINDING.resolveModelAttribute(context, model).asString(); final String scheme = SCHEME.resolveModelAttribute(context, model).asString(); final String path = PATH.resolveModelAttribute(context, model).asString(); final boolean enableHttp2 = ENABLE_HTTP2.resolveModelAttribute(context, model).asBoolean(); final String jvmRoute; final ModelNode securityRealm = SECURITY_REALM.resolveModelAttribute(context, model); final ModelNode sslContext = SSL_CONTEXT.resolveModelAttribute(context, model); if (model.hasDefined(Constants.INSTANCE_ID)) { jvmRoute = INSTANCE_ID.resolveModelAttribute(context, model).asString(); } else { jvmRoute = null; } ReverseProxyHostService service = new ReverseProxyHostService(scheme, jvmRoute, path, enableHttp2); CapabilityServiceBuilder<ReverseProxyHostService> builder = context.getCapabilityServiceTarget() .addCapability(REVERSE_PROXY_HOST_RUNTIME_CAPABILITY, service) .addCapabilityRequirement(Capabilities.CAPABILITY_HANDLER, HttpHandler.class, service.proxyHandler, proxyName) .addCapabilityRequirement(Capabilities.REF_OUTBOUND_SOCKET, OutboundSocketBinding.class, service.socketBinding, socketBinding); if (sslContext.isDefined()) { builder.addCapabilityRequirement(REF_SSL_CONTEXT, SSLContext.class, service.sslContext, sslContext.asString()); } if(securityRealm.isDefined()) { SecurityRealm.ServiceUtil.addDependency(builder, service.securityRealm, securityRealm.asString()); } builder.install(); } }
final ServiceBuilder<Server> builder = context.getCapabilityServiceTarget().addCapability(SERVER_CAPABILITY, service) .addCapabilityRequirement(Capabilities.CAPABILITY_SERVLET_CONTAINER, ServletContainerService.class, service.getServletContainerInjector(), servletContainer) .addCapabilityRequirement(Capabilities.CAPABILITY_UNDERTOW, UndertowService.class, service.getUndertowServiceInjector()); final ServiceBuilder<WebServerService> commonServerBuilder = context.getCapabilityServiceTarget().addCapability(CommonWebServer.CAPABILITY, commonWebServer) .addCapabilityRequirement(Capabilities.CAPABILITY_SERVER, Server.class, commonWebServer.getServerInjectedValue(), name) .setInitialMode(ServiceController.Mode.PASSIVE);
private ServiceController<WebHost> addCommonHost(OperationContext context, List<String> aliases, String serverName, ServiceName virtualHostServiceName) { WebHostService service = new WebHostService(); final CapabilityServiceBuilder<WebHost> builder = context.getCapabilityServiceTarget() .addCapability(WebHost.CAPABILITY, service) .addCapabilityRequirement(Capabilities.CAPABILITY_SERVER, Server.class, service.getServer(), serverName) .addCapabilityRequirement(CommonWebServer.CAPABILITY_NAME, CommonWebServer.class) .addDependency(virtualHostServiceName, Host.class, service.getHost()); if(context.hasOptionalCapability(Capabilities.REF_REQUEST_CONTROLLER, null, null)) { builder.addCapabilityRequirement(Capabilities.REF_REQUEST_CONTROLLER, RequestController.class, service.getRequestControllerInjectedValue()); } builder.addAliases(WebHost.SERVICE_NAME.append(context.getCurrentAddressValue())); if (aliases != null) { for (String alias : aliases) { builder.addAliases(WebHost.SERVICE_NAME.append(alias)); } } builder.setInitialMode(Mode.PASSIVE); return builder.install(); } }
final ServiceBuilder<Host> builder = context.getCapabilityServiceTarget().addCapability(HostDefinition.HOST_CAPABILITY, service) .addCapabilityRequirement(Capabilities.CAPABILITY_SERVER, Server.class, service.getServerInjection(), serverName) .addCapabilityRequirement(Capabilities.CAPABILITY_UNDERTOW, UndertowService.class, service.getUndertowService())
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { final PathAddress hostAddress = context.getCurrentAddress().getParent(); final PathAddress serverAddress = hostAddress.getParent(); final String name = context.getCurrentAddressValue(); final String handler = LocationDefinition.HANDLER.resolveModelAttribute(context, model).asString(); final LocationService service = new LocationService(name); final String serverName = serverAddress.getLastElement().getValue(); final String hostName = hostAddress.getLastElement().getValue(); final ServiceName serviceName = UndertowService.locationServiceName(serverName, hostName, name); final ServiceBuilder<LocationService> builder = context.getCapabilityServiceTarget().addCapability(LocationDefinition.LOCATION_CAPABILITY, service) .addCapabilityRequirement(Capabilities.CAPABILITY_HANDLER, HttpHandler.class, service.getHttpHandler(),handler) .addCapabilityRequirement(Capabilities.CAPABILITY_HOST, Host.class, service.getHost(), serverName, hostName); builder.setInitialMode(ServiceController.Mode.ACTIVE) .addAliases(serviceName) .install(); } }
final String hostName = hostAddress.getLastElement().getValue(); final CapabilityServiceBuilder<AccessLogService> builder = context.getCapabilityServiceTarget().addCapability(AccessLogDefinition.ACCESS_LOG_CAPABILITY, service) .addCapabilityRequirement(Capabilities.REF_IO_WORKER, XnioWorker.class, service.getWorker(), worker) .addDependency(PathManagerService.SERVICE_NAME, PathManager.class, service.getPathManager())
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { final String name = context.getCurrentAddressValue(); final HandlerService service = new HandlerService(handler.createHandler(context, model), name); CapabilityServiceBuilder<HttpHandler> builder = context.getCapabilityServiceTarget().addCapability(Handler.CAPABILITY, service) .setInitialMode(ServiceController.Mode.ON_DEMAND); final RuntimeCapability newCapability = Handler.CAPABILITY.fromBaseCapability(context.getCurrentAddress()); if (context.hasOptionalCapability(Capabilities.REF_REQUEST_CONTROLLER, newCapability.getName(), null)) { builder.addCapabilityRequirement(Capabilities.REF_REQUEST_CONTROLLER, RequestController.class, service.getRequestControllerInjectedValue()); } builder.install(); } }
CapabilityServiceTarget target = context.getCapabilityServiceTarget();
final CapabilityServiceBuilder<? extends UndertowListener> serviceBuilder = context.getCapabilityServiceTarget().addCapability(ListenerResourceDefinition.LISTENER_CAPABILITY, service); serviceBuilder.addCapabilityRequirement(REF_IO_WORKER, XnioWorker.class, service.getWorker(), workerName) .addCapabilityRequirement(REF_SOCKET_BINDING, SocketBinding.class, service.getBinding(), bindingRef)
@Override protected void performRuntime(OperationContext context, ModelNode operation, Resource resource) throws OperationFailedException { ModelNode model = resource.getModel(); CapabilityServiceTarget target = context.getCapabilityServiceTarget();
CapabilityServiceTarget serviceTarget = context.getCapabilityServiceTarget();
final String hostName = hostAddress.getLastElement().getValue(); final CapabilityServiceBuilder<HttpInvokerHostService> builder = context.getCapabilityServiceTarget() .addCapability(HTTP_INVOKER_HOST_CAPABILITY, service) .addCapabilityRequirement(HTTP_INVOKER_RUNTIME_CAPABILITY.getName(), PathHandler.class, service.getRemoteHttpInvokerServiceInjectedValue())
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { final ModelNode bufferSizeModel = BUFFER_SIZE.resolveModelAttribute(context, model); final ModelNode maxPoolSizeModel = MAX_POOL_SIZE.resolveModelAttribute(context, model); final ModelNode directModel = DIRECT.resolveModelAttribute(context, model); final int threadLocalCacheSize = THREAD_LOCAL_CACHE_SIZE.resolveModelAttribute(context, model).asInt(); final int leakDetectionPercent = LEAK_DETECTION_PERCENT.resolveModelAttribute(context, model).asInt(); final int bufferSize = bufferSizeModel.asInt(defaultBufferSize); final int maxPoolSize = maxPoolSizeModel.asInt(-1); final boolean direct = directModel.asBoolean(defaultDirectBuffers); final ByteBufferPoolService service = new ByteBufferPoolService(direct, bufferSize, maxPoolSize, threadLocalCacheSize, leakDetectionPercent); context.getCapabilityServiceTarget().addCapability(UNDERTOW_BUFFER_POOL_RUNTIME_CAPABILITY, service) .setInitialMode(ServiceController.Mode.ACTIVE) .install(); } }
@Override @SuppressWarnings("unchecked") protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { String datasourceName = PathAddress.pathAddress(operation.require(OP_ADDR)).getLastElement().getValue(); ModelNode factoryModel = AbstractDataSourceDefinition.CONNECTION_FACTORY_ATTRIBUTE.resolveModelAttribute(context, model); AgroalConnectionFactoryConfigurationSupplier connectionFactoryConfiguration = AbstractDataSourceOperations.connectionFactoryConfiguration(context, factoryModel); ModelNode poolModel = AbstractDataSourceDefinition.CONNECTION_POOL_ATTRIBUTE.resolveModelAttribute(context, model); AgroalConnectionPoolConfigurationSupplier connectionPoolConfiguration = AbstractDataSourceOperations.connectionPoolConfiguration(context, poolModel); connectionPoolConfiguration.connectionFactoryConfiguration(connectionFactoryConfiguration); AgroalDataSourceConfigurationSupplier dataSourceConfiguration = new AgroalDataSourceConfigurationSupplier(); dataSourceConfiguration.connectionPoolConfiguration(connectionPoolConfiguration); dataSourceConfiguration.metricsEnabled(AbstractDataSourceDefinition.STATISTICS_ENABLED_ATTRIBUTE.resolveModelAttribute(context, model).asBoolean()); String jndiName = AbstractDataSourceDefinition.JNDI_NAME_ATTRIBUTE.resolveModelAttribute(context, model).asString(); String driverName = AbstractDataSourceDefinition.DRIVER_ATTRIBUTE.resolveModelAttribute(context, factoryModel).asString(); DataSourceService dataSourceService = new DataSourceService(datasourceName, jndiName, false, false, true, dataSourceConfiguration); CapabilityServiceBuilder<AgroalDataSource> serviceBuilder = context.getCapabilityServiceTarget().addCapability(AbstractDataSourceDefinition.DATA_SOURCE_CAPABILITY.fromBaseCapability(datasourceName), dataSourceService); serviceBuilder.addCapabilityRequirement(DriverDefinition.AGROAL_DRIVER_CAPABILITY.getDynamicName(driverName), Class.class, dataSourceService.getDriverInjector()); // TODO add a Stage.MODEL requirement serviceBuilder.addCapabilityRequirement("org.wildfly.transactions.transaction-synchronization-registry", TransactionSynchronizationRegistry.class, dataSourceService.getTransactionSynchronizationRegistryInjector()); AbstractDataSourceOperations.setupElytronSecurity(context, factoryModel, dataSourceService, serviceBuilder); serviceBuilder.install(); } }
@Override @SuppressWarnings("unchecked") protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { String datasourceName = context.getCurrentAddressValue(); ModelNode factoryModel = AbstractDataSourceDefinition.CONNECTION_FACTORY_ATTRIBUTE.resolveModelAttribute(context, model); AgroalConnectionFactoryConfigurationSupplier connectionFactoryConfiguration = AbstractDataSourceOperations.connectionFactoryConfiguration(context, factoryModel); ModelNode poolModel = AbstractDataSourceDefinition.CONNECTION_POOL_ATTRIBUTE.resolveModelAttribute(context, model); AgroalConnectionPoolConfigurationSupplier connectionPoolConfiguration = AbstractDataSourceOperations.connectionPoolConfiguration(context, poolModel); connectionPoolConfiguration.connectionFactoryConfiguration(connectionFactoryConfiguration); AgroalDataSourceConfigurationSupplier dataSourceConfiguration = new AgroalDataSourceConfigurationSupplier(); dataSourceConfiguration.connectionPoolConfiguration(connectionPoolConfiguration); dataSourceConfiguration.metricsEnabled(AbstractDataSourceDefinition.STATISTICS_ENABLED_ATTRIBUTE.resolveModelAttribute(context, model).asBoolean()); String jndiName = AbstractDataSourceDefinition.JNDI_NAME_ATTRIBUTE.resolveModelAttribute(context, model).asString(); boolean jta = DataSourceDefinition.JTA_ATTRIBUTE.resolveModelAttribute(context, model).asBoolean(); boolean connectable = DataSourceDefinition.CONNECTABLE_ATTRIBUTE.resolveModelAttribute(context, model).asBoolean(); String driverName = AbstractDataSourceDefinition.DRIVER_ATTRIBUTE.resolveModelAttribute(context, factoryModel).asString(); DataSourceService dataSourceService = new DataSourceService(datasourceName, jndiName, jta, connectable, false, dataSourceConfiguration); CapabilityServiceBuilder<AgroalDataSource> serviceBuilder = context.getCapabilityServiceTarget().addCapability(AbstractDataSourceDefinition.DATA_SOURCE_CAPABILITY.fromBaseCapability(datasourceName), dataSourceService); serviceBuilder.addCapabilityRequirement(DriverDefinition.AGROAL_DRIVER_CAPABILITY.getDynamicName(driverName), Class.class, dataSourceService.getDriverInjector()); if (jta) { // TODO add a Stage.MODEL requirement serviceBuilder.addCapabilityRequirement("org.wildfly.transactions.transaction-synchronization-registry", TransactionSynchronizationRegistry.class, dataSourceService.getTransactionSynchronizationRegistryInjector()); } AbstractDataSourceOperations.setupElytronSecurity(context, factoryModel, dataSourceService, serviceBuilder); serviceBuilder.install(); } }
static void installRuntimeServices(OperationContext context, PathAddress address, ModelNode fullModel) throws OperationFailedException { final String jndiName = getJndiName(fullModel, context); final CapabilityServiceTarget serviceTarget = context.getCapabilityServiceTarget();