From: marshall c. <mar...@us...> - 2004-07-11 17:55:38
|
User: marshall_law Date: 04/07/11 10:55:31 Modified: org.jboss.ide.eclipse.jdt.aop.core/src/org/jboss/ide/eclipse/jdt/aop/core AopCorePlugin.java Log: - added a null check in getProjectDescriptors - moved the class loader creation to a utility method, (we're using it in both the build, and the filter) Revision Changes Path 1.5 +41 -0 jboss-aop-eclipse/org.jboss.ide.eclipse.jdt.aop.core/src/org/jboss/ide/eclipse/jdt/aop/core/AopCorePlugin.java Index: AopCorePlugin.java =================================================================== RCS file: /cvsroot/jboss/jboss-aop-eclipse/org.jboss.ide.eclipse.jdt.aop.core/src/org/jboss/ide/eclipse/jdt/aop/core/AopCorePlugin.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- AopCorePlugin.java 10 Jul 2004 03:50:21 -0000 1.4 +++ AopCorePlugin.java 11 Jul 2004 17:55:30 -0000 1.5 @@ -1,6 +1,10 @@ package org.jboss.ide.eclipse.jdt.aop.core; import java.io.File; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLClassLoader; +import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.MissingResourceException; @@ -14,11 +18,14 @@ import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IPluginDescriptor; import org.eclipse.jdt.core.Flags; +import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IField; import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IMethod; import org.eclipse.jdt.core.IType; +import org.eclipse.jdt.core.JavaCore; +import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.core.Signature; import org.eclipse.jdt.internal.corext.util.JavaModelUtil; import org.jboss.ide.eclipse.core.AbstractPlugin; @@ -93,6 +100,8 @@ */ public AopDescriptor getDefaultDescriptor(IJavaProject project) { + if (project == null) + return null; Set descriptors = getProjectDescriptors(project); if (descriptors != null) @@ -259,4 +268,36 @@ return null; } + + public URLClassLoader getProjectClassLoader (IJavaProject project) + { + ArrayList pathElements = new ArrayList(); + + try { + IClasspathEntry paths[] = project.readRawClasspath(); + for (int i = 0; i < paths.length; i++) + { + IClasspathEntry path = paths[i]; + if (path.getEntryKind() == IClasspathEntry.CPE_LIBRARY) + { + URL url = path.getPath().toFile().toURL(); + pathElements.add(url); + } + } + + IPath outputPath = project.getProject().getRawLocation().append(project.getOutputLocation().removeFirstSegments(1)); + + URL output = outputPath.toFile().toURL(); + pathElements.add(output); + } catch (JavaModelException e) { + e.printStackTrace(); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + + URL urlPaths[] = (URL[]) pathElements.toArray(new URL[pathElements.size()]); + + return new URLClassLoader(urlPaths, Thread.currentThread().getContextClassLoader()); + } + } |