You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by to...@apache.org on 2002/10/03 20:58:07 UTC

cvs commit: xml-axis/java/src/org/apache/axis/utils BeanUtils.java

tomj        2002/10/03 11:58:07

  Modified:    java/src/org/apache/axis/description Tag: interop4
                        ServiceDesc.java OperationDesc.java FaultDesc.java
               java/src/org/apache/axis/utils Tag: interop4 BeanUtils.java
  Log:
  Add some code to generate fault data Schema (almost) correctly.
  
  Set up the OperationDesc/FaultDesc for the JavaBeanFaultWriter to use to get
  the serialization information it will need.  Code to use it will come later.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.64.2.1  +10 -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.64
  retrieving revision 1.64.2.1
  diff -u -r1.64 -r1.64.2.1
  --- ServiceDesc.java	29 Sep 2002 19:35:52 -0000	1.64
  +++ ServiceDesc.java	3 Oct 2002 18:58:07 -0000	1.64.2.1
  @@ -646,6 +646,9 @@
   
                   oper.setReturnClass(method.getReturnType());
   
  +                // Do the faults
  +                createFaultMetadata(method, oper);
  +                
                   // At some point we might want to check here to see if this
                   // Method is already associated with another Operation, but
                   // this doesn't seem critital.
  @@ -1080,6 +1083,13 @@
               }
           }
   
  +        createFaultMetadata(method, operation);
  +
  +        addOperationDesc(operation);
  +        method2OperationMap.put(method, operation);
  +    }
  +
  +    private void createFaultMetadata(Method method, OperationDesc operation) {
           // Create Exception Types
           Class[] exceptionTypes = new Class[method.getExceptionTypes().length];
           exceptionTypes = method.getExceptionTypes();
  @@ -1147,9 +1157,6 @@
                   operation.addFault(fault);
               }
           }
  -
  -        addOperationDesc(operation);
  -        method2OperationMap.put(method, operation);
       }
   
       private String[] getParamNames(Method method) {
  
  
  
  1.23.2.1  +14 -0     xml-axis/java/src/org/apache/axis/description/OperationDesc.java
  
  Index: OperationDesc.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/description/OperationDesc.java,v
  retrieving revision 1.23
  retrieving revision 1.23.2.1
  diff -u -r1.23 -r1.23.2.1
  --- OperationDesc.java	26 Sep 2002 04:35:05 -0000	1.23
  +++ OperationDesc.java	3 Oct 2002 18:58:07 -0000	1.23.2.1
  @@ -355,6 +355,20 @@
       {
           return faults;
       }
  +    
  +    /**
  +     * Returns the FaultDesc for the fault class given.
  +     * Returns null if not found.
  +     */ 
  +    public FaultDesc getFaultByClass(Class cls) {
  +        for (Iterator iterator = faults.iterator(); iterator.hasNext();) {
  +            FaultDesc desc = (FaultDesc) iterator.next();
  +            if (desc.getClassName().equals(cls.getName())) {
  +                return desc;
  +            }
  +        }
  +        return null;
  +    }
   
       public ParameterDesc getReturnParamDesc() {
           return returnDesc;
  
  
  
  1.3.4.1   +9 -0      xml-axis/java/src/org/apache/axis/description/FaultDesc.java
  
  Index: FaultDesc.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/description/FaultDesc.java,v
  retrieving revision 1.3
  retrieving revision 1.3.4.1
  diff -u -r1.3 -r1.3.4.1
  --- FaultDesc.java	23 Jul 2002 22:11:28 -0000	1.3
  +++ FaultDesc.java	3 Oct 2002 18:58:07 -0000	1.3.4.1
  @@ -65,6 +65,7 @@
   public class FaultDesc {
       private QName qname;
       private ArrayList parameters;
  +    private String className;
   
       public QName getQName() {
           return qname;
  @@ -94,6 +95,13 @@
           this.parameters = parameters;
       }
   
  +    public String getClassName() {
  +        return className;
  +    }
  +
  +    public void setClassName(String className) {
  +        this.className = className;
  +    }
   
       public String toString() {
           return toString("");
  @@ -101,6 +109,7 @@
       public String toString(String indent) {
           String text ="";
           text+= indent + "qname: " + getQName() + "\n";
  +        text+= indent + "Class: " + getClassName() + "\n";
           for (int i=0; i<parameters.size(); i++) {
               text+= indent +" ParameterDesc[" + i + "]:\n";
               text+= indent + ((ParameterDesc)parameters.get(i)).toString("  ") + "\n";
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.15.2.1  +12 -0     xml-axis/java/src/org/apache/axis/utils/BeanUtils.java
  
  Index: BeanUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/BeanUtils.java,v
  retrieving revision 1.15
  retrieving revision 1.15.2.1
  diff -u -r1.15 -r1.15.2.1
  --- BeanUtils.java	18 Sep 2002 16:10:41 -0000	1.15
  +++ BeanUtils.java	3 Oct 2002 18:58:07 -0000	1.15.2.1
  @@ -56,6 +56,7 @@
   
   import org.apache.axis.InternalException;
   import org.apache.axis.Constants;
  +import org.apache.axis.AxisFault;
   import org.apache.axis.description.TypeDesc;
   import org.apache.axis.description.FieldDesc;
   
  @@ -121,6 +122,11 @@
                                   result = Introspector.
                                           getBeanInfo(secJavaType,Exception.class).
                                           getPropertyDescriptors();
  +                            } else if (superClass == AxisFault.class) {
  +                                // Don't include AxisFault data
  +                                result = Introspector.
  +                                        getBeanInfo(secJavaType,AxisFault.class).
  +                                        getPropertyDescriptors();
                               } else {
                                   // privileged code goes here
                                   result = Introspector.
  @@ -212,6 +218,12 @@
                   // add it if not.
                   for (int i=0; i < fields.length; i++) {
                       Field f = fields[i];
  +                    // skip if field come from a java.* or javax.* package
  +                    // WARNING: Is this going to make bad things happen for
  +                    // users JavaBeans?  Do they WANT these fields serialzed?
  +                    if (f.getDeclaringClass().getName().startsWith("java")) {
  +                        continue;
  +                    }
                       // skip field if it is final, transient, or static
                       if (!(Modifier.isStatic(f.getModifiers()) ||
                               Modifier.isFinal(f.getModifiers()) ||