pgoldstein 2002/09/25 18:25:36
Modified: src/java/org/apache/james/transport MailetLoader.java
MatchLoader.java
src/java/org/apache/james/core AvalonUsersStore.java
Log:
Minor class loader caching enhancement. Thanks to Noel Bergman for the suggestion.
Revision Changes Path
1.6 +6 -1
jakarta-james/src/java/org/apache/james/transport/MailetLoader.java
Index: MailetLoader.java
===================================================================
RCS file:
/home/cvs/jakarta-james/src/java/org/apache/james/transport/MailetLoader.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MailetLoader.java 25 Sep 2002 23:29:39 -0000 1.5
+++ MailetLoader.java 26 Sep 2002 01:25:36 -0000 1.6
@@ -67,13 +67,18 @@
try {
for (int i = 0; i < mailetPackages.size(); i++) {
String className = (String)mailetPackages.elementAt(i) + mailetName;
+ ClassLoader theClassLoader = null;
try {
MailetConfigImpl configImpl = new MailetConfigImpl();
configImpl.setMailetName(mailetName);
configImpl.setConfiguration(configuration);
configImpl.setMailetContext(context);
- Mailet mailet = (Mailet)
this.getClass().getClassLoader().loadClass(className).newInstance();
+ if (theClassLoader == null) {
+ theClassLoader = this.getClass().getClassLoader();
+ }
+
+ Mailet mailet = (Mailet)
theClassLoader.loadClass(className).newInstance();
mailet.init(configImpl);
return mailet;
} catch (ClassNotFoundException cnfe) {
1.7 +6 -1
jakarta-james/src/java/org/apache/james/transport/MatchLoader.java
Index: MatchLoader.java
===================================================================
RCS file:
/home/cvs/jakarta-james/src/java/org/apache/james/transport/MatchLoader.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- MatchLoader.java 25 Sep 2002 23:29:39 -0000 1.6
+++ MatchLoader.java 26 Sep 2002 01:25:36 -0000 1.7
@@ -71,6 +71,7 @@
condition = matchName.substring(i + 1);
matchName = matchName.substring(0, i);
}
+ ClassLoader theClassLoader = null;
for (i = 0; i < matcherPackages.size(); i++) {
String className = (String)matcherPackages.elementAt(i) + matchName;
try {
@@ -79,7 +80,11 @@
configImpl.setCondition(condition);
configImpl.setMailetContext(context);
- Matcher matcher = (Matcher)
this.getClass().getClassLoader().loadClass(className).newInstance();
+ if (theClassLoader == null) {
+ theClassLoader = this.getClass().getClassLoader();
+ }
+
+ Matcher matcher = (Matcher)
theClassLoader.loadClass(className).newInstance();
matcher.init(configImpl);
return matcher;
} catch (ClassNotFoundException cnfe) {
1.12 +7 -1
jakarta-james/src/java/org/apache/james/core/AvalonUsersStore.java
Index: AvalonUsersStore.java
===================================================================
RCS file:
/home/cvs/jakarta-james/src/java/org/apache/james/core/AvalonUsersStore.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- AvalonUsersStore.java 25 Sep 2002 23:29:39 -0000 1.11
+++ AvalonUsersStore.java 26 Sep 2002 01:25:36 -0000 1.12
@@ -107,6 +107,7 @@
repositories = new HashMap();
Configuration[] repConfs = configuration.getChildren("repository");
+ ClassLoader theClassLoader = null;
for ( int i = 0; i < repConfs.length; i++ )
{
Configuration repConf = repConfs[i];
@@ -116,7 +117,12 @@
if (getLogger().isDebugEnabled()) {
getLogger().debug("Starting " + repClass);
}
- UsersRepository rep = (UsersRepository)
this.getClass().getClassLoader().loadClass(repClass).newInstance();
+
+ if (theClassLoader == null) {
+ theClassLoader = this.getClass().getClassLoader();
+ }
+
+ UsersRepository rep = (UsersRepository)
theClassLoader.loadClass(repClass).newInstance();
setupLogger((Component)rep);
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>