@Override public Resource navigate(final PathAddress address) { if (address.size() == 1 && CONTEXT.equals(address.getElement(0).getKey())) { return requireChild(address.getElement(0)); } throw new NoSuchResourceException(address.getElement(0)); }
@Override protected PathAddress getParentAddress(PathAddress address) { for (int i = address.size() - 1; i >= 0; i--) { PathElement pe = address.getElement(i); if (pe.getKey().equals("service") && pe.getValue().equals("remote")) { return address.subAddress(0, i + 1); } } return null; }
private boolean isDisabledDatasource(OperationContext context, PathAddress address, ModelNode datasourceNode) throws OperationFailedException { return address.getElement(0).getValue().equals(DATASOURCES) && !ModelNodeUtil.getBooleanIfSetOrGetDefault(context, datasourceNode, ENABLED); } }
@Override public final void execute(OperationContext context, ModelNode operation) throws OperationFailedException { PathAddress address = context.getCurrentAddress(); int current = address.size() - 1; String balancerName = address.getElement(current--).getValue(); String modClusterName = address.getElement(current--).getValue(); ModClusterService service = ModClusterResource.service(modClusterName); if (service == null) { context.getResult().set(new ModelNode()); context.completeStep(OperationContext.ResultHandler.NOOP_RESULT_HANDLER); return; } ModClusterStatus.LoadBalancer balancer = service.getModCluster().getController().getStatus().getLoadBalancer(balancerName); if (balancer == null) { context.getResult().set(new ModelNode()); context.completeStep(OperationContext.ResultHandler.NOOP_RESULT_HANDLER); return; } handleNode(context, balancer, operation); }
private static PathElement counterElement(ModelNode operation) { final PathAddress address = pathAddress(operation.require(OP_ADDR)); final PathElement counterElement = address.getElement(address.size() - 1); return counterElement; }
@Override public PathAddress convertToTargetAddress(PathAddress address, AliasContext aliasContext) { PathAddress target = this.getTargetAddress(); List<PathElement> result = new ArrayList<>(address.size()); for (int i = 0; i < address.size(); ++i) { PathElement element = address.getElement(i); if (i < target.size()) { PathElement targetElement = target.getElement(i); result.add(targetElement.isWildcard() ? PathElement.pathElement(targetElement.getKey(), element.getValue()) : targetElement); } else { result.add(element); } } return PathAddress.pathAddress(result); } }
@Override public Resource navigate(final PathAddress address) { if (address.size() > 0 && BatchJobExecutionResourceDefinition.EXECUTION.equals(address.getElement(0).getKey())) { if (address.size() > 1) { throw new NoSuchResourceException(address.getElement(1)); } return PlaceholderResource.INSTANCE; } return delegate.navigate(address); }
@Override public final void execute(OperationContext context, ModelNode operation) throws OperationFailedException { PathAddress address = context.getCurrentAddress(); int current = address.size() - 1; String contextName = address.getElement(current--).getValue(); String nodeName = address.getElement(current--).getValue(); String balancerName = address.getElement(current--).getValue(); String modClusterName = address.getElement(current--).getValue(); ModClusterService service = ModClusterResource.service(modClusterName); if (service == null) {
private static ServiceName componentServiceName(final OperationContext context, final ModelNode operation) { final PathAddress address = PathAddress.pathAddress(operation.require(ModelDescriptionConstants.OP_ADDR)); final String parent; final String module; int i = 2; if (address.getElement(1).getKey().equals(ModelDescriptionConstants.SUBDEPLOYMENT)) { parent = resolveRuntimeName(context,address.getElement(0)); module = address.getElement(1).getValue(); i++; } else { parent = null; module = resolveRuntimeName(context,address.getElement(0)); } final String component = address.getElement(i).getValue(); final ServiceName deploymentUnitServiceName; if (parent == null) { deploymentUnitServiceName = Services.deploymentUnitName(module); } else { deploymentUnitServiceName = Services.deploymentUnitName(parent, module); } // Hmm, don't like the START bit return BasicComponent.serviceNameOf(deploymentUnitServiceName, component).append("START"); }
@Override public Resource navigate(final PathAddress address) { final String element = address.getElement(0).getKey(); if (address.size() > 0 && (NODE.equals(element) || LOAD_BALANCING_GROUP.equals(element))) { final Resource subResource = requireChild(address.getElement(0)); if(address.size() == 1) { return subResource; } else { return subResource.navigate(address.subAddress(1)); } } throw new NoSuchResourceException(address.getElement(0)); }
@Override public Protocol findProtocol(OperationContext context) throws ClassNotFoundException, ModuleLoadException { PathAddress address = context.getCurrentAddress(); String channelName = address.getElement(address.size() - 3).getValue(); String forkName = address.getElement(address.size() - 2).getValue(); String protocolName = address.getElement(address.size() - 1).getValue(); ServiceRegistry registry = context.getServiceRegistry(true); JChannel channel = new PassiveServiceSupplier<JChannel>(registry, JGroupsRequirement.CHANNEL.getServiceName(context, channelName)).get(); if (channel != null) { FORK fork = (FORK) channel.getProtocolStack().findProtocol(FORK.class); if (fork != null) { ChannelFactory factory = new PassiveServiceSupplier<ChannelFactory>(registry, JGroupsRequirement.CHANNEL_FACTORY.getServiceName(context, channelName)).get(); if (factory != null) { ProtocolStackConfiguration configuration = factory.getProtocolStackConfiguration(); ProtocolConfiguration<? extends TP> transport = configuration.getTransport(); if (transport.getName().equals(protocolName)) { Class<? extends Protocol> protocolClass = transport.createProtocol(configuration).getClass(); return channel.getProtocolStack().findProtocol(protocolClass); } for (ProtocolConfiguration<? extends Protocol> protocol : configuration.getProtocols()) { if (protocol.getName().equals(protocolName)) { Class<? extends Protocol> protocolClass = protocol.createProtocol(configuration).getClass(); return fork.get(forkName).getProtocolStack().findProtocol(protocolClass); } } } } } return null; }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { if (context.isResourceServiceRestartAllowed()) { final ModelNode address = operation.require(OP_ADDR); final PathAddress path = PathAddress.pathAddress(address); final String jndiName = path.getElement(path.size() - 2).getValue(); final String configPropertyName = PathAddress.pathAddress(address).getLastElement().getValue(); ServiceName configPropertyServiceName = DataSourceConfigService.SERVICE_NAME_BASE.append(jndiName) .append("connection-properties").append(configPropertyName); context.removeService(configPropertyServiceName); } else { context.reloadRequired(); } } }
@Override public Resource navigate(final PathAddress address) { if (address.size() > 0 && BALANCER.equals(address.getElement(0).getKey())) { final Resource modClusterBalancerResource = requireChild(address.getElement(0)); if(address.size() == 1) { return modClusterBalancerResource; } else { return modClusterBalancerResource.navigate(address.subAddress(1)); } } return delegate.navigate(address); }
@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(); } }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { if (context.isResourceServiceRestartAllowed()) { final ModelNode address = operation.require(OP_ADDR); final PathAddress path = PathAddress.pathAddress(address); final String jndiName = path.getElement(path.size() - 2).getValue(); final String configPropertyName = PathAddress.pathAddress(address).getLastElement().getValue(); ServiceName configPropertyServiceName = XADataSourceConfigService.SERVICE_NAME_BASE.append(jndiName). append("xa-datasource-properties").append(configPropertyName); context.removeService(configPropertyServiceName); } else { context.reloadRequired(); } } }
private boolean isHostCapableAddress() { if (activeStep.address.size() >= 2 && activeStep.address.getElement(0).getKey().equals(HOST) && activeStep.address.getElement(1).getKey().equals(SUBSYSTEM)) { return true; } return false; }
private T getDataSourceConfig(final PathAddress operationAddress) throws OperationFailedException { final List<PathElement> relativeAddress = new ArrayList<PathElement>(); for (int i = operationAddress.size() - 1; i >= 0; i--) { PathElement pe = operationAddress.getElement(i); relativeAddress.add(0, pe); if (ModelDescriptionConstants.DEPLOYMENT.equals(pe.getKey())) { break; } } final PathAddress pa = PathAddress.pathAddress(relativeAddress); final T config; if(operationAddress.getLastElement().getKey().equals(CONNECTION_PROPERTIES) || operationAddress.getLastElement().getKey().equals(XA_DATASOURCE_PROPERTIES)) { config = dataSourceConfigs.get(pa.subAddress(0, pa.size() - 1)); } else { config = dataSourceConfigs.get(pa); } if (config == null) { String exceptionMessage = ConnectorLogger.ROOT_LOGGER.noDataSourceRegisteredForAddress(operationAddress); throw new OperationFailedException(exceptionMessage); } return config; }
@Override public Resource navigate(final PathAddress address) { if (address.size() == 1 && CONTEXT.equals(address.getElement(0).getKey())) { return requireChild(address.getElement(0)); } throw new NoSuchResourceException(address.getElement(0)); }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode recoveryEnvModel) throws OperationFailedException { final String configPropertyValue = CONFIG_PROPERTY_VALUE.resolveModelAttribute(context, recoveryEnvModel).asString(); final ModelNode address = operation.require(OP_ADDR); PathAddress path = PathAddress.pathAddress(address); final String archiveName = path.getElement(path.size() -3).getValue(); final String aoName = path.getElement(path.size() -2).getValue(); final String configPropertyName = PathAddress.pathAddress(address).getLastElement().getValue(); ServiceName serviceName = ServiceName.of(ConnectorServices.RA_SERVICE, archiveName, aoName, configPropertyName); ServiceName aoServiceName = ServiceName.of(ConnectorServices.RA_SERVICE, archiveName, aoName); final ServiceTarget serviceTarget = context.getServiceTarget(); final AOConfigPropertiesService service = new AOConfigPropertiesService(configPropertyName, configPropertyValue); serviceTarget.addService(serviceName, service).setInitialMode(ServiceController.Mode.ACTIVE) .addDependency(aoServiceName, ModifiableAdminObject.class, service.getAOInjector() ) .install(); } }
@Override public Resource navigate(final PathAddress address) { if (address.size() == 1 && CONTEXT.equals(address.getElement(0).getKey())) { return requireChild(address.getElement(0)); } throw new NoSuchResourceException(address.getElement(0)); }