private Object createSimpleBinding(OperationContext context, ModelNode model) throws OperationFailedException { final String value = NamingBindingResourceDefinition.VALUE.resolveModelAttribute(context, model).asString(); final String type; if (model.hasDefined(TYPE)) { type = NamingBindingResourceDefinition.TYPE.resolveModelAttribute(context, model).asString(); } else { type = null; } return coerceToType(value, type); }
void doRebind(OperationContext context, ModelNode model, BinderService service) throws OperationFailedException { ManagedReferenceFactory ref = service.getManagedObjectInjector().getValue(); if(ref instanceof MutableManagedReferenceFactory) { MutableManagedReferenceFactory factory = (MutableManagedReferenceFactory) ref; final BindingType type = BindingType.forName(NamingBindingResourceDefinition.BINDING_TYPE.resolveModelAttribute(context, model).asString()); if (type == BindingType.SIMPLE) { Object bindValue = createSimpleBinding(context, model); factory.setFactory(new ValueManagedReferenceFactory(new ImmediateValue<Object>(bindValue))); service.setSource(bindValue); } else if (type == BindingType.OBJECT_FACTORY) { final ObjectFactory objectFactoryClassInstance = createObjectFactory(context, model); final Hashtable<String, String> environment = getObjectFactoryEnvironment(context, model); factory.setFactory(new ObjectFactoryManagedReference(objectFactoryClassInstance, service.getName(), environment)); service.setSource(objectFactoryClassInstance); } else if (type == BindingType.LOOKUP) { final String lookup = NamingBindingResourceDefinition.LOOKUP.resolveModelAttribute(context, model).asString(); factory.setFactory(new LookupManagedReferenceFactory(lookup)); service.setSource(null); } else if (type == BindingType.EXTERNAL_CONTEXT) { throw NamingLogger.ROOT_LOGGER.cannotRebindExternalContext(); } else { throw NamingLogger.ROOT_LOGGER.unknownBindingType(type.toString()); } } else { throw NamingLogger.ROOT_LOGGER.cannotRebindExternalContext(); } }
void installRuntimeServices(final OperationContext context, final String name, final ModelNode model) throws OperationFailedException { boolean allowed = false; for (String ns : GLOBAL_NAMESPACES) { if (name.startsWith(ns)) { allowed = true; break; } } if (!allowed) { throw NamingLogger.ROOT_LOGGER.invalidNamespaceForBinding(name, Arrays.toString(GLOBAL_NAMESPACES)); } final BindingType type = BindingType.forName(NamingBindingResourceDefinition.BINDING_TYPE.resolveModelAttribute(context, model).asString()); if (type == BindingType.SIMPLE) { installSimpleBinding(context, name, model); } else if (type == BindingType.OBJECT_FACTORY) { installObjectFactory(context, name, model); } else if (type == BindingType.LOOKUP) { installLookup(context, name, model); } else if (type == BindingType.EXTERNAL_CONTEXT) { installExternalContext(context, name, model); } else { throw NamingLogger.ROOT_LOGGER.unknownBindingType(type.toString()); } }
void installObjectFactory(final OperationContext context, final String name, final ModelNode model) throws OperationFailedException { final ObjectFactory objectFactoryClassInstance = createObjectFactory(context, model); final Hashtable<String, String> environment = getObjectFactoryEnvironment(context, model); ContextListAndJndiViewManagedReferenceFactory factory = new ObjectFactoryManagedReference(objectFactoryClassInstance, name, environment); final ServiceTarget serviceTarget = context.getServiceTarget(); final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(name); final BinderService binderService = new BinderService(name, objectFactoryClassInstance); binderService.getManagedObjectInjector().inject(new MutableManagedReferenceFactory(factory)); serviceTarget.addService(bindInfo.getBinderServiceName(), binderService) .addDependency(bindInfo.getParentContextServiceName(), ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()) .install(); }
void installRuntimeServices(final OperationContext context, final String name, final ModelNode model, ServiceVerificationHandler verificationHandler, final List<ServiceController<?>> newControllers) throws OperationFailedException { boolean allowed = false; for (String ns : GLOBAL_NAMESPACES) { if (name.startsWith(ns)) { allowed = true; break; } } if (!allowed) { throw NamingMessages.MESSAGES.invalidNamespaceForBinding(name, Arrays.toString(GLOBAL_NAMESPACES)); } final BindingType type = BindingType.forName(NamingBindingResourceDefinition.BINDING_TYPE.resolveModelAttribute(context,model).asString()); if (type == BindingType.SIMPLE) { installSimpleBinding(context, name, model, verificationHandler, newControllers); } else if (type == BindingType.OBJECT_FACTORY) { installObjectFactory(context, name, model, verificationHandler, newControllers); } else if (type == BindingType.LOOKUP) { installLookup(context, name, model, verificationHandler, newControllers); } else { throw NamingMessages.MESSAGES.unknownBindingType(type.toString()); } }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { final String name = PathAddress.pathAddress(operation.get(ModelDescriptionConstants.ADDRESS)).getLastElement().getValue(); installRuntimeServices(context, name, model); }
final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(name); final Hashtable<String, String> environment = getObjectFactoryEnvironment(context, model); environment.put(ExternalContextObjectFactory.CACHE_CONTEXT, Boolean.toString(cache)); environment.put(ExternalContextObjectFactory.INITIAL_CONTEXT_CLASS, className);
void installSimpleBinding(final OperationContext context, final String name, final ModelNode model) throws OperationFailedException { Object bindValue = createSimpleBinding(context, model); ValueManagedReferenceFactory referenceFactory = new ValueManagedReferenceFactory(new ImmediateValue<Object>(bindValue)); final BinderService binderService = new BinderService(name, bindValue); binderService.getManagedObjectInjector().inject(new MutableManagedReferenceFactory(referenceFactory)); final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(name); final ServiceTarget serviceTarget = context.getServiceTarget(); ServiceBuilder<ManagedReferenceFactory> builder = serviceTarget.addService(bindInfo.getBinderServiceName(), binderService) .addDependency(bindInfo.getParentContextServiceName(), ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()); builder.install(); }
void installObjectFactory(final OperationContext context, final String name, final ModelNode model) throws OperationFailedException { final ObjectFactory objectFactoryClassInstance = createObjectFactory(context, model); final Hashtable<String, String> environment = getObjectFactoryEnvironment(context, model); ContextListAndJndiViewManagedReferenceFactory factory = new ObjectFactoryManagedReference(objectFactoryClassInstance, name, environment); final ServiceTarget serviceTarget = context.getServiceTarget(); final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(name); final BinderService binderService = new BinderService(name, objectFactoryClassInstance); binderService.getManagedObjectInjector().inject(new MutableManagedReferenceFactory(factory)); serviceTarget.addService(bindInfo.getBinderServiceName(), binderService) .addDependency(bindInfo.getParentContextServiceName(), ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()) .install(); }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { final String name = PathAddress.pathAddress(operation.get(ModelDescriptionConstants.ADDRESS)).getLastElement().getValue(); installRuntimeServices(context, name, model); }
final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(name); final Hashtable<String, String> environment = getObjectFactoryEnvironment(context, model); environment.put(ExternalContextObjectFactory.CACHE_CONTEXT, Boolean.toString(cache)); environment.put(ExternalContextObjectFactory.INITIAL_CONTEXT_CLASS, className);
void installSimpleBinding(final OperationContext context, final String name, final ModelNode model) throws OperationFailedException { Object bindValue = createSimpleBinding(context, model); ValueManagedReferenceFactory referenceFactory = new ValueManagedReferenceFactory(new ImmediateValue<Object>(bindValue)); final BinderService binderService = new BinderService(name, bindValue); binderService.getManagedObjectInjector().inject(new MutableManagedReferenceFactory(referenceFactory)); final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(name); final ServiceTarget serviceTarget = context.getServiceTarget(); ServiceBuilder<ManagedReferenceFactory> builder = serviceTarget.addService(bindInfo.getBinderServiceName(), binderService) .addDependency(bindInfo.getParentContextServiceName(), ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()); builder.install(); }
void installRuntimeServices(final OperationContext context, final String name, final ModelNode model) throws OperationFailedException { boolean allowed = false; for (String ns : GLOBAL_NAMESPACES) { if (name.startsWith(ns)) { allowed = true; break; } } if (!allowed) { throw NamingLogger.ROOT_LOGGER.invalidNamespaceForBinding(name, Arrays.toString(GLOBAL_NAMESPACES)); } final BindingType type = BindingType.forName(NamingBindingResourceDefinition.BINDING_TYPE.resolveModelAttribute(context, model).asString()); if (type == BindingType.SIMPLE) { installSimpleBinding(context, name, model); } else if (type == BindingType.OBJECT_FACTORY) { installObjectFactory(context, name, model); } else if (type == BindingType.LOOKUP) { installLookup(context, name, model); } else if (type == BindingType.EXTERNAL_CONTEXT) { installExternalContext(context, name, model); } else { throw NamingLogger.ROOT_LOGGER.unknownBindingType(type.toString()); } }
void doRebind(OperationContext context, ModelNode model, BinderService service) throws OperationFailedException { ManagedReferenceFactory ref = service.getManagedObjectInjector().getValue(); if(ref instanceof MutableManagedReferenceFactory) { MutableManagedReferenceFactory factory = (MutableManagedReferenceFactory) ref; final BindingType type = BindingType.forName(NamingBindingResourceDefinition.BINDING_TYPE.resolveModelAttribute(context, model).asString()); if (type == BindingType.SIMPLE) { Object bindValue = createSimpleBinding(context, model); factory.setFactory(new ValueManagedReferenceFactory(new ImmediateValue<Object>(bindValue))); service.setSource(bindValue); } else if (type == BindingType.OBJECT_FACTORY) { final ObjectFactory objectFactoryClassInstance = createObjectFactory(context, model); final Hashtable<String, String> environment = getObjectFactoryEnvironment(context, model); factory.setFactory(new ObjectFactoryManagedReference(objectFactoryClassInstance, service.getName(), environment)); service.setSource(objectFactoryClassInstance); } else if (type == BindingType.LOOKUP) { final String lookup = NamingBindingResourceDefinition.LOOKUP.resolveModelAttribute(context, model).asString(); factory.setFactory(new LookupManagedReferenceFactory(lookup)); service.setSource(null); } else if (type == BindingType.EXTERNAL_CONTEXT) { throw NamingLogger.ROOT_LOGGER.cannotRebindExternalContext(); } else { throw NamingLogger.ROOT_LOGGER.unknownBindingType(type.toString()); } } else { throw NamingLogger.ROOT_LOGGER.cannotRebindExternalContext(); } }
void installObjectFactory(final OperationContext context, final String name, final ModelNode model) throws OperationFailedException { final ObjectFactory objectFactoryClassInstance = createObjectFactory(context, model); final Hashtable<String, String> environment = getObjectFactoryEnvironment(context, model); ContextListAndJndiViewManagedReferenceFactory factory = new ObjectFactoryManagedReference(objectFactoryClassInstance, name, environment); final ServiceTarget serviceTarget = context.getServiceTarget(); final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(name); final BinderService binderService = new BinderService(name, objectFactoryClassInstance); binderService.getManagedObjectInjector().inject(new MutableManagedReferenceFactory(factory)); serviceTarget.addService(bindInfo.getBinderServiceName(), binderService) .addDependency(bindInfo.getParentContextServiceName(), ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()) .install(); }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { final String name = PathAddress.pathAddress(operation.get(ModelDescriptionConstants.ADDRESS)).getLastElement().getValue(); installRuntimeServices(context, name, model); }
private Object createSimpleBinding(OperationContext context, ModelNode model) throws OperationFailedException { final String value = NamingBindingResourceDefinition.VALUE.resolveModelAttribute(context, model).asString(); final String type; if (model.hasDefined(TYPE)) { type = NamingBindingResourceDefinition.TYPE.resolveModelAttribute(context, model).asString(); } else { type = null; } return coerceToType(value, type); }
final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(name); final Hashtable<String, String> environment = getObjectFactoryEnvironment(context, model); environment.put(ExternalContextObjectFactory.CACHE_CONTEXT, Boolean.toString(cache)); environment.put(ExternalContextObjectFactory.INITIAL_CONTEXT_CLASS, className);
void installSimpleBinding(final OperationContext context, final String name, final ModelNode model) throws OperationFailedException { Object bindValue = createSimpleBinding(context, model); ValueManagedReferenceFactory referenceFactory = new ValueManagedReferenceFactory(new ImmediateValue<Object>(bindValue)); final BinderService binderService = new BinderService(name, bindValue); binderService.getManagedObjectInjector().inject(new MutableManagedReferenceFactory(referenceFactory)); final ContextNames.BindInfo bindInfo = ContextNames.bindInfoFor(name); final ServiceTarget serviceTarget = context.getServiceTarget(); ServiceBuilder<ManagedReferenceFactory> builder = serviceTarget.addService(bindInfo.getBinderServiceName(), binderService) .addDependency(bindInfo.getParentContextServiceName(), ServiceBasedNamingStore.class, binderService.getNamingStoreInjector()); builder.install(); }
void installRuntimeServices(final OperationContext context, final String name, final ModelNode model) throws OperationFailedException { boolean allowed = false; for (String ns : GLOBAL_NAMESPACES) { if (name.startsWith(ns)) { allowed = true; break; } } if (!allowed) { throw NamingLogger.ROOT_LOGGER.invalidNamespaceForBinding(name, Arrays.toString(GLOBAL_NAMESPACES)); } final BindingType type = BindingType.forName(NamingBindingResourceDefinition.BINDING_TYPE.resolveModelAttribute(context, model).asString()); if (type == BindingType.SIMPLE) { installSimpleBinding(context, name, model); } else if (type == BindingType.OBJECT_FACTORY) { installObjectFactory(context, name, model); } else if (type == BindingType.LOOKUP) { installLookup(context, name, model); } else if (type == BindingType.EXTERNAL_CONTEXT) { installExternalContext(context, name, model); } else { throw NamingLogger.ROOT_LOGGER.unknownBindingType(type.toString()); } }