[jboss-svn-commits] JBL Code SVN: r33531 - in labs/jbossesb/trunk/product: services and 13 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jun 16 20:50:26 EDT 2010


Author: dward
Date: 2010-06-16 20:50:25 -0400 (Wed, 16 Jun 2010)
New Revision: 33531

Added:
   labs/jbossesb/trunk/product/services/soapui-client/aop/
   labs/jbossesb/trunk/product/services/soapui-client/aop/java/
   labs/jbossesb/trunk/product/services/soapui-client/aop/java/org/
   labs/jbossesb/trunk/product/services/soapui-client/aop/java/org/jboss/
   labs/jbossesb/trunk/product/services/soapui-client/aop/java/org/jboss/soa/
   labs/jbossesb/trunk/product/services/soapui-client/aop/java/org/jboss/soa/esb/
   labs/jbossesb/trunk/product/services/soapui-client/aop/java/org/jboss/soa/esb/services/
   labs/jbossesb/trunk/product/services/soapui-client/aop/java/org/jboss/soa/esb/services/soapui/
   labs/jbossesb/trunk/product/services/soapui-client/aop/java/org/jboss/soa/esb/services/soapui/WsdlLoaderAspect.java
   labs/jbossesb/trunk/product/services/soapui-client/aop/resources/
   labs/jbossesb/trunk/product/services/soapui-client/aop/resources/META-INF/
   labs/jbossesb/trunk/product/services/soapui-client/aop/resources/META-INF/jboss-aop.xml
Modified:
   labs/jbossesb/trunk/product/.classpath
   labs/jbossesb/trunk/product/services/base-project-build.xml
   labs/jbossesb/trunk/product/services/soapui-client/build.xml
   labs/jbossesb/trunk/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java
   labs/jbossesb/trunk/product/services/soapui-client/src/main/resources/META-INF/jboss-structure.xml
