View Javadoc
1   /**
2    * Copyright By Grandsoft Company Limited.  
3    * 2012-2-6 下午02:03:06
4    */
5   package gboat2.cxf.business;
6   
7   import gboat2.base.core.service.IBaseService;
8   import gboat2.cxf.model.WebServiceConfig;
9   import gboat2.cxf.model.WebServiceConfigParam;
10  
11  import org.osgi.framework.ServiceRegistration;
12  
13  /**
14   * CXF WebService 服务配置的业务处理类
15   * 
16   * @author zhaic
17   * @author <a href="mailto:[email protected]">何明旺</a>
18   * @since 1.0
19   * @date 2012年2月6日
20   */
21  public interface IWebServiceConfigBusiness extends IBaseService {
22  	
23  	public static final String SITE_ADDRESS_KEY = "p_site_address";
24  	
25  	public static final String PORT_KEY = "p_port";
26  	
27  	public static final String PORT_VALUE = "8090";
28  	
29  	/*-------------------------- 何明旺 新增    开始 -----------------------------*/
30  	
31  	/** 定义可以对外公开的服务接口(全限定名),多值之间使用逗号分隔的,可以使用通配符 * 表示所有 */
32  	String EXPORTED_INTERFACES = "service.exported.interfaces";
33  	
34  	/**
35  	 * 定义服务公开的类型,可选值有:
36  	 * <ol>
37  	 * <li><b>org.apache.cxf.ws</b> - 将 OSGI 服务公开为 webService 服务(对应老版本中的 pojo)</li>
38  	 * <li><b>wsdl</b> - 从 WSDL 中读取配置信息</li> 
39  	 * </ol>
40  	 */
41  	String EXPORTED_CONFIGS = "service.exported.configs";
42  	
43  	/** WebService 服务发布的地址 */
44  	String WS_ADDRESS = "org.apache.cxf.ws.address";
45  	
46  	/*-------------------------- 何明旺 新增    结束 -----------------------------*/
47  	
48  	/**
49  	 * 发布所有配置好的、符合条件的服务
50  	 * @return 接口全名和ServiceRegistration对象键值对
51  	 */
52  	//public boolean publishAllServicesIf();
53  	
54  	/**
55  	 * 根据指定的配置发布服务
56  	 * @param serviceConfig web服务配置对象
57  	 * @return OSGI ServiceRegistration 对象
58  	 */
59  	public ServiceRegistration publishService(WebServiceConfig serviceConfig);
60  	
61  	/**
62  	 * 撤销指定的配置所发布的服务
63  	 * @param config 配置对象
64  	 */
65  	public void unpublishService(WebServiceConfig config);
66  	
67  	/**
68  	 * 撤销所有的web service
69  	 */
70  	//public void unpublishAllServices();
71  	
72  	/**
73  	 * 开始发布web service,本方法的实现应保证当多次调用本方法时,自动避免重复发布
74  	 */
75  	public void startPublishAndTrackWebService();
76  	
77  	/**
78  	 * 根据key获取web服务配置参数
79  	 * @param key 参数键
80  	 * @return
81  	 */
82  	public WebServiceConfigParam getWebSerConfParam(String key);
83  	
84  	/**
85  	 * 
86  	 * 判断该服务接口是否是当前Bundle导出的
87  	 * @param expPckNames 当前Bundle导出的所有包名字符串
88  	 * @param serviceName 当前service对应的接口全名
89  	 * @return
90  	 */
91  	public boolean decideCurrentService(String expPckNamesString, String serviceName);
92  }