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 ru...@apache.org on 2001/10/02 22:11:19 UTC

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

rubys       01/10/02 13:11:19

  Modified:    java/src/org/apache/axis/providers/java JavaProvider.java
               java/src/org/apache/axis/utils/cache JavaClass.java
  Log:
  Caches don't do much good unless you actually use them.  ;-)
  
  Revision  Changes    Path
  1.19      +2 -2      xml-axis/java/src/org/apache/axis/providers/java/JavaProvider.java
  
  Index: JavaProvider.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/providers/java/JavaProvider.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- JavaProvider.java	2001/10/02 18:10:40	1.18
  +++ JavaProvider.java	2001/10/02 20:11:19	1.19
  @@ -219,7 +219,7 @@
               Object obj        = getServiceObject(msgContext,
                                                    service,
                                                    clsName);
  -            JavaClass jc	  = new JavaClass(obj.getClass());
  +            JavaClass jc	  = JavaClass.find(obj.getClass());
   
               Message        reqMsg  = msgContext.getRequestMessage();
               SOAPEnvelope   reqEnv  = (SOAPEnvelope)reqMsg.getAsSOAPEnvelope();
  @@ -277,7 +277,7 @@
               throw (AxisFault) exp ;
           }
   
  -        JavaClass jc	  = new JavaClass(obj.getClass());
  +        JavaClass jc	  = JavaClass.find(obj.getClass());
           String  allowedMethods = getServiceAllowedMethods(service);
   
           /** ??? Should we enforce setting methodName?  As it was,
  
  
  
  1.3       +17 -0     xml-axis/java/src/org/apache/axis/utils/cache/JavaClass.java
  
  Index: JavaClass.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/cache/JavaClass.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JavaClass.java	2001/07/12 15:05:11	1.2
  +++ JavaClass.java	2001/10/02 20:11:19	1.3
  @@ -65,15 +65,32 @@
    */
   public class JavaClass {
   
  +    private static Hashtable classes = new Hashtable();
       private Hashtable methods = new Hashtable();
   
       private Class jc;
   
       /**
  +     * Find (or create if necessary) a JavaClass associated with a given
  +     * class
  +     */
  +    public static synchronized JavaClass find(Class jc) {
  +        JavaClass result = (JavaClass) classes.get(jc);
  +
  +        if (result == null) {
  +            result = new JavaClass(jc);
  +            classes.put(jc, result);
  +        }
  +
  +        return result;
  +    }
  +
  +    /**
        * Create a cache entry for this java.lang.Class
        */
       public JavaClass(Class jc) {
           this.jc = jc;
  +        classes.put(jc, this);
       }
       
       /**