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}.