Revision: 17768
http://sourceforge.net/p/gate/code/17768
Author: markagreenwood
Date: 2014-04-03 14:37:54 +0000 (Thu, 03 Apr 2014)
Log Message:
-----------
made the jape grammar classloaders isolated
Modified Paths:
--------------
gate/trunk/plugins/JAPE_Plus/src/gate/jape/plus/Transducer.java
gate/trunk/src/main/gate/jape/Batch.java
gate/trunk/src/main/gate/jape/RightHandSide.java
gate/trunk/src/main/gate/jape/Rule.java
Modified: gate/trunk/plugins/JAPE_Plus/src/gate/jape/plus/Transducer.java
===================================================================
--- gate/trunk/plugins/JAPE_Plus/src/gate/jape/plus/Transducer.java
2014-04-03 12:28:33 UTC (rev 17767)
+++ gate/trunk/plugins/JAPE_Plus/src/gate/jape/plus/Transducer.java
2014-04-03 14:37:54 UTC (rev 17768)
@@ -603,10 +603,10 @@
new GZIPInputStream(
new BufferedInputStream(binaryGrammarURL.openStream())));
singlePhaseTransducersData = (SPTData[])ois.readObject();
- classLoader =
Gate.getClassLoader().getDisposableClassLoader(binaryGrammarURL.toExternalForm()+System.currentTimeMillis());
+ classLoader =
Gate.getClassLoader().getDisposableClassLoader(binaryGrammarURL.toExternalForm()+System.currentTimeMillis(),true);
classLoaderRefCount.incrementAndGet();
}else if(grammarURL != null) {
- classLoader =
Gate.getClassLoader().getDisposableClassLoader(grammarURL.toExternalForm()+System.currentTimeMillis());
+ classLoader =
Gate.getClassLoader().getDisposableClassLoader(grammarURL.toExternalForm()+System.currentTimeMillis(),true);
classLoaderRefCount.incrementAndGet();
parseJape();
}
Modified: gate/trunk/src/main/gate/jape/Batch.java
===================================================================
--- gate/trunk/src/main/gate/jape/Batch.java 2014-04-03 12:28:33 UTC (rev
17767)
+++ gate/trunk/src/main/gate/jape/Batch.java 2014-04-03 14:37:54 UTC (rev
17768)
@@ -84,7 +84,7 @@
this.encoding = encoding;
this.classLoader =
Gate.getClassLoader().getDisposableClassLoader(
- url.toExternalForm() + System.currentTimeMillis());
+ url.toExternalForm() + System.currentTimeMillis(), true);
parseJape();
linkListeners();
} // full init constructor
@@ -97,14 +97,14 @@
this.encoding = encoding;
this.classLoader =
Gate.getClassLoader().getDisposableClassLoader(
- url.toExternalForm() + System.currentTimeMillis());
+ url.toExternalForm() + System.currentTimeMillis(), true);
parseJape();
linkListeners();
} // full init constructor
private void readObject(java.io.ObjectInputStream in) throws IOException,
ClassNotFoundException {
- classLoader =
Gate.getClassLoader().getDisposableClassLoader(in.toString());
+ classLoader =
Gate.getClassLoader().getDisposableClassLoader(in.toString(),true);
in.defaultReadObject();
// now recreate the listeners
linkListeners();
Modified: gate/trunk/src/main/gate/jape/RightHandSide.java
===================================================================
--- gate/trunk/src/main/gate/jape/RightHandSide.java 2014-04-03 12:28:33 UTC
(rev 17767)
+++ gate/trunk/src/main/gate/jape/RightHandSide.java 2014-04-03 14:37:54 UTC
(rev 17768)
@@ -22,6 +22,7 @@
import gate.Gate;
import gate.creole.ontology.Ontology;
import gate.util.Err;
+import gate.util.GateClassLoader;
import gate.util.GateRuntimeException;
import gate.util.Strings;
@@ -71,6 +72,8 @@
/** A list of source info object for mapping between Java and Jape. */
//private transient List<SourceInfo> sourceInfo;
private transient SourceInfo sourceInfo;
+
+ private transient GateClassLoader classloader;
/** Cardinality of the action class set. Used for ensuring class name
* uniqueness.
@@ -203,8 +206,10 @@
);
} // addBlock(name, block)
+ public void finish(GateClassLoader classloader) {
+ this.classloader = classloader;
+ }
-
/** Create the action class and an instance of it. */
public void createActionClass() throws JapeException {
@@ -229,7 +234,7 @@
public void instantiateActionClass() throws JapeException {
try {
- theActionObject = Gate.getClassLoader().
+ theActionObject = classloader.
loadClass(actionClassQualifiedName).
newInstance();
} catch(Exception e) {
@@ -278,7 +283,8 @@
try{
Map<String, String> actionClasses = new HashMap<String,
String>();
actionClasses.put(className, getActionClassString());
- gate.util.Javac.loadClasses(actionClasses,
Gate.getClassLoader().getDisposableClassLoader(in.toString()));
+ classloader =
Gate.getClassLoader().getDisposableClassLoader(in.toString(),true);
+ gate.util.Javac.loadClasses(actionClasses, classloader);
}catch(Exception e1){
throw new GateRuntimeException (e1);
}
Modified: gate/trunk/src/main/gate/jape/Rule.java
===================================================================
--- gate/trunk/src/main/gate/jape/Rule.java 2014-04-03 12:28:33 UTC (rev
17767)
+++ gate/trunk/src/main/gate/jape/Rule.java 2014-04-03 14:37:54 UTC (rev
17768)
@@ -103,6 +103,7 @@
@Override
public void finish(GateClassLoader classloader) {
lhs.finish();
+ rhs.finish(classloader);
} // finish
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
_______________________________________________
GATE-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gate-cvs