You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by ch...@apache.org on 2006/08/05 06:31:17 UTC

svn commit: r428956 - in /webservices/axis2/trunk/java/modules/samples/src/sample/eventing: Client.java PublisherService.java

Author: chamikara
Date: Fri Aug  4 21:31:16 2006
New Revision: 428956

URL: http://svn.apache.org/viewvc?rev=428956&view=rev
Log:
Updated the Client to support the getStatus message.
Some corrections to the Service Impl.

Modified:
    webservices/axis2/trunk/java/modules/samples/src/sample/eventing/Client.java
    webservices/axis2/trunk/java/modules/samples/src/sample/eventing/PublisherService.java

Modified: webservices/axis2/trunk/java/modules/samples/src/sample/eventing/Client.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/src/sample/eventing/Client.java?rev=428956&r1=428955&r2=428956&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/src/sample/eventing/Client.java (original)
+++ webservices/axis2/trunk/java/modules/samples/src/sample/eventing/Client.java Fri Aug  4 21:31:16 2006
@@ -34,16 +34,16 @@
 import org.apache.axis2.client.ServiceClient;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.ConfigurationContextFactory;
-import org.apache.axis2.databinding.types.Duration;
 import org.apache.savan.eventing.client.EventingClient;
 import org.apache.savan.eventing.client.EventingClientBean;
+import org.apache.savan.eventing.client.SubscriptionStatus;
 
 public class Client {
 
     BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
     
     private final int MIN_OPTION = 1;
-    private final int MAX_OPTION = 6;
+    private final int MAX_OPTION = 9;
     
     private final String SUBSCRIBER_1_ID = "subscriber1";
     private final String SUBSCRIBER_2_ID = "subscriber2";
@@ -164,7 +164,6 @@
 			performAction (selectedOption);
 			
 		}
-		
 	}
 	
 	private void displayMenu () {
@@ -174,7 +173,9 @@
 		System.out.println("Press 4 to unsubscribe Listner Service 1");
 		System.out.println("Press 5 to unsubscribe Listner Service 2");
 		System.out.println("Press 6 to unsubscribe both listner services");
-		System.out.println("Press 7 to Exit");
+		System.out.println("Press 7 to to get the status of the subscription to Service 1");
+		System.out.println("Press 8 to to get the status of the subscription to Service 2");
+		System.out.println("Press 9 to Exit");
 	}
 	
 	private int getIntInput () throws IOException {
@@ -197,7 +198,7 @@
 			CLIENT_REPO = repo;
 			AXIS2_XML = repo + File.separator + "axis2.xml";
 		} else {
-			throw new AxisFault ("Please specify the client repository as a program argument.Use '-h' for help.");
+//			throw new AxisFault ("Please specify the client repository as a program argument.Use '-h' for help.");
 		}
 		
 		ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(CLIENT_REPO,AXIS2_XML);
@@ -237,6 +238,12 @@
 			doUnsubscribe(SUBSCRIBER_2_ID);
 			break;
 		case 7:
+			doGetStatus(SUBSCRIBER_1_ID);
+			break;
+		case 8:
+			doGetStatus(SUBSCRIBER_2_ID);
+			break;
+		case 9:
 			System.exit(0);
 			break;
 		default:
@@ -257,10 +264,12 @@
 		}
 	
 		bean.setDeliveryEPR(new EndpointReference (subscribingAddress));
+	
+		//uncomment following to set an expiration time of 10 minutes.
+//		Date date = new Date ();
+//		date.setMinutes(date.getMinutes()+10);
+//		bean.setExpirationTime(date);
 		
-		Date date = new Date ();
-		date.setMinutes(date.getMinutes()+1);
-		bean.setExpirationTime(date);
 		eventingClient.subscribe(bean,ID);
 		Thread.sleep(1000);   //TODO remove if not sequired
 	}
@@ -270,6 +279,14 @@
 		Thread.sleep(1000);   //TODO remove if not sequired
 	}
 	
