9. jbossws-spi 和 jbossws-cxf 里的修改

本版本里的修改的目的是为了提高稳定性、在需要时防止并行访问出现问题并确保线程安全。
为了实现这一点,我们以向后兼容的方式重构了 SPI 里的一些类。
这些修改不会影响大部分用户,因为受影响的类是用来构建 Webservice 栈和应用程序服务器容器间的集成接口,而不是针对最终的用户使用的。
最终用户如果在程序里使用了 org.jboss.wsf.spi.metadata.config.CommonConfigorg.jboss.wsf.spi.management.ServerConfig 及其实现,他们只需要留意和移植相关的代码的改动。
下列的修改可能影响在程序里依赖于改动的 SPI 类的用户:
CommonConfig 现在是不可变的,因此下列方法已被删除。
  • public void setPostHandlerChains(List<UnifiedHandlerChainMetaData> postHandlerChain);
  • public void setPreHandlerChains(List<UnifiedHandlerChainMetaData> preHandlerChains);
  • public void setConfigName(String configName);
  • public void setFeature(Feature feature, boolean enabled);
  • public void setProperty(String name, String value);
ServerConfig 有了注册和取销注册 CommonConfig 实例(在容器引导期间)的新机制,从而防止了在运行时进行不安全的修改。用户应该意识到下列方法已被舍弃。

已舍弃的 ServerConfig 方法

  • public List<ClientConfig> getClientConfigs();
  • public List<EndpointConfig> getEndpointConfigs();

新的 ServerConfig 方法

  • public ClientConfig getClientConfig(String name);
  • public EndpointConfig getEndpointConfig(String name);

不影响普通用户的其他修改

  • org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData、org.jboss.wsf.spi.metadata.webservices.WebserviceDescriptionMetaData 和 org.jboss.wsf.spi.metadata.webservices.PortComponentMetaData 的构造器已进行修改,因为这些类的实例现在是不可变的。当使用传入 WebservicesMetaData 实例(可选)的 org.jboss.wsf.spi.publish.EndpointPublisher 时这是相关的。