Package org.jboss.msc.value

Examples of org.jboss.msc.value.LookupClassValue


        }
    }

    private void addService(final BatchBuilder batchBuilder, final JBossServiceConfig serviceConfig, final Value<ClassLoader> classLoaderValue) {
        final String codeName = serviceConfig.getCode();
        final Value<Class<?>> classValue = cached(new LookupClassValue(codeName, classLoaderValue));

        final List<Value<?>> constructorArguments = new ArrayList<Value<?>>();
        final List<Value<Class<?>>> constructorSignature = new ArrayList<Value<Class<?>>>();

        final JBossServiceConstructorConfig constructorConfig = serviceConfig.getConstructorConfig();
        if(constructorConfig != null) {
            final JBossServiceConstructorConfig.Argument[] arguments = constructorConfig.getArguments();
            for(JBossServiceConstructorConfig.Argument argument : arguments) {
                final Value<Class<?>> attributeTypeValue = cached(new LookupClassValue(argument.getType(), classLoaderValue));
                constructorArguments.add(cached(new ArgumentValue(attributeTypeValue, argument.getValue())));
                constructorSignature.add(attributeTypeValue);
            }
        }

        final Value<Constructor> constructorValue = cached(new LookupConstructorValue(classValue, constructorSignature));
        final Value<Object> constructedValue = cached(new ConstructedValue(constructorValue, constructorArguments));

        final CreateDestroyService<Object> createDestroyService = new CreateDestroyService<Object>(constructedValue);
        final StartStopService<Object> startStopService = new StartStopService<Object>(constructedValue);

        final String serviceName = serviceConfig.getName();
        final ServiceName createDestroyServiceName = convert(serviceName).append(CREATE_SUFFIX);
        final BatchServiceBuilder<?> createDestroyServiceBuilder = batchBuilder.addService(createDestroyServiceName, createDestroyService);
        final ServiceName startStopServiceName = convert(serviceName).append(START_SUFFIX);
        final BatchServiceBuilder<?> startStopServiceBuilder = batchBuilder.addService(startStopServiceName, startStopService);
        startStopServiceBuilder.addDependency(createDestroyServiceName);

        final JBossServiceDependencyConfig[] dependencyConfigs = serviceConfig.getDependencyConfigs();
        if(dependencyConfigs != null) {
            for(JBossServiceDependencyConfig dependencyConfig : dependencyConfigs) {
                final ServiceName dependencyCreateDestroyServiceName = convert(dependencyConfig.getDependencyName()).append(CREATE_SUFFIX);
                final ServiceName dependencyStartStopServiceName = convert(dependencyConfig.getDependencyName()).append(START_SUFFIX);
                final String optionalAttributeName = dependencyConfig.getOptionalAttributeName();
                if(optionalAttributeName != null) {
                    createDestroyServiceBuilder.addDependency(dependencyCreateDestroyServiceName, getPropertyInjector(classValue, optionalAttributeName, createDestroyService, Values.injectedValue()));
                } else {
                    createDestroyServiceBuilder.addDependency(dependencyCreateDestroyServiceName);
                }
                startStopServiceBuilder.addDependency(dependencyStartStopServiceName);
            }
        }

        final JBossServiceAttributeConfig[] attributeConfigs = serviceConfig.getAttributeConfigs();
        if(attributeConfigs != null) {
            for(JBossServiceAttributeConfig attributeConfig : attributeConfigs) {
                final String attributeName = attributeConfig.getName();
                final JBossServiceAttributeConfig.Inject inject = attributeConfig.getInject();
                final JBossServiceAttributeConfig.ValueFactory valueFactory = attributeConfig.getValueFactory();
                if(inject != null) {
                    final String propertyName = inject.getPropertyName();
                    Value<?> valueToInject = Values.injectedValue();
                    if(propertyName != null) {
                        valueToInject = cached(new MethodValue<Object>(new LookupGetMethodValue(classValue, propertyName), valueToInject, Values.<Object>emptyList()));
                    }
                    createDestroyServiceBuilder.addDependency(convert(inject.getBeanName()).append(CREATE_SUFFIX), getPropertyInjector(classValue, attributeName, createDestroyService, valueToInject));
                    startStopServiceBuilder.addDependencies(convert(inject.getBeanName()).append(START_SUFFIX));
                } else if(valueFactory != null) {
                    final String methodName = valueFactory.getMethodName();
                    final JBossServiceAttributeConfig.ValueFactoryParameter[] parameters = valueFactory.getParameters();
                    final List<Value<Class<?>>> paramTypes = new ArrayList<Value<Class<?>>>(parameters.length);
                    final List<Value<?>> paramValues = new ArrayList<Value<?>>(parameters.length);
                    for(JBossServiceAttributeConfig.ValueFactoryParameter parameter : parameters) {
                        final Value<Class<?>> attributeTypeValue = cached(new LookupClassValue(parameter.getType(), classLoaderValue));
                        paramTypes.add(attributeTypeValue);
                        paramValues.add(cached(new ArgumentValue(attributeTypeValue, parameter.getValue())));
                    }
                    final Value<?> valueToInject = cached(new MethodValue(new LookupMethodValue(classValue, methodName, paramTypes), Values.injectedValue(), paramValues));
                    createDestroyServiceBuilder.addDependency(convert(valueFactory.getBeanName()).append(CREATE_SUFFIX), getPropertyInjector(classValue, attributeName, createDestroyService, valueToInject));
View Full Code Here


    public void undeploy(final DeploymentUnit context) {
    }

    private void addService(final ServiceTarget target, final JBossServiceConfig serviceConfig, final Value<ClassLoader> classLoaderValue) {
        final String codeName = serviceConfig.getCode();
        final Value<Class<?>> classValue = cached(new LookupClassValue(codeName, classLoaderValue));

        final List<Value<?>> constructorArguments = new ArrayList<Value<?>>();
        final List<Value<Class<?>>> constructorSignature = new ArrayList<Value<Class<?>>>();

        final JBossServiceConstructorConfig constructorConfig = serviceConfig.getConstructorConfig();
        if(constructorConfig != null) {
            final JBossServiceConstructorConfig.Argument[] arguments = constructorConfig.getArguments();
            for(JBossServiceConstructorConfig.Argument argument : arguments) {
                final Value<Class<?>> attributeTypeValue = cached(new LookupClassValue(argument.getType(), classLoaderValue));
                constructorArguments.add(cached(new ArgumentValue(attributeTypeValue, argument.getValue())));
                constructorSignature.add(attributeTypeValue);
            }
        }

        final Value<Constructor<?>> constructorValue = cached(new LookupConstructorValue(classValue, constructorSignature));
        final Value<Object> constructedValue = cached(new ConstructedValue(constructorValue, constructorArguments));

        final CreateDestroyService<Object> createDestroyService = new CreateDestroyService<Object>(constructedValue);
        final StartStopService<Object> startStopService = new StartStopService<Object>(constructedValue);

        final String serviceName = serviceConfig.getName();
        final ServiceName createDestroyServiceName = convert(serviceName).append(CREATE_SUFFIX);
        final ServiceBuilder<?> createDestroyServiceBuilder = target.addService(createDestroyServiceName, createDestroyService);
        final ServiceName startStopServiceName = convert(serviceName).append(START_SUFFIX);
        final ServiceBuilder<?> startStopServiceBuilder = target.addService(startStopServiceName, startStopService);
        startStopServiceBuilder.addDependency(createDestroyServiceName);

        final JBossServiceDependencyConfig[] dependencyConfigs = serviceConfig.getDependencyConfigs();
        if(dependencyConfigs != null) {
            for(JBossServiceDependencyConfig dependencyConfig : dependencyConfigs) {
                final ServiceName dependencyCreateDestroyServiceName = convert(dependencyConfig.getDependencyName()).append(CREATE_SUFFIX);
                final ServiceName dependencyStartStopServiceName = convert(dependencyConfig.getDependencyName()).append(START_SUFFIX);
                final String optionalAttributeName = dependencyConfig.getOptionalAttributeName();
                if(optionalAttributeName != null) {
                    createDestroyServiceBuilder.addDependency(dependencyCreateDestroyServiceName, getPropertyInjector(classValue, optionalAttributeName, createDestroyService, Values.injectedValue()));
                } else {
                    createDestroyServiceBuilder.addDependency(dependencyCreateDestroyServiceName);
                }
                startStopServiceBuilder.addDependency(dependencyStartStopServiceName);
            }
        }

        final JBossServiceAttributeConfig[] attributeConfigs = serviceConfig.getAttributeConfigs();
        if(attributeConfigs != null) {
            for(JBossServiceAttributeConfig attributeConfig : attributeConfigs) {
                final String attributeName = attributeConfig.getName();
                final JBossServiceAttributeConfig.Inject inject = attributeConfig.getInject();
                final JBossServiceAttributeConfig.ValueFactory valueFactory = attributeConfig.getValueFactory();
                if(inject != null) {
                    final String propertyName = inject.getPropertyName();
                    Value<?> valueToInject = Values.injectedValue();
                    if(propertyName != null) {
                        valueToInject = cached(new MethodValue<Object>(new LookupGetMethodValue(classValue, propertyName), valueToInject, Values.<Object>emptyList()));
                    }
                    createDestroyServiceBuilder.addDependency(convert(inject.getBeanName()).append(CREATE_SUFFIX), getPropertyInjector(classValue, attributeName, createDestroyService, valueToInject));
                    startStopServiceBuilder.addDependencies(convert(inject.getBeanName()).append(START_SUFFIX));
                } else if(valueFactory != null) {
                    final String methodName = valueFactory.getMethodName();
                    final JBossServiceAttributeConfig.ValueFactoryParameter[] parameters = valueFactory.getParameters();
                    final List<Value<Class<?>>> paramTypes = new ArrayList<Value<Class<?>>>(parameters.length);
                    final List<Value<?>> paramValues = new ArrayList<Value<?>>(parameters.length);
                    for(JBossServiceAttributeConfig.ValueFactoryParameter parameter : parameters) {
                        final Value<Class<?>> attributeTypeValue = cached(new LookupClassValue(parameter.getType(), classLoaderValue));
                        paramTypes.add(attributeTypeValue);
                        paramValues.add(cached(new ArgumentValue(attributeTypeValue, parameter.getValue())));
                    }
                    final Value<?> valueToInject = cached(new MethodValue(new LookupMethodValue(classValue, methodName, paramTypes), Values.injectedValue(), paramValues));
                    createDestroyServiceBuilder.addDependency(convert(valueFactory.getBeanName()).append(CREATE_SUFFIX), getPropertyInjector(classValue, attributeName, createDestroyService, valueToInject));
View Full Code Here

TOP

Related Classes of org.jboss.msc.value.LookupClassValue

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.