butek       02/02/06 07:17:17

  Modified:    java/src/org/apache/axis/client Call.java Stub.java
               java/src/org/apache/axis/utils resources.properties
  Log:
  We now verify the standard JAX-RPC properties in both Call and Stub objects.
  
  ToDo:  replace the AXIS properties with JAX-RPC properties.  For example:
  MessageContext.USERID="user.id" should be replaced by
  Call..USERNAME_PROPERTY="javax.xml.rpc.security.auth.username".
  
  Question:  we can set maintain session to true via the AXIS way - setMaintainSession 
-
  or via the JAX-RPC way - setProperty("...session.maintain", true).  Do we want to 
keep
  setMaintainSession as a convenience method?  Or do we want to remove it?
  
  Revision  Changes    Path
  1.68      +101 -7    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.67
  retrieving revision 1.68
  diff -u -r1.67 -r1.68
  --- Call.java 5 Feb 2002 19:37:48 -0000       1.67
  +++ Call.java 6 Feb 2002 15:17:17 -0000       1.68
  @@ -170,6 +170,22 @@
       public static final String TRANSPORT_NAME    = "transport_name" ;
       public static final String TRANSPORT_PROPERTY= "java.protocol.handler.pkgs";
   
  +    // Constants for the standard properties
  +    public static final String USERNAME_PROPERTY =
  +            "javax.xml.rpc.security.auth.username";
  +    public static final String PASSWORD_PROPERTY =
  +            "javax.xml.rpc.security.auth.password";
  +    public static final String SESSION_PROPERTY =
  +            "javax.xml.rpc.http.session.maintain";
  +    public static final String OPERATION_STYLE_PROPERTY =
  +            "javax.xml.rpc.soap.operation.style";
  +    public static final String SOAPACTION_USE_PROPERTY =
  +            "javax.xml.rpc.soap.http.soapaction.use";
  +    public static final String SOAPACTION_URI_PROPERTY =
  +            "javax.xml.rpc.soap.http.soapaction.uri";
  +    public static final String NAMESPACE_URI_PROPERTY =
  +            "javax.xml.rpc.encodingstyle.namespace.uri";
  +
       /**
        * A Hashtable mapping protocols (Strings) to Transports (classes)
        */
  @@ -635,14 +651,92 @@
        * @param value Value of the property
        */
       public void setProperty(String name, Object value) {
  -        if (name == null || value == null) return;
  -
  -        if ( name.equals(TRANSPORT_NAME) ) {
  +        if (name == null || value == null) {
  +            return;
  +            // Is this right?  Shouldn't we throw an exception like: throw new 
IllegalArgumentException();
  +        }
  +        else if (name.equals(USERNAME_PROPERTY)) {
  +            if (!(value instanceof String)) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp00", new String[] {
  +                        name, "java.lang.String", value.getClass().getName()}));
  +            }
  +        }
  +        else if (name.equals(PASSWORD_PROPERTY)) {
  +            if (!(value instanceof String)) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp00", new String[] {
  +                        name, "java.lang.String", value.getClass().getName()}));
  +            }
  +        }
  +        else if (name.equals(SESSION_PROPERTY)) {
  +            if (!(value instanceof Boolean)) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp00", new String[]
  +                        {name,
  +                        "java.lang.Boolean",
  +                        value.getClass().getName()}));
  +            }
  +        }
  +        else if (name.equals(OPERATION_STYLE_PROPERTY)) {
  +            if (!(value instanceof String)) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp00", new String[] {
  +                        name, "java.lang.String", value.getClass().getName()}));
  +            }
  +            String style = (String) value;
  +            if (!style.equals("rpc") && !style.equals("document")) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp01", new String[] {
  +                        name, "\"rpc\", \"document\"", style}));
  +            }
  +        }
  +        else if (name.equals(SOAPACTION_USE_PROPERTY)) {
  +            if (!(value instanceof Boolean)) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp00", new String[]
  +                        {name,
  +                        "java.lang.Boolean",
  +                        value.getClass().getName()}));
  +            }
  +        }
  +        else if (name.equals(SOAPACTION_URI_PROPERTY)) {
  +            if (!(value instanceof String)) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp00", new String[]
  +                        {name,
  +                        "java.lang.String",
  +                        value.getClass().getName()}));
  +            }
  +            Boolean useSOAP =
  +                    (Boolean) myProperties.get(SOAPACTION_USE_PROPERTY);
  +            if (useSOAP == null || !useSOAP.booleanValue()) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp02", new String[]
  +                        {name, SOAPACTION_USE_PROPERTY, "true"}));
  +            }
  +        }
  +        else if (name.equals(NAMESPACE_URI_PROPERTY)) {
  +            if (!(value instanceof String)) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp00", new String[]
  +                        {name,
  +                        "java.lang.String",
  +                        value.getClass().getName()}));
  +            }
  +        }
  +        else if ( name.equals(TRANSPORT_NAME) ) {
  +            if (!(value instanceof String)) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp00", new String[] {
  +                        name, "java.lang.String", value.getClass().getName()}));
  +            }
               transportName = (String) value ;
  -            if ( transport != null )
  -                transport.setTransportName( (String) value );
  -            return ;
  -         }
  +            if (transport != null)
  +                transport.setTransportName((String) value);
  +            return;
  +        }
  +
           if (myProperties == null)
               myProperties = new Hashtable();
           myProperties.put(name, value);
  
  
  
  1.2       +41 -6     xml-axis/java/src/org/apache/axis/client/Stub.java
  
  Index: Stub.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/Stub.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Stub.java 28 Jan 2002 20:50:14 -0000      1.1
  +++ Stub.java 6 Feb 2002 15:17:17 -0000       1.2
  @@ -65,6 +65,8 @@
   
   import org.apache.axis.AxisFault;
   
  +import org.apache.axis.utils.JavaUtils;
  +
   /**
   * This class is the base for all generated stubs.
   */
  @@ -72,12 +74,11 @@
   public abstract class Stub implements javax.xml.rpc.Stub {
   
       // Constants for the standard properties
  -    public static final String USERNAME_PROPERTY =
  -            "javax.xml.rpc.security.auth.username";
  -    public static final String PASSWORD_PROPERTY =
  -            "javax.xml.rpc.security.auth.password";
  +    public static final String USERNAME_PROPERTY = Call.USERNAME_PROPERTY;
  +    public static final String PASSWORD_PROPERTY = Call.PASSWORD_PROPERTY;
       public static final String ADDRESS_PROPERTY =
               "javax.xml.rpc.service.endpoint.address";
  +    public static final String SESSION_PROPERTY = Call.SESSION_PROPERTY;
   
       protected Service service = null;
   
  @@ -108,8 +109,29 @@
        * @param value - Value of the property
        */
       public void _setProperty(String name, Object value) {
  -        cachedProperties.put(name, value);
  -        if (name.equals(ADDRESS_PROPERTY)) {
  +        if (name == null || value == null) {
  +            throw new IllegalArgumentException();
  +        }
  +        else if (name.equals(USERNAME_PROPERTY)) {
  +            if (!(value instanceof String)) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp00", new String[] {
  +                        name, "java.lang.String", value.getClass().getName()}));
  +            }
  +        }
  +        else if (name.equals(PASSWORD_PROPERTY)) {
  +            if (!(value instanceof String)) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp00", new String[] {
  +                        name, "java.lang.String", value.getClass().getName()}));
  +            }
  +        }
  +        else if (name.equals(ADDRESS_PROPERTY)) {
  +            if (!(value instanceof String)) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp00", new String[] {
  +                        name, "java.lang.String", value.getClass().getName()}));
  +            }
               try {
                   cachedEndpoint = new URL ((String) value);
               }
  @@ -117,6 +139,18 @@
                   throw new IllegalArgumentException(mue.getMessage());
               }
           }
  +        else if (name.equals(SESSION_PROPERTY)) {
  +            if (!(value instanceof Boolean)) {
  +                throw new IllegalArgumentException(
  +                        JavaUtils.getMessage("badProp00", new String[]
  +                        {name,
  +                        "java.lang.Boolean",
  +                        value.getClass().getName()}));
  +            }
  +            maintainSessionSet = true;
  +            maintainSession = ((Boolean) value).booleanValue();
  +        }
  +        cachedProperties.put(name, value);
       } // _setProperty
   
       /**
  @@ -143,5 +177,6 @@
       public void setMaintainSession(boolean session) {
           maintainSessionSet = true;
           maintainSession = session;
  +        cachedProperties.put(SESSION_PROPERTY, new Boolean(session));
       } // setmaintainSession
   }
  
  
  
  1.49      +4 -0      xml-axis/java/src/org/apache/axis/utils/resources.properties
  
  Index: resources.properties
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/resources.properties,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- resources.properties      1 Feb 2002 22:46:13 -0000       1.48
  +++ resources.properties      6 Feb 2002 15:17:17 -0000       1.49
  @@ -631,3 +631,7 @@
   axisVersion=Apache Axis version: #axisVersion#
   builtOn=Built on #today#
   #############################################################################
  +
  +badProp00=Bad property.  The value for {0} should be of type {1}, but it is of type 
{2}.
  +badProp01=Bad property.  {0} should be {1}; but it is {2}.
  +badProp02=Cannot set {0} property when {1} property is not {2}.
  
  
  


Reply via email to