[jboss-svn-commits] JBL Code SVN: r20634 - in labs/jbossesb/workspace/jimma/product/rosetta: src/org/jboss/internal/soa/esb/publish and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Jun 19 04:15:15 EDT 2008
Author: jim.ma
Date: 2008-06-19 04:15:15 -0400 (Thu, 19 Jun 2008)
New Revision: 20634
Added:
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/jbossweb-xml.template
labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/web-xml.template
Modified:
labs/jbossesb/workspace/jimma/product/rosetta/build.xml
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/JBossWSWarGenerator.java
labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JBossWSWebServicePublisher.java
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/ServicePublisher.java
labs/jbossesb/workspace/jimma/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGeneratorUnitTest.java
Log:
* Use a template to generate web.xml, jboss-web.xml and jaxwsprovider class method body
* Add jboss-web.xml to add the esb deployment dependency
* Define exceptions for bunch of classes
Modified: labs/jbossesb/workspace/jimma/product/rosetta/build.xml
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/build.xml 2008-06-19 06:30:14 UTC (rev 20633)
+++ labs/jbossesb/workspace/jimma/product/rosetta/build.xml 2008-06-19 08:15:15 UTC (rev 20634)
@@ -50,7 +50,11 @@
>
<src path="${org.jboss.esb.rosetta.src.dir}"/>
</javac>
+ <copy todir="${org.jboss.esb.rosetta.classes.dir}">
+ <fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="**/*.template"/>
+ </copy>
+
</target>
<target name="recompile" depends="clean,org.jboss.esb.rosetta.compile"
@@ -82,7 +86,8 @@
excludes="test/**"
>
<fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="**/*.groovy"/>
- <fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="**/*.properties"/>
+ <fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="**/*.properties"/>
+ <fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="**/*.template"/>
</jar>
<jar destfile="${org.jboss.esb.rosetta.distrib.dir}/lib/test-util.jar">
<fileset dir="${org.jboss.esb.internal.dest}/tests/"
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-19 06:30:14 UTC (rev 20633)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/publish/ServiceContractPublisher.java 2008-06-19 08:15:15 UTC (rev 20634)
@@ -19,6 +19,7 @@
*/
package org.jboss.internal.soa.esb.publish;
+import java.io.IOException;
import java.io.StringWriter;
import javax.wsdl.Binding;
@@ -47,6 +48,7 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
+import org.xml.sax.SAXException;
import com.ibm.wsdl.extensions.schema.SchemaImpl;
import com.ibm.wsdl.extensions.soap.SOAPAddressImpl;
@@ -57,17 +59,11 @@
String wsdl;
Definition def = null;
int nsSuffixCounter = 1;
- Service serviceCfg;
- public void setServiceConfig(Service serviceConfig)
- throws ConfigurationException {
- serviceCfg = serviceConfig;
-
- }
//TODO:Handle the exception
- public void generateWSDL() {
- String targetNamespace = "http://soa.jboss.org/" + serviceCfg.getCategory().toLowerCase();
- String serviceName = serviceCfg.getName();
+ public void generateWSDL(Service serviceConfig) throws ConfigurationException {
+ String targetNamespace = "http://soa.jboss.org/" + serviceConfig.getCategory().toLowerCase();
+ String serviceName = serviceConfig.getName();
try {
def = WSDLFactory.newInstance().newDefinition();
} catch (WSDLException e1) {
@@ -84,9 +80,9 @@
Message resMessage = null;
Message faultMessage = null;
- String inXsd = serviceCfg.getActions().getInXsd();
- String outXsd = serviceCfg.getActions().getOutXsd();
- String faultXsd = serviceCfg.getActions().getFaultXsd();
+ String inXsd = serviceConfig.getActions().getInXsd();
+ String outXsd = serviceConfig.getActions().getOutXsd();
+ String faultXsd = serviceConfig.getActions().getFaultXsd();
if (inXsd != null) {
try {
@@ -96,9 +92,12 @@
reqMessage = addMessage(doc.getDocumentElement(),
serviceName + "Req", "in");
}
- } catch (Exception e) {
- e.printStackTrace();
- }
+ } catch (IOException e) {
+ throw new ConfigurationException("File defined in inXsd attribute '" + serviceConfig.getActions().getInXsd() + "' not found in classpath.", e);
+ } catch (SAXException e) {
+ throw new ConfigurationException("invalid inXsd file for service:" + serviceConfig.getCategory() + "/" + serviceConfig.getName() , e);
+ }
+
}
@@ -110,9 +109,11 @@
resMessage = addMessage(doc.getDocumentElement(),
serviceName + "Res", "out");
}
- } catch (Exception e) {
- //
- }
+ } catch (IOException e) {
+ throw new ConfigurationException("File defined in outXsd attribute '" + serviceConfig.getActions().getOutXsd() + "' not found in classpath.", e);
+ } catch (SAXException e) {
+ throw new ConfigurationException("Invalid outXsd file for service:" + serviceConfig.getCategory() + "/" + serviceConfig.getName() , e);
+ }
}
@@ -125,9 +126,11 @@
faultMessage = addMessage(doc.getDocumentElement(),
serviceName + "fault", "fault");
}
- } catch (Exception e) {
- //
- }
+ } catch (IOException e) {
+ throw new ConfigurationException("File defined in faultXsd attribute '" + serviceConfig.getActions().getFaultXsd() + "' not found in classpath.", e);
+ } catch (SAXException e) {
+ throw new ConfigurationException("Invalid faultXsd file for service:" + serviceConfig.getCategory() + "/" + serviceConfig.getName() , e);
+ }
}
@@ -139,6 +142,7 @@
try {
WSDLFactory.newInstance().newWSDLWriter().writeWSDL(def, sw);
} catch (WSDLException e) {
+ new ConfigurationException("Failed to generate wsdl for service:" + serviceConfig.getCategory() + "/" + serviceConfig.getName() , e);
}
wsdl = sw.toString();
}
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-19 06:30:14 UTC (rev 20633)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBServiceEndpointInfo.java 2008-06-19 08:15:15 UTC (rev 20634)
@@ -21,6 +21,8 @@
import java.util.concurrent.ConcurrentHashMap;
+import org.jboss.deployment.DeploymentInfo;
+
public class ESBServiceEndpointInfo {
private ConcurrentHashMap<String, Object> properties = new ConcurrentHashMap<String, Object>();
private Class<?> epClass;
@@ -28,6 +30,7 @@
private String svcName;
private String wsdl;
private String targetNS;
+ private DeploymentInfo deploymentInfo;
public ESBServiceEndpointInfo(String serviceCategory, String serviceName) {
svcCat = serviceCategory;
svcName = serviceName;
@@ -58,11 +61,11 @@
properties.put(key, obj);
}
- public String getServiceDirectory() {
+ public String getServiceCategory() {
return svcCat;
}
- public void setServiceDirectory(String value) {
+ public void setServiceCategory(String value) {
svcCat = value;
}
@@ -75,11 +78,11 @@
}
public String getEndpointName() {
- return this.getServiceDirectory() + "." + this.getServiceName();
+ return this.getServiceCategory() + "." + this.getServiceName();
}
public String getWSEndpointClassName() {
- return "org.jboss.soa." + this.svcCat.toLowerCase() + "." + this.svcName;
+ return "org.jboss.soa." + svcCat.toLowerCase() + "." + svcName;
}
public void setTargetNamespace(String value) {
@@ -91,7 +94,7 @@
}
public String getWSDLFileName() {
- return svcCat.toLowerCase() + "_" + svcName.toLowerCase() + ".wsdl";
+ return svcCat.toLowerCase() + "-" + svcName.toLowerCase() + ".wsdl";
}
public String getWSDLServiceName() {
@@ -101,5 +104,13 @@
public String getWSDLPortName() {
return svcName + "Port";
}
+
+ public void setDeploymentInfo(DeploymentInfo di) {
+ this.deploymentInfo = di;
+ }
+
+ public DeploymentInfo getDeploymentInfo() {
+ return deploymentInfo;
+ }
}
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-19 06:30:14 UTC (rev 20633)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGenerator.java 2008-06-19 08:15:15 UTC (rev 20634)
@@ -19,10 +19,15 @@
*/
package org.jboss.internal.soa.esb.webservice;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
+
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
import javassist.CtNewMethod;
+import javassist.NotFoundException;
import javassist.bytecode.AnnotationsAttribute;
import javassist.bytecode.ConstPool;
import javassist.bytecode.SignatureAttribute;
@@ -30,22 +35,36 @@
import javassist.bytecode.annotation.EnumMemberValue;
import javassist.bytecode.annotation.StringMemberValue;
+import org.antlr.stringtemplate.StringTemplate;
+import org.apache.commons.io.IOUtils;
+import org.jboss.soa.esb.util.ClassUtil;
+
public class JAXWSProviderClassGenerator {
- public CtClass generate(ESBServiceEndpointInfo epInfo) throws WebServicePublishException {
+ public CtClass generate(ESBServiceEndpointInfo epInfo)
+ throws WebServicePublishException {
ClassPool pool = ClassPool.getDefault();
- CtClass seiClass = pool.makeClass(epInfo.getWSEndpointClassName());
+ CtClass seiClass = null;
try {
- CtClass providerClass = pool
- .get("javax.xml.ws.Provider");
- seiClass.setInterfaces(new CtClass[] { providerClass });
-
-
+ seiClass = pool.get(epInfo.getWSEndpointClassName());
+ } catch (NotFoundException e1) {
+ // do nothing
+ }
+ if (seiClass != null) {
+ return seiClass;
+ } else {
+ seiClass = pool.makeClass(epInfo.getWSEndpointClassName());
+ }
+
+ try {
+ CtClass providerClass = pool.get("javax.xml.ws.Provider");
+ seiClass.setInterfaces(new CtClass[] { providerClass });
+
ConstPool constantPool = seiClass.getClassFile().getConstPool();
AnnotationsAttribute attribute = new AnnotationsAttribute(
constantPool, AnnotationsAttribute.visibleTag);
Annotation annotation = new Annotation(
"javax.xml.ws.WebServiceProvider", constantPool);
- StringMemberValue strValue1 = new StringMemberValue(constantPool);
+ StringMemberValue strValue1 = new StringMemberValue(constantPool);
strValue1.setValue("/WEB-INF/wsdl/" + epInfo.getWSDLFileName());
annotation.addMemberValue("wsdlLocation", strValue1);
StringMemberValue strValue2 = new StringMemberValue(constantPool);
@@ -54,51 +73,54 @@
StringMemberValue strValue3 = new StringMemberValue(constantPool);
strValue3.setValue(epInfo.getWSDLPortName());
annotation.addMemberValue("portName", strValue3);
-
+
StringMemberValue strValue4 = new StringMemberValue(constantPool);
strValue4.setValue(epInfo.getTargetNamesapce());
annotation.addMemberValue("targetNamespace", strValue4);
-
+
attribute.addAnnotation(annotation);
-
- Annotation annotation2= new Annotation(
- "javax.xml.ws.ServiceMode", constantPool);
+
+ Annotation annotation2 = new Annotation("javax.xml.ws.ServiceMode",
+ constantPool);
EnumMemberValue enumValue = new EnumMemberValue(constantPool);
- //CtClass serviceMode = pool.get("javax.xml.ws.Service$Mode");
enumValue.setType("javax.xml.ws.Service$Mode");
enumValue.setValue("MESSAGE");
annotation2.addMemberValue("value", enumValue);
attribute.addAnnotation(annotation2);
seiClass.getClassFile().addAttribute(attribute);
- CtMethod m = CtNewMethod.make("public Object invoke(Object obj) "
+ CtMethod m = CtNewMethod.make("public Object invoke(Object obj) "
+ getMethodBody(epInfo), seiClass);
- seiClass.addMethod(m);
- //add generics for class
- SignatureAttribute signatureAttribute = new SignatureAttribute(seiClass.getClassFile().getConstPool(),
- "Ljava/lang/Object;Ljavax/xml/ws/Provider<Ljavax/xml/soap/SOAPMessage;>;");
- seiClass.getClassFile().addAttribute(signatureAttribute);
-
+ seiClass.addMethod(m);
+ // add generics for class
+ SignatureAttribute signatureAttribute = new SignatureAttribute(
+ seiClass.getClassFile().getConstPool(),
+ "Ljava/lang/Object;Ljavax/xml/ws/Provider<Ljavax/xml/soap/SOAPMessage;>;");
+ seiClass.getClassFile().addAttribute(signatureAttribute);
+ // seiClass.freeze();
+
} catch (Exception e) {
-
- throw new WebServicePublishException("Failed to generate jaxws dispatch class for ESB service", e);
- }
-
+
+ throw new WebServicePublishException(
+ "Failed to generate jaxws dispatch class for ESB service",
+ e);
+ }
+
return seiClass;
}
-
-
- public String getMethodBody(ESBServiceEndpointInfo epInfo) {
- String body = "{ "
- + "javax.xml.soap.SOAPMessage request = (javax.xml.soap.SOAPMessage)obj;"
- + "try {"
- + "org.jboss.soa.esb.client.ServiceInvoker serviceInvoker = new org.jboss.soa.esb.client.ServiceInvoker("
- + "\"" + epInfo.getServiceDirectory() + "\"," + "\"" + epInfo.getServiceName()+ "\");";
- body = body + "org.jboss.soa.esb.message.Message msg = org.jboss.soa.esb.message.format.MessageFactory.getInstance().getMessage();";
- body = body + "msg.getBody().add(request.getSOAPBody().toString());";
- body = body + "org.jboss.soa.esb.message.Message resMsg = serviceInvoker.deliverSync(msg, (long)2000);";
- body = body + "System.out.println(\"---res msg --- \"+ resMsg.getBody().get().toString());";
- body = body + "} catch (Exception e) { e.printStackTrace();} ";
- body = body + "return request;}";
- return body;
+
+ public String getMethodBody(ESBServiceEndpointInfo epInfo)
+ throws IOException {
+
+ InputStream in = ClassUtil.getResourceAsStream(
+ "jaxwsprovider-methodbody.template", getClass());
+ StringWriter strWriter = new StringWriter();
+
+ IOUtils.copy(in, strWriter);
+
+ StringTemplate template = new StringTemplate(strWriter.toString());
+ template.setAttribute("Category", epInfo.getServiceCategory());
+ template.setAttribute("ServiceName", epInfo.getServiceName());
+ return template.toString();
+
}
}
Modified: labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JBossWSWarGenerator.java
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JBossWSWarGenerator.java 2008-06-19 06:30:14 UTC (rev 20633)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JBossWSWarGenerator.java 2008-06-19 08:15:15 UTC (rev 20634)
@@ -23,13 +23,18 @@
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
import java.util.concurrent.CopyOnWriteArrayList;
import javassist.CtClass;
+import org.antlr.stringtemplate.StringTemplate;
import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
+import org.jboss.soa.esb.util.ClassUtil;
import org.jboss.util.file.JarUtils;
public class JBossWSWarGenerator {
@@ -41,7 +46,7 @@
public JBossWSWarGenerator(ESBServiceEndpointInfo endpoint) {
endpointInfo = endpoint;
- warName = (endpoint.getServiceDirectory() + "-" + endpoint
+ warName = (endpoint.getServiceCategory().toLowerCase() + "-" + endpoint
.getServiceName()).toLowerCase();
}
@@ -50,6 +55,7 @@
try {
addFile(generateWebXml());
addFile(generateWSDLFile());
+ addFile(generateJbossWebXml());
File warTmp = File.createTempFile(endpointInfo.getEndpointName()
+ "war", "dir");
warTmp.delete();
@@ -59,7 +65,7 @@
for (File file : fileList) {
File dir = new File(warDir.getCanonicalPath() + File.separator
- + file.getParentFile().getName());
+ + file.getParentFile().getPath());
if (!dir.exists()) {
dir.mkdirs();
@@ -71,7 +77,6 @@
JAXWSProviderClassGenerator generator = new JAXWSProviderClassGenerator();
CtClass providerClass = generator.generate(endpointInfo);
providerClass.writeFile(warDir.getCanonicalPath());
-
File warFile = new File(warTmp + File.separator + warName + ".war");
warFile.createNewFile();
FileOutputStream fout = new FileOutputStream(warFile);
@@ -163,24 +168,32 @@
fileList.add(file);
}
- // TODO:Use a template file to do this?
+
private File generateWebXml() throws IOException {
- String webXmlContent = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
- + "<web-app xmlns=\"http://java.sun.com/xml/ns/j2ee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
- + " xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\""
- + " version=\"2.4\">" + "<servlet>" + "<servlet-name>"
- + endpointInfo.getServiceName() + "</servlet-name>"
- + "<servlet-class>" + endpointInfo.getWSEndpointClassName()
- + "</servlet-class>" + "</servlet>" + "<servlet-mapping>"
- + "<servlet-name>" + endpointInfo.getServiceName()
- + "</servlet-name>" + "<url-pattern>/"
- + endpointInfo.getServiceDirectory() + "/"
- + endpointInfo.getServiceName() + "</url-pattern>"
- + "</servlet-mapping>" + "</web-app>";
+
+ InputStream inTemplate = ClassUtil.getResourceAsStream("web-xml.template", getClass());
+ StringWriter strWriter = new StringWriter();
+ IOUtils.copy(inTemplate, strWriter);
+ StringTemplate template = new StringTemplate(strWriter.toString());
+ template.setAttribute("ServiceName", endpointInfo.getServiceName());
+ template.setAttribute("Category", endpointInfo.getServiceCategory());
+ template.setAttribute("EndpointClassName", endpointInfo.getWSEndpointClassName());
File webXml = new File("WEB-INF/web.xml");
- FileUtils.writeStringToFile(webXml, webXmlContent);
+ FileUtils.writeStringToFile(webXml, template.toString());
return webXml;
}
+
+ private File generateJbossWebXml() throws IOException {
+ InputStream inTemplate = ClassUtil.getResourceAsStream("jbossweb-xml.template", getClass());
+ StringWriter strWriter = new StringWriter();
+ IOUtils.copy(inTemplate, strWriter);
+ StringTemplate template = new StringTemplate(strWriter.toString());
+ template.setAttribute("ESBArtifact", endpointInfo.getDeploymentInfo().shortName);
+ File jbossWebXml = new File("WEB-INF/jboss-web.xml");
+ FileUtils.writeStringToFile(jbossWebXml, template.toString());
+ return jbossWebXml;
+ }
+
private File generateWSDLFile() throws IOException {
File wsdlFile = new File("WEB-INF/wsdl/"
Modified: labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JBossWSWebServicePublisher.java
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JBossWSWebServicePublisher.java 2008-06-19 06:30:14 UTC (rev 20633)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/JBossWSWebServicePublisher.java 2008-06-19 08:15:15 UTC (rev 20634)
@@ -29,7 +29,7 @@
} catch (WebServicePublishException e) {
throw new WebServicePublishException(
"Failed to publish webservice "
- + endpoint.getServiceDirectory()+ "/" + endpoint.getServiceName() + " for service "
+ + endpoint.getServiceCategory()+ "/" + endpoint.getServiceName() + " for service "
+ esbService.getName(), e);
}
}
Added: 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 (rev 0)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/jaxwsprovider-methodbody.template 2008-06-19 08:15:15 UTC (rev 20634)
@@ -0,0 +1,11 @@
+{ javax.xml.soap.SOAPMessage request = (javax.xml.soap.SOAPMessage)obj;
+ try {
+ org.jboss.soa.esb.client.ServiceInvoker serviceInvoker = new org.jboss.soa.esb.client.ServiceInvoker("$Category$", "$ServiceName$");
+ 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);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return request;
+}
\ No newline at end of file
Added: labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/jbossweb-xml.template
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/jbossweb-xml.template (rev 0)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/jbossweb-xml.template 2008-06-19 08:15:15 UTC (rev 20634)
@@ -0,0 +1,5 @@
+<jboss-web>
+<depends>
+jboss.esb:deployment=$ESBArtifact$
+</depends>
+</jboss-web>
\ No newline at end of file
Added: labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/web-xml.template
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/web-xml.template (rev 0)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/internal/soa/esb/webservice/web-xml.template 2008-06-19 08:15:15 UTC (rev 20634)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
+ <servlet>
+ <servlet-name>$ServiceName$</servlet-name>
+ <servlet-class>$EndpointClassName$</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>$ServiceName$</servlet-name>
+ <url-pattern>/$Category$/$ServiceName$</url-pattern>
+ </servlet-mapping>
+</web-app>
\ 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-19 06:30:14 UTC (rev 20633)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java 2008-06-19 08:15:15 UTC (rev 20634)
@@ -142,16 +142,16 @@
ServiceContractPublisher serviceContractpublisher = (ServiceContractPublisher)publisher.getContractPublisher();
String wsdl = serviceContractpublisher.getWSDL();
ESBServiceEndpointInfo endpoint = new ESBServiceEndpointInfo(publisher.getCategory(), publisher.getServiceName());
- File publishedWar = new File(deployDir.getCanonicalPath(), publisher.getCategory().toLowerCase() + "_" + publisher.getServiceName() + ".war");
+ File publishedWar = new File(deployDir.getCanonicalPath(), publisher.getCategory().toLowerCase() + "-" + publisher.getServiceName().toLowerCase() + ".war");
if (publishedWar.exists()) {
continue;
}
endpoint.setWSDL(wsdl);
endpoint.setTargetNamespace("http://soa.jboss.org/" + publisher.getCategory().toLowerCase());
+ endpoint.setDeploymentInfo(di);
//publish this esb service to web service
WebServicePublisher esbServicePublisher = new JBossWSWebServicePublisher();
- esbServicePublisher.publish(endpoint, esbFile);
-
+ esbServicePublisher.publish(endpoint, esbFile);
}
}
return controller;
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-19 06:30:14 UTC (rev 20633)
+++ labs/jbossesb/workspace/jimma/product/rosetta/src/org/jboss/soa/esb/listeners/config/ServicePublisher.java 2008-06-19 08:15:15 UTC (rev 20634)
@@ -179,13 +179,11 @@
}
if (service.getActions().getInXsd() != null)
{
- ServiceContractPublisher publisher = new ServiceContractPublisher();
-
+ ServiceContractPublisher publisher = new ServiceContractPublisher();
try {
- publisher.setServiceConfig(service);
- publisher.generateWSDL();
+ publisher.generateWSDL(service);
} catch (ConfigurationException e) {
- throw new RuntimeException("Failed to instantiate Service Contract Publisher '" + publisher.getClass().getName() + "'. Class must implement a public default constructor.", e);
+ throw new RuntimeException("Failed to instantiate ServiceContractPublisher for service '" + service.getCategory() + "/" + service.getName() + "'" , e);
}
return publisher;
}
Modified: labs/jbossesb/workspace/jimma/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGeneratorUnitTest.java
===================================================================
--- labs/jbossesb/workspace/jimma/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGeneratorUnitTest.java 2008-06-19 06:30:14 UTC (rev 20633)
+++ labs/jbossesb/workspace/jimma/product/rosetta/tests/src/org/jboss/internal/soa/esb/webservice/JAXWSProviderClassGeneratorUnitTest.java 2008-06-19 08:15:15 UTC (rev 20634)
@@ -1,8 +1,10 @@
package org.jboss.internal.soa.esb.webservice;
import java.io.File;
+import java.io.IOException;
import javassist.CtClass;
+
import junit.framework.TestCase;
public class JAXWSProviderClassGeneratorUnitTest extends TestCase {
@@ -22,5 +24,18 @@
assertTrue("the jaxws disptach provider class is not generated", generatedClass.exists());
}
+
+ public void testStringTemplate() {
+ JAXWSProviderClassGenerator generator = new JAXWSProviderClassGenerator();
+ ESBServiceEndpointInfo epInfo = new ESBServiceEndpointInfo("test", "MyTest");
+ try {
+ assertTrue("The arrtibute in template is not repalced correctly", generator.getMethodBody(epInfo).indexOf("MyTest") > -1);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+
}
More information about the jboss-svn-commits
mailing list