Index: TXM/trunk/bundles/org.txm.groovy.core/.classpath
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/.classpath	(revision 3674)
+++ TXM/trunk/bundles/org.txm.groovy.core/.classpath	(revision 3675)
@@ -1,15 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src/java" />
-	<classpathentry exported="true" kind="lib" path="bin/" />
-	<classpathentry kind="con"
-		path="org.eclipse.jdt.launching.JRE_CONTAINER" />
-	<classpathentry kind="con"
-		path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="**" />
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="con" path="GROOVY_DSL_SUPPORT" />
-	<classpathentry kind="output" path="bin" />
-</classpath>
\ No newline at end of file
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/java"/>
+	<classpathentry kind="lib" path="bin/"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
+		<attributes>
+			<attribute name="module" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
+		<accessrules>
+			<accessrule kind="accessible" pattern="**"/>
+		</accessrules>
+	</classpathentry>
+	<classpathentry kind="con" path="GROOVY_DSL_SUPPORT"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: TXM/trunk/bundles/org.txm.groovy.core/src/java/org/txm/groovy/core/GSERunner.java
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/src/java/org/txm/groovy/core/GSERunner.java	(revision 3674)
+++ TXM/trunk/bundles/org.txm.groovy.core/src/java/org/txm/groovy/core/GSERunner.java	(revision 3675)
@@ -61,7 +61,7 @@
 	 * @return
 	 */
 	public static GSERunner buildDefaultGSE() {
-		File rootDir = new File(Toolbox.getTxmHomePath(), "scripts/groovy/");
+		File rootDir = new File(Toolbox.getTxmHomePath(), "scripts/groovy/"); //$NON-NLS-1$
 		// check if script root dir was changed
 		if (defaultScriptRootDir != null && defaultScriptRootDir.equals(rootDir) && defaultGSE != null) {
 			// try {
@@ -80,7 +80,7 @@
 				
 		try {
 			defaultScriptRootDir = rootDir;
-			Log.fine("GSE roots: " + Arrays.toString(roots));
+			Log.fine("GSE roots: " + Arrays.toString(roots)); //$NON-NLS-1$
 			defaultGSE = new GSERunner(roots);
 		}
 		catch (IOException e) {
@@ -89,12 +89,12 @@
 		}
 		
 		ImportCustomizer imports = new ImportCustomizer();
-		imports.addStarImports("org.txm.rcp.utils",
-				"org.txm.utils",
-				"org.txm",
-				"org.kohsuke.args4j",
-				"org.txm.rcp.swt.widget.parameters");
-		imports.addImports("groovy.transform.Field");
+		imports.addStarImports("org.txm.rcp.utils", //$NON-NLS-1$
+				"org.txm.utils", //$NON-NLS-1$
+				"org.txm", //$NON-NLS-1$
+				"org.kohsuke.args4j", //$NON-NLS-1$
+				"org.txm.rcp.swt.widget.parameters"); //$NON-NLS-1$
+		imports.addImports("groovy.transform.Field"); //$NON-NLS-1$
 		CompilerConfiguration configuration = new CompilerConfiguration();
 		configuration.addCompilationCustomizers(imports);
 		
@@ -122,7 +122,7 @@
 				
 				@Override
 				public boolean accept(File dir, String name) {
-					return name.endsWith(".jar") || name.endsWith(".so") || name.endsWith(".dylib") || name.endsWith(".dll"); //$NON-NLS-1$
+					return name.endsWith(".jar") || name.endsWith(".so") || name.endsWith(".dylib") || name.endsWith(".dll"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
 				}
 			})) {
 				try {
@@ -149,7 +149,7 @@
 		// get field sourceCache
 		Field field;
 		try {
-			field = gcl.getClass().getSuperclass().getDeclaredField("sourceCache");
+			field = gcl.getClass().getSuperclass().getDeclaredField("sourceCache"); //$NON-NLS-1$
 			field.setAccessible(true);
 			Map<String, Class> sourceCache = (Map<String, Class>) field.get(gcl);
 			
@@ -157,10 +157,10 @@
 			URLClassLoader classLoader = new URLClassLoader(new URL[]{target.toURI().toURL()}, Thread.currentThread().getContextClassLoader());
 					
 			for (File clazzFile : DeleteDir.scanDirectory(target, true, true)) {
-				if (!clazzFile.getName().endsWith(".class")) continue;
+				if (!clazzFile.getName().endsWith(".class")) continue; //$NON-NLS-1$
 				String fullclassname = clazzFile.getAbsolutePath().substring(target.getAbsolutePath().length()+1);
-				fullclassname = fullclassname.replace("/", ".");
-				fullclassname = fullclassname.replace("\\", ".");
+				fullclassname = fullclassname.replace("/", "."); //$NON-NLS-1$ //$NON-NLS-2$
+				fullclassname = fullclassname.replace("\\", "."); //$NON-NLS-1$ //$NON-NLS-2$
 				fullclassname = fullclassname.substring(0, fullclassname.length()-6);
 				Class<?> clazz = Class.forName(fullclassname, true, classLoader);
 				sourceCache.put(clazzFile.getAbsolutePath(), clazz);
@@ -183,11 +183,11 @@
 		
 		Bundle rcpBundle = BundleUtils.getBundle(bundle);
 		if (rcpBundle == null) return;
-		String dependanciesString = rcpBundle.getHeaders().get("Require-Bundle");
+		String dependanciesString = rcpBundle.getHeaders().get("Require-Bundle"); //$NON-NLS-1$
 		if (dependanciesString == null) return;
 		// System.out.println("Require-Bundle: "+dependanciesString);
 		for (String dependancy : dependanciesString.split(",")) {
-			String name = dependancy.split(";", 2)[0];
+			String name = dependancy.split(";", 2)[0]; //$NON-NLS-1$
 			defaultPlugins.add(name);
 			getDependancies(name, defaultPlugins);
 		}
@@ -233,7 +233,7 @@
 					loaders.remove(loader.getParent());
 				}
 				
-				if ("org.txm.rcp".equals(name)) {
+				if ("org.txm.rcp".equals(name)) { //$NON-NLS-1$
 					defaultLoader = loader;
 				}
 				// FIXME: debug
Index: TXM/trunk/bundles/org.txm.groovy.core/src/java/org/txm/groovy/core/TXMClassLoader.java
===================================================================
--- TXM/trunk/bundles/org.txm.groovy.core/src/java/org/txm/groovy/core/TXMClassLoader.java	(revision 3674)
+++ TXM/trunk/bundles/org.txm.groovy.core/src/java/org/txm/groovy/core/TXMClassLoader.java	(revision 3675)
@@ -5,9 +5,8 @@
 import java.util.HashSet;
 
 import org.eclipse.osgi.internal.loader.EquinoxClassLoader;
+import org.txm.utils.logger.Log;
 
-import cern.colt.Arrays;
-
 /**
  * Class loader that looking for a class in all installed RCP Bundle then load it.
  * 
@@ -18,15 +17,25 @@
 
 	private HashMap<String, EquinoxClassLoader> loaders;
 
-	private HashMap<String, HashSet<EquinoxClassLoader>> packageToLoaders = new HashMap<String, HashSet<EquinoxClassLoader>>();
+	private HashMap<String, HashSet<EquinoxClassLoader>> packageToLoaders;
 
-	ClassLoader defaultLoader;
+	private ClassLoader defaultLoader;
 
+	/**
+	 * 
+	 * @param defaultLoader
+	 * @param loaders2
+	 */
 	public TXMClassLoader(ClassLoader defaultLoader, HashSet<EquinoxClassLoader> loaders2) {
 		this.loaders = new HashMap<>();
 		
 		boolean useFastIndex = GroovyPreferences.getInstance().getBoolean(GroovyPreferences.FAST_PACKAGE_INDEX);
 		
+		if(useFastIndex)  {
+			Log.finest("Fast package index option is activated."); //$NON-NLS-1$
+			this.packageToLoaders = new HashMap<String, HashSet<EquinoxClassLoader>>();
+		}
+		
 		for (EquinoxClassLoader loader : loaders2) {
 
 			String k = loader.getBundle().getSymbolicName();
@@ -35,12 +44,12 @@
 
 			if (useFastIndex) {
 				Dictionary<String, String> d = loader.getBundle().getHeaders();
-				String packagesString = d.get("Export-Package");
+				String packagesString = d.get("Export-Package"); //$NON-NLS-1$
 				if (packagesString != null) {
-					packagesString = packagesString.replace("\n", "");
-					for (String p : packagesString.split(",")) {
+					packagesString = packagesString.replace("\n", ""); //$NON-NLS-1$ //$NON-NLS-2$
+					for (String p : packagesString.split(",")) { //$NON-NLS-1$
 						p = p.trim();
-						if (p.contains(";")) p = p.substring(p.indexOf(";"));
+						if (p.contains(";")) p = p.substring(p.indexOf(";")); //$NON-NLS-1$ //$NON-NLS-2$
 						if (!packageToLoaders.containsKey(p)) {
 							HashSet<EquinoxClassLoader> tmp = new HashSet<EquinoxClassLoader>();
 							packageToLoaders.put(p, tmp);
@@ -73,11 +82,11 @@
 			p = "";
 		}
 
-		if (packageToLoaders.containsKey(p)) {
+		if (packageToLoaders != null && packageToLoaders.containsKey(p)) {
 			for (EquinoxClassLoader loader : packageToLoaders.get(p)) {
 				if (loader != null) {
 					Class<?> c = loader.loadClass(name);
-					//System.out.println("load from "+loaderName+": "+name);
+					//System.out.println("load from " + loader.getName() + ": " + name);
 					return c;
 				}
 			}
