Search in sources :

Example 1 with JBossServiceConfig

use of org.jboss.as.service.descriptor.JBossServiceConfig in project wildfly by wildfly.

the class ParsedServiceDeploymentProcessor method deploy.

/**
     * Process a deployment for JbossService configuration.  Will install a {@code JBossService} for each configured service.
     *
     * @param phaseContext the deployment unit context
     * @throws DeploymentUnitProcessingException
     */
@Override
public void deploy(final DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException {
    final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit();
    final JBossServiceXmlDescriptor serviceXmlDescriptor = deploymentUnit.getAttachment(JBossServiceXmlDescriptor.ATTACHMENT_KEY);
    if (serviceXmlDescriptor == null) {
        // Skip deployments without a service xml descriptor
        return;
    }
    // assert module
    final Module module = deploymentUnit.getAttachment(Attachments.MODULE);
    if (module == null)
        throw SarLogger.ROOT_LOGGER.failedToGetAttachment("module", deploymentUnit);
    // assert reflection index
    final DeploymentReflectionIndex reflectionIndex = deploymentUnit.getAttachment(Attachments.REFLECTION_INDEX);
    if (reflectionIndex == null)
        throw SarLogger.ROOT_LOGGER.failedToGetAttachment("reflection index", deploymentUnit);
    // install services
    final ClassLoader classLoader = module.getClassLoader();
    final List<JBossServiceConfig> serviceConfigs = serviceXmlDescriptor.getServiceConfigs();
    final ServiceTarget target = phaseContext.getServiceTarget();
    final Map<String, ServiceComponentInstantiator> serviceComponents = deploymentUnit.getAttachment(ServiceAttachments.SERVICE_COMPONENT_INSTANTIATORS);
    for (final JBossServiceConfig serviceConfig : serviceConfigs) {
        addServices(target, serviceConfig, classLoader, reflectionIndex, serviceComponents != null ? serviceComponents.get(serviceConfig.getName()) : null, phaseContext);
    }
}
Also used : JBossServiceXmlDescriptor(org.jboss.as.service.descriptor.JBossServiceXmlDescriptor) ServiceTarget(org.jboss.msc.service.ServiceTarget) JBossServiceConfig(org.jboss.as.service.descriptor.JBossServiceConfig) Module(org.jboss.modules.Module) DeploymentUnit(org.jboss.as.server.deployment.DeploymentUnit) DeploymentReflectionIndex(org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex) ServiceComponentInstantiator(org.jboss.as.service.component.ServiceComponentInstantiator)

Example 2 with JBossServiceConfig

use of org.jboss.as.service.descriptor.JBossServiceConfig in project wildfly by wildfly.

the class JBossServiceXmlDescriptorParserTestCase method testParse.

@Test
public void testParse() throws Exception {
    final File testXmlFile = getResourceFile(JBossServiceXmlDescriptorParserTestCase.class, "/test/serviceXmlDeployment.jar/META-INF/jboss-service.xml");
    final ParseResult<JBossServiceXmlDescriptor> jBossServiceXmlDescriptorParseResult = new ParseResult<JBossServiceXmlDescriptor>();
    InputStream inputStream = null;
    try {
        inputStream = new FileInputStream(testXmlFile);
        final XMLStreamReader reader = inputFactory.createXMLStreamReader(inputStream);
        xmlMapper.parseDocument(jBossServiceXmlDescriptorParseResult, reader);
    } finally {
        if (inputStream != null)
            inputStream.close();
    }
    final JBossServiceXmlDescriptor xmlDescriptor = jBossServiceXmlDescriptorParseResult.getResult();
    assertNotNull(xmlDescriptor);
    final List<JBossServiceConfig> serviceConfigs = xmlDescriptor.getServiceConfigs();
    assertEquals(3, serviceConfigs.size());
    for (JBossServiceConfig jBossServiceConfig : serviceConfigs) {
        assertEquals("org.jboss.as.service.LegacyService", jBossServiceConfig.getCode());
        if (jBossServiceConfig.getName().equals("jboss.test.service")) {
            final JBossServiceConstructorConfig constructorConfig = jBossServiceConfig.getConstructorConfig();
            assertNotNull(constructorConfig);
            final JBossServiceConstructorConfig.Argument[] arguments = constructorConfig.getArguments();
            assertEquals(1, arguments.length);
            assertEquals(String.class.getName(), arguments[0].getType());
            assertEquals("Test Value", arguments[0].getValue());
        } else if (jBossServiceConfig.getName().equals("jboss.test.service.second")) {
            assertNull(jBossServiceConfig.getConstructorConfig());
            final JBossServiceDependencyConfig[] dependencyConfigs = jBossServiceConfig.getDependencyConfigs();
            assertEquals(1, dependencyConfigs.length);
            assertEquals("jboss.test.service", dependencyConfigs[0].getDependencyName());
            assertEquals("other", dependencyConfigs[0].getOptionalAttributeName());
            final JBossServiceAttributeConfig[] attributeConfigs = jBossServiceConfig.getAttributeConfigs();
            assertEquals(1, attributeConfigs.length);
            assertEquals("somethingElse", attributeConfigs[0].getName());
            assertNull(attributeConfigs[0].getInject());
            final JBossServiceAttributeConfig.ValueFactory valueFactory = attributeConfigs[0].getValueFactory();
            assertNotNull(valueFactory);
            assertEquals("jboss.test.service", valueFactory.getBeanName());
            assertEquals("appendSomethingElse", valueFactory.getMethodName());
            final JBossServiceAttributeConfig.ValueFactoryParameter[] parameters = valueFactory.getParameters();
            assertEquals(1, parameters.length);
            assertEquals("java.lang.String", parameters[0].getType());
            assertEquals("more value", parameters[0].getValue());
        } else if (jBossServiceConfig.getName().equals("jboss.test.service.third")) {
            assertNull(jBossServiceConfig.getConstructorConfig());
            final JBossServiceAttributeConfig[] attributeConfigs = jBossServiceConfig.getAttributeConfigs();
            assertEquals(2, attributeConfigs.length);
            assertEquals("other", attributeConfigs[0].getName());
            assertNull(attributeConfigs[0].getValueFactory());
            final JBossServiceAttributeConfig.Inject inject = attributeConfigs[0].getInject();
            assertNotNull(inject);
            assertEquals("jboss.test.service.second", inject.getBeanName());
            assertEquals("other", inject.getPropertyName());
            assertEquals("somethingElse", attributeConfigs[1].getName());
            assertNull(attributeConfigs[1].getValueFactory());
            assertNull(attributeConfigs[1].getInject());
            assertEquals("Another test value", attributeConfigs[1].getValue());
        }
    }
}
Also used : JBossServiceXmlDescriptor(org.jboss.as.service.descriptor.JBossServiceXmlDescriptor) XMLStreamReader(javax.xml.stream.XMLStreamReader) JBossServiceConstructorConfig(org.jboss.as.service.descriptor.JBossServiceConstructorConfig) ParseResult(org.jboss.as.model.ParseResult) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) JBossServiceAttributeConfig(org.jboss.as.service.descriptor.JBossServiceAttributeConfig) JBossServiceConfig(org.jboss.as.service.descriptor.JBossServiceConfig) FileInputStream(java.io.FileInputStream) File(java.io.File) Test(org.junit.Test)

