13 Replies Latest reply on Dec 9, 2008 3:42 AM by Richard Opalka

    Upgrading Scout/JUDDI combo

    Anil Saldanha Master

      JUDDI 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