dain 2005/06/20 21:22:14
Modified: modules/core/src/java/org/openejb/corba/util
OpenORBStubClassLoader.java
Log:
Moved portable stub compiler from geronimo interop
Revision Changes Path
1.10 +21 -5
openejb/modules/core/src/java/org/openejb/corba/util/OpenORBStubClassLoader.java
Index: OpenORBStubClassLoader.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/corba/util/OpenORBStubClassLoader.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- OpenORBStubClassLoader.java 19 Apr 2005 06:50:49 -0000 1.9
+++ OpenORBStubClassLoader.java 21 Jun 2005 01:22:14 -0000 1.10
@@ -82,6 +82,7 @@
private final File cacheDir;
private final Map parentToNameToLoaderMap = new HashMap();
private final Map nameToClassMap = new HashMap();
+ private boolean keepCache;
private static Random random = new Random(System.currentTimeMillis());
public OpenORBStubClassLoader(ServerInfo serverInfo, StubGenerator
stubGenerator, String cacheDir) {
@@ -90,6 +91,14 @@
this.state = STOPPED;
}
+ public boolean isKeepCache() {
+ return keepCache;
+ }
+
+ public void setKeepCache(boolean keepCache) {
+ this.keepCache = keepCache;
+ }
+
public synchronized Class loadClass(String name) throws
ClassNotFoundException {
if (state == STOPPED) {
@@ -197,7 +206,9 @@
}
public synchronized void doStart() throws Exception {
- FileUtils.recursiveDelete(cacheDir);
+ if (!keepCache) {
+ FileUtils.recursiveDelete(cacheDir);
+ }
cacheDir.mkdirs();
UtilDelegateImpl.setClassLoader(this);
@@ -213,7 +224,9 @@
parentToNameToLoaderMap.clear();
nameToClassMap.clear();
- FileUtils.recursiveDelete(cacheDir);
+ if (!keepCache) {
+ FileUtils.recursiveDelete(cacheDir);
+ }
log.info("Stopped");
}
@@ -221,7 +234,9 @@
public synchronized void doFail() {
this.state = STOPPED;
- FileUtils.recursiveDelete(cacheDir);
+ if (!keepCache) {
+ FileUtils.recursiveDelete(cacheDir);
+ }
log.info("Failed");
}
@@ -233,6 +248,7 @@
GBeanInfoBuilder infoFactory = new
GBeanInfoBuilder(OpenORBStubClassLoader.class, NameFactory.CORBA_SERVICE);
infoFactory.addReference("ServerInfo", ServerInfo.class,
NameFactory.GERONIMO_SERVICE);
infoFactory.addReference("StubGenerator", StubGenerator.class,
NameFactory.CORBA_SERVICE);
+ infoFactory.addAttribute("keepCache", boolean.class, true);
infoFactory.addAttribute("cacheDir", String.class, true);
infoFactory.addOperation("loadClass", new Class[]{String.class});
infoFactory.setConstructor(new String[]{"ServerInfo",
"StubGenerator", "cacheDir"});