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);
}
/**