Upgrading Scout/JUDDI combo
anil.saldhana Nov 11, 2008 12:52 PMJUDDI can be upgraded to 2.0.rc5 without issues. The problem is in the scout project which has got dependencies on xml beans introduced.
What is need to make the scout upgrade is an implementation of the Transport interface:
http://svn.apache.org/viewvc/webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/transport/Transport.java?revision=552031&view=markup
The existing ones are not useful.
http://svn.apache.org/viewvc/webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/transport/
If you look in the AS4 testsuite, we use the standard jaxr connection factory.
http://anonsvn.jboss.org/repos/jbossas/branches/Branch_4_0/testsuite/build.xml
<sysproperty key="javax.xml.registry.ConnectionFactoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
If you look at the source code of this impl.
http://svn.apache.org/viewvc/webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/registry/ConnectionFactoryImpl.java?revision=552045&view=markup
/** * Update the properties used by this ConnectionFactory to obtain a connection. * * @param properties the new properties for this ConnectionFactory */ public void setProperties(Properties properties) { queryManagerURL = properties.getProperty(QUERYMANAGER_PROPERTY); lifeCycleManagerURL = properties.getProperty(LIFECYCLEMANAGER_PROPERTY); transportClass = properties.getProperty(RegistryImpl.TRANSPORT_CLASS_PROPERTY_NAME); semanticEquivalences = properties.getProperty(SEMANTICEQUIVALENCES_PROPERTY); authenticationMethod = properties.getProperty(AUTHENTICATIONMETHOD_PROPERTY); postalAddressScheme = properties.getProperty(POSTALADDRESSSCHEME_PROPERTY); String val = properties.getProperty(MAXROWS_PROPERTY); maxRows = (val == null) ? null : Integer.valueOf(val); }
Now there is a property for the transportClass. For that look inside the RegistryImpl class
http://svn.apache.org/viewvc/webservices/scout/trunk/scout/src/main/java/org/apache/ws/scout/registry/RegistryImpl.java?revision=658811&view=markup
public static final String TRANSPORT_CLASS_PROPERTY_NAME = "scout.proxy.transportClass"; String transClass = props.getProperty(TRANSPORT_CLASS_PROPERTY_NAME); if (transClass != null) this.setTransport(this.getTransport(transClass)); else this.setTransport(this.getTransport(DEFAULT_TRANSPORT_CLASS));
So you will need to create a transport implementation and use the "scout.proxy.transportClass" to install your implementation on the client side that connects to the uddi urls. The transport class will do the marshalling/unmarshalling of request/response. You can use JAXB2.
The branch 0.7 of scout uses juddi proxy as the transport. juddi proxy provides a IRegistry interface.
http://svn.apache.org/viewvc/webservices/scout/tags/v0.7rc2/modules/scout/src/java/org/apache/ws/scout/registry/ConnectionImpl.java?revision=469585&view=markup