Search in sources :

Example 1 with EndpointConfig

use of org.jboss.wsf.spi.metadata.config.EndpointConfig in project wildfly by wildfly.

the class WSIntegrationProcessorJAXWS_HANDLER method processAnnotation.

@Override
protected void processAnnotation(final DeploymentUnit unit, final EEModuleDescription moduleDescription) throws DeploymentUnitProcessingException {
    final WSEndpointHandlersMapping mapping = getOptionalAttachment(unit, WS_ENDPOINT_HANDLERS_MAPPING_KEY);
    final VirtualFile root = unit.getAttachment(DEPLOYMENT_ROOT).getRoot();
    final JBossWebservicesMetaData jbossWebservicesMD = unit.getAttachment(WSAttachmentKeys.JBOSS_WEBSERVICES_METADATA_KEY);
    final CompositeIndex index = unit.getAttachment(Attachments.COMPOSITE_ANNOTATION_INDEX);
    final boolean war = DeploymentTypeMarker.isType(DeploymentType.WAR, unit);
    final JBossWebMetaData jwmd = ASHelper.getJBossWebMetaData(unit);
    for (EEModuleClassDescription classDescription : moduleDescription.getClassDescriptions()) {
        ClassInfo classInfo = null;
        ClassAnnotationInformation<WebService, WebServiceAnnotationInfo> annotationInfo = classDescription.getAnnotationInformation(WebService.class);
        if (annotationInfo != null) {
            classInfo = (ClassInfo) annotationInfo.getClassLevelAnnotations().get(0).getTarget();
        }
        final ClassAnnotationInformation<WebServiceProvider, WebServiceProviderAnnotationInfo> providreInfo = classDescription.getAnnotationInformation(WebServiceProvider.class);
        if (providreInfo != null) {
            classInfo = (ClassInfo) providreInfo.getClassLevelAnnotations().get(0).getTarget();
        }
        if (classInfo != null && isJaxwsEndpoint(classInfo, index, false)) {
            final String endpointClassName = classInfo.name().toString();
            final ConfigResolver configResolver = new ConfigResolver(classInfo, jbossWebservicesMD, jwmd, root, war);
            final EndpointConfig config = configResolver.resolveEndpointConfig();
            if (config != null) {
                registerConfigMapping(endpointClassName, config, unit);
            }
            final Set<String> handlers = getHandlers(endpointClassName, config, configResolver, mapping);
            if (!handlers.isEmpty()) {
                if (isEjb3(classInfo)) {
                    for (final EJBEndpoint ejbEndpoint : getJaxwsEjbs(unit)) {
                        if (endpointClassName.equals(ejbEndpoint.getClassName())) {
                            for (final String handlerClassName : handlers) {
                                final String ejbEndpointName = ejbEndpoint.getName();
                                final String handlerName = ejbEndpointName + "-" + handlerClassName;
                                final ComponentDescription jaxwsHandlerDescription = createComponentDescription(unit, handlerName, handlerClassName, ejbEndpointName);
                                propagateNamingContext(jaxwsHandlerDescription, ejbEndpoint);
                            }
                        }
                    }
                } else {
                    for (final POJOEndpoint pojoEndpoint : getJaxwsPojos(unit)) {
                        if (endpointClassName.equals(pojoEndpoint.getClassName())) {
                            for (final String handlerClassName : handlers) {
                                final String pojoEndpointName = pojoEndpoint.getName();
                                final String handlerName = pojoEndpointName + "-" + handlerClassName;
                                createComponentDescription(unit, handlerName, handlerClassName, pojoEndpointName);
                            }
                        }
                    }
                }
            }
        }
    }
}
Also used : VirtualFile(org.jboss.vfs.VirtualFile) JBossWebMetaData(org.jboss.metadata.web.jboss.JBossWebMetaData) ComponentDescription(org.jboss.as.ee.component.ComponentDescription) WebService(javax.jws.WebService) CompositeIndex(org.jboss.as.server.deployment.annotation.CompositeIndex) POJOEndpoint(org.jboss.as.webservices.metadata.model.POJOEndpoint) WSEndpointHandlersMapping(org.jboss.as.webservices.injection.WSEndpointHandlersMapping) WebServiceProvider(javax.xml.ws.WebServiceProvider) JBossWebservicesMetaData(org.jboss.wsf.spi.metadata.webservices.JBossWebservicesMetaData) EJBEndpoint(org.jboss.as.webservices.metadata.model.EJBEndpoint) EEModuleClassDescription(org.jboss.as.ee.component.EEModuleClassDescription) EndpointConfig(org.jboss.wsf.spi.metadata.config.EndpointConfig) ClassInfo(org.jboss.jandex.ClassInfo)

Example 2 with EndpointConfig

use of org.jboss.wsf.spi.metadata.config.EndpointConfig in project wildfly by wildfly.

the class ConfigService method start.