+	private void doGetStatus (String ID) throws Exception {
+		SubscriptionStatus status  = eventingClient.getSubscriptionStatus(ID);
+		Thread.sleep(1000);   //TODO remove if not sequired
+		
+		String statusValue = status.getExpirationValue();
+		System.out.println("Status of the subscriber '" + ID +"' is" + statusValue);
+	}
+	
 	private OMElement getDummyMethodRequestElement() {
 		OMFactory fac = OMAbstractFactory.getOMFactory();
 		OMNamespace namespace = fac.createOMNamespace(applicationNamespaceName,"ns1");
@@ -277,4 +294,5 @@
 
 		return dummyMethodElem;
 	}
+	
 }

Modified: webservices/axis2/trunk/java/modules/samples/src/sample/eventing/PublisherService.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/samples/src/sample/eventing/PublisherService.java?rev=428956&r1=428955&r2=428956&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/samples/src/sample/eventing/PublisherService.java (original)
+++ webservices/axis2/trunk/java/modules/samples/src/sample/eventing/PublisherService.java Fri Aug  4 21:31:16 2006
@@ -18,26 +18,24 @@
 
 import java.util.Random;
 
-import javax.xml.namespace.QName;
-
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMNamespace;
+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.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.context.ServiceContext;
+import org.apache.savan.publication.client.PublicationClient;
+import org.apache.savan.storage.SubscriberStore;
+import org.apache.savan.util.CommonUtil;
 
 public class PublisherService {
   
-	ConfigurationContext configurationContext = null;
+	ServiceContext serviceContext = null;
 	
 	public void init(ServiceContext serviceContext) throws AxisFault {
 		System.out.println("Eventing Service INIT called");
-		configurationContext = serviceContext.getConfigurationContext();
+		this.serviceContext = serviceContext;
 		
 		PublisherThread thread = new PublisherThread ();
 		thread.start();
@@ -55,32 +53,28 @@
 		
 		public void run () {
 			try {
-				
-				ServiceClient sc = new ServiceClient (configurationContext,null);
-				Options options = new Options ();
-				sc.setOptions(options);
-				
-				//if already engaged, axis2 will neglect this engagement.
-				sc.engageModule( new QName("savan"));
-				
-				options.setTo(new EndpointReference ("http://dummyTargetEPR/"));
-				options.setAction("DummyAction");
-				
 				while (true) {
 					
 					Thread.sleep(5000);
 					
 					//publishing
 					System.out.println("Publishing next publication...");
-					sc.fireAndForget(getNextPublicationEnvelope ());
+					
+					SubscriberStore store = (SubscriberStore) CommonUtil.getSubscriberStore(serviceContext.getAxisService());
+					if (store==null)
+						throw new Exception ("Cant find the Savan subscriber store");
+					
+					SOAPEnvelope envelope = getNextPublicationEnvelope ();
+					PublicationClient.sendPublication(envelope,serviceContext.getConfigurationContext(),store);
 				}
+				
 			} catch (Exception e) {
 				// TODO Auto-generated catch block
 				e.printStackTrace();
 			}
 		}
 		
-		public OMElement getNextPublicationEnvelope () {
+		public SOAPEnvelope getNextPublicationEnvelope () {
 			SOAPFactory factory = OMAbstractFactory.getSOAP11Factory();
 			OMNamespace namespace = factory.createOMNamespace(publicationNamespaceValue,"ns1");
 			OMElement publicationElement = factory.createOMElement(Publication,namespace);
@@ -91,7 +85,10 @@
 			OMElement publishMethod = factory.createOMElement("publish",namespace);
 			publishMethod.addChild(publicationElement);
 			
-			return publishMethod;
+			SOAPEnvelope envelope = factory.getDefaultEnvelope();
+			envelope.getBody().addChild(publishMethod);
+			
+			return envelope;
 		}
 	}
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org