[jboss-svn-commits] JBL Code SVN: r20756 - in labs/jbossesb/workspace/jimma/product: rosetta/src/org/jboss/internal/soa/esb/webservice and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jun 25 04:42:36 EDT 2008


Author: jim.ma
Date: 2008-06-25 04:42:36 -0400 (Wed, 25 Jun 2008)
New Revision: 20756

Modified:
   labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/publish/ServiceContractPublisher.java
   labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java
   labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java
   labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JBossWSDeploymentGenerator.java
   labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/jaxwsprovider-methodbody.template
   labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java
   labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
   labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/ServicePublisher.java
   labs/jbossesb/workspace/jimma/product/samples/quickstarts/helloworld_pub_service/jbm-queue-service.xml
   labs/jbossesb/workspace/jimma/product/samples/quickstarts/helloworld_pub_service/jboss-esb.xml
   labs/jbossesb/workspace/jimma/product/samples/quickstarts/helloworld_pub_service/src/org/jboss/soa/esb/samples/quickstart/helloworld/test/SOAPTest.java
Log:
* Reset the redployed flag when the esb deployment is successful
* Refactor the helloworld_pub_service sample and make it work for oneway esb service 


Modified: labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/publish/ServiceContractPublisher.java
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/publish/ServiceContractPublisher.java	2008-06-25 04:44:09 UTC (rev 20755)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/publish/ServiceContractPublisher.java	2008-06-25 08:42:36 UTC (rev 20756)
@@ -55,12 +55,16 @@
 import com.ibm.wsdl.extensions.soap.SOAPBindingImpl;
 
 public class ServiceContractPublisher implements ContractPublisher {
-	final QName XSD_QN = new QName("http://www.w3.org/2001/XMLSchema", "schema");
-	String wsdl;
-	Definition def = null;
-	int nsSuffixCounter = 1;
-
-    //TODO:Handle the exception
+	private final QName XSD_QN = new QName("http://www.w3.org/2001/XMLSchema", "schema");
+	private String wsdl;
+	private Definition def = null;
+	private int nsSuffixCounter = 1;
+	private Service svcConfig;
+ 
+	public ServiceContractPublisher(Service serviceConfig) {
+		svcConfig = serviceConfig;
+	}
+	
 	public void generateWSDL(Service serviceConfig) throws ConfigurationException {
 		String targetNamespace = "http://soa.jboss.org/" + serviceConfig.getCategory().toLowerCase();
 		String serviceName = serviceConfig.getName();
@@ -267,6 +271,10 @@
 		def.addService(service);
 	}
 	
+	public Service getServiceConfig() {
+		return svcConfig;
+	}
+	
 	public String getWSDL() {
 		return wsdl;
 	}

Modified: labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java	2008-06-25 04:44:09 UTC (rev 20755)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java	2008-06-25 08:42:36 UTC (rev 20756)
@@ -31,6 +31,7 @@
 	private String wsdl;
 	private String targetNS;
 	private DeploymentInfo deploymentInfo;
+	private boolean isOneway; 
 	public ESBServiceEndpointInfo(String serviceCategory, String serviceName) {
 		svcCat = serviceCategory;
 		svcName = serviceName;		
@@ -112,5 +113,13 @@
 	public DeploymentInfo getDeploymentInfo() {
 		return deploymentInfo;
 	}
+	
+	public void setOneway(boolean value) {
+		isOneway = value;
+	}
+	
+	public boolean isOneWay() {
+		return isOneway;
+	}
 
 }

Modified: labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java	2008-06-25 04:44:09 UTC (rev 20755)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java	2008-06-25 08:42:36 UTC (rev 20756)
@@ -38,6 +38,7 @@
 
 import org.antlr.stringtemplate.StringTemplate;
 import org.apache.commons.io.IOUtils;
+import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.util.ClassUtil;
 
 public class JAXWSProviderClassGenerator {
@@ -125,8 +126,15 @@
 		IOUtils.copy(in, strWriter);
 
 		StringTemplate template = new StringTemplate(strWriter.toString());
-		template.setAttribute("Category", epInfo.getServiceCategory());
-		template.setAttribute("ServiceName", epInfo.getServiceName());
+		if (epInfo.isOneWay()) {
+			template.setAttribute("InvokeMethod", "serviceInvoker.deliverAsync(msg)");
+		    template.setAttribute("Result", "javax.xml.soap.MessageFactory.newInstance().createMessage()");
+		} else {
+			template.setAttribute("InvokeMethod", "msg = serviceInvoker.deliverSync(msg, (long)30000)");
+		    //TODO: when the ESB actions mep is request-response
+			template.setAttribute("Result", "request");
+		}
+		
 		return template.toString();
 
 	}

Modified: labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JBossWSDeploymentGenerator.java
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JBossWSDeploymentGenerator.java	2008-06-25 04:44:09 UTC (rev 20755)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JBossWSDeploymentGenerator.java	2008-06-25 08:42:36 UTC (rev 20756)
@@ -50,8 +50,7 @@
     
 	public JBossWSDeploymentGenerator(ESBServiceEndpointInfo endpoint) {
 		endpointInfo = endpoint;
-		warName = (endpoint.getServiceCategory().toLowerCase() + "-" + endpoint
-				.getServiceName()).toLowerCase()
+		warName = endpoint.getDeploymentInfo().shortName.replace('.', '_')
 				+ ".war";
 		ServerConfig config = ServerConfigLocator.locate();
 		tempDeployDir = config.getServerTempDeployDir();

Modified: labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/jaxwsprovider-methodbody.template
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/jaxwsprovider-methodbody.template	2008-06-25 04:44:09 UTC (rev 20755)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/jaxwsprovider-methodbody.template	2008-06-25 08:42:36 UTC (rev 20756)
@@ -1,11 +1,14 @@
 {   javax.xml.soap.SOAPMessage request = (javax.xml.soap.SOAPMessage)obj;
     try {	      
-		 org.jboss.soa.esb.message.Message msg = org.jboss.soa.esb.message.format.MessageFactory.getInstance().getMessage();
-		 msg.getBody().add(request.getSOAPBody().toString());
-		 org.jboss.soa.esb.message.Message resMsg = serviceInvoker.deliverSync(msg, (long)2000);
+		 org.jboss.soa.esb.message.Message msg = org.jboss.soa.esb.message.format.MessageFactory.getInstance().getMessage();		 
+		 java.io.ByteArrayOutputStream byteStream = new java.io.ByteArrayOutputStream();
+		 request.writeTo(byteStream);
+		 msg.getBody().add(byteStream.toString());
+		 byteStream.close();
+		 $InvokeMethod$;
      } catch (Exception e) { 
           e.printStackTrace();
      } 
-		return request;
+		return $Result$;
 }
 		                 
\ No newline at end of file

Modified: labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java	2008-06-25 04:44:09 UTC (rev 20755)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java	2008-06-25 08:42:36 UTC (rev 20756)
@@ -45,6 +45,7 @@
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.listeners.LifecycleUtil;
 import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.config.xbeanmodel.MepType;
 import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycle;
 import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleController;
 import org.jboss.soa.esb.util.ClassUtil;
@@ -145,9 +146,11 @@
 						ServiceContractPublisher serviceContractpublisher = (ServiceContractPublisher) publisher
 								.getContractPublisher();
 						String wsdl = serviceContractpublisher.getWSDL();
-						ESBServiceEndpointInfo endpoint = new ESBServiceEndpointInfo(
-								publisher.getCategory(), publisher
-										.getServiceName());
+						ESBServiceEndpointInfo endpoint = new ESBServiceEndpointInfo(publisher.getCategory(), publisher.getServiceName());
+						MepType.Enum mep  = serviceContractpublisher.getServiceConfig().getActions().getMep() ;
+						if (mep != null && mep.equals(MepType.ONE_WAY)) {
+							endpoint.setOneway(true);
+						}
 						if (hasPublishedWSWar(esbFile, publisher)) {
 							continue;
 						}

Modified: labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java	2008-06-25 04:44:09 UTC (rev 20755)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java	2008-06-25 08:42:36 UTC (rev 20756)
@@ -430,11 +430,19 @@
       try
       {
          serviceController.start(di.deployedObject);
+			//Notifying the MainDeployer to redeploy is not the ideal way 
+			//Because the MainDeployer sets the "LastModifed" after excute start(),
+			//Any change for ESB archive during deployment can not 
+			//be detected by DeploymentScanner. How can we notify the DeploymentScanner the update for this esb
+			//Is there some listener mechanism for it?
 			if (Configuration.genratedWSWar() && !redployed) {
 				log.debug("Redployed " + di.shortName);
 				redployed = true;
 				mainDeployer.redeploy(di);
-			}
+			} else {
+				//reset redployed to false
+				redployed = false;
+			}				
       }
       catch (Exception e)
       {

Modified: labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/ServicePublisher.java
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/ServicePublisher.java	2008-06-25 04:44:09 UTC (rev 20755)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/ServicePublisher.java	2008-06-25 08:42:36 UTC (rev 20756)
@@ -179,7 +179,7 @@
         }
         if (service.getActions().getInXsd() != null) 
         {
-           ServiceContractPublisher  publisher = new ServiceContractPublisher();          
+           ServiceContractPublisher  publisher = new ServiceContractPublisher(service);
            try {
         	     publisher.generateWSDL(service);
            } catch (ConfigurationException e) {

Modified: labs/jbossesb/workspace/jimma/product/samples/quickstarts/helloworld_pub_service/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/workspace/jimma/product/samples/quickstarts/helloworld_pub_service/jbm-queue-service.xml	2008-06-25 04:44:09 UTC (rev 20755)
+++ labs/jbossesb/workspace/jimma/product/samples/quickstarts/helloworld_pub_service/jbm-queue-service.xml	2008-06-25 08:42:36 UTC (rev 20756)
@@ -1,15 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <server>
   <mbean code="org.jboss.jms.server.destination.QueueService"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_esb"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_pub_service_Request_esb"
     xmbean-dd="xmdesc/Queue-xmbean.xml">
 	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
 	<depends>jboss.messaging:service=PostOffice</depends>
   </mbean>
-  <mbean code="org.jboss.jms.server.destination.QueueService"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_helloworld_Request_gw"
-    xmbean-dd="xmdesc/Queue-xmbean.xml">
-    <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-	<depends>jboss.messaging:service=PostOffice</depends>
-  </mbean>
 </server>

Modified: labs/jbossesb/workspace/jimma/product/samples/quickstarts/helloworld_pub_service/jboss-esb.xml
===================================================================
--- labs/jbossesb/workspace/jimma/product/samples/quickstarts/helloworld_pub_service/jboss-esb.xml	2008-06-25 04:44:09 UTC (rev 20755)
+++ labs/jbossesb/workspace/jimma/product/samples/quickstarts/helloworld_pub_service/jboss-esb.xml	2008-06-25 08:42:36 UTC (rev 20756)
@@ -3,16 +3,10 @@
 
     <providers>
           <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
-              <jms-bus busid="quickstartGwChannel">
-                  <jms-message-filter
-                      dest-type="QUEUE"
-                      dest-name="queue/quickstart_helloworld_Request_gw"
-                   />
-              </jms-bus>
               <jms-bus busid="quickstartEsbChannel">
                   <jms-message-filter
                       dest-type="QUEUE"
-                      dest-name="queue/quickstart_helloworld_Request_esb"
+                      dest-name="queue/quickstart_helloworld_pub_service_Request_esb"
                   />
               </jms-bus>
 
@@ -21,15 +15,10 @@
       
       <services>
         <service 
-        	category="FirstServiceESB" 
-        	name="SimpleListener" 
-        	description="Hello World">
+        	category="ESBServiceSample" 
+        	name="HelloWorldPubService" 
+        	description="Hello world ESB Service">
             <listeners>
-                <jms-listener name="JMS-Gateway"
-                    busidref="quickstartGwChannel"
-                    maxThreads="1"
-                    is-gateway="true"
-                />
                 <jms-listener name="helloWorld"
                               busidref="quickstartEsbChannel"
                               maxThreads="1"
@@ -44,7 +33,6 @@
                       <property name="printfull" value="true"/>
                     </action>
                     <!-- The next action is for Continuous Integration testing -->
-                    <action name="testStore" class="org.jboss.soa.esb.actions.TestMessageStore"/>
             </actions>
         </service>
       </services>

Modified: labs/jbossesb/workspace/jimma/product/samples/quickstarts/helloworld_pub_service/src/org/jboss/soa/esb/samples/quickstart/helloworld/test/SOAPTest.java
===================================================================
--- labs/jbossesb/workspace/jimma/product/samples/quickstarts/helloworld_pub_service/src/org/jboss/soa/esb/samples/quickstart/helloworld/test/SOAPTest.java	2008-06-25 04:44:09 UTC (rev 20755)
+++ labs/jbossesb/workspace/jimma/product/samples/quickstarts/helloworld_pub_service/src/org/jboss/soa/esb/samples/quickstart/helloworld/test/SOAPTest.java	2008-06-25 08:42:36 UTC (rev 20756)
@@ -32,7 +32,7 @@
 				+ "<soapenv:Header/><soapenv:Body><cus:customerName>JBOSS</cus:customerName></soapenv:Body></soapenv:Envelope>";
 		HttpClient client = new HttpClient();
 		PostMethod postMethod = new PostMethod(
-				"http://127.0.0.1:8080/firstserviceesb-simplelistener/FirstServiceESB/SimpleListener");
+				"http://127.0.0.1:8080/Quickstart_helloworld_pub_service_esb/ESBServiceSample/HelloWorldPubService");
 
 		StringRequestEntity requestEntity = new StringRequestEntity(request);
 		postMethod.setRequestEntity(requestEntity);




More information about the jboss-svn-commits mailing list