Glen, I agree with you to a point.  Here's an example.  I intended to
change the imports in, say, samples/stock/GetQuote1.java from

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

to

import javax.xml.rpc.Call;
import javax.xml.rpc.Service;

And use these interfaces where possible.  When we use AXIS-specific
interfaces, we would cast to org.apache.axis.client...

However, the more I think about this, the less comfortable I am about some
of these.  Here's a fairly innocuous change:

      Service service = new Service( new URL("file:GetQuote.wsdl"), servQN
);
      Call    call    = (Call) service.createCall( portQN, "getQuote");

where Service and Call are in org.apache.axis.client, to

      Service service = ServiceFactory.newInstance().createService( new URL
("file:GetQuote.wsdl"), servQN );
      Call call  = service.createCall( portQN, "getQuote" );

where Service, Call, and ServiceFactory are in javax.xml.rpc.  It uses the
factory and it codes to interfaces rather than to classes, which is
goodness.  But the following code shows some value that AXIS provides above
JAX-RPC:

      call.setUsername( opts.getUser() );
      call.setPassword( opts.getPassword() );

It would be unfortunate, to me, to change this to:

      call.setProperty( Call.USERNAME_PROPERTY, opts.getUser() );
      call.setProperty( Call.PASSWORD_PROPERTY, opts.getPassword() );

(though my fellow IBMers might disagree - Greg? you reading this?)

What I could do is leave the existing samples alone and add a sample or two
that's purely JAX-RPC.  The problem with this is that the existing samples
are probably a bit out of date and some of the JAX-RPC stuff IS goodness
and would make for better samples all around.  What we really need are code
reviews of all our samples.

Russell Butek
[EMAIL PROTECTED]


Glen Daniels <[EMAIL PROTECTED]> on 04/04/2002 08:59:24 AM

Please respond to [EMAIL PROTECTED]

To:    "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
cc:
Subject:    RE: cvs commit: xml-axis/java/src/javax/xml/rpc/soap
       SOAPFault.ja     va SOAPHeaderFault.java



>   +! <> Change all the samples (and the tests?) to use the
> JAX-RPC interfaces rather than the AXIS ones.

-1/2

Yes, we should be testing the JAX-RPC interfaces and such, but in places
where our functionality differs from or extends the specs, we still should
be using our stuff.  We're not, nor should we aim to be, "just another"
JAX-RPC implementation.

--Glen


Reply via email to