This is an automated email from the ASF dual-hosted git repository. billblough pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/axis-axis2-java-savan.git
commit 5b66748699062ea50f924e04045427052d920053 Author: Chamikara Madhusanka Jayalath <chamik...@apache.org> AuthorDate: Sat May 12 17:00:53 2007 +0000 Changed the API of the publication client to take the publication and a service as a parameter. Fixed the test cases. --- .../publication/client/PublicationClient.java | 42 +++++++++++++++------- .../java/org/apache/savan/util/CommonUtil.java | 5 +-- .../axis2/savan/EventingExpirationTypesTest.java | 6 ++-- .../savan/EventingSubscripitonProcessorTest.java | 5 +-- 4 files changed, 39 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/apache/savan/publication/client/PublicationClient.java b/src/main/java/org/apache/savan/publication/client/PublicationClient.java index 52976f0..db77841 100644 --- a/src/main/java/org/apache/savan/publication/client/PublicationClient.java +++ b/src/main/java/org/apache/savan/publication/client/PublicationClient.java @@ -19,7 +19,10 @@ package org.apache.savan.publication.client; import javax.xml.namespace.QName; +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; import org.apache.axiom.soap.SOAPEnvelope; +import org.apache.axiom.soap.SOAPFactory; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.OperationClient; @@ -27,10 +30,12 @@ import org.apache.axis2.client.Options; import org.apache.axis2.client.ServiceClient; import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.context.MessageContext; +import org.apache.axis2.description.AxisService; import org.apache.axis2.description.Parameter; import org.apache.savan.SavanConstants; import org.apache.savan.SavanException; import org.apache.savan.storage.SubscriberStore; +import org.apache.savan.util.CommonUtil; /** * This can be used to make the Publication Process easy. @@ -40,24 +45,27 @@ import org.apache.savan.storage.SubscriberStore; public class PublicationClient { public static final String TEMP_PUBLICATION_ACTION = "UUID:TempPublicationAction"; + private ConfigurationContext configurationContext = null; - public static void sendPublication (SOAPEnvelope publication,ConfigurationContext configurationContext, SubscriberStore store) throws SavanException { - - try { - Options options = new Options (); - sendPublication(publication,configurationContext,options,store); - - } catch (AxisFault e) { - String message = "Could not send the publication"; - throw new SavanException (message,e); - } + public PublicationClient (ConfigurationContext configurationContext) { + this.configurationContext = configurationContext; } - public static void sendPublication (SOAPEnvelope publication,ConfigurationContext configurationContext, Options options, SubscriberStore store) throws SavanException { + /** + * This can be used by the Publishers in the same JVM (e.g. a service deployed in the same Axis2 instance). + * + * @param publication - the XML message to be published + * @param service - The service to which this publication is bound to (i.e. this will be only sent to the subscribers of this service) + * @throws SavanException + */ + public void sendPublication (OMElement publication, AxisService service) throws SavanException { try { ServiceClient sc = new ServiceClient (configurationContext,null); + Options options = new Options (); + sc.setOptions(options); + //Just a matter of getting it to the SavanOutHandler options.setTo(new EndpointReference ("http://temp.publication.URI")); if (options.getAction()==null) @@ -68,6 +76,7 @@ public class PublicationClient { //this will not be required when the Parameter parameter = new Parameter (); parameter.setName(SavanConstants.SUBSCRIBER_STORE); + SubscriberStore store = CommonUtil.getSubscriberStore(service); parameter.setValue(store); sc.getAxisService().addParameter(parameter); @@ -75,7 +84,7 @@ public class PublicationClient { sc.engageModule( new QName("savan")); MessageContext mc = new MessageContext (); - mc.setEnvelope(publication); + mc.setEnvelope(getEnvelopeFromPublication (publication)); OperationClient client = sc.createClient(ServiceClient.ANON_OUT_ONLY_OP); client.addMessageContext(mc); client.execute(true); @@ -85,7 +94,14 @@ public class PublicationClient { } } - public static void endSubscription (String subscriberID) { + + private SOAPEnvelope getEnvelopeFromPublication (OMElement element) { + + //for now we are sending SOAP 1.1 + SOAPEnvelope envelope = OMAbstractFactory.getSOAP11Factory().getDefaultEnvelope(); + envelope.getBody().addChild(element); + return envelope; } + } diff --git a/src/main/java/org/apache/savan/util/CommonUtil.java b/src/main/java/org/apache/savan/util/CommonUtil.java index 59c5e44..9c61277 100644 --- a/src/main/java/org/apache/savan/util/CommonUtil.java +++ b/src/main/java/org/apache/savan/util/CommonUtil.java @@ -29,6 +29,7 @@ import javax.xml.stream.XMLStreamReader; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory; import org.apache.axiom.soap.SOAPEnvelope; +import org.apache.axiom.soap.SOAPFactory; import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder; import org.apache.axis2.databinding.types.Duration; import org.apache.axis2.description.AxisService; @@ -60,14 +61,14 @@ public class CommonUtil { * @param name * @return */ - public static SOAPEnvelope getTestEnvelopeFromFile (String path, String name) throws IOException { + public static SOAPEnvelope getTestEnvelopeFromFile (String path, String name, SOAPFactory factory) throws IOException { try { String fullName = path + File.separator + name; FileReader reader = new FileReader(fullName); XMLStreamReader streamReader = XMLInputFactory.newInstance().createXMLStreamReader( reader); StAXSOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder( - OMAbstractFactory.getSOAP11Factory(), streamReader); + factory, streamReader); return builder.getSOAPEnvelope(); } catch (XMLStreamException e) { throw new RuntimeException(e); diff --git a/src/test/java/org/apache/axis2/savan/EventingExpirationTypesTest.java b/src/test/java/org/apache/axis2/savan/EventingExpirationTypesTest.java index f25c0c7..7c1b019 100644 --- a/src/test/java/org/apache/axis2/savan/EventingExpirationTypesTest.java +++ b/src/test/java/org/apache/axis2/savan/EventingExpirationTypesTest.java @@ -21,6 +21,8 @@ import java.io.IOException; import java.util.Date; import javax.xml.namespace.QName; import junit.framework.TestCase; + +import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.soap.SOAPEnvelope; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; @@ -58,9 +60,9 @@ public class EventingExpirationTypesTest extends TestCase { private SavanMessageContext getRenewMessage (String name) throws IOException { File baseDir = new File(""); - String testRource = baseDir.getAbsolutePath() + File.separator + "src" + File.separator + "test" + File.separator + "resources"; + String testRource = baseDir.getAbsolutePath() + File.separator + "src" + File.separator + "test" + File.separator + "resources"; - SOAPEnvelope envelope = CommonUtil.getTestEnvelopeFromFile(testRource,name); + SOAPEnvelope envelope = CommonUtil.getTestEnvelopeFromFile(testRource,name, OMAbstractFactory.getSOAP12Factory()); MessageContext mc = new MessageContext (); SavanMessageContext smc = new SavanMessageContext (mc); diff --git a/src/test/java/org/apache/axis2/savan/EventingSubscripitonProcessorTest.java b/src/test/java/org/apache/axis2/savan/EventingSubscripitonProcessorTest.java index 46563d5..1be93b8 100644 --- a/src/test/java/org/apache/axis2/savan/EventingSubscripitonProcessorTest.java +++ b/src/test/java/org/apache/axis2/savan/EventingSubscripitonProcessorTest.java @@ -16,6 +16,7 @@ package org.apache.axis2.savan; +import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.soap.SOAPEnvelope; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; @@ -98,7 +99,7 @@ public class EventingSubscripitonProcessorTest extends TestCase { File baseDir = new File(""); String testRource = baseDir.getAbsolutePath() + File.separator + "src" + File.separator + "test" + File.separator + "resources"; - SOAPEnvelope envelope = CommonUtil.getTestEnvelopeFromFile(testRource,"eventing-subscription.xml"); + SOAPEnvelope envelope = CommonUtil.getTestEnvelopeFromFile(testRource,"eventing-subscription.xml", OMAbstractFactory.getSOAP12Factory()); AxisConfiguration axisConfiguration = new AxisConfiguration (); ConfigurationContext configurationContext = new ConfigurationContext (axisConfiguration); @@ -141,7 +142,7 @@ public class EventingSubscripitonProcessorTest extends TestCase { File baseDir = new File(""); String testRource = baseDir.getAbsolutePath() + File.separator + "src" + File.separator + "test" + File.separator + "resources"; - SOAPEnvelope envelope = CommonUtil.getTestEnvelopeFromFile(testRource,"eventing-renew-datetime.xml"); + SOAPEnvelope envelope = CommonUtil.getTestEnvelopeFromFile(testRource,"eventing-renew-datetime.xml", OMAbstractFactory.getSOAP12Factory()); MessageContext mc = new MessageContext (); SavanMessageContext smc = new SavanMessageContext (mc);