Package org.pentaho.platform.plugin.services.pluginmgr.servicemgr

Source Code of org.pentaho.platform.plugin.services.pluginmgr.servicemgr.AxisWebServiceManager

/*!
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program 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.
*
* Copyright (c) 2002-2013 Pentaho Corporation..  All rights reserved.
*/

package org.pentaho.platform.plugin.services.pluginmgr.servicemgr;

import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.engine.AxisConfiguration;
import org.apache.axis2.engine.AxisConfigurator;
import org.pentaho.platform.api.engine.IServiceConfig;
import org.pentaho.platform.api.engine.ServiceInitializationException;
import org.pentaho.platform.engine.core.system.PentahoSessionHolder;
import org.pentaho.platform.plugin.services.webservices.AbstractAxisConfigurator;
import org.pentaho.platform.plugin.services.webservices.AxisUtil;
import org.pentaho.platform.plugin.services.webservices.SystemSolutionAxisConfigurator;

public class AxisWebServiceManager extends AbstractServiceTypeManager {

  public static ConfigurationContext currentAxisConfigContext;

  public static AxisConfiguration currentAxisConfiguration;

  public void setExecuteServiceId( String executeServiceId ) {
    AxisUtil.WS_EXECUTE_SERVICE_ID = executeServiceId;
  }

  public void setWsdlServiceId( String wsdlServiceId ) {
    AxisUtil.WSDL_SERVICE_ID = wsdlServiceId;
  }

  private SystemSolutionAxisConfigurator configurator = new SystemSolutionAxisConfigurator();

  protected AbstractAxisConfigurator getConfigurator() {
    return configurator;
  }

  /*
   * (non-Javadoc)
   *
   * @see
   * org.pentaho.platform.plugin.services.pluginmgr.IServiceManager#defineService(org.pentaho.platform.plugin.services
   * .pluginmgr.WebServiceDefinition)
   */
  @Override
  public void registerService( final IServiceConfig wsConfig ) {
    super.registerService( wsConfig );
    getConfigurator().addService( wsConfig );
  }

  /*
   * (non-Javadoc)
   *
   * @see org.pentaho.platform.plugin.services.pluginmgr.IServiceManager#initServices()
   */
  public void initServices() throws ServiceInitializationException {
    getConfigurator().setSession( PentahoSessionHolder.getSession() );
    AxisConfigurator axisConfigurator = getConfigurator();

    // create the axis configuration and make it accessible to content generators via static member
    ConfigurationContext configContext = null;
    try {
      configContext = ConfigurationContextFactory.createConfigurationContext( axisConfigurator );
    } catch ( AxisFault e ) {
      throw new ServiceInitializationException( e );
    }
    configContext.setProperty( Constants.CONTAINER_MANAGED, Constants.VALUE_TRUE );

    currentAxisConfigContext = configContext;
    currentAxisConfiguration = configContext.getAxisConfiguration();

    // now load the services
    axisConfigurator.loadServices();
  }

  public String getSupportedServiceType() {
    return "xml"; //$NON-NLS-1$
  }
}
TOP

Related Classes of org.pentaho.platform.plugin.services.pluginmgr.servicemgr.AxisWebServiceManager

TOP
Copyright © 2018 www.massapi.com. 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.