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

Reply via email to