...
There are several versions of the WS-Policy Framework and WS-Policy Attachment specifications out there at the moment, not sure which one(s) CXF should aim to support:
September 2004:
Web Services Policy Framework
Web Services Policy Attachment
...
Web Services Policy 1.5 - Framework
Web Services Policy 1.5 - Attachment
CXF supports Version 1.5 (but will not initially include support for WSDL 2.0 attachments). Version 1.2 is the one supported by Neethi. Version 1.5 covers attachment in WSDL 2.0.
APIs
The following are tentative suggestions for the APIs as part of the CXF policy framework.
...
Some of the schema types currently used in configuring the http and jms transports may be used as assertions. One advantage would be these types do not have to extend wsdl:tExtensibilityElement any more, yet mor. Instead the content of these elements could be verified by their respectie respective assertion builders. Also, the types can be used much more flexibly as assertions than as extension elements registered for say the wsdl:port element only (as assertions, they can be attached to the port type or the port, the service, and even appear outside of wsdl in PolicyAttachment elements). The preferred (but not mandatory) transition would be from:
Code Block | ||||
---|---|---|---|---|
| ||||
<service name="HelloWorldPubSubServiceGreeterService"> <port binding="tns:HelloWorldPubSubBindingGreeterSOAPBinding" name="HelloWorldPubSubPortGreeterPort"> <jms<http:address destinationStyle="topic" jndiConnectionFactoryName="ConnectionFactory" jndiDestinationName="dynamicTopics/test.jmstransport.oneway.topic"> <jms:JMSNamingProperty name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" location="http://localhost:9020/SoapContext/GreeterPort"/> <jms:JMSNamingProperty name="java.naming.provider.url" value="tcp://localhost:61500<http-conf:client xmlns:http-conf="http://cxf.apache.org/transports/http/configuration" ReceiveTimeout="60000"/> </jms:address> </port> </service> |
to:
Code Block | ||||
---|---|---|---|---|
| ||||
<service name="HelloWorldPubSubServiceGreeterService"> <port binding="tns:HelloWorldPubSubBindingGreeterSOAPBinding" name="HelloWorldPubSubPortGreeterPort"> <wsp:Policy> <jms:address destinationStyle="topic" jndiConnectionFactoryName="ConnectionFactory" <http:address xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" location="http://localhost:9020/SoapContext/GreeterPort"/> <wsp:Policy> jndiDestinationName="dynamicTopics/test.jmstransport.oneway.topic"> <jms:JMSNamingProperty name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/> <jms:JMSNamingProperty name="java.naming.provider.url" value="tcp://localhost:61500"/> </jms:address> <http-conf:client xmlns:http-conf="http://cxf.apache.org/transports/http/configuration" ReceiveTimeout="60000"/> <wsp:Policy> </port> </service> |
or:
Code Block | ||||
---|---|---|---|---|
| ||||
<definition...> ... <service name="HelloWorldPubSubServiceGreeterService"> <port binding="tns:HelloWorldPubSubBindingGreeterSOAPBinding" name="HelloWorldPubSubPort""GreeterPort"> <http:address xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" location="http://localhost:9020/SoapContext/GreeterPort"/> </port> </service> </definition> <wsp:PolicyAttachment> <wsp:AppliesTo> <wsp:URI>http://cxf.apache.org/testutils/wslwsdl/jmsgreeter_testcontrol.wsdl#wsdl.port(HelloWorldPubSubServiceGreeterService/HelloWorldPubSubPortGreeterPort)</wsp:URI> </wsp:AppliesTo> <wsp:Policy> <jms:address destinationStyle="topic" jndiConnectionFactoryName="ConnectionFactory" jndiDestinationName="dynamicTopics/test.jmstransport.oneway.topic"> <jms:JMSNamingProperty name="java.naming.factory.initial" value="org.apache.activemq.jndi.ActiveMQInitialContextFactory"/> <jms:JMSNamingProperty name="java.naming.provider.url" value="tcp://localhost:61500 <http-conf:client xmlns:http-conf="http://cxf.apache.org/transports/http/configuration" ReceiveTimeout="60000"/> </jms:address> </wsp<wsp:Policy> </wsp:PolicyAttachment> |
with the PolicyAtachment elemennt beign element being defined in some external document.