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);

Reply via email to