axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Elenius <danel...@student.liu.se>
Subject Re: cvs commit: xml-axis/java/src/org/apache/axis/client Service.java
Date Mon, 17 Mar 2003 14:38:55 GMT
Wow, that's fast work! :)

Please also add a javadoc @param tag for the new 'context' parameter of
initService() (line 286)

/daniel


On Mon, 2003-03-17 at 14:28, dims@apache.org wrote:
> dims        2003/03/17 05:28:36
> 
>   Modified:    java/src/org/apache/axis/client Service.java
>   Log:
>   Fix for Bug (http://marc.theaimsgroup.com/?l=axis-dev&m=104790429421850&w=2)
>   reported by Daniel Elenius <danel698@student.liu.se>
>   
>   Notes:
>   - initService(Document doc, QName serviceName) now uses the doc parameter
>   - Cleaned up a few "{" braces while i was at it.
>   
>   Revision  Changes    Path
>   1.85      +131 -128  xml-axis/java/src/org/apache/axis/client/Service.java
>   
>   Index: Service.java
>   ===================================================================
>   RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/Service.java,v
>   retrieving revision 1.84
>   retrieving revision 1.85
>   diff -u -r1.84 -r1.85
>   --- Service.java	10 Jan 2003 04:22:37 -0000	1.84
>   +++ Service.java	17 Mar 2003 13:28:35 -0000	1.85
>   @@ -53,7 +53,7 @@
>    * <http://www.apache.org/>.
>    */
>    
>   -package org.apache.axis.client ;
>   +package org.apache.axis.client;
>    
>    import org.apache.axis.AxisEngine;
>    import org.apache.axis.EngineConfiguration;
>   @@ -104,39 +104,38 @@
>     */
>    
>    public class Service implements javax.xml.rpc.Service, Serializable, Referenceable
{
>   -    private transient AxisEngine          engine = null;
>   +    private transient AxisEngine engine = null;
>        private transient EngineConfiguration config = null;
>    
>   -    private QName               serviceName     = null ;
>   -    private String              wsdlLocation    = null ;
>   -    private javax.wsdl.Service  wsdlService     = null ;
>   -    private boolean             maintainSession = false ;
>   +    private QName serviceName = null;
>   +    private String wsdlLocation = null;
>   +    private javax.wsdl.Service wsdlService = null;
>   +    private boolean maintainSession = false;
>        private HandlerRegistryImpl registry = new HandlerRegistryImpl();
>   -    private Parser              wsdlParser      = null;
>   +    private Parser wsdlParser = null;
>    
>        /**
>         * Thread local storage used for storing the last call object
>         */
>        private static ThreadLocal previousCall = new ThreadLocal();
>   -    private static HashMap      cachedWSDL  = new HashMap();
>   -    private static boolean      cachingWSDL = true ;
>   +    private static HashMap cachedWSDL = new HashMap();
>   +    private static boolean cachingWSDL = true;
>    
>        /**
>         * A Hashtable mapping addresses (URLs) to Transports (objects)
>         */
>        private Hashtable transportImpls = new Hashtable();
>    
>   -    
>   +
>        protected javax.wsdl.Service getWSDLService() {
>   -        return( wsdlService );
>   +        return (wsdlService);
>        }
>    
>        public Parser getWSDLParser() {
>   -        return( wsdlParser );
>   +        return (wsdlParser);
>        }
>   -    
>   -    protected AxisClient getAxisClient()
>   -    {
>   +
>   +    protected AxisClient getAxisClient() {
>            return new AxisClient(getEngineConfiguration());
>        }
>    
>   @@ -181,21 +180,13 @@
>            this.serviceName = serviceName;
>            engine = getAxisClient();
>            wsdlLocation = wsdlDoc.toString();
>   -        Parser parser = null ;
>   +        Parser parser = null;
>    
>   -        if ( cachingWSDL &&
>   -             (parser = (Parser) cachedWSDL.get(this.wsdlLocation.toString())) != null
){
>   -          initService( parser, serviceName );
>   -        }
>   -        else {
>   -            Document doc = null;
>   -            try {
>   -                doc = XMLUtils.newDocument(wsdlDoc.toString());
>   -            } catch (Exception exp ) {
>   -                throw new ServiceException(
>   -                   Messages.getMessage("wsdlError00", "" + "", "\n" + exp) );
>   -            }
>   -            initService(doc, serviceName);
>   +        if (cachingWSDL &&
>   +                (parser = (Parser) cachedWSDL.get(this.wsdlLocation.toString())) !=
null) {
>   +            initService(parser, serviceName);
>   +        } else {
>   +            initService(wsdlDoc.toString(), serviceName);
>            }
>        }
>    
>   @@ -209,7 +200,7 @@
>        public Service(Parser parser, QName serviceName) throws ServiceException {
>            this.serviceName = serviceName;
>            engine = getAxisClient();
>   -        initService( parser, serviceName );
>   +        initService(parser, serviceName);
>        }
>    
>        /**
>   @@ -224,25 +215,17 @@
>         * @throws ServiceException If there's an error finding or parsing the WSDL
>         */
>        public Service(String wsdlLocation, QName serviceName)
>   -                           throws ServiceException {
>   +            throws ServiceException {
>            this.serviceName = serviceName;
>            this.wsdlLocation = wsdlLocation;
>            engine = getAxisClient();
>            // Start by reading in the WSDL using Parser
>   -        Parser parser = null ;
>   -        if ( cachingWSDL &&
>   -             (parser = (Parser) cachedWSDL.get(wsdlLocation)) != null ) {
>   -          initService( parser, serviceName );
>   -        }
>   -        else {
>   -            Document doc = null;
>   -            try {
>   -                doc = XMLUtils.newDocument(wsdlLocation);
>   -            } catch (Exception exp ) {
>   -                throw new ServiceException(
>   -                   Messages.getMessage("wsdlError00", "" + "", "\n" + exp) );
>   -            }
>   -          initService(doc, serviceName);
>   +        Parser parser = null;
>   +        if (cachingWSDL &&
>   +                (parser = (Parser) cachedWSDL.get(wsdlLocation)) != null) {
>   +            initService(parser, serviceName);
>   +        } else {
>   +            initService(wsdlLocation, serviceName);
>            }
>        }
>    
>   @@ -257,57 +240,83 @@
>         * @throws ServiceException If there's an error finding or parsing the WSDL
>         */
>        public Service(InputStream wsdlInputStream, QName serviceName)
>   -                           throws ServiceException {
>   +            throws ServiceException {
>            engine = getAxisClient();
>            Document doc = null;
>            try {
>                doc = XMLUtils.newDocument(wsdlInputStream);
>   -        } catch (Exception exp ) {
>   +        } catch (Exception exp) {
>                throw new ServiceException(
>   -               Messages.getMessage("wsdlError00", "" + "", "\n" + exp) );
>   +                    Messages.getMessage("wsdlError00", "" + "", "\n" + exp));
>            }
>   -        initService(doc, serviceName);
>   +        initService(null, doc, serviceName);
>        }
>    
>        /**
>         * Common code for building up the Service from a WSDL document
>         *
>   -     * @param doc               A DOM document containing WSDL
>   +     * @param url               URL for the WSDL document
>         * @param serviceName       Qualified name of the desired service
>         * @throws ServiceException  If there's an error finding or parsing the WSDL
>         */
>   -    private void initService(Document doc, QName serviceName)
>   +    private void initService(String url, QName serviceName)
>                throws ServiceException {
>            try {
>                // Start by reading in the WSDL using Parser
>                Parser parser = new Parser();
>   -            parser.run(this.wsdlLocation.toString());
>   +            parser.run(url);
>    
>   -            if ( cachingWSDL && this.wsdlLocation != null )
>   -              cachedWSDL.put( this.wsdlLocation.toString(), parser );
>   +            if (cachingWSDL && this.wsdlLocation != null)
>   +                cachedWSDL.put(url, parser);
>    
>   -            initService( parser, serviceName );
>   +            initService(parser, serviceName);
>   +        } catch (Exception exp) {
>   +            throw new ServiceException(
>   +                    Messages.getMessage("wsdlError00", "" + "", "\n" + exp));
>            }
>   -        catch( Exception exp ) {
>   +    }
>   +
>   +    /**
>   +     * Common code for building up the Service from a WSDL document
>   +     *
>   +     * @param doc               A DOM document containing WSDL
>   +     * @param serviceName       Qualified name of the desired service
>   +     * @throws ServiceException  If there's an error finding or parsing the WSDL
>   +     */
>   +    private void initService(String context, Document doc, QName serviceName)
>   +            throws ServiceException {
>   +        try {
>   +            // Start by reading in the WSDL using Parser
>   +            Parser parser = new Parser();
>   +            parser.run(context, doc);
>   +
>   +            initService(parser, serviceName);
>   +        } catch (Exception exp) {
>                throw new ServiceException(
>   -                    Messages.getMessage("wsdlError00", "" + "", "\n" + exp) );
>   +                    Messages.getMessage("wsdlError00", "" + "", "\n" + exp));
>            }
>        }
>    
>   +    /**
>   +     *  Code for building up the Service from a Parser
>   +     * 
>   +     * @param parser            Parser for this service
>   +     * @param serviceName       Qualified name of the desired service
>   +     * @throws ServiceException If there's an error finding or parsing the WSDL
>   +     */
>        private void initService(Parser parser, QName serviceName)
>                throws ServiceException {
>            try {
>   -            this.wsdlParser = parser ;
>   +            this.wsdlParser = parser;
>                ServiceEntry serviceEntry = parser.getSymbolTable().getServiceEntry(serviceName);
>   -            if ( serviceEntry != null)
>   -                this.wsdlService    = serviceEntry.getService(); 
>   -            if ( this.wsdlService == null )
>   +            if (serviceEntry != null)
>   +                this.wsdlService = serviceEntry.getService();
>   +            if (this.wsdlService == null)
>                    throw new ServiceException(
>                            Messages.getMessage("noService00", "" + serviceName));
>   -        }
>   -        catch( Exception exp ) {
>   +        } catch (Exception exp) {
>                throw new ServiceException(
>   -                    Messages.getMessage("wsdlError00", "" + "", "\n" + exp) );
>   +                    Messages.getMessage("wsdlError00", "" + "", "\n" + exp));
>            }
>        }
>    
>   @@ -322,14 +331,14 @@
>         * @throws ServiceException If there's an error
>         */
>        public Remote getPort(QName portName, Class proxyInterface)
>   -                           throws ServiceException {
>   +            throws ServiceException {
>    
>            if (wsdlService == null)
>                throw new ServiceException(Messages.getMessage("wsdlMissing00"));
>    
>   -        Port port = wsdlService.getPort( portName.getLocalPart() );
>   -        if ( port == null )
>   -            throw new ServiceException( Messages.getMessage("noPort00", "" + portName)
);
>   +        Port port = wsdlService.getPort(portName.getLocalPart());
>   +        if (port == null)
>   +            throw new ServiceException(Messages.getMessage("noPort00", "" + portName));
>    
>            // First, try to find a generated stub.  If that
>            // returns null, then find a dynamic stub.
>   @@ -364,12 +373,10 @@
>                            WSDLUtils.getAddressFromPort(port));
>                    stub.setPortName(portName);
>                    return (Remote) stub;
>   -            }
>   -            else {
>   +            } else {
>                    return null;
>                }
>   -        }
>   -        catch (Throwable t) {
>   +        } catch (Throwable t) {
>                return null;
>            }
>        } // getGeneratedStub
>   @@ -402,20 +409,19 @@
>         * @throws ServiceException
>         */
>        public Remote getPort(String endpoint, Class proxyInterface)
>   -        throws ServiceException
>   -    {
>   +            throws ServiceException {
>            return getPort(endpoint, null, proxyInterface);
>        }
>    
>        private Remote getPort(String endpoint, QName portName,
>   -            Class proxyInterface) throws ServiceException {
>   +                           Class proxyInterface) throws ServiceException {
>            if (!proxyInterface.isInterface()) {
>                throw new ServiceException(Messages.getMessage("mustBeIface00"));
>            }
>    
>            if (!(Remote.class.isAssignableFrom(proxyInterface))) {
>                throw new ServiceException(
>   -                            Messages.getMessage("mustExtendRemote00"));
>   +                    Messages.getMessage("mustExtendRemote00"));
>            }
>    
>            try {
>   @@ -425,14 +431,13 @@
>                    if (endpoint != null) {
>                        call.setTargetEndpointAddress(new URL(endpoint));
>                    }
>   -            }
>   -            else {
>   +            } else {
>                    call = (org.apache.axis.client.Call) createCall(portName);
>                }
>                ClassLoader classLoader =
>                        Thread.currentThread().getContextClassLoader();
>   -            return (Remote)Proxy.newProxyInstance(classLoader,
>   -                    new Class[] { proxyInterface, javax.xml.rpc.Stub.class },
>   +            return (Remote) Proxy.newProxyInstance(classLoader,
>   +                    new Class[]{proxyInterface, javax.xml.rpc.Stub.class},
>                        new AxisClientProxy(call, portName));
>            } catch (Exception e) {
>                throw new ServiceException(e.toString());
>   @@ -448,43 +453,42 @@
>         * @throws ServiceException If there's an error
>         */
>        public javax.xml.rpc.Call createCall(QName portName)
>   -                            throws ServiceException {
>   -        Call call = (org.apache.axis.client.Call)createCall();
>   -        call.setPortName( portName );
>   +            throws ServiceException {
>   +        Call call = (org.apache.axis.client.Call) createCall();
>   +        call.setPortName(portName);
>    
>            // We can't prefill information if WSDL is not specified,
>            // So just return the call that we just created.
>   -        if ( wsdlParser == null )
>   +        if (wsdlParser == null)
>                return call;
>    
>   -        Port port = wsdlService.getPort( portName.getLocalPart() );
>   -        if ( port == null )
>   -            throw new ServiceException( Messages.getMessage("noPort00", "" + portName)
);
>   -
>   -        Binding   binding  = port.getBinding();
>   -        PortType  portType = binding.getPortType();
>   -        if ( portType == null )
>   -            throw new ServiceException( Messages.getMessage("noPortType00", "" + portName)
);
>   +        Port port = wsdlService.getPort(portName.getLocalPart());
>   +        if (port == null)
>   +            throw new ServiceException(Messages.getMessage("noPort00", "" + portName));
>   +
>   +        Binding binding = port.getBinding();
>   +        PortType portType = binding.getPortType();
>   +        if (portType == null)
>   +            throw new ServiceException(Messages.getMessage("noPortType00", "" + portName));
>    
>            // Get the URL
>            ////////////////////////////////////////////////////////////////////
>            List list = port.getExtensibilityElements();
>   -        for ( int i = 0 ; list != null && i < list.size() ; i++ ) {
>   +        for (int i = 0; list != null && i < list.size(); i++) {
>                Object obj = list.get(i);
>   -            if ( obj instanceof SOAPAddress ) {
>   +            if (obj instanceof SOAPAddress) {
>                    try {
>   -                    SOAPAddress addr = (SOAPAddress) obj ;
>   -                    URL         url  = new URL(addr.getLocationURI());
>   +                    SOAPAddress addr = (SOAPAddress) obj;
>   +                    URL url = new URL(addr.getLocationURI());
>                        call.setTargetEndpointAddress(url);
>   -                }
>   -                catch(Exception exp) {
>   +                } catch (Exception exp) {
>                        throw new ServiceException(
>   -                            Messages.getMessage("cantSetURI00", "" + exp) );
>   +                            Messages.getMessage("cantSetURI00", "" + exp));
>                    }
>                }
>            }
>    
>   -        return( call );
>   +        return (call);
>        }
>    
>        /**
>   @@ -499,11 +503,11 @@
>         */
>        public javax.xml.rpc.Call createCall(QName portName,
>                                             String operationName)
>   -                           throws ServiceException {
>   +            throws ServiceException {
>    
>   -        Call call = (org.apache.axis.client.Call)createCall();
>   -        call.setOperation( portName, operationName );
>   -        return( call );
>   +        Call call = (org.apache.axis.client.Call) createCall();
>   +        call.setOperation(portName, operationName);
>   +        return (call);
>        }
>    
>        /**
>   @@ -518,11 +522,11 @@
>         */
>        public javax.xml.rpc.Call createCall(QName portName,
>                                             QName operationName)
>   -                           throws ServiceException {
>   +            throws ServiceException {
>    
>   -        Call call = (org.apache.axis.client.Call)createCall();
>   -        call.setOperation( portName, operationName.getLocalPart() );
>   -        return( call );
>   +        Call call = (org.apache.axis.client.Call) createCall();
>   +        call.setOperation(portName, operationName.getLocalPart());
>   +        return (call);
>        }
>    
>        /**
>   @@ -558,7 +562,7 @@
>            if (portName == null)
>                throw new ServiceException(Messages.getMessage("badPort00"));
>    
>   -        if (wsdlService == null) 
>   +        if (wsdlService == null)
>                throw new ServiceException(Messages.getMessage("wsdlMissing00"));
>    
>            javax.xml.rpc.Call[] array = new javax.xml.rpc.Call[]{createCall(portName)};
>   @@ -602,10 +606,10 @@
>         * @return QName Fully qualified name of this service.
>         */
>        public QName getServiceName() {
>   -        if ( serviceName != null ) return serviceName;
>   -        if ( wsdlService == null ) return( null );
>   -        QName  qn = wsdlService.getQName();
>   -        return( new QName( qn.getNamespaceURI(), qn.getLocalPart() ) );
>   +        if (serviceName != null) return serviceName;
>   +        if (wsdlService == null) return (null);
>   +        QName qn = wsdlService.getQName();
>   +        return (new QName(qn.getNamespaceURI(), qn.getLocalPart()));
>        }
>    
>        /**
>   @@ -619,7 +623,7 @@
>         *     have access to the required WSDL metadata
>         */
>        public Iterator getPorts() throws ServiceException {
>   -        if (wsdlService == null || wsdlService.getPorts() == null){
>   +        if (wsdlService == null || wsdlService.getPorts() == null) {
>                // Return an empty iterator;
>                return new Vector().iterator();
>            }
>   @@ -633,7 +637,7 @@
>         * @throws ServiceException if there's an error
>         */
>        public void setTypeMappingRegistry(TypeMappingRegistry registry)
>   -                    throws ServiceException  {
>   +            throws ServiceException {
>        }
>    
>        /**
>   @@ -642,7 +646,7 @@
>         * @return TypeMappingRegistry The registry
>         */
>        public TypeMappingRegistry getTypeMappingRegistry() {
>   -        return( engine.getTypeMappingRegistry() );
>   +        return (engine.getTypeMappingRegistry());
>        }
>    
>        /**
>   @@ -661,8 +665,7 @@
>                addr = new StringRefAddr(
>                        ServiceFactory.SERVICE_CLASSNAME, classname);
>                reference.add(addr);
>   -        }
>   -        else {
>   +        } else {
>                if (wsdlLocation != null) {
>                    addr = new StringRefAddr(
>                            ServiceFactory.WSDL_LOCATION, wsdlLocation.toString());
>   @@ -694,7 +697,7 @@
>         * @param engine  Sets this Service's AxisEngine to the passed in one
>         */
>        public void setEngine(AxisEngine engine) {
>   -        this.engine = engine ;
>   +        this.engine = engine;
>        }
>    
>        /**
>   @@ -706,7 +709,7 @@
>         * @return AxisEngine  the engine
>         */
>        public AxisEngine getEngine() {
>   -        return( engine );
>   +        return (engine);
>        }
>    
>        /**
>   @@ -725,14 +728,14 @@
>    
>        /**
>         * Constructs a EngineConfig if one is not available.
>   -     */ 
>   +     */
>        protected EngineConfiguration getEngineConfiguration() {
>            if (this.config == null) {
>   -            this.config = EngineConfigurationFactoryFinder.newFactory().getClientEngineConfig();

>   +            this.config = EngineConfigurationFactoryFinder.newFactory().getClientEngineConfig();
>            }
>            return config;
>        }
>   -    
>   +
>        /**
>         * Determine whether we'd like to track sessions or not.
>         * This information is passed to all Call objects created
>   @@ -764,7 +767,7 @@
>         * Tells whether or not we're caching WSDL
>         */
>        public boolean getCacheWSDL() {
>   -      return cachingWSDL ;
>   +        return cachingWSDL;
>        }
>    
>        /**
>   @@ -772,15 +775,15 @@
>         * Default is 'true' (on).
>         */
>        public void setCacheWSDL(boolean flag) {
>   -      cachingWSDL = flag ;
>   +        cachingWSDL = flag;
>        }
>    
>        protected static class HandlerRegistryImpl implements HandlerRegistry {
>            Map map = new HashMap();
>    
>            public List getHandlerChain(QName portName) {
>   -            List list = (List)map.get(portName);
>   -            if(list == null) {
>   +            List list = (List) map.get(portName);
>   +            if (list == null) {
>                    list = new java.util.ArrayList();
>                    setHandlerChain(portName, list);
>                }
>   @@ -803,7 +806,7 @@
>         * Get any registered Transport object for a given URL.
>         */
>        Transport getTransportForURL(URL url) {
>   -        return (Transport)transportImpls.get(url);
>   +        return (Transport) transportImpls.get(url);
>        }
>    
>    }
>   
>   
>   
-- 
Daniel Elenius <danel698@student.liu.se>


Mime
View raw message