blob: 583f2c7d215f1d65790818cbd0c6c5646ac085f1 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.axis2.osgi.core;
import org.apache.axis2.osgi.core.web.WebApp;
import org.osgi.framework.Bundle;
/**
* SOAPProvider is an interface for generic SOAP functionality.
* Use this interface to register SOAPProvider services with the OSGi
* runtime using the <code>BundleContext.registerService()</code> methods.
*/
public interface SOAPProvider {
/**
* The name of the SOAPProvider implementation. Use this as the key when constructing
* the service's properties for registration with the OSGi runtime.
*/
public static final String PROVIDER_NAME = "Name";
/**
* The major version of the SOAPProvider implementation. Use this as the key when constructing
* the service's properties for registration with the OSGi runtime.
*/
public static final String PROVIDER_MAJOR_VERSION = "MajorVersion";
/**
* The minor version of the SOAPProvider implementation. Use this as the key when constructing
* the service's properties for registration with the OSGi runtime.
*/
public static final String PROVIDER_MINOR_VERSION = "MinorVersion";
/**
* Getter method for the implementation's provider name. This name should be the same
* as the one used during the registration of the SOAPProvider service
*
* @return the Provider Name
*/
public String getProviderName();
/**
* Getter method for the implementation's version. This name should be constructed
* from the major and minor versions used during registration of the SOAPProvider service.
*
* @return the Provider Version
*/
public String getProviderVersion();
public Object getProviderEngine();
public Object getProviderDeployer();
public Object getProviderDeployer(WebApp webApp);
/**
* Deploys an Object as a WebService using the implementation's default binding type.
* The service is deployed into the provider's default application context.
*
* @param srvName the display name of the service
* @param srvClass the class or interface that should be exposed. Specifying an interface
* allows only the desired methods of the service object to be published.
* @param srvObject the actual implementation
* @throws Exception
*/
public void deployService(String srvName, Class srvClass, Object srvObject, String handlerChain) throws Exception;
/**
* Deploys an Object as a WebService using a specified binding type
* The service is deployed into the provider's default application context.
*
* @param srvName the display name of the service
* @param bindingType the name of the desired binding type
* @param srvClass the class or interface that should be exposed. Specifying an interface
* allows only the desired methods of the service object to be published.
* @param srvObject the actual implementation
* @throws Exception
*/
public void deployService(String srvName, String bindingType, Class srvClass, Object srvObject, String handlerChain) throws Exception;
/**
* Deploys an Object as a WebService using the provider's default binding type.
* The service is deployed into the specified <code>WebApp</code> context
*
* @param webApp the target web application context
* @param srvName the display name of the service
* @param srvClass the class or interface that should be exposed. Specifying an interface
* allows only the desired methods of the service object to be published.
* @param srvObject the actual implementation
* @throws Exception
*/
public void deployService(WebApp webApp, String srvName, Class srvClass, Object srvObject, String handlerChain) throws Exception;
/**
* Deploys an Object as a WebService using a specified binding type
* The service is deployed into the specified <code>WebApp</code> context
*
* @param webApp the target web application context
* @param srvName the display name of the service
* @param bindingType the name of the desired binding type
* @param srvClass the class or interface that should be exposed. Specifying an interface
* allows only the desired methods of the service object to be published.
* @param srvObject the actual implementation
* @throws Exception
*/
public void deployService(WebApp webApp, String srvName, String bindingType, Class srvClass, Object srvObject, String handlerChain) throws Exception;
public void undeployService(String srvName, Class srvClass) throws Exception;
public void undeployService(WebApp webApp, String srvName, Class srvClass) throws Exception;
/**
* Gets a web application from the provider for the given context path.
*
* @param contextPath the context path of the desired WebApp
* @param create if <code>true</code>, create the WebApp if it does not exits.
* @return return the WebApp
* @throws Exception
*/
public WebApp getWebApp(String contextPath, boolean create) throws Exception;
/**
* Gets a web application from the provider for the given context path, using
* the provided bundle as the location for the engine's configuration information
*
* @param contextPath the context path of the desired WebApp
* @param create if <code>true</code>, create the WebApp if it does not exits.
* @return return the WebApp
* @throws Exception
*/
public WebApp getWebApp(Bundle bundle, String contextPath, boolean create) throws Exception;
}