| /* |
| * 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; |
| |
| } |