@Override
public void start(final StartContext context) throws StartException {
    Map<String, String> props = null;
    if (!properties.isEmpty()) {
        props = new HashMap<String, String>(properties.size(), 1);
        for (PropertyService ps : properties) {
            props.put(ps.getPropName(), ps.getPropValue());
        }
    }
    if (client) {
        ClientConfig clientConfig = new ClientConfig(configName, preHandlerChains, postHandlerChains, props, null);
        serverConfig.registerClientConfig(clientConfig);
        config = clientConfig;
    } else {
        EndpointConfig endpointConfig = new EndpointConfig(configName, preHandlerChains, postHandlerChains, props, null);
        serverConfig.registerEndpointConfig(endpointConfig);
        config = endpointConfig;
    }
}
Also used : ClientConfig(org.jboss.wsf.spi.metadata.config.ClientConfig) EndpointConfig(org.jboss.wsf.spi.metadata.config.EndpointConfig)

Example 3 with EndpointConfig

use of org.jboss.wsf.spi.metadata.config.EndpointConfig in project wildfly by wildfly.

the class WebservicesSubsystemRuntimeTestCase method testSubsystem.

@Test
public void testSubsystem() throws Exception {
    KernelServicesBuilder builder = createKernelServicesBuilder(createAdditionalInitialization()).setSubsystemXml(getSubsystemXml());
    KernelServices mainServices = builder.build();
    if (!mainServices.isSuccessfulBoot()) {
        Assert.fail(mainServices.getBootError().toString());
    }
    //WSDL soap:address rewrite engine options test
    ServerConfig serverConfig = getMSCService(mainServices.getContainer(), WSServices.CONFIG_SERVICE, ServerConfig.class);
    Assert.assertTrue(serverConfig.isModifySOAPAddress());
    Assert.assertEquals("localhost", serverConfig.getWebServiceHost());
    Assert.assertEquals(9895, serverConfig.getWebServicePort());
    Assert.assertEquals(9944, serverConfig.getWebServiceSecurePort());
    Assert.assertEquals("https", serverConfig.getWebServiceUriScheme());
    //Client & Endpoint predefined configuration tests
    //HACK: we need to manually reload the client/endpoint configs as the ServerConfigService is actually not starting in this test;
    //the reason is that it requires services which are not installed here and even if those were available it would fail to start
    //because we're not running in a modular environment and hence it won't be able to detect the proper ws stack implementation.
    //Even if we made the subsystem work with a flat classloader (which would not make sense except for the tests here), we'd have
    //to deal a hell of ws specific maven dependencies here... so really not worth the effort.
    serverConfig.reloadClientConfigs();
    ClientConfig clCfg = serverConfig.getClientConfig("My-Client-Config");
    Assert.assertNotNull(clCfg);
    Assert.assertEquals(1, clCfg.getProperties().size());
    Assert.assertEquals("bar3", clCfg.getProperties().get("foo3"));
    Assert.assertEquals(2, clCfg.getPreHandlerChains().size());
    Map<String, UnifiedHandlerChainMetaData> map = new HashMap<String, UnifiedHandlerChainMetaData>();
    for (UnifiedHandlerChainMetaData uhc : clCfg.getPreHandlerChains()) {
        map.put(uhc.getId(), uhc);
    }
    Assert.assertTrue(map.get("my-handlers").getHandlers().isEmpty());
    Assert.assertEquals("##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM", map.get("my-handlers").getProtocolBindings());
    Assert.assertEquals(1, map.get("my-handlers2").getHandlers().size());
    Assert.assertEquals("MyHandler", map.get("my-handlers2").getHandlers().get(0).getHandlerName());
    Assert.assertEquals("org.jboss.ws.common.invocation.MyHandler", map.get("my-handlers2").getHandlers().get(0).getHandlerClass());
    Assert.assertEquals("##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM", map.get("my-handlers").getProtocolBindings());
    Assert.assertEquals(1, clCfg.getPostHandlerChains().size());
    Assert.assertEquals("my-handlers2", clCfg.getPostHandlerChains().get(0).getId());
    Assert.assertEquals(1, clCfg.getPostHandlerChains().get(0).getHandlers().size());
    Assert.assertEquals("MyHandler2", clCfg.getPostHandlerChains().get(0).getHandlers().get(0).getHandlerName());
    Assert.assertEquals("org.jboss.ws.common.invocation.MyHandler2", clCfg.getPostHandlerChains().get(0).getHandlers().get(0).getHandlerClass());
    Assert.assertEquals("##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM", clCfg.getPostHandlerChains().get(0).getProtocolBindings());
    serverConfig.reloadEndpointConfigs();
    EndpointConfig epCfg = serverConfig.getEndpointConfig("Standard-Endpoint-Config");
    Assert.assertNotNull(epCfg);
    Assert.assertTrue(epCfg.getProperties().isEmpty());
    Assert.assertTrue(epCfg.getPreHandlerChains().isEmpty());
    Assert.assertTrue(epCfg.getPostHandlerChains().isEmpty());
    epCfg = serverConfig.getEndpointConfig("Recording-Endpoint-Config");
    Assert.assertNotNull(epCfg);
    Assert.assertEquals(2, epCfg.getProperties().size());
    Assert.assertEquals("bar", epCfg.getProperties().get("foo"));
    Assert.assertEquals("bar2", epCfg.getProperties().get("foo2"));
    Assert.assertEquals(1, epCfg.getPreHandlerChains().size());
    Assert.assertEquals("recording-handlers", epCfg.getPreHandlerChains().get(0).getId());
    Assert.assertEquals(2, epCfg.getPreHandlerChains().get(0).getHandlers().size());
    Assert.assertEquals("RecordingHandler", epCfg.getPreHandlerChains().get(0).getHandlers().get(0).getHandlerName());
    Assert.assertEquals("org.jboss.ws.common.invocation.RecordingServerHandler", epCfg.getPreHandlerChains().get(0).getHandlers().get(0).getHandlerClass());
    Assert.assertEquals("AnotherRecordingHandler", epCfg.getPreHandlerChains().get(0).getHandlers().get(1).getHandlerName());
    Assert.assertEquals("org.jboss.ws.common.invocation.RecordingServerHandler", epCfg.getPreHandlerChains().get(0).getHandlers().get(1).getHandlerClass());
    Assert.assertEquals("##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM", epCfg.getPreHandlerChains().get(0).getProtocolBindings());
    Assert.assertEquals(1, epCfg.getPostHandlerChains().size());
    Assert.assertEquals("recording-handlers2", epCfg.getPostHandlerChains().get(0).getId());
    Assert.assertEquals(2, epCfg.getPostHandlerChains().get(0).getHandlers().size());
    Assert.assertEquals("RecordingHandler2", epCfg.getPostHandlerChains().get(0).getHandlers().get(0).getHandlerName());
    Assert.assertEquals("org.jboss.ws.common.invocation.RecordingServerHandler", epCfg.getPostHandlerChains().get(0).getHandlers().get(0).getHandlerClass());
    Assert.assertEquals("AnotherRecordingHandler2", epCfg.getPostHandlerChains().get(0).getHandlers().get(1).getHandlerName());
    Assert.assertEquals("org.jboss.ws.common.invocation.RecordingServerHandler", epCfg.getPostHandlerChains().get(0).getHandlers().get(1).getHandlerClass());
    Assert.assertEquals("##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM", epCfg.getPostHandlerChains().get(0).getProtocolBindings());
}
Also used : ServerConfig(org.jboss.wsf.spi.management.ServerConfig) HashMap(java.util.HashMap) UnifiedHandlerChainMetaData(org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerChainMetaData) KernelServices(org.jboss.as.subsystem.test.KernelServices) ClientConfig(org.jboss.wsf.spi.metadata.config.ClientConfig) KernelServicesBuilder(org.jboss.as.subsystem.test.KernelServicesBuilder) EndpointConfig(org.jboss.wsf.spi.metadata.config.EndpointConfig) AbstractSubsystemBaseTest(org.jboss.as.subsystem.test.AbstractSubsystemBaseTest) Test(org.junit.Test)

