[jboss-svn-commits] JBL Code SVN: r31149 - in labs/jbossesb/branches/JBESB_4_7_CP/product: rosetta/src/org/jboss/soa/esb/listeners/config/mappers and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jan 19 14:53:18 EST 2010
Author: dward
Date: 2010-01-19 14:53:18 -0500 (Tue, 19 Jan 2010)
New Revision: 31149
Modified:
labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/internal/soa/esb/publish/ActionContractPublisher.java
labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java
labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java
labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java
labs/jbossesb/branches/JBESB_4_7_CP/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/AbstractWsdlContractPublisher.java
labs/jbossesb/branches/JBESB_4_7_CP/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/proxy/SOAPProxyWsdlContractPublisher.java
Log:
Fix for JBESB-3034 ( https://jira.jboss.org/jira/browse/JBESB-3034 ).
Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/internal/soa/esb/publish/ActionContractPublisher.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/internal/soa/esb/publish/ActionContractPublisher.java 2010-01-19 19:43:17 UTC (rev 31148)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/internal/soa/esb/publish/ActionContractPublisher.java 2010-01-19 19:53:18 UTC (rev 31149)
@@ -1,5 +1,9 @@
package org.jboss.internal.soa.esb.publish;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+
import org.jboss.soa.esb.ConfigurationException;
import org.jboss.soa.esb.listeners.config.Action;
@@ -17,4 +21,38 @@
* @throws org.jboss.soa.esb.ConfigurationException Configuration exception.
*/
public void setActionConfig(Action actionConfig) throws ConfigurationException;
+
+ // JBESB-3034
+ public static class ProxyFactory {
+
+ private static final String MockContractPublisher = "org.jboss.soa.esb.listeners.config.MockContractPublisher";
+
+ public static ActionContractPublisher createContextClassLoaderProxy(final ActionContractPublisher pub) {
+ // can't use "instanceof" since it's only on the test classpath and not on the "ant dist" classpath
+ if ( pub.getClass().getName().equals(MockContractPublisher) ) {
+ return pub;
+ }
+ final Class<?>[] ifaces;
+ if (pub instanceof ServletContractPublisher) {
+ ifaces = new Class[]{ActionContractPublisher.class, ServletContractPublisher.class};
+ } else {
+ ifaces = new Class[]{ActionContractPublisher.class};
+ }
+ InvocationHandler handler = new InvocationHandler() {
+ private final ClassLoader new_loader = Thread.currentThread().getContextClassLoader();
+ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+ final ClassLoader old_loader = Thread.currentThread().getContextClassLoader();
+ Thread.currentThread().setContextClassLoader(new_loader);
+ try {
+ return method.invoke(pub, args);
+ } finally {
+ Thread.currentThread().setContextClassLoader(old_loader);
+ }
+ }
+ };
+ return (ActionContractPublisher)Proxy.newProxyInstance(pub.getClass().getClassLoader(), ifaces, handler);
+ }
+
+ }
+
}
Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java 2010-01-19 19:43:17 UTC (rev 31148)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers/XMLBeansModel.java 2010-01-19 19:53:18 UTC (rev 31149)
@@ -392,6 +392,8 @@
if(actionInfo.getProperties().getProperty("publishContract", "true").equals("true")) {
publisher.setActionConfig(actionInfo);
+ // JBESB-3034
+ publisher = ActionContractPublisher.ProxyFactory.createContextClassLoaderProxy(publisher);
return publisher;
}
} catch (ClassCastException e) {
Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java 2010-01-19 19:43:17 UTC (rev 31148)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/XMLBeansModel.java 2010-01-19 19:53:18 UTC (rev 31149)
@@ -392,6 +392,8 @@
if(actionInfo.getProperties().getProperty("publishContract", "true").equals("true")) {
publisher.setActionConfig(actionInfo);
+ // JBESB-3034
+ publisher = ActionContractPublisher.ProxyFactory.createContextClassLoaderProxy(publisher);
return publisher;
}
} catch (ClassCastException e) {
Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java 2010-01-19 19:43:17 UTC (rev 31148)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers120/XMLBeansModel.java 2010-01-19 19:53:18 UTC (rev 31149)
@@ -444,6 +444,8 @@
if(actionInfo.getProperties().getProperty("publishContract", "true").equals("true")) {
publisher.setActionConfig(actionInfo);
+ // JBESB-3034
+ publisher = ActionContractPublisher.ProxyFactory.createContextClassLoaderProxy(publisher);
return publisher;
}
} catch (ClassCastException e) {
Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/AbstractWsdlContractPublisher.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/AbstractWsdlContractPublisher.java 2010-01-19 19:43:17 UTC (rev 31148)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/AbstractWsdlContractPublisher.java 2010-01-19 19:53:18 UTC (rev 31149)
@@ -143,12 +143,7 @@
if (data != null) {
contract.setData( updateWsdl(data, epr, targetServiceCat, targetServiceName, targetProtocol) );
} else {
- if ( wsdlAddress.startsWith("classpath://") ) {
- contract.setMimeType("text/plain");
- contract.setData("'" + wsdlAddress + "' unavailable: WSDL address URI format unsupported by contract application unless 'http-gateway' is employed.");
- } else {
- throw new Exception("null Contract data");
- }
+ throw new Exception("null Contract data");
}
} catch (Exception e) {
logger.error("Failed to load WSDL contract information from address '" + wsdlAddress + "'.", e);
Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/proxy/SOAPProxyWsdlContractPublisher.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/proxy/SOAPProxyWsdlContractPublisher.java 2010-01-19 19:43:17 UTC (rev 31148)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/proxy/SOAPProxyWsdlContractPublisher.java 2010-01-19 19:53:18 UTC (rev 31149)
@@ -104,7 +104,9 @@
}
else
{
- contract = new ContractInfo( "text/xml", getWsdl(getWsdlAddress()) );
+ // !!! *HAS* TO BE THE *SUPER* CLASS' IMPLEMENTATION !!!
+ // --> AbstractWsdlContractPublisher.getContractInfo(String) <--
+ contract = super.getContractInfo( getWsdlAddress() );
}
return contract;
}
More information about the jboss-svn-commits
mailing list