Glen,

Based on this, it looks like it's safe for me to switch from
ServiceDesc.getOperations() to ServiceDesc.getAllowedMethods() for the
service details listing.  Yes?

Alan

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, April 03, 2002 1:10 AM
To: [EMAIL PROTECTED]
Subject: cvs commit: xml-axis/java/test/wsdd TestAllowedMethods.java


gdaniels    02/04/02 22:09:56

  Modified:    java/src/org/apache/axis/deployment/wsdd WSDDService.java
               java/src/org/apache/axis/description ServiceDesc.java
                        TypeDesc.java
               java/src/org/apache/axis/wsdl/fromJava Emitter.java
               java/src/org/apache/axis/wsdl/toJava
                        JavaBeanHelperWriter.java JavaWriter.java
               java/test/encoding AttributeBean.java RETURN.java
                        SimpleBean.java TestAttributes.java
  Added:       java/test/encoding ParentBean.java
               java/test/wsdd TestAllowedMethods.java
  Log:
  * Make TypeDescs handle inheritance.  Next step is to make this more
    efficient (only look for the parent TypeDesc once).
  
  * TypeDescs now require a Class in the constructor
  
  * Introduce a ParentBean to the attributes test to test this
functionality.
  
  * Pass allowedMethods down into the ServiceDesc.
  
  Revision  Changes    Path
  1.51      +11 -0
xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java
  
  Index: WSDDService.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/deployment/wsdd/WSDDService.java
