dims        2002/06/14 06:27:18

  Modified:    java/samples/jaxrpc GetInfo.java
               java/src/org/apache/axis/client Call.java
               java/src/org/apache/axis/wsdl/toJava JavaStubWriter.java
               java/test/properties TestScopedProperties.java
  Log:
  TCK is VERY FINICKY about setProperty/getProperty/removeProperty works...
  
  Revision  Changes    Path
  1.3       +4 -2      xml-axis/java/samples/jaxrpc/GetInfo.java
  
  Index: GetInfo.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/samples/jaxrpc/GetInfo.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- GetInfo.java      11 Jun 2002 14:53:49 -0000      1.2
  +++ GetInfo.java      14 Jun 2002 13:27:17 -0000      1.3
  @@ -93,8 +93,10 @@
           call.addParameter("symbol", XMLType.XSD_STRING, ParameterMode.IN);
           call.addParameter("info", XMLType.XSD_STRING, ParameterMode.IN);
           call.setReturnType(XMLType.XSD_STRING);
  -        call.setProperty(Call.USERNAME_PROPERTY, opts.getUser());
  -        call.setProperty(Call.PASSWORD_PROPERTY, opts.getPassword());
  +        if(opts.getUser()!=null)
  +            call.setProperty(Call.USERNAME_PROPERTY, opts.getUser());
  +        if(opts.getPassword()!=null)
  +            call.setProperty(Call.PASSWORD_PROPERTY, opts.getPassword());
   
           String res = (String) call.invoke(new Object[] {args[0], args[1]});
   
  
  
  
  1.136     +54 -60    xml-axis/java/src/org/apache/axis/client/Call.java
  
  Index: Call.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/Call.java,v
  retrieving revision 1.135
  retrieving revision 1.136
  diff -u -r1.135 -r1.136
  --- Call.java 13 Jun 2002 19:23:15 -0000      1.135
  +++ Call.java 14 Jun 2002 13:27:17 -0000      1.136
  @@ -153,7 +153,8 @@
       // Collection of properties to store and put in MessageContext at
       // invoke() time.  Known ones are stored in actual variables for
       // efficiency/type-consistency.  Unknown ones are in myProperties.
  -    private Hashtable          myProperties    = new Hashtable();
  +    private Hashtable          callProperties  = new Hashtable();
  +    private Hashtable          scopedProperties= new Hashtable();
       private String             username        = null;
       private String             password        = null;
       private boolean            maintainSession = false;
  @@ -255,8 +256,7 @@
        */
       public void setProperty(String name, Object value) {
           if (name == null || value == null) {
  -            return;
  -            // Is this right?  Shouldn't we throw an exception like: throw new 
IllegalArgumentException();
  +            throw new IllegalArgumentException();
           }
           else if (name.equals(USERNAME_PROPERTY)) {
               if (!(value instanceof String)) {
  @@ -343,8 +343,9 @@
                   transport.setTransportName((String) value);
           }
           else {
  -            myProperties.put(name, value);
  +            throw new IllegalArgumentException();
           }
  +        callProperties.put(name, value);
       } // setProperty
   
       /**
  @@ -354,60 +355,63 @@
        * @return Object value of the property - or null
        */
       public Object getProperty(String name) {
  -        if (name != null) {
  -            if (name.equals(USERNAME_PROPERTY)) {
  -                return getUsername();
  -            }
  -            else if (name.equals(PASSWORD_PROPERTY)) {
  -                return getPassword();
  -            }
  -            else if (name.equals(SESSION_MAINTAIN_PROPERTY)) {
  -                return new Boolean(getMaintainSession());
  -            }
  -            else if (name.equals(OPERATION_STYLE_PROPERTY)) {
  -                return getOperationStyle().getName();
  -            }
  -            else if (name.equals(SOAPACTION_USE_PROPERTY)) {
  -                return new Boolean(useSOAPAction());
  -            }
  -            else if (name.equals(SOAPACTION_URI_PROPERTY)) {
  -                return getSOAPActionURI();
  -            }
  -            else if (name.equals(ENCODINGSTYLE_URI_PROPERTY)) {
  -                return getEncodingStyle();
  -            }
  -            else if (name.equals(TRANSPORT_NAME)) {
  -                return transportName;
  -            }
  -            else {
  -                return myProperties.get(name);
  -            }
  +        if (name != null)
  +            return callProperties.get(name);
  +        return null;
  +    } // getProperty
  +
  +    /**
  +      * Removes (if set) the named property.
  +      *
  +      * @param name name of the property to remove
  +      */
  +     public void removeProperty(String name) {
  +         if ( name == null || callProperties == null ) return ;
  +         callProperties.remove( name );
  +     } // removeProperty
  +
  +    public void setScopedProperty(String name, Object value) {
  +        if (name == null || value == null) {
  +            throw new IllegalArgumentException();
           }
  -        else {
  -            return null;
  +        scopedProperties.put(name, value);
  +    } // setScopedProperty
  +
  +    public Object getScopedProperty(String name) {
  +        if (name != null) {
  +            return scopedProperties.get(name);
           }
  -    }
  +        return null;
  +    } // getScopedProperty
  +
  +    public void removeScopedProperty(String name) {
  +        if ( name == null || scopedProperties == null ) return ;
  +        scopedProperties.remove( name );
  +    } // removeScopedProperty
   
       /**
        * Configurable properties supported by this Call object.
        */
  -    private static ArrayList propertyNames = null;
  +    private static ArrayList propertyNames = new ArrayList();
  +    static {
  +        propertyNames.add(USERNAME_PROPERTY);
  +        propertyNames.add(PASSWORD_PROPERTY);
  +        propertyNames.add(SESSION_MAINTAIN_PROPERTY);
  +        propertyNames.add(OPERATION_STYLE_PROPERTY);
  +        propertyNames.add(SOAPACTION_USE_PROPERTY);
  +        propertyNames.add(SOAPACTION_URI_PROPERTY);
  +        propertyNames.add(ENCODINGSTYLE_URI_PROPERTY);
  +        propertyNames.add(TRANSPORT_NAME);
  +    }
   
       public Iterator getPropertyNames() {
  -        if (propertyNames == null) {
  -            propertyNames = new ArrayList();
  -            propertyNames.add(USERNAME_PROPERTY);
  -            propertyNames.add(PASSWORD_PROPERTY);
  -            propertyNames.add(SESSION_MAINTAIN_PROPERTY);
  -            propertyNames.add(OPERATION_STYLE_PROPERTY);
  -            propertyNames.add(SOAPACTION_USE_PROPERTY);
  -            propertyNames.add(SOAPACTION_URI_PROPERTY);
  -            propertyNames.add(ENCODINGSTYLE_URI_PROPERTY);
  -            propertyNames.add(TRANSPORT_NAME);
  -        }
           return propertyNames.iterator();
       }
   
  +    public boolean isPropertySupported(String name) {
  +        return propertyNames.contains(name);
  +    }
  +
       /**
        * Set the username.
        */
  @@ -530,16 +534,6 @@
           return encodingStyle;
       }
   
  -   /**
  -     * Removes (if set) the named property.
  -     *
  -     * @param name name of the property to remove
  -     */
  -    public void removeProperty(String name) {
  -        if ( name == null || myProperties == null ) return ;
  -        myProperties.remove( name );
  -    }
  -
       /**
        * Sets the endpoint address of the target service port. This address must
        * correspond to the transport specified in the binding for this Call
  @@ -1898,9 +1892,9 @@
   
               SOAPService svc = msgContext.getService();
               if (svc != null) {
  -                svc.setPropertyParent(myProperties);
  +                svc.setPropertyParent(scopedProperties);
               } else {
  -                msgContext.setPropertyParent(myProperties);
  +                msgContext.setPropertyParent(scopedProperties);
               }
           }
   
  @@ -2016,7 +2010,7 @@
               // Set the service so that it defers missing property gets to the
               // Call.  So when client-side Handlers get at the MessageContext,
               // the property scoping will be MC -> SOAPService -> Call
  -            service.setPropertyParent(myProperties);
  +            service.setPropertyParent(scopedProperties);
           }
       }
   
  
  
  
  1.71      +6 -3      
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java
  
  Index: JavaStubWriter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java,v
  retrieving revision 1.70
  retrieving revision 1.71
  diff -u -r1.70 -r1.71
  --- JavaStubWriter.java       11 Jun 2002 14:54:01 -0000      1.70
  +++ JavaStubWriter.java       14 Jun 2002 13:27:17 -0000      1.71
  @@ -200,7 +200,10 @@
           pw.println("            java.util.Enumeration keys = 
super.cachedProperties.keys();");
           pw.println("            while (keys.hasMoreElements()) {");
           pw.println("                String key = (String) keys.nextElement();");
  -        pw.println("                call.setProperty(key, 
super.cachedProperties.get(key));");
  +        pw.println("                if(call.isPropertySupported(key))");
  +        pw.println("                    call.setProperty(key, 
super.cachedProperties.get(key));");
  +        pw.println("                else");
  +        pw.println("                    call.setScopedProperty(key, 
super.cachedProperties.get(key));");
           pw.println("            }");
           if (types.size() > 0) {
               pw.println("            // " + JavaUtils.getMessage("typeMap00"));
  @@ -542,9 +545,9 @@
               // Turn off encoding
               pw.println("        call.setEncodingStyle(null);");
               // turn off multirefs
  -            pw.println("        
call.setProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);");
  +            pw.println("        
call.setScopedProperty(org.apache.axis.AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);");
               // turn off XSI types
  -            pw.println("        
call.setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);");
  +            pw.println("        
call.setScopedProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);");
           }
           
           // Style: document, RPC, or wrapped
  
  
  
  1.2       +2 -2      xml-axis/java/test/properties/TestScopedProperties.java
  
  Index: TestScopedProperties.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/properties/TestScopedProperties.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestScopedProperties.java 18 Mar 2002 04:03:36 -0000      1.1
  +++ TestScopedProperties.java 14 Jun 2002 13:27:18 -0000      1.2
  @@ -143,7 +143,7 @@
   
           // Set a property on the Call which we expect to be available via
           // the MessageContext in the client-side handler.
  -        call.setProperty(PROP_NAME, CLIENT_VALUE);
  +        call.setScopedProperty(PROP_NAME, CLIENT_VALUE);
   
           LocalTransport transport = new LocalTransport(server);
           transport.setRemoteService("service");
  @@ -209,7 +209,7 @@
   
           // Set a property on the Call which we expect to be available via
           // the MessageContext in the client-side handler.
  -        call.setProperty(PROP_NAME, CLIENT_VALUE);
  +        call.setScopedProperty(PROP_NAME, CLIENT_VALUE);
   
           LocalTransport transport = new LocalTransport(server);
           transport.setRemoteService("service");
  
  
  


Reply via email to