Example 3 with JBossServiceConfig

use of org.jboss.as.service.descriptor.JBossServiceConfig in project wildfly by wildfly.

the class ServiceComponentProcessor method deploy.

@Override
public void deploy(DeploymentPhaseContext phaseContext) throws DeploymentUnitProcessingException {
    final DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit();
    final JBossServiceXmlDescriptor serviceXmlDescriptor = deploymentUnit.getAttachment(JBossServiceXmlDescriptor.ATTACHMENT_KEY);
    if (serviceXmlDescriptor == null) {
        // Skip deployments without a service xml descriptor
        return;
    }
    final EEModuleDescription moduleDescription = deploymentUnit.getAttachment(org.jboss.as.ee.component.Attachments.EE_MODULE_DESCRIPTION);
    if (moduleDescription == null) {
        // not an EE deployment
        return;
    }
    final EEApplicationClasses applicationClassesDescription = deploymentUnit.getAttachment(org.jboss.as.ee.component.Attachments.EE_APPLICATION_CLASSES_DESCRIPTION);
    final Map<String, ServiceComponentInstantiator> serviceComponents = new HashMap<String, ServiceComponentInstantiator>();
    for (final JBossServiceConfig serviceConfig : serviceXmlDescriptor.getServiceConfigs()) {
        ServiceComponentDescription componentDescription = new ServiceComponentDescription(serviceConfig.getName(), serviceConfig.getCode(), moduleDescription, deploymentUnit.getServiceName(), applicationClassesDescription);
        moduleDescription.addComponent(componentDescription);
        serviceComponents.put(serviceConfig.getName(), new ServiceComponentInstantiator(deploymentUnit, componentDescription));
    }
    deploymentUnit.putAttachment(ServiceAttachments.SERVICE_COMPONENT_INSTANTIATORS, serviceComponents);
}
Also used : JBossServiceXmlDescriptor(org.jboss.as.service.descriptor.JBossServiceXmlDescriptor) EEModuleDescription(org.jboss.as.ee.component.EEModuleDescription) EEApplicationClasses(org.jboss.as.ee.component.EEApplicationClasses) HashMap(java.util.HashMap) JBossServiceConfig(org.jboss.as.service.descriptor.JBossServiceConfig) DeploymentUnit(org.jboss.as.server.deployment.DeploymentUnit)

Aggregations

JBossServiceConfig (org.jboss.as.service.descriptor.JBossServiceConfig)3 JBossServiceXmlDescriptor (org.jboss.as.service.descriptor.JBossServiceXmlDescriptor)3 DeploymentUnit (org.jboss.as.server.deployment.DeploymentUnit)2 File (java.io.File)1 FileInputStream (java.io.FileInputStream)1 InputStream (java.io.InputStream)1 HashMap (java.util.HashMap)1 XMLStreamReader (javax.xml.stream.XMLStreamReader)1 EEApplicationClasses (org.jboss.as.ee.component.EEApplicationClasses)1 EEModuleDescription (org.jboss.as.ee.component.EEModuleDescription)1 ParseResult (org.jboss.as.model.ParseResult)1 DeploymentReflectionIndex (org.jboss.as.server.deployment.reflect.DeploymentReflectionIndex)1 ServiceComponentInstantiator (org.jboss.as.service.component.ServiceComponentInstantiator)1 JBossServiceAttributeConfig (org.jboss.as.service.descriptor.JBossServiceAttributeConfig)1 JBossServiceConstructorConfig (org.jboss.as.service.descriptor.JBossServiceConstructorConfig)1 Module (org.jboss.modules.Module)1 ServiceTarget (org.jboss.msc.service.ServiceTarget)1 Test (org.junit.Test)1