[102087] TaglibHelperManager updates according to classpath changes now also changed System.out.println(...) > Logger.log(...) (if the debug option is on for taglibvars)
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java index a250767..4299b1b 100644 --- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java +++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/JSPCorePlugin.java
@@ -14,10 +14,12 @@ import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.Plugin; +import org.eclipse.jdt.core.JavaCore; import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController; import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibIndex; import org.eclipse.jst.jsp.core.internal.java.search.JSPIndexManager; import org.eclipse.jst.jsp.core.internal.java.search.JSPSearchSupport; +import org.eclipse.jst.jsp.core.internal.taglib.TaglibHelperManager; import org.osgi.framework.BundleContext; /** @@ -60,6 +62,9 @@ // should be started first TaglibController.startup(); + // listen for classpath changes + JavaCore.addElementChangedListener(TaglibHelperManager.getInstance()); + // add JSPIndexManager to keep JSP Index up to date // listening for IResourceChangeEvent.PRE_DELETE and IResourceChangeEvent.POST_CHANGE ResourcesPlugin.getWorkspace().addResourceChangeListener(JSPIndexManager.getInstance(), IResourceChangeEvent.POST_CHANGE); @@ -79,6 +84,10 @@ JSPSearchSupport.getInstance().setCanceled(true); // stop any indexing JSPIndexManager.getInstance().shutdown(); + + // stop listening for classpath changes + JavaCore.removeElementChangedListener(TaglibHelperManager.getInstance()); + // stop taglib controller TaglibController.shutdown(); TaglibIndex.shutdown();
diff --git a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelperCache.java b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelperCache.java index 2ef9131..4f241fb 100644 --- a/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelperCache.java +++ b/bundles/org.eclipse.jst.jsp.core/src/org/eclipse/jst/jsp/core/internal/taglib/TaglibHelperCache.java
@@ -8,6 +8,7 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.Platform; +import org.eclipse.jst.jsp.core.internal.Logger; /** * A simple cache for TaglibHelpers to avoid excessive creation of TaglibClassLoaders @@ -17,7 +18,7 @@ private static final boolean DEBUG; static { - String value = Platform.getDebugOption("com.ibm.sse.model.jsp/debug/taglibvars"); //$NON-NLS-1$ + String value = Platform.getDebugOption("org.eclipse.jst.jsp.core/debug/taglibvars"); //$NON-NLS-1$ DEBUG = value != null && value.equalsIgnoreCase("true"); //$NON-NLS-1$ } @@ -84,7 +85,7 @@ fHelpers.remove(entry); fHelpers.add(1, entry); if(DEBUG) { - System.out.println("(->) TaglibHelperCache moved: " + entry + " to the front of the list"); + Logger.log(Logger.INFO, "(->) TaglibHelperCache moved: " + entry + " to the front of the list"); printCacheContents(); } } @@ -112,14 +113,14 @@ Entry newEntry = new Entry(projectPath, helper); fHelpers.add(0, newEntry); if(DEBUG) { - System.out.println("(+) TaglibHelperCache added: " + newEntry); + Logger.log(Logger.INFO, "(+) TaglibHelperCache added: " + newEntry); printCacheContents(); } if(fHelpers.size() > MAX_SIZE) { // one too many, remove last Object removed = fHelpers.remove(fHelpers.size()-1); if(DEBUG) { - System.out.println("(-) TaglibHelperCache removed: " + removed); + Logger.log(Logger.INFO, "(-) TaglibHelperCache removed: " + removed); printCacheContents(); } } @@ -134,7 +135,7 @@ if(entry.getProjectPath().equals(projectPath)) { fHelpers.remove(entry); if(DEBUG) { - System.out.println("(-) TaglibHelperCache removed: " + entry); + Logger.log(Logger.INFO, "(-) TaglibHelperCache removed: " + entry); printCacheContents(); } break; @@ -143,11 +144,12 @@ } private void printCacheContents() { - - System.out.println("-----------------------------------------------------------"); - System.out.println("cache contents:"); + StringBuffer debugString = new StringBuffer(); + debugString.append("\n-----------------------------------------------------------"); + debugString.append("\ncache contents:"); for (int i=0; i<fHelpers.size(); i++) - System.out.println(" -" + i + "- " + fHelpers.get(i)); - System.out.println("-----------------------------------------------------------"); + debugString.append("\n -" + i + "- " + fHelpers.get(i)); + debugString.append("\n-----------------------------------------------------------"); + Logger.log(Logger.INFO, debugString.toString()); } }