[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'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