@Override public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException { this.dataSource = new ServiceSupplierDependency<>(CommonUnaryRequirement.DATA_SOURCE.getServiceName(context, DATA_SOURCE.resolveModelAttribute(context, model).asString())); return super.configure(context, model); }
@Override public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) { return builder .addAccessConstraint(SensitiveTargetAccessConstraintDefinition.SOCKET_BINDING_REF) .setCapabilityReference(CommonUnaryRequirement.SOCKET_BINDING.getName()) ; } },
.ifPresent(advertiseSocketRef -> this.advertiseSocketDependency = new ServiceSupplierDependency<>(context.getCapabilityServiceName(CommonUnaryRequirement.SOCKET_BINDING.getName(), advertiseSocketRef, SocketBinding.class))); optionalString(ADVERTISE_SECURITY_KEY.resolveModelAttribute(context, model)) .ifPresent(securityKey -> builder.advertise().setAdvertiseSecurityKey(securityKey)); for (ModelNode ref : node.asList()) { String asString = ref.asString(); this.outboundSocketBindings.add(new ServiceSupplierDependency<>(CommonUnaryRequirement.OUTBOUND_SOCKET_BINDING.getServiceName(context, asString))); this.sslContextDependency = new ServiceSupplierDependency<>(CommonUnaryRequirement.SSL_CONTEXT.getServiceName(context, node.asString()));
.ifPresent(advertiseSocketRef -> this.advertiseSocketDependency = new ServiceSupplierDependency<>(context.getCapabilityServiceName(CommonUnaryRequirement.SOCKET_BINDING.getName(), advertiseSocketRef, SocketBinding.class))); optionalString(ADVERTISE_SECURITY_KEY.resolveModelAttribute(context, model)) .ifPresent(securityKey -> builder.advertise().setAdvertiseSecurityKey(securityKey)); for (ModelNode ref : node.asList()) { String asString = ref.asString(); this.outboundSocketBindings.add(new ServiceSupplierDependency<>(CommonUnaryRequirement.OUTBOUND_SOCKET_BINDING.getServiceName(context, asString))); this.sslContextDependency = new ServiceSupplierDependency<>(CommonUnaryRequirement.SSL_CONTEXT.getServiceName(context, node.asString()));
@Override public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException { List<ModelNode> socketBindingPreferences = ModelNodes.optionalList(SOCKET_BINDING_PREFERENCES.resolveModelAttribute(context, model)).orElse(Collections.emptyList()); List<ModelNode> namePreferences = ModelNodes.optionalList(NAME_PREFERENCES.resolveModelAttribute(context, model)).orElse(Collections.emptyList()); List<Preference> preferences = new ArrayList<>(socketBindingPreferences.size() + namePreferences.size()); List<Dependency> dependencies = new ArrayList<>(socketBindingPreferences.size()); for (ModelNode preference : socketBindingPreferences) { SupplierDependency<OutboundSocketBinding> binding = new ServiceSupplierDependency<>(CommonUnaryRequirement.OUTBOUND_SOCKET_BINDING.getServiceName(context, preference.asString())); preferences.add(new OutboundSocketBindingPreference(binding)); dependencies.add(binding); } for (ModelNode preference : namePreferences) { preferences.add(new NamePreference(preference.asString())); } this.dependencies = dependencies; this.preferences = preferences; return this; } }
@Override public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) { return builder .setCapabilityReference(CommonUnaryRequirement.SSL_CONTEXT.getName()) .setValidator(new StringLengthValidator(1)) .setAccessConstraints(SensitiveTargetAccessConstraintDefinition.SSL_REF) ; } },
@Override public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException { String keyStore = KEY_STORE.resolveModelAttribute(context, model).asString(); this.keyStore = new ServiceSupplierDependency<>(CommonUnaryRequirement.KEY_STORE.getServiceName(context, keyStore)); this.keyAlias = KEY_ALIAS.resolveModelAttribute(context, model).asString(); this.credentialSource = new CredentialSourceDependency(context, CREDENTIAL, model); Optional<String> sslContext = ModelNodes.optionalString(SSL_CONTEXT.resolveModelAttribute(context, model)); this.sslContext = sslContext.map(value -> new ServiceSupplierDependency<SSLContext>(CommonUnaryRequirement.SSL_CONTEXT.getServiceName(context, value))).orElse(null); return this; }
Attribute(String name) { this.definition = new StringListAttributeDefinition.Builder(name) .setRequired(false) .setAllowExpression(false) // expressions are not allowed for model references .setRestartAllServices() .setCapabilityReference(CommonUnaryRequirement.OUTBOUND_SOCKET_BINDING.getName()) .setAttributeMarshaller(AttributeMarshaller.STRING_LIST) .addAccessConstraint(ModClusterExtension.MOD_CLUSTER_PROXIES_DEF) .addAlternatives("proxy-list") .build(); }
@Override public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException { String bindingName = SocketBindingProtocolResourceDefinition.Attribute.SOCKET_BINDING.resolveModelAttribute(context, model).asString(); this.binding = new ServiceSupplierDependency<>(CommonUnaryRequirement.SOCKET_BINDING.getServiceName(context, bindingName)); return super.configure(context, model); }
@Override public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) { return builder .addAccessConstraint(SensitiveTargetAccessConstraintDefinition.SOCKET_BINDING_REF) .setCapabilityReference(CommonUnaryRequirement.SOCKET_BINDING.getName()) ; } },
@Override public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException { this.bindings.clear(); for (String binding : StringListAttributeDefinition.unwrapValue(context, OUTBOUND_SOCKET_BINDINGS.resolveModelAttribute(context, model))) { this.bindings.add(new ServiceSupplierDependency<>(CommonUnaryRequirement.OUTBOUND_SOCKET_BINDING.getServiceName(context, binding))); } return super.configure(context, model); }
@Override public SimpleAttributeDefinitionBuilder apply(SimpleAttributeDefinitionBuilder builder) { return builder .setCapabilityReference(CommonUnaryRequirement.SSL_CONTEXT.getName()) .setValidator(new StringLengthValidator(1)) .setAccessConstraints(SensitiveTargetAccessConstraintDefinition.SSL_REF) ; } },
@Override public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException { String keyStore = KEY_STORE.resolveModelAttribute(context, model).asString(); this.keyStore = new ServiceSupplierDependency<>(CommonUnaryRequirement.KEY_STORE.getServiceName(context, keyStore)); this.keyAlias = KEY_ALIAS.resolveModelAttribute(context, model).asString(); this.keyCredentialSource = new CredentialSourceDependency(context, KEY_CREDENTIAL, model); this.transformation = ALGORITHM.resolveModelAttribute(context, model).asString(); return super.configure(context, model); }
Attribute(String name) { this.definition = new StringListAttributeDefinition.Builder(name) .setRequired(false) .setAllowExpression(false) // expressions are not allowed for model references .setRestartAllServices() .setCapabilityReference(CommonUnaryRequirement.OUTBOUND_SOCKET_BINDING.getName()) .setAttributeMarshaller(AttributeMarshaller.STRING_LIST) .addAccessConstraint(ModClusterExtension.MOD_CLUSTER_PROXIES_DEF) .addAlternatives("proxy-list") .build(); }
@Override public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException { String dataSource = DATA_SOURCE.resolveModelAttribute(context, model).asString(); this.dataSource = new ServiceSupplierDependency<>(CommonUnaryRequirement.DATA_SOURCE.getServiceName(context, dataSource)); this.dialect = ModelNodes.optionalEnum(DIALECT.resolveModelAttribute(context, model), DatabaseType.class).orElse(null); return super.configure(context, model); }
@Override public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException { String keyStore = KEY_STORE.resolveModelAttribute(context, model).asString(); this.keyStore = new ServiceSupplierDependency<>(CommonUnaryRequirement.KEY_STORE.getServiceName(context, keyStore)); this.keyAlias = KEY_ALIAS.resolveModelAttribute(context, model).asString(); this.credentialSource = new CredentialSourceDependency(context, KEY_CREDENTIAL, model); return super.configure(context, model); }
@Override public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException { String sslContext = SSL_CONTEXT.resolveModelAttribute(context, model).asStringOrNull(); this.sslContextDependency = (sslContext != null) ? new ServiceSupplierDependency<>(CommonUnaryRequirement.SSL_CONTEXT.getServiceName(context, sslContext)) : null; return this; }
@Override public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException { this.remoteCacheName = CACHE.resolveModelAttribute(context, model).asString(); this.socketTimeout = SOCKET_TIMEOUT.resolveModelAttribute(context, model).asLong(); this.tcpNoDelay = TCP_NO_DELAY.resolveModelAttribute(context, model).asBoolean(); List<String> bindings = StringListAttributeDefinition.unwrapValue(context, SOCKET_BINDINGS.resolveModelAttribute(context, model)); this.bindings = new ArrayList<>(bindings.size()); for (String binding : bindings) { this.bindings.add(new ServiceSupplierDependency<>(CommonUnaryRequirement.OUTBOUND_SOCKET_BINDING.getServiceName(context, binding))); } return super.configure(context, model); }
@Override public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException { this.socketBinding = new ServiceSupplierDependency<>(CommonUnaryRequirement.SOCKET_BINDING.getServiceName(context, SOCKET_BINDING.resolveModelAttribute(context, model).asString())); String diagnosticsSocketBinding = DIAGNOSTICS_SOCKET_BINDING.resolveModelAttribute(context, model).asStringOrNull(); this.diagnosticsSocketBinding = (diagnosticsSocketBinding != null) ? new ServiceSupplierDependency<>(CommonUnaryRequirement.SOCKET_BINDING.getServiceName(context, diagnosticsSocketBinding)) : null; ModelNode machine = MACHINE.resolveModelAttribute(context, model); ModelNode rack = RACK.resolveModelAttribute(context, model); ModelNode site = SITE.resolveModelAttribute(context, model); if (site.isDefined() || rack.isDefined() || machine.isDefined()) { this.topology = new Topology() { @Override public String getMachine() { return machine.asStringOrNull(); } @Override public String getRack() { return rack.asStringOrNull(); } @Override public String getSite() { return site.asStringOrNull(); } }; } return super.configure(context, model); }
@Override public ServiceConfigurator configure(OperationContext context, ModelNode model) throws OperationFailedException { this.connectionTimeout = Attribute.CONNECTION_TIMEOUT.resolveModelAttribute(context, model).asInt(); this.defaultRemoteCluster = Attribute.DEFAULT_REMOTE_CLUSTER.resolveModelAttribute(context, model).asString(); this.keySizeEstimate = Attribute.KEY_SIZE_ESTIMATE.resolveModelAttribute(context, model).asInt(); this.maxRetries = Attribute.MAX_RETRIES.resolveModelAttribute(context, model).asInt(); this.protocolVersion = Attribute.PROTOCOL_VERSION.resolveModelAttribute(context, model).asString(); this.socketTimeout = Attribute.SOCKET_TIMEOUT.resolveModelAttribute(context, model).asInt(); this.tcpNoDelay = Attribute.TCP_NO_DELAY.resolveModelAttribute(context, model).asBoolean(); this.tcpKeepAlive = Attribute.TCP_KEEP_ALIVE.resolveModelAttribute(context, model).asBoolean(); this.valueSizeEstimate = Attribute.VALUE_SIZE_ESTIMATE.resolveModelAttribute(context, model).asInt(); this.clusters.clear(); Resource container = context.readResource(PathAddress.EMPTY_ADDRESS); for (Resource.ResourceEntry entry : container.getChildren(RemoteClusterResourceDefinition.WILDCARD_PATH.getKey())) { String clusterName = entry.getName(); ModelNode cluster = entry.getModel(); List<String> bindings = StringListAttributeDefinition.unwrapValue(context, RemoteClusterResourceDefinition.Attribute.SOCKET_BINDINGS.resolveModelAttribute(context, cluster)); List<SupplierDependency<OutboundSocketBinding>> bindingDependencies = new ArrayList<>(bindings.size()); for (String binding : bindings) { bindingDependencies.add(new ServiceSupplierDependency<>(CommonUnaryRequirement.OUTBOUND_SOCKET_BINDING.getServiceName(context, binding))); } this.clusters.put(clusterName, bindingDependencies); } return this; }