geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dblev...@apache.org
Subject svn commit: r153028 [2/5] - in geronimo/trunk: etc/ specs/j2ee/ specs/jaxrpc/ specs/jaxrpc/src/ specs/jaxrpc/src/javax/ specs/jaxrpc/src/javax/xml/ specs/jaxrpc/src/javax/xml/rpc/ specs/jaxrpc/src/javax/xml/rpc/encoding/ specs/jaxrpc/src/javax/xml/rpc/handler/ specs/jaxrpc/src/javax/xml/rpc/handler/soap/ specs/jaxrpc/src/javax/xml/rpc/holders/ specs/jaxrpc/src/javax/xml/rpc/server/ specs/jaxrpc/src/javax/xml/rpc/soap/ specs/qname/ specs/qname/src/ specs/qname/src/javax/ specs/qname/src/javax/xml/ specs/qname/src/javax/xml/namespace/ specs/saaj/ specs/saaj/src/ specs/saaj/src/javax/ specs/saaj/src/javax/xml/ specs/saaj/src/javax/xml/soap/
Date Wed, 09 Feb 2005 06:01:03 GMT
Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/Serializer.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/Serializer.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/Serializer.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/Serializer.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.encoding;
+
+/**
+ * The javax.xml.rpc.encoding.Serializer interface defines the
+ * base interface for serializers. A Serializer converts
+ * a Java object to an XML representation using a specific XML
+ * processing mechanism and based on the specified type
+ * mapping and encoding style.
+ *
+ * @version 1.0
+ */
+public interface Serializer extends java.io.Serializable {
+
+    /**
+     * Gets the type of the XML processing mechanism and representation used by this Serializer.
+     *
+     * @return XML processing mechanism type
+     */
+    public String getMechanismType();
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/SerializerFactory.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/SerializerFactory.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/SerializerFactory.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/SerializerFactory.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.encoding;
+
+import java.util.Iterator;
+
+/**
+ * The javax.xml.rpc.encoding.SerializerFactory is a factory of
+ * the serializers. A SerializerFactory is registered with a
+ * TypeMapping object as part of the TypeMappingRegistry.
+ *
+ * @version 1.0
+ */
+public interface SerializerFactory extends java.io.Serializable {
+
+    /**
+     * Returns a Serializer for the specified XML processing mechanism type.
+     *
+     * @param mechanismType - XML processing mechanism type [TBD: definition
+     *              of valid constants]
+     *
+     * @return a <code>Serializer</code> for the specified XML processing
+     *              mechanism type
+     *
+     * @throws javax.xml.rpc.JAXRPCException
+     *              if <code>SerializerFactory</code> does not support the
+     *              specified XML processing mechanism
+     * @throws java.lang.IllegalArgumentException
+     *              if an invalid mechanism type is specified
+     */
+    public Serializer getSerializerAs(String mechanismType);
+
+    /**
+     * Returns an Iterator over all XML processing mechanism types supported by
+     * this <code>SerializerFactory</code>.
+     *
+     * @return an Iterator over the mechanism types (<Code>String</code>s?)
+     */
+    public Iterator getSupportedMechanismTypes();
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/TypeMapping.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/TypeMapping.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/TypeMapping.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/TypeMapping.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,133 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.encoding;
+
+import javax.xml.namespace.QName;
+
+/**
+ * The <code>javax.xml.rpc.encoding.TypeMapping</code> is the base
+ * interface for the representation of a type mapping. A TypeMapping
+ * implementation class may support one or more encoding styles.
+ * <p>
+ * For its supported encoding styles, a TypeMapping instance
+ * maintains a set of tuples of the type {Java type,
+ * <code>SerializerFactory</code>,
+ * <code>DeserializerFactory</code>, XML type}.
+ *
+ * @version 1.0
+ */
+public interface TypeMapping {
+
+    /**
+     * Returns the encodingStyle URIs (as String[]) supported by
+     * this TypeMapping instance. A TypeMapping that contains only
+     * encoding style independent serializers and deserializers
+     * returns <code>null</code> from this method.
+     *
+     * @return  Array of encodingStyle URIs for the supported
+     *    encoding styles
+     */
+    public String[] getSupportedEncodings();
+
+    /**
+     * Sets the encodingStyle URIs supported by this TypeMapping
+     * instance. A TypeMapping that contains only encoding
+     * independent serializers and deserializers requires
+     * <code>null</code> as the parameter for this method.
+     *
+     * @param encodingStyleURIs Array of encodingStyle URIs for the
+     * supported encoding styles
+     */
+    public void setSupportedEncodings(String[] encodingStyleURIs);
+
+    /**
+     * Checks whether or not type mapping between specified XML
+     * type and Java type is registered.
+     *
+     * @param javaType Class of the Java type
+     * @param xmlType Qualified name of the XML data type
+     * @return boolean; <code>true</code> if type mapping between the
+     *      specified XML type and Java type is registered;
+     *      otherwise <code>false</code>
+     */
+    public boolean isRegistered(Class javaType, QName xmlType);
+
+    /**
+     * Registers SerializerFactory and DeserializerFactory for a
+     * specific type mapping between an XML type and Java type.
+     * This method replaces any existing registered SerializerFactory
+     * DeserializerFactory instances.
+     *
+     * @param javaType Class of the Java type
+     * @param xmlType Qualified name of the XML data type
+     * @param sf SerializerFactory
+     * @param dsf DeserializerFactory
+     *
+     * @throws javax.xml.rpc.JAXRPCException if there are any errors that
+     *              prevent registration
+     */
+    public void register(Class javaType, QName xmlType, SerializerFactory sf,
+                         DeserializerFactory dsf);
+
+    /**
+     * Gets the SerializerFactory registered for the specified
+     * pair of Java type and XML data type.
+     *
+     * @param javaType Class of the Java type
+     * @param xmlType Qualified name of the XML data type
+     *
+     * @return Registered SerializerFactory or <code>null</code>
+     *    if there is no registered factory
+     */
+    public SerializerFactory getSerializer(Class javaType, QName xmlType);
+
+    /**
+     * Gets the DeserializerFactory registered for the specified pair
+     * of Java type and XML data type.
+     *
+     * @param javaType Class of the Java type
+     * @param xmlType Qualified name of the XML data type
+     *
+     * @return Registered SerializerFactory or <code>null</code>
+     *     if there is no registered factory
+     */
+    public DeserializerFactory getDeserializer(Class javaType, QName xmlType);
+
+    /**
+     * Removes the SerializerFactory registered for the specified
+     * pair of Java type and XML data type.
+     *
+     * @param javaType Class of the Java type
+     * @param xmlType Qualified name of the XML data type
+     *
+     * @throws javax.xml.rpc.JAXRPCException if there is any error that prevents
+     *              removal of the registered SerializerFactory
+     */
+    public void removeSerializer(Class javaType, QName xmlType);
+
+    /**
+     * Removes the DeserializerFactory registered for the specified
+     * pair of Java type and XML data type.
+     *
+     * @param javaType Class of the Java type
+     * @param xmlType Qualified name of the XML data type
+     *
+     * @throws javax.xml.rpc.JAXRPCException if there is any error in removing
+     *              the registered DeserializerFactory
+     */
+    public void removeDeserializer(Class javaType, QName xmlType);
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/TypeMappingRegistry.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/TypeMappingRegistry.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/TypeMappingRegistry.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/TypeMappingRegistry.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.encoding;
+
+/**
+ * The interface <code>javax.xml.rpc.encoding.TypeMappingRegistry</code>
+ * defines a registry of TypeMapping instances for various encoding
+ * styles.
+ *
+ * @version 1.0
+ */
+public interface TypeMappingRegistry extends java.io.Serializable {
+
+    /**
+     * Registers a <code>TypeMapping</code> instance with the
+     * <code>TypeMappingRegistry</code>. This method replaces any
+     * existing registered <code>TypeMapping</code> instance for
+     * the specified <code>encodingStyleURI</code>.
+     *
+     * @param encodingStyleURI An encoding style specified as an URI.
+     *             An example is "http://schemas.xmlsoap.org/soap/encoding/"
+     * @param mapping TypeMapping instance
+     *
+     * @return Previous TypeMapping associated with the specified
+     *     <code>encodingStyleURI</code>, or <code>null</code>
+     *     if there was no TypeMapping associated with the specified
+     *     <code>encodingStyleURI</code>
+     *
+     * @throws javax.xml.rpc.JAXRPCException if there is any error that prevents
+     *              the registration of the <code>TypeMapping</code> for
+     *              the specified <code>encodingStyleURI</code>
+     */
+    public TypeMapping register(String encodingStyleURI, TypeMapping mapping);
+
+    /**
+     * Registers the <code>TypeMapping</code> instance that is default
+     * for all encoding styles supported by the
+     * <code>TypeMappingRegistry</code>. A default <code>TypeMapping</code>
+     * should include serializers and deserializers that are independent
+     * of and usable with any encoding style. Successive invocations
+     * of the <code>registerDefault</code> method replace any existing
+     * default <code>TypeMapping</code> instance.
+     * <p>
+     * If the default <code>TypeMapping</code> is registered, any
+     * other TypeMapping instances registered through the
+     * <code>TypeMappingRegistry.register</code> method (for a set
+     * of encodingStyle URIs) override the default <code>TypeMapping</code>.
+     *
+     * @param mapping TypeMapping instance
+     *
+     * @throws javax.xml.rpc.JAXRPCException if there is any error that
+     *              prevents the registration of the default
+     *              <code>TypeMapping</code>
+     */
+    public void registerDefault(TypeMapping mapping);
+
+    /**
+     * Gets the registered default <code>TypeMapping</code> instance.
+     * This method returns <code>null</code> if there is no registered
+     * default TypeMapping in the registry.
+     *
+     * @return The registered default <code>TypeMapping</code> instance
+     *     or <code>null</code>
+     */
+    public TypeMapping getDefaultTypeMapping();
+
+    /**
+     * Returns a list of registered encodingStyle URIs in this
+     * <code>TypeMappingRegistry</code> instance.
+     *
+     * @return Array of the registered encodingStyle URIs
+     */
+    public String[] getRegisteredEncodingStyleURIs();
+
+    /**
+     * Returns the registered <code>TypeMapping</code> for the specified
+     * encodingStyle URI. If there is no registered <code>TypeMapping</code>
+     * for the specified <code>encodingStyleURI</code>, this method
+     * returns <code>null</code>.
+     *
+     * @param encodingStyleURI Encoding style specified as an URI
+     * @return TypeMapping for the specified encodingStyleURI or
+     *     <code>null</code>
+     */
+    public TypeMapping getTypeMapping(String encodingStyleURI);
+
+    /**
+     * Creates a new empty <code>TypeMapping</code> object.
+     *
+     * @return TypeMapping instance.
+     */
+    public TypeMapping createTypeMapping();
+
+    /**
+     * Unregisters a TypeMapping instance, if present, from the specified
+     * encodingStyleURI.
+     *
+     * @param encodingStyleURI Encoding style specified as an URI
+     * @return <code>TypeMapping</code> instance that has been unregistered
+     *     or <code>null</code> if there was no TypeMapping
+     *     registered for the specified <code>encodingStyleURI</code>
+     */
+    public TypeMapping unregisterTypeMapping(String encodingStyleURI);
+
+    /**
+     * Removes a <code>TypeMapping</code> from the TypeMappingRegistry. A
+     * <code>TypeMapping</code> is associated with 1 or more
+     * encodingStyleURIs. This method unregisters the specified
+     * <code>TypeMapping</code> instance from all associated
+     * <code>encodingStyleURIs</code> and then removes this
+     * TypeMapping instance from the registry.
+     *
+     * @param mapping TypeMapping to remove
+     * @return <code>true</code> if specified <code>TypeMapping</code>
+     *     is removed from the TypeMappingRegistry; <code>false</code>
+     *     if the specified <code>TypeMapping</code> was not in the
+     *     <code>TypeMappingRegistry</code>
+     */
+    public boolean removeTypeMapping(TypeMapping mapping);
+
+    /**
+     * Removes all registered TypeMappings and encodingStyleURIs
+     * from this TypeMappingRegistry.
+     */
+    public void clear();
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/XMLType.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/XMLType.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/XMLType.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/encoding/XMLType.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.encoding;
+
+import javax.xml.namespace.QName;
+
+/**
+ * Constants representing XML Types.
+ *
+ * @version 1.0
+ */
+public class XMLType {
+    // fixme: Thsi is a constants class - should be final and/or have a private
+    // constructor
+    public XMLType() {}
+
+    /** XSD type for string.           */
+    public static final QName XSD_STRING =
+        new QName("http://www.w3.org/2001/XMLSchema", "string");
+
+    /** XSD type for float.           */
+    public static final QName XSD_FLOAT =
+        new QName("http://www.w3.org/2001/XMLSchema", "float");
+
+    /** XSD type for boolean.           */
+    public static final QName XSD_BOOLEAN =
+        new QName("http://www.w3.org/2001/XMLSchema", "boolean");
+
+    /** XSD type for double.           */
+    public static final QName XSD_DOUBLE =
+        new QName("http://www.w3.org/2001/XMLSchema", "double");
+
+    /** XSD type for integer.           */
+    public static final QName XSD_INTEGER =
+        new QName("http://www.w3.org/2001/XMLSchema", "integer");
+
+    /** XSD type for int.           */
+    public static final QName XSD_INT =
+        new QName("http://www.w3.org/2001/XMLSchema", "int");
+
+    /** XSD type for long.           */
+    public static final QName XSD_LONG =
+        new QName("http://www.w3.org/2001/XMLSchema", "long");
+
+    /** XSD type for short.           */
+    public static final QName XSD_SHORT =
+        new QName("http://www.w3.org/2001/XMLSchema", "short");
+
+    /** XSD type for decimal.           */
+    public static final QName XSD_DECIMAL =
+        new QName("http://www.w3.org/2001/XMLSchema", "decimal");
+
+    /** XSD type for base64Binary.           */
+    public static final QName XSD_BASE64 =
+        new QName("http://www.w3.org/2001/XMLSchema", "base64Binary");
+
+    /** XSD type for hexBinary.           */
+    public static final QName XSD_HEXBINARY =
+        new QName("http://www.w3.org/2001/XMLSchema", "hexBinary");
+
+    /** XSD type for byte.           */
+    public static final QName XSD_BYTE =
+        new QName("http://www.w3.org/2001/XMLSchema", "byte");
+
+    /** XSD type for dateTime.           */
+    public static final QName XSD_DATETIME =
+        new QName("http://www.w3.org/2001/XMLSchema", "dateTime");
+
+    /** XSD type for QName.           */
+    public static final QName XSD_QNAME =
+        new QName("http://www.w3.org/2001/XMLSchema", "QName");
+
+    /** SOAP type for string.           */
+    public static final QName SOAP_STRING =
+        new QName("http://schemas.xmlsoap.org/soap/encoding/", "string");
+
+    /** SOAP type for boolean.           */
+    public static final QName SOAP_BOOLEAN =
+        new QName("http://schemas.xmlsoap.org/soap/encoding/", "boolean");
+
+    /** SOAP type for double.           */
+    public static final QName SOAP_DOUBLE =
+        new QName("http://schemas.xmlsoap.org/soap/encoding/", "double");
+
+    /** SOAP type for base64.           */
+    public static final QName SOAP_BASE64 =
+        new QName("http://schemas.xmlsoap.org/soap/encoding/", "base64");
+
+    /** SOAP type for float.           */
+    public static final QName SOAP_FLOAT =
+        new QName("http://schemas.xmlsoap.org/soap/encoding/", "float");
+
+    /** SOAP type for int.           */
+    public static final QName SOAP_INT =
+        new QName("http://schemas.xmlsoap.org/soap/encoding/", "int");
+
+    /** SOAP type for long.           */
+    public static final QName SOAP_LONG =
+        new QName("http://schemas.xmlsoap.org/soap/encoding/", "long");
+
+    /** SOAP type for short.           */
+    public static final QName SOAP_SHORT =
+        new QName("http://schemas.xmlsoap.org/soap/encoding/", "short");
+
+    /** SOAP type for byte.           */
+    public static final QName SOAP_BYTE =
+        new QName("http://schemas.xmlsoap.org/soap/encoding/", "byte");
+
+    /** SOAP type for Array.           */
+    public static final QName SOAP_ARRAY =
+        new QName("http://schemas.xmlsoap.org/soap/encoding/", "Array");
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/GenericHandler.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/GenericHandler.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/GenericHandler.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/GenericHandler.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,117 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.handler;
+
+import javax.xml.namespace.QName;
+
+/**
+ * The <code>javax.xml.rpc.handler.GenericHandler</code> class
+ * implements the <code>Handler</code> interface. SOAP Message
+ * Handler developers should typically subclass
+ * <code>GenericHandler</code> class unless the Handler class
+ * needs another class as a superclass.
+ *
+ * <p>
+ * The <code>GenericHandler</code> class is a convenience abstract
+ * class that makes writing Handlers easy. This class provides
+ * default implementations of the lifecycle methods <code>init</code>
+ * and <code>destroy</code> and also different handle methods.
+ * A Handler developer should only override methods that it needs
+ * to specialize as part of the derived <code>Handler</code>
+ * implementation class.
+ *
+ * @version 1.0
+ */
+public abstract class GenericHandler implements Handler {
+
+    /**
+     * Default constructor.
+     */
+    protected GenericHandler() {}
+
+    /**
+     * The <code>handleRequest</code> method processes the request
+     * SOAP message. The default implementation of this method returns
+     * <code>true</code>. This indicates that the handler chain
+     * should continue processing of the request SOAP message.
+     * This method should be overridden if the derived Handler class
+     * needs to specialize implementation of this method.
+     *
+     * @param context the message context
+     * @return true/false
+     */
+    public boolean handleRequest(MessageContext context) {
+        return true;
+    }
+
+    /**
+     * The <code>handleResponse</code> method processes the response
+     * message. The default implementation of this method returns
+     * <code>true</code>. This indicates that the handler chain
+     * should continue processing of the response SOAP message.
+     * This method should be overridden if the derived Handler class
+     * needs to specialize implementation of this method.
+     *
+     * @param context the message context
+     * @return true/false
+     */
+    public boolean handleResponse(MessageContext context) {
+        return true;
+    }
+
+    /**
+     * The <code>handleFault</code> method processes the SOAP faults
+     * based on the SOAP message processing model. The default
+     * implementation of this method returns <code>true</code>. This
+     * indicates that the handler chain should continue processing
+     * of the SOAP fault. This method should be overridden if
+     * the derived Handler class needs to specialize implementation
+     * of this method.
+     *
+     * @param context the message context
+     * @return true/false
+     */
+    public boolean handleFault(MessageContext context) {
+        return true;
+    }
+
+    /**
+     * The <code>init</code> method to enable the Handler instance to
+     * initialize itself. This method should be overridden if
+     * the derived Handler class needs to specialize implementation
+     * of this method.
+     *
+     * @param config handler configuration
+     */
+    public void init(HandlerInfo config) {}
+
+    /**
+     * The <code>destroy</code> method indicates the end of lifecycle
+     * for a Handler instance. This method should be overridden if
+     * the derived Handler class needs to specialize implementation
+     * of this method.
+     */
+    public void destroy() {}
+
+    /**
+     * Gets the header blocks processed by this Handler instance.
+     *
+     * @return Array of QNames of header blocks processed by this handler instance.
+     * <code>QName</code> is the qualified name of the outermost element of the Header block.
+     */
+    public abstract QName[] getHeaders();
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/Handler.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/Handler.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/Handler.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/Handler.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,207 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.handler;
+
+import javax.xml.namespace.QName;
+
+/**
+ * The <code>javax.xml.rpc.handler.Handler</code> interface is
+ * required to be implemented by a SOAP message handler. The
+ * <code>handleRequest</code>, <code>handleResponse</code>
+ * and <code>handleFault</code> methods for a SOAP message
+ * handler get access to the <code>SOAPMessage</code> from the
+ * <code>SOAPMessageContext</code>. The implementation of these
+ * methods can modify the <code>SOAPMessage</code> including the
+ * headers and body elements.
+ *
+ * @version 1.0
+ */
+public interface Handler {
+
+    /**
+     * The <code>handleRequest</code> method processes the request message.
+     *
+     * @param context MessageContext parameter provides access to the request
+     *                  message.
+     * @return boolean boolean Indicates the processing mode
+     *            <ul>
+     *            <li>Return <code>true</code> to indicate continued
+     *                processing of the request handler chain. The
+     *                <code>HandlerChain</code>
+     *                takes the responsibility of invoking the next
+     *                entity. The next entity may be the next handler
+     *                in the <code>HandlerChain</code> or if this
+     *                handler is the last handler in the chain, the
+     *                next entity is the service endpoint object.
+     *            <li>Return <code>false</code> to indicate blocking
+     *                of the request handler chain. In this case,
+     *                further processing of the request handler chain
+     *                is blocked and the target service endpoint is
+     *                not dispatched. The JAX-RPC runtime system takes
+     *                the responsibility of invoking the response
+     *                handler chain next with the SOAPMessageContext.
+     *                The Handler implementation class has the the
+     *                responsibility of setting the appropriate response
+     *                SOAP message in either handleRequest and/or
+     *                handleResponse method. In the default processing
+     *                model, the response handler chain starts processing
+     *                from the same Handler instance (that returned false)
+     *                and goes backward in the execution sequence.
+     *             </ul>
+     *
+     * @throws javax.xml.rpc.JAXRPCException
+     *                indicates a handler-specific
+     *                runtime error. If <code>JAXRPCException</code> is thrown
+     *                by a handleRequest method, the HandlerChain
+     *                terminates the further processing of this handler
+     *                chain. On the server side, the HandlerChain
+     *                generates a SOAP fault that indicates that the
+     *                message could not be processed for reasons not
+     *                directly attributable to the contents of the
+     *                message itself but rather to a runtime error
+     *                during the processing of the message. On the
+     *                client side, the exception is propagated to
+     *                the client code
+     * @throws javax.xml.rpc.soap.SOAPFaultException
+     *                indicates a SOAP fault. The Handler
+     *                implementation class has the the responsibility
+     *                of setting the SOAP fault in the SOAP message in
+     *                either handleRequest and/or handleFault method.
+     *                If SOAPFaultException is thrown by a server-side
+     *                request handler's handleRequest method, the
+     *                HandlerChain terminates the further processing
+     *                of the request handlers in this handler chain
+     *                and invokes the handleFault method on the
+     *                HandlerChain with the SOAP message context. Next,
+     *                the HandlerChain invokes the handleFault method
+     *                on handlers registered in the handler chain,
+     *                beginning with the Handler instance that threw
+     *                the exception and going backward in execution. The
+     *                client-side request handler's handleRequest method
+     *                should not throw the SOAPFaultException.
+     */
+    public boolean handleRequest(MessageContext context);
+
+    /**
+     * The <code>handleResponse</code> method processes the response SOAP message.
+     *
+     * @param context MessageContext parameter provides access to
+     *            the response SOAP message
+     *
+     * @return boolean Indicates the processing mode
+     *            <ul>
+     *            <li>Return <code>true</code> to indicate continued
+     *                processing ofthe response handler chain. The
+     *                HandlerChain invokes the <code>handleResponse</code>
+     *                method on the next <code>Handler</code> in
+     *                the handler chain.
+     *            <li>Return <code>false</code> to indicate blocking
+     *                of the response handler chain. In this case, no
+     *                other response handlers in the handler chain
+     *                are invoked.
+     *            </ul>
+     *
+     * @throws javax.xml.rpc.JAXRPCException
+     *                indicates a handler specific runtime error.
+     *                If JAXRPCException is thrown by a handleResponse
+     *                method, the HandlerChain terminates the further
+     *                processing of this handler chain. On the server side,
+     *                the HandlerChain generates a SOAP fault that
+     *                indicates that the message could not be processed
+     *                for reasons not directly attributable to the contents
+     *                of the message itself but rather to a runtime error
+     *                during the processing of the message. On the client
+     *                side, the runtime exception is propagated to the
+     *                client code.
+     */
+    public boolean handleResponse(MessageContext context);
+
+    /**
+     * The <code>handleFault</code> method processes the SOAP faults
+     * based on the SOAP message processing model.
+     *
+     * @param  context MessageContext parameter provides access to
+     *            the SOAP message
+     * @return boolean Indicates the processing mode
+     *            <ul>
+     *            <li>Return <code>true</code> to indicate continued
+     *                processing of SOAP Fault. The HandlerChain invokes
+     *                the <code>handleFault</code> method on the
+     *                next <code>Handler</code> in the handler chain.
+     *            <li>Return <code>false</code> to indicate end
+     *                of the SOAP fault processing. In this case, no
+     *                other handlers in the handler chain
+     *                are invoked.
+     *            </ul>
+     * @throws javax.xml.rpc.JAXRPCException indicates handler specific runtime
+     *                error. If JAXRPCException is thrown by a handleFault
+     *                method, the HandlerChain terminates the further
+     *                processing of this handler chain. On the server side,
+     *                the HandlerChain generates a SOAP fault that
+     *                indicates that the message could not be processed
+     *                for reasons not directly attributable to the contents
+     *                of the message itself but rather to a runtime error
+     *                during the processing of the message. On the client
+     *                side, the JAXRPCException is propagated to the
+     *                client code.
+     */
+    public boolean handleFault(MessageContext context);
+
+    /**
+     * The <code>init</code> method enables the Handler instance to
+     * initialize itself. The <code>init</code> method passes the
+     * handler configuration as a <code>HandlerInfo</code> instance.
+     * The HandlerInfo is used to configure the Handler (for example:
+     * setup access to an external resource or service) during the
+     * initialization.
+     * <p>
+     * In the init method, the Handler class may get access to
+     * any resources (for example; access to a logging service or
+     * database) and maintain these as part of its instance variables.
+     * Note that these instance variables must not have any state
+     * specific to the SOAP message processing performed in the
+     * various handle method.
+     *
+     * @param config HandlerInfo configuration for the initialization of this
+     *              handler
+     *
+     * @param config
+     * @throws javax.xml.rpc.JAXRPCException if initialization of the handler
+     *              fails
+     */
+    public abstract void init(HandlerInfo config);
+
+    /**
+     * The <code>destroy</code> method indicates the end of lifecycle
+     * for a Handler instance.  The Handler implementation class should
+     * release its resources and perform cleanup in the implementation
+     * of the <code>destroy</code> method.
+     *
+     * @throws  javax.xml.rpc.JAXRPCException  if there was any error during
+     *              destroy
+     */
+    public abstract void destroy();
+
+    /**
+     * Gets the header blocks processed by this Handler instance.
+     *
+     * @return Array of QNames of header blocks processed by this
+     *      handler instance. <code>QName</code> is the qualified
+     *      name of the outermost element of the Header block.
+     */
+    public QName[] getHeaders();
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/HandlerChain.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/HandlerChain.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/HandlerChain.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/HandlerChain.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,120 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.handler;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The <code>javax.xml.rpc.handler.HandlerChain</code> represents
+ * a list of handlers. All elements in the HandlerChain are of
+ * the type <code>javax.xml.rpc.handler.Handler</code>.
+ * <p>
+ * An implementation class for the <code>HandlerChain</code>
+ * interface abstracts the policy and mechanism for the invocation
+ * of the registered handlers.
+ *
+ * @version 1.0
+ */
+public interface HandlerChain extends List {
+
+    /**
+     * The <code>handleRequest</code> method initiates the request
+     * processing for this handler chain.
+     * @param context MessageContext parameter provides access to
+     *             the request SOAP message.
+     * @return boolean Returns <code>true</code> if all handlers in
+     *             chain have been processed. Returns <code>false</code>
+     *
+     *             if a handler in the chain returned
+     *             <code>false</code> from its handleRequest
+     *             method.
+     * @throws javax.xml.rpc.JAXRPCException if any processing error happens
+     */
+    public boolean handleRequest(MessageContext context);
+
+    /**
+     * The <code>handleResponse</code> method initiates the response
+     * processing for this handler chain.
+     *
+     * @param context MessageContext parameter provides access to the response
+     *                  SOAP message.
+     * @return boolean Returns <code>true</code> if all handlers in
+     *             chain have been processed. Returns <code>false</code>
+     *             if a handler in the chain returned
+     *             <code>false</code> from its handleResponse method.
+     * @throws javax.xml.rpc.JAXRPCException if any processing error happens
+     */
+    public boolean handleResponse(MessageContext context);
+
+    /**
+     * The <code>handleFault</code> method initiates the SOAP
+     * fault processing for this handler chain.
+     *
+     * @param  context MessageContext parameter provides access to the SOAP
+     *         message.
+     * @return Returns boolean Returns <code>true</code> if all handlers in
+     *             chain have been processed. Returns <code>false</code>
+     *             if a handler in the chain returned
+     *             <code>false</code> from its handleFault method.
+     * @throws javax.xml.rpc.JAXRPCException if any processing error happens
+     */
+    public boolean handleFault(MessageContext context);
+
+    /**
+     * Initializes the configuration for a HandlerChain.
+     *
+     * @param config Configuration for the initialization of this handler
+     *                 chain
+     *
+     * @throws javax.xml.rpc.JAXRPCException if there is any error that prevents
+     *              initialization
+     */
+    public void init(Map config);
+
+    /**
+     * Indicates the end of lifecycle for a HandlerChain.
+     *
+     * @throws javax.xml.rpc.JAXRPCException if there was any error that
+     *              prevented destroy from completing
+     */
+    public void destroy();
+
+    /**
+     * Sets SOAP Actor roles for this <code>HandlerChain</code>. This
+     * specifies the set of roles in which this HandlerChain is to act
+     * for the SOAP message processing at this SOAP node. These roles
+     * assumed by a HandlerChain must be invariant during the
+     * processing of an individual SOAP message through the HandlerChain.
+     * <p>
+     * A <code>HandlerChain</code> always acts in the role of the
+     * special SOAP actor <code>next</code>. Refer to the SOAP
+     * specification for the URI name for this special SOAP actor.
+     * There is no need to set this special role using this method.
+     *
+     * @param soapActorNames URIs for SOAP actor name
+     */
+    public void setRoles(String[] soapActorNames);
+
+    /**
+     * Gets SOAP actor roles registered for this HandlerChain at
+     * this SOAP node. The returned array includes the special
+     * SOAP actor <code>next</code>.
+     * @return String[] SOAP Actor roles as URIs
+     */
+    public java.lang.String[] getRoles();
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/HandlerInfo.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/HandlerInfo.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/HandlerInfo.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/HandlerInfo.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,122 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.handler;
+
+import javax.xml.namespace.QName;
+import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * The <code>javax.xml.rpc.handler.HandlerInfo</code> represents
+ * information about a handler in the HandlerChain. A HandlerInfo
+ * instance is passed in the <code>Handler.init</code> method to
+ * initialize a <code>Handler</code> instance.
+ *
+ * @version 1.0
+ * @see HandlerChain
+ */
+public class HandlerInfo implements Serializable {
+
+    /** Default constructor. */
+    public HandlerInfo() {
+        handlerClass = null;
+        config       = new HashMap();
+    }
+
+    /**
+     *  Constructor for HandlerInfo.
+     *
+     *  @param  handlerClass Java Class for the Handler
+     *  @param  config Handler Configuration as a java.util.Map
+     *  @param  headers QNames for the header blocks processed
+     *          by this Handler.  QName is the qualified name
+     *          of the outermost element of a header block
+     */
+    public HandlerInfo(Class handlerClass, Map config, QName[] headers) {
+
+        this.handlerClass = handlerClass;
+        this.config       = config;
+        this.headers      = headers;
+    }
+
+    /**
+     *  Sets the Handler class.
+     *
+     *  @param  handlerClass Class for the Handler
+     */
+    public void setHandlerClass(Class handlerClass) {
+        this.handlerClass = handlerClass;
+    }
+
+    /**
+     *  Gets the Handler class.
+     *
+     *  @return Returns null if no Handler class has been
+     *    set; otherwise the set handler class
+     */
+    public Class getHandlerClass() {
+        return handlerClass;
+    }
+
+    /**
+     *  Sets the Handler configuration as <code>java.util.Map</code>
+     *  @param  config Configuration map
+     */
+    public void setHandlerConfig(Map config) {
+        this.config = config;
+    }
+
+    /**
+     *  Gets the Handler configuration.
+     *
+     *  @return  Returns empty Map if no configuration map
+     *     has been set; otherwise returns the set configuration map
+     */
+    public Map getHandlerConfig() {
+        return config;
+    }
+
+    /**
+     * Sets the header blocks processed by this Handler.
+     * @param headers QNames of the header blocks. QName
+     *            is the qualified name of the outermost
+     *            element of the SOAP header block
+     */
+    public void setHeaders(QName[] headers) {
+        this.headers = headers;
+    }
+
+    /**
+     * Gets the header blocks processed by this Handler.
+     * @return Array of QNames for the header blocks. Returns
+     *      <code>null</code> if no header blocks have been
+     *      set using the <code>setHeaders</code> method.
+     */
+    public QName[] getHeaders() {
+        return headers;
+    }
+
+    /** Handler Class. */
+    private Class handlerClass;
+
+    /** Configuration Map. */
+    private Map config;
+
+    /** Headers. */
+    private QName[] headers;
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/HandlerRegistry.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/HandlerRegistry.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/HandlerRegistry.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/HandlerRegistry.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.handler;
+
+import javax.xml.namespace.QName;
+import java.io.Serializable;
+
+/**
+ * The <code>javax.xml.rpc.handler.HandlerRegistry</code>
+ * provides support for the programmatic configuration of
+ * handlers in a <code>HandlerRegistry</code>.
+ * <p>
+ * A handler chain is registered per service endpoint, as
+ * indicated by the qualified name of a port. The getHandlerChain
+ * returns the handler chain (as a java.util.List) for the
+ * specified service endpoint. The returned handler chain is
+ * configured using the java.util.List interface. Each element
+ * in this list is required to be of the Java type
+ * <code>javax.xml.rpc.handler.HandlerInfo</code>
+ *
+ * @version 1.0
+ */
+public interface HandlerRegistry extends Serializable {
+
+    /**
+     * Gets the handler chain for the specified service endpoint.
+     * The returned <code>List</code> is used to configure this
+     * specific handler chain in this <code>HandlerRegistry</code>.
+     * Each element in this list is required to be of the Java type
+     * <code>javax.xml.rpc.handler.HandlerInfo</code>.
+     *
+     * @param   portName Qualified name of the target service
+     * @return  HandlerChain java.util.List Handler chain
+     * @throws java.lang.IllegalArgumentException If an invalid <code>portName</code> is specified
+     */
+    public java.util.List getHandlerChain(QName portName);
+
+    /**
+     * Sets the handler chain for the specified service endpoint
+     * as a <code>java.util.List</code>. Each element in this list
+     * is required to be of the Java type
+     * <code>javax.xml.rpc.handler.HandlerInfo</code>.
+     *
+     *  @param   portName Qualified name of the target service endpoint
+     *  @param   chain a List representing configuration for the
+     *             handler chain
+     *  @throws  javax.xml.rpc.JAXRPCException if there is any error in the
+     *             configuration of the handler chain
+     *  @throws java.lang.UnsupportedOperationException if this
+     *     set operation is not supported. This is done to
+     *     avoid any overriding of a pre-configured handler
+     *     chain.
+     *  @throws java.lang.IllegalArgumentException If an invalid
+     *     <code>portName</code> is specified
+     */
+    public abstract void setHandlerChain(QName portName, java.util.List chain);
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/MessageContext.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/MessageContext.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/MessageContext.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/MessageContext.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.handler;
+
+import java.util.Iterator;
+
+/**
+ * The interface <code>MessageContext</code> abstracts the message
+ * context that is processed by a handler in the <code>handle</code>
+ * method.
+ *
+ * <p>The <code>MessageContext</code> interface provides methods to
+ * manage a property set. <code>MessageContext</code> properties
+ * enable handlers in a handler chain to share processing related
+ * state.
+ *
+ * @version 1.0
+ */
+public interface MessageContext {
+
+    /**
+     * Sets the name and value of a property associated with the
+     * <code>MessageContext</code>. If the <code>MessageContext</code>
+     * contains a value of the same property, the old value is replaced.
+     *
+     * @param  name ame of the property associated with the
+     *         <code>MessageContext</code>
+     * @param  value Value of the property
+     * @throws java.lang.IllegalArgumentException If some aspect
+     *         the property is prevents it from being stored
+     *         in the context
+     * @throws java.lang.UnsupportedOperationException If this method is
+     *         not supported.
+     */
+    public abstract void setProperty(String name, Object value);
+
+    /**
+     * Gets the value of a specific property from the
+     * <code>MessageContext</code>.
+     *
+     * @param name the name of the property whose value is to be
+     *        retrieved
+     * @return the value of the property
+     * @throws java.lang.IllegalArgumentException if an illegal
+     *        property name is specified
+     */
+    public abstract Object getProperty(String name);
+
+    /**
+     * Removes a property (name-value pair) from the
+     * <code>MessageContext</code>.
+     *
+     * @param  name the name of the property to be removed
+     *
+     * @throws java.lang.IllegalArgumentException if an illegal
+     *        property name is specified
+     */
+    public abstract void removeProperty(String name);
+
+    /**
+     * Returns true if the <code>MessageContext</code> contains a property
+     * with the specified name.
+     * @param   name Name of the property whose presense is to be tested
+     * @return  Returns true if the MessageContext contains the
+     *     property; otherwise false
+     */
+    public abstract boolean containsProperty(String name);
+
+    /**
+     * Returns an Iterator view of the names of the properties
+     * in this <code>MessageContext</code>.
+     *
+     * @return Iterator for the property names
+     */
+    public abstract Iterator getPropertyNames();
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/soap/SOAPMessageContext.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/soap/SOAPMessageContext.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/soap/SOAPMessageContext.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/handler/soap/SOAPMessageContext.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.handler.soap;
+
+import javax.xml.rpc.handler.MessageContext;
+import javax.xml.soap.SOAPMessage;
+
+/**
+ * The interface <code>javax.xml.rpc.soap.SOAPMessageContext</code>
+ * provides access to the SOAP message for either RPC request or
+ * response. The <code>javax.xml.soap.SOAPMessage</code> specifies
+ * the standard Java API for the representation of a SOAP 1.1 message
+ * with attachments.
+ *
+ * @version 1.0
+ * @see javax.xml.soap.SOAPMessage
+ */
+public interface SOAPMessageContext extends MessageContext {
+
+    /**
+     *  Gets the SOAPMessage from this message context.
+     *
+     *  @return the <code>SOAPMessage</code>; <code>null</code> if no request
+     *          <code>SOAPMessage</code> is present in this
+     *          <code>SOAPMessageContext</code>
+     */
+    public abstract SOAPMessage getMessage();
+
+    /**
+     *  Sets the <code>SOAPMessage</code> for this message context.
+     *
+     *  @param   message  SOAP message
+     *  @throws  javax.xml.rpc.JAXRPCException  if any error during the setting
+     *     of the SOAPMessage in this message context
+     *  @throws java.lang.UnsupportedOperationException if this
+     *     operation is not supported
+     */
+    public abstract void setMessage(SOAPMessage message);
+
+    /**
+     * Gets the SOAP actor roles associated with an execution
+     * of the HandlerChain and its contained Handler instances.
+     * Note that SOAP actor roles apply to the SOAP node and
+     * are managed using <code>HandlerChain.setRoles</code> and
+     * <code>HandlerChain.getRoles</code>. Handler instances in
+     * the HandlerChain use this information about the SOAP actor
+     * roles to process the SOAP header blocks. Note that the
+     * SOAP actor roles are invariant during the processing of
+     * SOAP message through the HandlerChain.
+     *
+     * @return Array of URIs for SOAP actor roles
+     * @see javax.xml.rpc.handler.HandlerChain#setRoles(java.lang.String[]) HandlerChain.setRoles(java.lang.String[])
+     * @see javax.xml.rpc.handler.HandlerChain#getRoles() HandlerChain.getRoles()
+     */
+    public abstract String[] getRoles();
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BigDecimalHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BigDecimalHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BigDecimalHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BigDecimalHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+import java.math.BigDecimal;
+
+/**
+ * Holder for <code>BigDecimal</code>s.
+ *
+ * @version 1.0
+ */
+public final class BigDecimalHolder implements Holder {
+
+    /** The <code>BigDecimal</code> contained by this holder. */
+    public BigDecimal value;
+
+    /**
+     * Make a new <code>BigDecimalHolder</code> with a <code>null</code> value.
+     */
+    public BigDecimalHolder() {}
+
+    /**
+     * Make a new <code>BigDecimalHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value  the <code>BigDecimal</code> to hold
+     */
+    public BigDecimalHolder(BigDecimal value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BigIntegerHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BigIntegerHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BigIntegerHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BigIntegerHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+import java.math.BigInteger;
+
+/**
+ * Holder for <code>BigInteger</code>s.
+ *
+ * @version 1.0
+ */
+public final class BigIntegerHolder implements Holder {
+
+    /** The <code>BigInteger</code> that is held. */
+    public BigInteger value;
+
+    /**
+     * Make a new <code>BigIntegerHolder</code> with a <code>null</code> value.
+     */
+    public BigIntegerHolder() {}
+
+    /**
+     * Make a new <code>BigIntegerHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value the <code>BigInteger</code> to hold
+     */
+    public BigIntegerHolder(BigInteger value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BooleanHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BooleanHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BooleanHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BooleanHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>boolean</code>s.
+ *
+ * @version 1.0
+ */
+public final class BooleanHolder implements Holder {
+
+    /** The <code>boolean</code> contained by this holder. */
+    public boolean value;
+
+    /**
+     * Make a new <code>BooleanHolder</code> with a <code>null</code> value.
+     */
+    public BooleanHolder() {}
+
+    /**
+     * Make a new <code>BooleanHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value  the <code>boolean</code> to hold
+     */
+    public BooleanHolder(boolean value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BooleanWrapperHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BooleanWrapperHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BooleanWrapperHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/BooleanWrapperHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>Boolean</code>s.
+ *
+ * @version 1.0
+ */
+public final class BooleanWrapperHolder implements Holder {
+
+    /** The <code>Boolean</code> contained by this holder. */
+    public Boolean value;
+
+    /**
+     * Make a new <code>BooleanWrapperHolder</code> with a <code>null</code> value.
+     */
+    public BooleanWrapperHolder() {}
+
+    /**
+     * Make a new <code>BooleanWrapperHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value  the <code>Boolean</code> to hold
+     */
+    public BooleanWrapperHolder(Boolean value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ByteArrayHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ByteArrayHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ByteArrayHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ByteArrayHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>byte[]</code>s.
+ *
+ * @version 1.0
+ */
+public final class ByteArrayHolder implements Holder {
+
+    /** The <code>byte[]</code> contained by this holder. */
+    public byte[] value;
+
+    /**
+     * Make a new <code>ByteArrayHolder</code> with a <code>null</code> value.
+     */
+    public ByteArrayHolder() {}
+
+    /**
+     * Make a new <code>ByteArrayHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value  the <code>byte[]</code> to hold
+     */
+    public ByteArrayHolder(byte[] value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ByteHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ByteHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ByteHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ByteHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>byte</code>s.
+ *
+ * @version 1.0
+ */
+public final class ByteHolder implements Holder {
+
+    /** The <code>byte</code> contained by this holder. */
+    public byte value;
+
+    /**
+     * Make a new <code>ByteHolder</code> with a <code>null</code> value.
+     */
+    public ByteHolder() {}
+
+    /**
+     * Make a new <code>ByteHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value the <code>byte</code> to hold
+     */
+    public ByteHolder(byte value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ByteWrapperHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ByteWrapperHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ByteWrapperHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ByteWrapperHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>Byte</code>s.
+ *
+ * @version 1.0
+ */
+public final class ByteWrapperHolder implements Holder {
+
+    /** The <code>Byte</code> contained by this holder. */
+    public Byte value;
+
+    /**
+     * Make a new <code>ByteWrapperHolder</code> with a <code>null</code> value.
+     */
+    public ByteWrapperHolder() {}
+
+    /**
+     * Make a new <code>ByteWrapperHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value the <code>Byte</code> to hold
+     */
+    public ByteWrapperHolder(Byte value) {
+        this.value = value;
+    }
+}

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/CalendarHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/CalendarHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/CalendarHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/CalendarHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+import java.util.Calendar;
+
+/**
+ * Holder for <code>Calendar</code>s.
+ *
+ * @version 1.0
+ */
+public final class CalendarHolder implements Holder {
+
+    /** The <code>Calendar</code> that is held. */
+    public Calendar value;
+
+    /**
+     * Make a new <code>CalendarHolder</code> with a <code>null</code> value.r
+     */
+    public CalendarHolder() {}
+
+    /**
+     * Make a new <code>CalendarHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value  the <code>Calendar</code> to hold
+     */
+    public CalendarHolder(Calendar value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/DoubleHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/DoubleHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/DoubleHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/DoubleHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>double</code>s.
+ *
+ * @version 1.0
+ */
+public final class DoubleHolder implements Holder {
+
+    /** The <code>double</code> contained by this holder. */
+    public double value;
+
+    /**
+     * Make a new <code>DoubleHolder</code> with a <code>null</code> value.
+     */
+    public DoubleHolder() {}
+
+    /**
+     * Make a new <code>DoubleHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value  the <code>double</code> to hold
+     */
+    public DoubleHolder(double value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/DoubleWrapperHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/DoubleWrapperHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/DoubleWrapperHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/DoubleWrapperHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>Double</code>s.
+ *
+ * @version 1.0
+ */
+public final class DoubleWrapperHolder implements Holder {
+
+    /** The <code>Double</code> contained by this holder. */
+    public Double value;
+
+    /**
+     * Make a new <code>DoubleWrapperHolder</code> with a <code>null</code> value.
+     */
+    public DoubleWrapperHolder() {}
+
+    /**
+     * Make a new <code>DoubleWrapperHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value  the <code>Double</code> to hold
+     */
+    public DoubleWrapperHolder(Double value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/FloatHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/FloatHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/FloatHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/FloatHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>float</code>s.
+ *
+ * @version 1.0
+ */
+public final class FloatHolder implements Holder {
+
+    /** The <code>byte</code> contained by this holder. */
+    public float value;
+
+    /**
+     * Make a new <code>FloatHolder</code> with a <code>null</code> value.
+     */
+    public FloatHolder() {}
+
+    /**
+     * Make a new <code>FloatHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value the <code>float</code> to hold
+     */
+    public FloatHolder(float value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/FloatWrapperHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/FloatWrapperHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/FloatWrapperHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/FloatWrapperHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>Float</code>s.
+ *
+ * @version 1.0
+ */
+public final class FloatWrapperHolder implements Holder {
+
+    /** The <code>Float</code> contained by this holder. */
+    public Float value;
+
+    /**
+     * Make a new <code>FloatWrapperHolder</code> with a <code>null</code> value.
+     */
+    public FloatWrapperHolder() {}
+
+    /**
+     * Make a new <code>FloatWrapperHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value the <code>Float</code> to hold
+     */
+    public FloatWrapperHolder(Float value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/Holder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/Holder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/Holder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/Holder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * The <code>java.xml.rpc.holders.Holder</code> interface represents the base interface for both standard and
+ * generated Holder classes. A generated Holder  class is required to implement this Holder interface.
+ *
+ * @version 1.0
+ */
+public interface Holder {}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/IntHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/IntHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/IntHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/IntHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>int</code>s.
+ *
+ * @version 1.0
+ */
+public final class IntHolder implements Holder {
+
+    /** The <code>int</code> contained by this holder. */
+    public int value;
+
+    /**
+     * Make a new <code>IntHolder</code> with a <code>null</code> value.
+     */
+    public IntHolder() {}
+
+    /**
+     * Make a new <code>IntHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value  the <code>int</code> to hold
+     */
+    public IntHolder(int value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/IntegerWrapperHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/IntegerWrapperHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/IntegerWrapperHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/IntegerWrapperHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>Integer</code>s.
+ *
+ * @version 1.0
+ */
+public final class IntegerWrapperHolder implements Holder {
+
+    /** The <code>Integer</code> contained by this holder. */
+    public Integer value;
+
+    /**
+     * Make a new <code>IntegerWrapperHolder</code> with a <code>null</code> value.
+     */
+    public IntegerWrapperHolder() {}
+
+    /**
+     * Make a new <code>IntegerWrapperHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value the <code>Integer</code> to hold
+     */
+    public IntegerWrapperHolder(Integer value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/LongHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/LongHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/LongHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/LongHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,44 @@
+
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>long</code>s.
+ *
+ * @version 1.0
+ */
+public final class LongHolder implements Holder {
+
+    /** The <code>long</code> contained by this holder. */
+    public long value;
+
+    /**
+     * Make a new <code>LongHolder</code> with a <code>null</code> value.
+     */
+    public LongHolder() {}
+
+    /**
+     * Make a new <code>LongHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value  the <code>long</code> to hold
+     */
+    public LongHolder(long value) {
+        this.value = value;
+    }
+}
+

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/LongWrapperHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/LongWrapperHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/LongWrapperHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/LongWrapperHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>Long</code>s.
+ *
+ * @version 1.0
+ */
+public final class LongWrapperHolder implements Holder {
+
+    /** The <code>Long</code> contained by this holder. */
+    public Long value;
+
+    /**
+     * Make a new <code>LongWrapperHolder</code> with a <code>null</code> value.
+     */
+    public LongWrapperHolder() {}
+
+    /**
+     * Make a new <code>LongWrapperHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value the <code>Long</code> to hold
+     */
+    public LongWrapperHolder(Long value) {
+        this.value = value;
+    }
+}

Added: geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ObjectHolder.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ObjectHolder.java?view=auto&rev=153028
==============================================================================
--- geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ObjectHolder.java (added)
+++ geronimo/trunk/specs/jaxrpc/src/javax/xml/rpc/holders/ObjectHolder.java Tue Feb  8 22:00:44 2005
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package javax.xml.rpc.holders;
+
+/**
+ * Holder for <code>Object</code>s.
+ *
+ * @version 1.0
+ */
+public final class ObjectHolder implements Holder {
+
+    /** The <code>Object</code> contained by this holder. */
+    public Object value;
+
+    /**
+     * Make a new <code>ObjectHolder</code> with a <code>null</code> value.
+     */
+    public ObjectHolder() {}
+
+    /**
+     * Make a new <code>ObjectHolder</code> with <code>value</code> as
+     * the value.
+     *
+     * @param value  the <code>Object</code> to hold
+     */
+    public ObjectHolder(Object value) {
+        this.value = value;
+    }
+}



Mime
View raw message