Aggregations

EndpointConfig (org.jboss.wsf.spi.metadata.config.EndpointConfig)3 ClientConfig (org.jboss.wsf.spi.metadata.config.ClientConfig)2 HashMap (java.util.HashMap)1 WebService (javax.jws.WebService)1 WebServiceProvider (javax.xml.ws.WebServiceProvider)1 ComponentDescription (org.jboss.as.ee.component.ComponentDescription)1 EEModuleClassDescription (org.jboss.as.ee.component.EEModuleClassDescription)1 CompositeIndex (org.jboss.as.server.deployment.annotation.CompositeIndex)1 AbstractSubsystemBaseTest (org.jboss.as.subsystem.test.AbstractSubsystemBaseTest)1 KernelServices (org.jboss.as.subsystem.test.KernelServices)1 KernelServicesBuilder (org.jboss.as.subsystem.test.KernelServicesBuilder)1 WSEndpointHandlersMapping (org.jboss.as.webservices.injection.WSEndpointHandlersMapping)1 EJBEndpoint (org.jboss.as.webservices.metadata.model.EJBEndpoint)1 POJOEndpoint (org.jboss.as.webservices.metadata.model.POJOEndpoint)1 ClassInfo (org.jboss.jandex.ClassInfo)1 JBossWebMetaData (org.jboss.metadata.web.jboss.JBossWebMetaData)1 VirtualFile (org.jboss.vfs.VirtualFile)1 ServerConfig (org.jboss.wsf.spi.management.ServerConfig)1 UnifiedHandlerChainMetaData (org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerChainMetaData)1 JBossWebservicesMetaData (org.jboss.wsf.spi.metadata.webservices.JBossWebservicesMetaData)1