Log:
Fix for JBESB-3276 ( https://jira.jboss.org/browse/JBESB-3276 ).


Modified: labs/jbossesb/trunk/product/.classpath
===================================================================
--- labs/jbossesb/trunk/product/.classpath	2010-06-16 23:25:48 UTC (rev 33530)
+++ labs/jbossesb/trunk/product/.classpath	2010-06-17 00:50:25 UTC (rev 33531)
@@ -17,8 +17,10 @@
 	<classpathentry excluding="**/.svn/" kind="src" path="services/slsb/src/test/java"/>
 	<classpathentry excluding="**/.svn/" kind="src" path="services/smooks/src/main/java"/>
 	<classpathentry excluding="**/.svn/" kind="src" path="services/smooks/src/test/java"/>
+	<classpathentry excluding="**/.svn/" kind="src" path="services/soap/aop/java"/>
 	<classpathentry excluding="**/.svn/" kind="src" path="services/soap/src/main/java"/>
 	<classpathentry excluding="**/.svn/" kind="src" path="services/soap/src/test/java"/>
+	<classpathentry excluding="**/.svn/" kind="src" path="services/soapui-client/aop/java"/>
 	<classpathentry excluding="**/.svn/" kind="src" path="services/soapui-client/src/main/java"/>
 	<classpathentry excluding="**/.svn/" kind="src" path="services/soapui-client/src/test/java"/>
 	<classpathentry excluding="**/.svn/" kind="src" path="services/spring/src/main/java"/>
@@ -46,6 +48,7 @@
 	<classpathentry kind="lib" path="build/lib/dom4j-1.6.1.jar"/>
 	<classpathentry kind="lib" path="build/lib/freemarker-2.3.11.jar"/>
 	<classpathentry kind="lib" path="build/lib/groovy-all-1.5.4.jar"/>
+	<classpathentry kind="lib" path="build/lib/h2-1.2.124.jar"/>
 	<classpathentry kind="lib" path="build/lib/hibernate3-3.2.4.SP1.jar"/>
 	<classpathentry kind="lib" path="build/lib/javassist-3.6.0.GA.jar"/>
 	<classpathentry kind="lib" path="build/lib/jaxb-api-2.1.jar"/>
@@ -82,6 +85,7 @@
 	<classpathentry kind="lib" path="build/lib/jcr-1.0.jar"/>
 	<classpathentry kind="lib" path="build/lib/jgroups-2.4.1.jar"/>
 	<classpathentry kind="lib" path="build/lib/jsch-0.1.38.jar"/>
+	<classpathentry kind="lib" path="build/lib/juddi-client-3.0.2.jar"/>
 	<classpathentry kind="lib" path="build/lib/log4j-1.2.14.jar"/>
 	<classpathentry kind="lib" path="build/lib/mail-1.4.jar"/>
 	<classpathentry kind="lib" path="build/lib/milyn-commons-1.2.5.jar"/>
@@ -118,6 +122,7 @@
 	<classpathentry kind="lib" path="build/lib/stax-1.2.0.jar"/>
 	<classpathentry kind="lib" path="build/lib/stax-api-1.0.1.jar"/>
 	<classpathentry kind="lib" path="build/lib/stringtemplate-3.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/uddi-ws-3.0.2.jar"/>
 	<classpathentry kind="lib" path="build/lib/xbean-2.2.0.jar"/>
 	<classpathentry kind="lib" path="build/lib/xercesImpl-2.8.0.jar"/>
 	<classpathentry kind="lib" path="build/lib/xstream-1.2.2.jar"/>
@@ -136,6 +141,7 @@
 	<classpathentry kind="lib" path="lib/ext/jbossws-core.jar"/>
 	<classpathentry kind="lib" path="lib/ext/jbossws-spi.jar"/>
 	<classpathentry kind="lib" path="lib/ext/jms/activemq/backport-util-concurrent-2.1.jar"/>
+	<classpathentry kind="lib" path="lib/ext/juddi-core-3.0.2.SNAPSHOT.jar"/>
 	<classpathentry kind="lib" path="lib/ext/scout-1.2.1.jar"/>
 	<classpathentry kind="lib" path="lib/ext/servlet-api.jar"/>
 	<classpathentry kind="lib" path="lib/ext/standalone/c3p0-0.9.1-pre9.jar"/>
@@ -158,19 +164,14 @@
 	<classpathentry kind="lib" path="services/jbrules/lib/ext/jxl-2.4.2.jar"/>
 	<classpathentry kind="lib" path="services/jbrules/lib/ext/xpp3_min-1.1.3.4.O.jar"/>
 	<classpathentry kind="lib" path="services/soap/lib/ext/wise-core.jar"/>
+	<classpathentry kind="lib" path="services/soapui-client/src/lib/looks-2.1.2.jar"/>
 	<classpathentry kind="lib" path="services/soapui-client/src/lib/soapui-1.7.1.jar"/>
 	<classpathentry kind="lib" path="services/soapui-client/src/lib/soapui-xmlbeans-1.7.jar"/>
+	<classpathentry kind="lib" path="services/soapui-client/src/lib/soap-xmlbeans-1.2.jar"/>
 	<classpathentry kind="lib" path="services/spring/lib/ext/spring-2.5.6.SEC01.jar"/>
-	<classpathentry kind="var" path="ESB_ROOT"/>
 	<classpathentry kind="var" path="ESB_ROOT/testlib/hsqldb.jar"/>
 	<classpathentry kind="var" path="ESB_ROOT/testlib/junit-4.1.jar"/>
 	<classpathentry kind="var" path="ESB_ROOT/testlib/mockejb.jar"/>
 	<classpathentry kind="var" path="ESB_ROOT/testlib/mockito-all-1.8.0.jar"/>
-	<classpathentry kind="lib" path="services/soapui-client/src/lib/looks-2.1.2.jar"/>
-	<classpathentry kind="lib" path="services/soapui-client/src/lib/soap-xmlbeans-1.2.jar"/>
-	<classpathentry kind="lib" path="build/lib/h2-1.2.124.jar"/>
-	<classpathentry kind="lib" path="lib/ext/juddi-core-3.0.2.SNAPSHOT.jar"/>
-	<classpathentry kind="lib" path="build/lib/uddi-ws-3.0.2.jar"/>
-	<classpathentry kind="lib" path="build/lib/juddi-client-3.0.2.jar"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>

Modified: labs/jbossesb/trunk/product/services/base-project-build.xml
===================================================================
--- labs/jbossesb/trunk/product/services/base-project-build.xml	2010-06-16 23:25:48 UTC (rev 33530)
+++ labs/jbossesb/trunk/product/services/base-project-build.xml	2010-06-17 00:50:25 UTC (rev 33531)
@@ -152,6 +152,7 @@
 	            <pathelement location="build/tests/classes/"/>
 	            <path refid="classpath" />
                 <path refid="test.classpath" />
+	            <pathelement location="../soapui-client/target/aop-classes"/>
             </classpath>
 			<!-- emma jvm args -->
 			<jvmarg value="-Demma.coverage.out.file=${coverage.dir}/coverage.emma" />

Added: labs/jbossesb/trunk/product/services/soapui-client/aop/java/org/jboss/soa/esb/services/soapui/WsdlLoaderAspect.java
===================================================================
--- labs/jbossesb/trunk/product/services/soapui-client/aop/java/org/jboss/soa/esb/services/soapui/WsdlLoaderAspect.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/services/soapui-client/aop/java/org/jboss/soa/esb/services/soapui/WsdlLoaderAspect.java	2010-06-17 00:50:25 UTC (rev 33531)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 
+ * PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2010
+ */
+package org.jboss.soa.esb.services.soapui;
+
+import org.jboss.aop.joinpoint.MethodInvocation;
+
+import com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader;
+
+/**
+ * Aspect used to override soapUI's WsdlContext$Loader.getWsdlLoader() so that an
+ * InheritableThreadLocal's EsbWsdlLoader is always used instead of a UrlWsdlLoader,
+ * which sometimes would erroneously get used by a SwingWorker Thread even though
+ * the EsbWsdlLoader is passed into the WsdlContext's load method by WsdlImporter.
+ * Setting a WsdlContext (or even a shared DefinitionCache) after the WsdlInterfaces
+ * are returned by the WsdlProject is unfortunately too late, so this fix is necessary.
+ * 
+ * <p>The associated jira issue is <a href="https://jira.jboss.org/browse/JBESB-3276">JBESB-3276</a></p>
+ * 
+ * @see {@link SoapUIClientService#getWsdlInterfaces(java.lang.String,java.util.Properties)} for setting the appropriate EsbWsdlLoader
+ * 
+ * @author dward at jboss.org
+ */
+public class WsdlLoaderAspect {
+	
+	private static final InheritableThreadLocal<WsdlLoader> wsdlLoaderITL = new InheritableThreadLocal<WsdlLoader>();
+	
+	public static WsdlLoader get() {
+		return wsdlLoaderITL.get();
+	}
+	
+	public static void set(WsdlLoader wsdlLoader) {
+		wsdlLoaderITL.set(wsdlLoader);
+	}
+	
+	public static void unset() {
+		set(null);
+	}
+	
+	public WsdlLoaderAspect() {}
+
+	public Object getWsdlLoader(final MethodInvocation invocation) throws Throwable {
+		WsdlLoader wsdlLoader = get();
+		return (wsdlLoader != null) ? wsdlLoader : invocation.invokeNext();
+	}
+
+}


Property changes on: labs/jbossesb/trunk/product/services/soapui-client/aop/java/org/jboss/soa/esb/services/soapui/WsdlLoaderAspect.java
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Added: labs/jbossesb/trunk/product/services/soapui-client/aop/resources/META-INF/jboss-aop.xml
===================================================================
--- labs/jbossesb/trunk/product/services/soapui-client/aop/resources/META-INF/jboss-aop.xml	                        (rev 0)
+++ labs/jbossesb/trunk/product/services/soapui-client/aop/resources/META-INF/jboss-aop.xml	2010-06-17 00:50:25 UTC (rev 33531)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aop xmlns="urn:jboss:aop-beans:1.0">
+	<aspect class="org.jboss.soa.esb.services.soapui.WsdlLoaderAspect" scope="PER_VM"/>
+	<bind pointcut="execution(* com.eviware.soapui.impl.wsdl.support.wsdl.WsdlContext$Loader->getWsdlLoader())">
+		<advice name="getWsdlLoader" aspect="org.jboss.soa.esb.services.soapui.WsdlLoaderAspect"/>
+	</bind>
+</aop>


Property changes on: labs/jbossesb/trunk/product/services/soapui-client/aop/resources/META-INF/jboss-aop.xml
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Modified: labs/jbossesb/trunk/product/services/soapui-client/build.xml
===================================================================
--- labs/jbossesb/trunk/product/services/soapui-client/build.xml	2010-06-16 23:25:48 UTC (rev 33530)
+++ labs/jbossesb/trunk/product/services/soapui-client/build.xml	2010-06-17 00:50:25 UTC (rev 33531)
@@ -3,12 +3,23 @@
 -->
 
 <project name="soapui-client" default="sar" basedir=".">
+
     <property name="maven.build.output" value="target/classes"/>
     <property name="maven.build.directory" value="target"/>
     <property name="maven.build.final.name" value="soapui-client"/>
     <property name="maven.test.reports" value="${maven.build.directory}/test-reports"/>
     <property name="maven.test.output" value="target/test-classes"/>
 
+	<property name="soapui.jar" value="soapui-1.7.1.jar"/>
+	<property name="aop.dir" location="aop"/>
+	<property name="aop.src.dir" location="${aop.dir}/java"/>
+	<property name="aop.resources.dir" location="${aop.dir}/resources"/>
+	<property name="aop.jar.version" value="1.0"/>
+	<property name="aop.jar.name" value="jboss-soapui-${aop.jar.version}.aop"/>
+	<property name="aop.jar" value="${maven.build.directory}/${aop.jar.name}"/>
+	<property name="aop.classes.dir" location="${maven.build.directory}/aop-classes"/>
+	<property name="aopc.soapui.classes.dir" location="${maven.build.directory}/aopc-soapui-classes"/>
+
     <path id="jboss-esb-dependencies">
         <fileset dir="../../build/jbossesb/lib" includes="jbossesb-rosetta.jar" />
     </path>
@@ -22,11 +33,43 @@
         <fileset dir="../../../testlib" includes="*.jar"/>
         <path refid="jboss-esb-dependencies" />
     </path>
-	
 
     <target name="clean" description="Clean the output directory">
         <delete dir="${maven.build.directory}"/>
     </target>
+
+	<target name="aop-compile">
+		<mkdir dir="${aop.classes.dir}"/>
+		<javac srcdir="${aop.src.dir}" destdir="${aop.classes.dir}"
+			debug="true" source="1.5" classpathref="build.classpath"/>
+	</target>
+
+	<target name="aop-jar" depends="aop-compile">
+		<jar destfile="${aop.jar}">
+			<fileset dir="${aop.classes.dir}"/>
+			<fileset dir="${aop.resources.dir}"/>
+		</jar>
+	</target>
+
+	<target name="aopc-jar">
+		<taskdef name="aopc" classname="org.jboss.aop.ant.AopC" classpathref="build.classpath"/>
+
+		<delete dir="${aopc.soapui.classes.dir}" quiet="true"/>
+		<mkdir dir="${aopc.soapui.classes.dir}"/>
+
+		<unzip dest="${aopc.soapui.classes.dir}" src="src/lib/${soapui.jar}"/>
+
+		<aopc compilerclasspathref="build.classpath" verbose="true">
+			<classpath path="${aopc.soapui.classes.dir}"/>
+			<src path="${aopc.soapui.classes.dir}"/>
+			<include name="com/eviware/soapui/impl/wsdl/support/wsdl/WsdlContext$Loader.class"/>
+
+			<aoppath path="${aop.resources.dir}/META-INF/jboss-aop.xml"/>
+			<aopclasspath path="${aop.classes.dir}"/>
+		</aopc>
+		<zip destfile="${maven.build.directory}/${soapui.jar}" basedir="${aopc.soapui.classes.dir}"/>
+	</target>
+
     <target name="compile" description="Compile the code">
         <mkdir dir="${maven.build.output}"/>
         <javac destdir="${maven.build.output}" excludes="**/package.html" debug="true" deprecation="true"
@@ -34,7 +77,10 @@
             <src>
                 <pathelement location="src/main/java"/>
             </src>
-            <classpath refid="build.classpath"/>
+			<classpath>
+            	<path refid="build.classpath"/>
+                <pathelement location="${aop.classes.dir}"/>
+			</classpath>
         </javac>
         <copy todir="${maven.build.output}">
             <fileset dir="src/main/java">
@@ -45,25 +91,32 @@
             <fileset dir="src/main/resources"/>
         </copy>
     </target>
+
     <target name="jar" depends="compile" description="Clean the JAR">
         <jar jarfile="${maven.build.directory}/${maven.build.final.name}.jar" basedir="${maven.build.output}"
              excludes="**/package.html"/>
     </target>
-    <target name="sar" depends="clean,jar" description="SAR">
+
+    <target name="sar" depends="clean,aop-jar,aopc-jar,jar" description="SAR">
         <property name="sar.dir" location="../../build/jbossesb/lib/${ant.project.name}.sar" />
 
         <delete dir="${sar.dir}" />
         <mkdir dir="${sar.dir}" />
         <copy todir="${sar.dir}">
-            <fileset dir="src" includes="lib/*.jar"/>
+            <fileset dir="src" includes="lib/*.jar" excludes="lib/${soapui.jar}"/>
             <fileset dir="src/main/resources" />
+			<fileset file="${aop.jar}"/>
         </copy>
+        <copy todir="${sar.dir}/lib">
+			<fileset file="${maven.build.directory}/${soapui.jar}"/>
+        </copy>
         <copy todir="${sar.dir}">
             <!-- fileset dir="${maven.build.directory}" includes="${maven.build.final.name}.jar" / -->
             <fileset dir="${maven.build.directory}/classes" />
         </copy>
     </target>
-    <target name="compile-tests" depends="junit-present, compile" description="Compile the test code"
+
+    <target name="compile-tests" depends="junit-present, aop-compile, compile" description="Compile the test code"
             if="junit.present">
         <mkdir dir="${maven.test.output}"/>
         <javac destdir="${maven.test.output}" excludes="**/package.html" debug="true" deprecation="true"
@@ -85,6 +138,7 @@
             <fileset dir="src/test/resources"/>
         </copy>
     </target>
+
     <target name="test" depends="junit-present, compile-tests" if="junit.present" description="Run the test cases">
         <mkdir dir="${maven.test.reports}"/>
         <junit printSummary="yes" haltonerror="true" showoutput="true" haltonfailure="true" fork="true" dir=".">
@@ -98,6 +152,7 @@
                 <path refid="build.classpath"/>
                 <pathelement location="${maven.build.output}"/>
                 <pathelement location="${maven.test.output}"/>
+                <pathelement location="${aop.classes.dir}"/>
             </classpath>
             <batchtest todir="${maven.test.reports}">
                 <fileset dir="src/test/java">
@@ -107,12 +162,15 @@
             </batchtest>
         </junit>
     </target>
+
     <target name="test-junit-present">
         <available classname="junit.framework.Test" property="junit.present"/>
     </target>
+
     <target name="junit-present" depends="test-junit-present" unless="junit.present">
         <echo>================================= WARNING ================================</echo>
         <echo>Junit isn&apos;t present in your $ANT_HOME/lib directory. Tests not executed.</echo>
         <echo>==========================================================================</echo>
     </target>
+
 </project>

Modified: labs/jbossesb/trunk/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java
===================================================================
--- labs/jbossesb/trunk/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java	2010-06-16 23:25:48 UTC (rev 33530)
+++ labs/jbossesb/trunk/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java	2010-06-17 00:50:25 UTC (rev 33531)
@@ -55,8 +55,6 @@
 import javax.xml.transform.dom.DOMResult;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
-import org.jboss.system.server.ServerConfigImplMBean;
-import org.jboss.mx.util.MBeanProxyExt;
 
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.log4j.Logger;
@@ -65,12 +63,14 @@
 import org.apache.xmlbeans.XmlOptions;
 import org.jboss.internal.soa.esb.soap.OGNLUtils;
 import org.jboss.internal.soa.esb.util.ESBProperties;
+import org.jboss.internal.soa.esb.util.XMLHelper;
+import org.jboss.mx.util.MBeanProxyExt;
 import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.internal.soa.esb.util.XMLHelper;
 import org.jboss.soa.esb.dom.YADOMUtil;
 import org.jboss.soa.esb.http.HttpClientFactory;
 import org.jboss.system.ServiceMBeanSupport;
 import org.jboss.system.server.ServerConfig;
+import org.jboss.system.server.ServerConfigImplMBean;
 import org.milyn.Smooks;
 import org.w3c.dom.Comment;
 import org.w3c.dom.Document;
@@ -477,6 +477,7 @@
 
                 try {
                     EsbWsdlLoader loader = new EsbWsdlLoader(wsdl, httpClient);
+                    WsdlLoaderAspect.set(loader); // JBESB-3276
                     wsdlInterfaces = wsdlProject.importWsdl(wsdl, true, loader);
                     Map<String, XmlObject> schemas = SchemaUtils.getSchemas(wsdl, loader);
                     Iterator keys = schemas.keySet().iterator();
@@ -488,6 +489,7 @@
                         extractNillableElements(docRoot, nils, namespace);
                     }
                 } finally {
+                	WsdlLoaderAspect.unset(); // JBESB-3276
                     HttpClientFactory.shutdown(httpClient);
                 }
                 nillables.put(wsdl, nils);

Modified: labs/jbossesb/trunk/product/services/soapui-client/src/main/resources/META-INF/jboss-structure.xml
===================================================================
--- labs/jbossesb/trunk/product/services/soapui-client/src/main/resources/META-INF/jboss-structure.xml	2010-06-16 23:25:48 UTC (rev 33530)
+++ labs/jbossesb/trunk/product/services/soapui-client/src/main/resources/META-INF/jboss-structure.xml	2010-06-17 00:50:25 UTC (rev 33531)
@@ -7,6 +7,13 @@
         <classpath>
             <path name=""/>
             <path name=""  suffixes=".jar"/>
+            <path name="jboss-soapui-1.0.aop"/>
         </classpath>
     </context>
+    <context>
+        <path name="jboss-soapui-1.0.aop"/>
+        <metaDataPath>
+            <path name="META-INF"/>
+        </metaDataPath>
+    </context>
 </structure>



More information about the jboss-svn-commits mailing list