@Override
protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException {
ModelNode config = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS));
final String cacheName = MemcachedConnectorResource.CACHE.resolveModelAttribute(context, config).asString();
final String clientEncoding = MemcachedConnectorResource.CLIENT_ENCODING.resolveModelAttribute(context, config).asString();
MemcachedServerConfigurationBuilder configurationBuilder = new MemcachedServerConfigurationBuilder();
configurationBuilder.clientEncoding(MediaType.parse(clientEncoding));
this.configureProtocolServer(context, configurationBuilder, config);
final ProtocolServerService service = new ProtocolServerService(getServiceName(operation), MemcachedServer.class, configurationBuilder, cacheName);
ServiceBuilder<?> builder = context.getServiceTarget().addService(EndpointUtils.getServiceName(operation, "memcached"), service);
String cacheContainerName = getCacheContainerName(operation);
EndpointUtils.addCacheContainerDependency(builder, cacheContainerName, service.getCacheManager());
EndpointUtils.addCacheDependency(builder, cacheContainerName, cacheName);
EndpointUtils.addCacheDependency(builder, cacheContainerName, null);
EndpointUtils.addSocketBindingDependency(context, builder, getSocketBindingName(operation), service.getSocketBinding());
builder.install();
}