,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- WSDDService.java  1 Apr 2002 20:29:40 -0000       1.50
  +++ WSDDService.java  3 Apr 2002 06:09:55 -0000       1.51
  @@ -76,6 +76,8 @@
   import java.util.HashMap;
   import java.util.Set;
   import java.util.Iterator;
  +import java.util.ArrayList;
  +import java.util.StringTokenizer;
   import java.io.IOException;
   import java.beans.IntrospectionException;
   
  @@ -190,6 +192,15 @@
               }
           }
   
  +        String allowedMethods = getParameter("allowedMethods");
  +        if (allowedMethods != null) {
  +            ArrayList methodList = new ArrayList();
  +            StringTokenizer tokenizer = new
StringTokenizer(allowedMethods, " ,");
  +            while (tokenizer.hasMoreTokens()) {
  +                methodList.add(tokenizer.nextToken());
  +            }
  +            //desc.setAllowedMethods(methodList);
  +        }
       }
   
       /**
  
  
  
  1.13      +3 -3
xml-axis/java/src/org/apache/axis/description/ServiceDesc.java
  
  Index: ServiceDesc.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/description/ServiceDesc.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ServiceDesc.java  2 Apr 2002 19:07:16 -0000       1.12
  +++ ServiceDesc.java  3 Apr 2002 06:09:55 -0000       1.13
  @@ -92,7 +92,7 @@
   
       /** List of allowed methods */
       /** null allows everything, an empty ArrayList allows nothing */
  -    private ArrayList allowedMethods = null;
  +    private List allowedMethods = null;
   
       /** List if disallowed methods */
       private List disallowedMethods = null;
  @@ -178,11 +178,11 @@
           this.wsdlFileName = wsdlFileName;
       }
   
  -    public ArrayList getAllowedMethods() {
  +    public List getAllowedMethods() {
           return allowedMethods;
       }
   
  -    public void setAllowedMethods(ArrayList allowedMethods) {
  +    public void setAllowedMethods(List allowedMethods) {
           this.allowedMethods = allowedMethods;
       }
   
  
  
  
  1.9       +77 -3
xml-axis/java/src/org/apache/axis/description/TypeDesc.java
  
  Index: TypeDesc.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/description/TypeDesc.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- TypeDesc.java     2 Apr 2002 21:24:40 -0000       1.8
  +++ TypeDesc.java     3 Apr 2002 06:09:55 -0000       1.9
  @@ -72,6 +72,10 @@
   public class TypeDesc {
       public static Class [] noClasses = new Class [] {};
   
  +    public TypeDesc(Class javaClass) {
  +        this.javaClass = javaClass;
  +    }
  +
       /**
        * Static function for centralizing access to type metadata for a
        * given class.  
  @@ -109,6 +113,8 @@
           return null;
       }
   
  +    private Class javaClass = null;
  +    
       private FieldDesc [] fields;
   
       /** A cache of FieldDescs by name */
  @@ -124,6 +130,24 @@
           return fields;
       }
   
  +    public FieldDesc[] getFields(boolean searchParents) {
  +        if (searchParents) {
  +            // check superclasses if they exist
  +            Class cls = javaClass.getSuperclass();
  +            if (cls != null && !cls.getName().startsWith("java.")) {
  +                TypeDesc superDesc = getTypeDescForClass(cls);
  +                if (superDesc != null) {
  +                    FieldDesc [] parentFields =
superDesc.getFields(true);
  +                    FieldDesc [] ret = new FieldDesc[parentFields.length
+ fields.length];
  +                    System.arraycopy(fields, 0, ret, 0, fields.length);
  +                    System.arraycopy(parentFields, 0, ret, fields.length,
parentFields.length);
  +                }
  +            }
  +        }
  +
  +        return fields;
  +    }
  +
       /**
        * Replace the array of FieldDescs, making sure we keep our
convenience
        * caches in sync.
  @@ -177,8 +201,18 @@
       public QName getElementNameForField(String fieldName)
       {
           FieldDesc desc = (FieldDesc)fieldNameMap.get(fieldName);
  -        if (desc == null || !desc.isElement())
  +        if (desc == null) {
  +            // check superclasses if they exist
  +            Class cls = javaClass.getSuperclass();
  +            if (cls != null && !cls.getName().startsWith("java.")) {
  +                TypeDesc superDesc = getTypeDescForClass(cls);
  +                if (superDesc != null) {
  +                    return superDesc.getElementNameForField(fieldName);
  +                }
  +            }
  +        } else if (!desc.isElement()) {
               return null;
  +        }
           return desc.getXmlName();
       }
       
  @@ -189,8 +223,18 @@
       public QName getAttributeNameForField(String fieldName)
       {
           FieldDesc desc = (FieldDesc)fieldNameMap.get(fieldName);
  -        if (desc == null || desc.isElement())
  +        if (desc == null) {
  +            // check superclasses if they exist
  +            Class cls = javaClass.getSuperclass();
  +            if (cls != null && !cls.getName().startsWith("java.")) {
  +                TypeDesc superDesc = getTypeDescForClass(cls);
  +                if (superDesc != null) {
  +                    return superDesc.getAttributeNameForField(fieldName);
  +                }
  +            }
  +        } else if (desc.isElement()) {
               return null;
  +        }
           QName ret = desc.getXmlName();
           if (ret == null) {
               ret = new QName("", fieldName);
  @@ -221,6 +265,15 @@
                   }
               }
           }
  +        
  +        // check superclasses if they exist
  +        Class cls = javaClass.getSuperclass();
  +        if (cls != null && !cls.getName().startsWith("java.")) {
  +            TypeDesc superDesc = getTypeDescForClass(cls);
  +            if (superDesc != null) {
  +                return superDesc.getFieldNameForElement(qname, ignoreNS);
  +            }
  +        }
   
           return null;
       }
  @@ -253,6 +306,17 @@
               }
           }
           
  +        if (possibleMatch == null) {
  +            // check superclasses if they exist
  +            Class cls = javaClass.getSuperclass();
  +            if (cls != null && !cls.getName().startsWith("java.")) {
  +                TypeDesc superDesc = getTypeDescForClass(cls);
  +                if (superDesc != null) {
  +                    possibleMatch =
superDesc.getFieldNameForAttribute(qname);
  +                }
  +            }
  +        }
  +        
           return possibleMatch;
       }
   
  @@ -261,7 +325,17 @@
        */
       public FieldDesc getFieldByName(String name)
       {
  -        return (FieldDesc)fieldNameMap.get(name);
  +        FieldDesc ret = (FieldDesc)fieldNameMap.get(name);
  +        if (ret == null) {
  +            Class cls = javaClass.getSuperclass();
  +            if (cls != null && !cls.getName().startsWith("java.")) {
  +                TypeDesc superDesc = getTypeDescForClass(cls);
  +                if (superDesc != null) {
  +                    ret = superDesc.getFieldByName(name);
  +                }
  +            }
  +        }
  +        return ret;
       }
   
       /**
  
  
  
  1.28      +1 -0
xml-axis/java/src/org/apache/axis/wsdl/fromJava/Emitter.java
  
  Index: Emitter.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/fromJava/Emitter.java,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- Emitter.java      1 Apr 2002 20:12:17 -0000       1.27
  +++ Emitter.java      3 Apr 2002 06:09:55 -0000       1.28
  @@ -218,6 +218,7 @@
           }
   
           serviceDesc.setStopClasses(stopClasses);
  +        serviceDesc.setAllowedMethods(allowedMethods);
           serviceDesc.setDisallowedMethods(disallowedMethods);
   
           Document doc = null;
  
  
  
  1.5       +2 -1
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaBeanHelperWriter.java
  
  Index: JavaBeanHelperWriter.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaBeanHelperWriter
.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JavaBeanHelperWriter.java 2 Apr 2002 21:24:40 -0000       1.4
  +++ JavaBeanHelperWriter.java 3 Apr 2002 06:09:55 -0000       1.5
  @@ -156,7 +156,8 @@
               boolean wroteFieldType = false;
               pw.println("    // " + JavaUtils.getMessage("typeMeta"));
               pw.println("    private static
org.apache.axis.description.TypeDesc typeDesc =");
  -            pw.println("        new
org.apache.axis.description.TypeDesc();");
  +            pw.println("        new
org.apache.axis.description.TypeDesc(" +
  +                       rootName + ".class);");
               pw.println();
               pw.println("    static {");
   
  
  
  
  1.10      +3 -2
xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriter.java
  
  Index: JavaWriter.java
  ===================================================================
  RCS file:
/home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaWriter.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- JavaWriter.java   22 Mar 2002 14:38:45 -0000      1.9
  +++ JavaWriter.java   3 Apr 2002 06:09:55 -0000       1.10
  @@ -95,6 +95,7 @@
       protected Emitter     emitter;
       protected QName       qname;
       protected Namespaces  namespaces;
  +    protected String      rootName; // No suffix...
       protected String      className;
       protected String      fileName;
       protected String      packageName;
  @@ -116,8 +117,8 @@
           this.emitter     = emitter;
           this.qname       = entry.getQName();
           this.namespaces  = emitter.getNamespaces();
  -        this.className   = Utils.getJavaLocalName(entry.getName())
  -                + (suffix == null ? "" : suffix);
  +        this.rootName    = Utils.getJavaLocalName(entry.getName());
  +        this.className   = rootName + (suffix == null ? "" : suffix);
           this.fileName    = className + '.' + extension;
           this.packageName = Utils.getJavaPackageName(entry.getName());
           this.message     = message;
  
  
  
  1.4       +16 -5     xml-axis/java/test/encoding/AttributeBean.java
  
  Index: AttributeBean.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/encoding/AttributeBean.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- AttributeBean.java        24 Mar 2002 18:51:29 -0000      1.3
  +++ AttributeBean.java        3 Apr 2002 06:09:55 -0000       1.4
  @@ -65,7 +65,7 @@
   /**
    * Simple Java Bean with fields that should be serialized as attributes
    */ 
  -public class AttributeBean implements java.io.Serializable {
  +public class AttributeBean extends ParentBean {
       private int age;
       private float iD;
       private java.lang.String name;  // attribute
  @@ -124,16 +124,27 @@
               return false;
           if (other.getMale() != male)
               return false;
  -        if (name == null)
  -            return other.getName() == null;
  -        return name.equals(other.getName());
  +        if (name == null) {
  +            if (other.getName() != null) {
  +                return false;
  +            }
  +        }
  +        if (!name.equals(other.getName())) {
  +            return false;
  +        }
  +        if (getParentFloat() != other.getParentFloat())
  +            return false;
  +        if (getParentStr() != null) {
  +            return getParentStr().equals(other.getParentStr());
  +        }
  +        return other.getParentStr() == null;
       }
   
       // Type metadata
       private static TypeDesc typeDesc;
       
       static {
  -        typeDesc = new TypeDesc();
  +        typeDesc = new TypeDesc(AttributeBean.class);
           FieldDesc field;
   
           // An attribute with a specified QName
  
  
  
  1.3       +1 -1      xml-axis/java/test/encoding/RETURN.java
  
  Index: RETURN.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/encoding/RETURN.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RETURN.java       2 Apr 2002 21:25:15 -0000       1.2
  +++ RETURN.java       3 Apr 2002 06:09:55 -0000       1.3
  @@ -152,7 +152,7 @@
   
       // Type metadata
       private static org.apache.axis.description.TypeDesc typeDesc =
  -        new org.apache.axis.description.TypeDesc();
  +        new org.apache.axis.description.TypeDesc(RETURN.class);
   
       static {
           org.apache.axis.description.FieldDesc field = new
org.apache.axis.description.ElementDesc();
  
  
  
  1.2       +1 -1      xml-axis/java/test/encoding/SimpleBean.java
  
  Index: SimpleBean.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/encoding/SimpleBean.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SimpleBean.java   8 Mar 2002 05:04:54 -0000       1.1
  +++ SimpleBean.java   3 Apr 2002 06:09:55 -0000       1.2
  @@ -68,7 +68,7 @@
       public String value;  // Our "actual" value
       public float temp;   // An attribute
   
  -    private static TypeDesc typeDesc = new TypeDesc();
  +    private static TypeDesc typeDesc = new TypeDesc(SimpleBean.class);
       static {
           FieldDesc fd = new AttributeDesc();
           fd.setFieldName("temp");
  
  
  
  1.4       +15 -14    xml-axis/java/test/encoding/TestAttributes.java
  
  Index: TestAttributes.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/encoding/TestAttributes.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TestAttributes.java       24 Mar 2002 18:51:29 -0000      1.3
  +++ TestAttributes.java       3 Apr 2002 06:09:55 -0000       1.4
  @@ -15,6 +15,7 @@
   import org.apache.axis.encoding.ser.SimpleNonPrimitiveSerializerFactory;
   import org.apache.axis.Constants;
   import org.apache.axis.Message;
  +import org.apache.axis.configuration.BasicServerConfig;
   import org.apache.axis.description.TypeDesc;
   import org.apache.axis.description.FieldDesc;
   import org.apache.axis.description.OperationDesc;
  @@ -38,7 +39,7 @@
   
   /**
    *  Test the serialization of a bean with attributes
  - * 
  + *
    * @author Tom Jordahl ([EMAIL PROTECTED])
    * @author Glen Daniels ([EMAIL PROTECTED])
    */
  @@ -47,50 +48,50 @@
               LogFactory.getLog(TestAttributes.class.getName());
   
       public static final String myNS = "urn:myNS";
  -    
  +
       public static void main(String [] args) throws Exception
       {
           TestAttributes tester = new TestAttributes("TestAttributes");
           tester.testBean();
           tester.testSimpleType();
       }
  -    
  +
       public TestAttributes(String name) {
           super(name);
       }
  -    
  +
       public void testBean () throws Exception {
  -        MessageContext msgContext = new MessageContext(new AxisServer());
  +        MessageContext msgContext = new MessageContext(new AxisServer(new
BasicServerConfig()));
           SOAPEnvelope msg = new SOAPEnvelope();
  -        
  +
           // Create bean with data
           AttributeBean bean = new AttributeBean();
           bean.setAge(35);
           bean.setID(1.15F);
           bean.setMale(true);
           bean.setName("James Bond");
  -        
  +
           RPCParam arg = new RPCParam("", "struct", bean);
           RPCElement body = new RPCElement("urn:myNamespace", "method1",
new Object[]{ arg });
           msg.addBodyElement(body);
           body.setEncodingStyle(null);
  -        
  +
           Writer stringWriter = new StringWriter();
           SerializationContext context = new
SerializationContextImpl(stringWriter, msgContext);
           context.setDoMultiRefs(false);  // no multirefs
           context.setPretty(false);
  -        
  +
           // Create a TypeMapping and register the Bean
serializer/deserializer
           TypeMappingRegistry reg = context.getTypeMappingRegistry();
           TypeMapping tm = (TypeMapping) reg.createTypeMapping();
           // The "" namespace is literal (no encoding).
           tm.setSupportedNamespaces(new String[]
{Constants.URI_CURRENT_SOAP_ENC});
           reg.register(Constants.URI_CURRENT_SOAP_ENC, tm);
  -        
  +
           QName beanQName = new QName("typeNS", "TheBean");
  -        tm.register(AttributeBean.class, 
  -                    beanQName, 
  -                    new BeanSerializerFactory(AttributeBean.class,
beanQName), 
  +        tm.register(AttributeBean.class,
  +                    beanQName,
  +                    new BeanSerializerFactory(AttributeBean.class,
beanQName),
                       new BeanDeserializerFactory(AttributeBean.class,
beanQName));
   
           // Serialize the bean in to XML
  @@ -124,7 +125,7 @@
           SimpleBean bean = new SimpleBean("test value");
           bean.temp = 85.0F;
   
  -        MessageContext msgContext = new MessageContext(new AxisServer());
  +        MessageContext msgContext = new MessageContext(new AxisServer(new
BasicServerConfig()));
           SOAPEnvelope msg = new SOAPEnvelope();
   
           RPCParam arg = new RPCParam("", "simple", bean);
  
  
  
  1.1                  xml-axis/java/test/encoding/ParentBean.java
  
  Index: ParentBean.java
  ===================================================================
  /*
   * The Apache Software License, Version 1.1
   *
   *
   * Copyright (c) 2001 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Axis" and "Apache Software Foundation" must
   *    not be used to endorse or promote products derived from this
   *    software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache",
   *    nor may "Apache" appear in their name, without prior written
   *    permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  package test.encoding;
  
  import org.apache.axis.description.TypeDesc;
  import org.apache.axis.description.FieldDesc;
  import org.apache.axis.description.AttributeDesc;
  import org.apache.axis.description.ElementDesc;
  
  import javax.xml.rpc.namespace.QName;
  
  /**
   * @author Glen Daniels ([EMAIL PROTECTED])
   */
  public class ParentBean {
      private float parentFloat; // attribute
      private String parentStr;  // element
  
      public float getParentFloat() {
          return parentFloat;
      }
  
      public void setParentFloat(float parentFloat) {
          this.parentFloat = parentFloat;
      }
  
      public String getParentStr() {
          return parentStr;
      }
  
      public void setParentStr(String parentStr) {
          this.parentStr = parentStr;
      }
  
      // Type metadata
      private static TypeDesc typeDesc;
      
      static {
          typeDesc = new TypeDesc(ParentBean.class);
          FieldDesc field;
  
          // An attribute with a specified QName
          field = new AttributeDesc();
          field.setFieldName("parentFloat");
          field.setXmlName(new QName("", "parentAttr"));
          typeDesc.addFieldDesc(field);
  
          // An element with a specified QName
          field = new ElementDesc();
          field.setFieldName("parentStr");
          field.setXmlName(new QName("", "parentElement"));
          typeDesc.addFieldDesc(field);
      }
      
      public static TypeDesc getTypeDesc()
      {
          return typeDesc;
      }
  }
  
  
  
  1.1                  xml-axis/java/test/wsdd/TestAllowedMethods.java
  
  Index: TestAllowedMethods.java
  ===================================================================
  /*
   * Created by IntelliJ IDEA.
   * User: gdaniels
   * Date: Apr 2, 2002
   * Time: 10:14:06 AM
   * To change template for new class use 
   * Code Style | Class Templates options (Tools | IDE Options).
   */
  package test.wsdd;
  
  import org.apache.axis.deployment.wsdd.WSDDConstants;
  import org.apache.axis.server.AxisServer;
  import org.apache.axis.configuration.XMLStringProvider;
  import org.apache.axis.transport.local.LocalTransport;
  import org.apache.axis.client.Call;
  import org.apache.axis.client.Service;
  import junit.framework.TestCase;
  
  public class TestAllowedMethods extends TestCase {
      static final String SERVICE_NAME = "AllowedMethodService";
      private static final String MESSAGE = "Allowed method";
  
      AxisServer server;
      LocalTransport transport;
  
      // Two-part WSDD, with a space for scope option in the middle
      static final String doc1 =
              "<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\"; " +
                    "xmlns:java=\"" + WSDDConstants.WSDD_JAVA + "\">\n" +
              " <service name=\"" + SERVICE_NAME + "\" " +
                        "provider=\"java:RPC\">\n" +
              "   <parameter name=\"allowedMethods\" value=\"allowed\"/>" +
              "   <parameter name=\"className\"
value=\"test.wsdd.TestAllowedMethods\"/>" +
              " </service>\n" +
              "</deployment>";
  
      public TestAllowedMethods() {
          super("test");
      }
  
      public TestAllowedMethods(String s) {
          super(s);
      }
  
      protected void setUp() throws Exception {
          XMLStringProvider config = new XMLStringProvider(doc1);
          server = new AxisServer(config);
          transport = new LocalTransport(server);
          transport.setRemoteService(SERVICE_NAME);
      }
  
      public void testAllowedMethods() throws Exception {
          Call call = new Call(new Service());
          call.setTransport(transport);
  
          String ret = (String)call.invoke("allowed", null);
          assertEquals("Return didn't match", MESSAGE, ret);
  
          try {
              ret = (String)call.invoke("disallowed", null);
          } catch (Exception e) {
              // Success, we shouldn't have been allowed to call that.
              return;
          }
  
          fail("Successfully called disallowed method!");
      }
  
      public String disallowed() throws Exception {
          return "You shouldn't have called me!";
      }
  
      public String allowed() {
          return MESSAGE;
      }
  }
  
  
  

Reply via email to