Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source.
   * Copyright 2012, Red Hat, Inc., and individual contributors
   * as indicated by the @author tags. See the copyright.txt file in the
   * distribution for a full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.jboss.as.webservices.dmr;
 
 import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.SUBSYSTEM;
 import static org.jboss.as.webservices.WSLogger.ROOT_LOGGER;
 import static org.jboss.as.webservices.dmr.Constants.WSDL_HOST;
 import static org.jboss.as.webservices.dmr.Constants.WSDL_PORT;
 import static org.jboss.as.webservices.dmr.Constants.WSDL_SECURE_PORT;
 
 import java.util.List;
 

Author(s):
Alessio Soldano
Darran Lofthouse
Richard Opalka
 
     static final WSSubsystemAdd INSTANCE = new WSSubsystemAdd();
 
     @Override
     protected void populateModel(final ModelNode operationfinal ModelNode modelthrows OperationFailedException {
         for (AttributeDefinition attr : .) {
             attr.validateAndSet(operationmodel);
         }
     }
 
 
     protected void performBoottime(OperationContext contextModelNode operationModelNode modelServiceVerificationHandler verificationHandlerList<ServiceController<?>> newControllersthrows OperationFailedException {
         ModuleClassLoaderProvider.register();
         final boolean appclient = context.getProcessType() == .;
 
         context.addStep(new AbstractDeploymentChainStep() {
             protected void execute(DeploymentProcessorTarget processorTarget) {
                 // add the DUP for dealing with WS deployments
                 WSDeploymentActivator.activate(processorTargetappclient);
             }
         }, ..);
 
         ServiceTarget serviceTarget = context.getServiceTarget();
         final boolean jmxAvailable = isJMXSubsystemAvailable(context);
         if (appclient && model.hasDefined()) {
             ServerConfigImpl serverConfig = createServerConfig(modeltruecontext);
             newControllers.add(ServerConfigService.install(serviceTargetserverConfigverificationHandlergetServerConfigDependencies(contextappclient), jmxAvailable));
         }
         if (!appclient) {
             ServerConfigImpl serverConfig = createServerConfig(modelfalsecontext);
             newControllers.add(ServerConfigService.install(serviceTargetserverConfigverificationHandlergetServerConfigDependencies(contextappclient), jmxAvailable));
         }
         newControllers.add(XTSClientIntegrationService.install(serviceTargetverificationHandler));
     }
 
     private static ServerConfigImpl createServerConfig(ModelNode configurationboolean appclientOperationContext contextthrows OperationFailedException {
         final ServerConfigImpl config = ServerConfigImpl.newInstance();
        try {
            ModelNode wsdlHost = ..resolveModelAttribute(contextconfiguration);
            config.setWebServiceHost(wsdlHost.isDefined() ? wsdlHost.asString() : null);
        } catch (UnknownHostException e) {
            throw new RuntimeException(e);
        }
        if (!appclient) {
            config.setModifySOAPAddress(..resolveModelAttribute(contextconfiguration).asBoolean());
        }
        if (configuration.hasDefined()) {
            config.setWebServicePort(..resolveModelAttribute(contextconfiguration).asInt());
        }
        if (configuration.hasDefined()) {
            config.setWebServiceSecurePort(..resolveModelAttribute(contextconfiguration).asInt());
        }
        return config;
    }

    
Process the model to figure out the name of the services the server config service has to depend on
    private static List<ServiceNamegetServerConfigDependencies(OperationContext contextboolean appclient) {
        final List<ServiceNameserviceNames = new ArrayList<ServiceName>();
        final Resource subsystemResource = context.readResourceFromRoot(PathAddress.pathAddress(.));
        readConfigServiceNames(serviceNamessubsystemResource.);
        readConfigServiceNames(serviceNamessubsystemResource.);
        if (!appclient) {
            serviceNames.add(.);
        }
        return serviceNames;
    }
    private static void readConfigServiceNames(List<ServiceNameserviceNamesResource subsystemResourceString configType) {
        for (ResourceEntry re : subsystemResource.getChildren(configType)) {
            ServiceName configServiceName = ..equals(configType) ? PackageUtils
                    .getClientConfigServiceName(re.getName()) : PackageUtils.getEndpointConfigServiceName(re.getName());
            serviceNames.add(configServiceName);
        }
    }
    private static boolean isJMXSubsystemAvailable(final OperationContext context) {
        Resource root = context.readResourceFromRoot(PathAddress.pathAddress(.), false);
        return root.hasChild(PathElement.pathElement(.));
    }
New to GrepCode? Check out our FAQ X