diff options
author | tle | 2010-05-20 04:30:26 +0000 |
---|---|---|
committer | tle | 2010-05-20 04:30:26 +0000 |
commit | e4d29d109a117d347ae9a07af9d8de1e486e20fb (patch) | |
tree | fc322d59dc0748d6b264fbfd01722aacd9313171 /jpa/plugins/org.eclipse.jpt.jaxb.ui/src | |
parent | 811bf3ab8be2b2d88784f51ecad51f69a8c81f88 (diff) | |
download | webtools.dali-e4d29d109a117d347ae9a07af9d8de1e486e20fb.tar.gz webtools.dali-e4d29d109a117d347ae9a07af9d8de1e486e20fb.tar.xz webtools.dali-e4d29d109a117d347ae9a07af9d8de1e486e20fb.zip |
313607 - JAXB Classes Generation fails to pick SYSTEM classpath variables
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jaxb.ui/src')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/core/internal/ClassesGenerator.java | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/core/internal/ClassesGenerator.java b/jpa/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/core/internal/ClassesGenerator.java index 74e50d0409..aa07c9d8fd 100644 --- a/jpa/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/core/internal/ClassesGenerator.java +++ b/jpa/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/core/internal/ClassesGenerator.java @@ -26,7 +26,10 @@ import org.eclipse.debug.core.ILaunchConfigurationType; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.debug.core.ILaunchManager; import org.eclipse.debug.core.ILaunchesListener2; +import org.eclipse.jdt.core.IClasspathContainer; +import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants; import org.eclipse.jdt.launching.IRuntimeClasspathEntry; import org.eclipse.jdt.launching.IVMInstall; @@ -166,6 +169,10 @@ public class ClassesGenerator classpath.add(this.getDefaultProjectClasspathEntry(project).getMemento()); // System Library classpath.add(this.getSystemLibraryClasspathEntry().getMemento()); + // Containers classpath + for(IRuntimeClasspathEntry containerClasspathEntry: this.getContainersClasspathEntries()) { + classpath.add(containerClasspathEntry.getMemento()); + } } catch (CoreException e) { throw new RuntimeException("An error occurs generating a memento", e); @@ -210,7 +217,7 @@ public class ClassesGenerator programArguments.append(catalog); } // schema - programArguments.append(" "); //$NON-NLS-1$ + programArguments.append(' '); //$NON-NLS-1$ programArguments.append(xmlSchemaName); // bindings @@ -235,8 +242,7 @@ public class ClassesGenerator ILaunchConfigurationWorkingCopy launchConfig = null; this.removeLaunchConfiguration(LAUNCH_CONFIG_NAME); - ILaunchManager manager = getLaunchManager(); - ILaunchConfigurationType type = getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION); + ILaunchConfigurationType type = this.getLaunchManager().getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION); launchConfig = type.newInstance(null, LAUNCH_CONFIG_NAME); return launchConfig; @@ -323,6 +329,23 @@ public class ClassesGenerator return projectEntry; } + + private List<IRuntimeClasspathEntry> getContainersClasspathEntries() throws CoreException { + ArrayList<IRuntimeClasspathEntry> classpathEntries = new ArrayList<IRuntimeClasspathEntry>(); + for(IClasspathEntry classpathEntry: this.javaProject.getRawClasspath()) { + if(classpathEntry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) { + IClasspathContainer container = JavaCore.getClasspathContainer(classpathEntry.getPath(), this.javaProject); + if(container != null && container.getKind() == IClasspathContainer.K_SYSTEM) { + classpathEntries.add( + JavaRuntime.newRuntimeContainerClasspathEntry( + container.getPath(), + IRuntimeClasspathEntry.BOOTSTRAP_CLASSES, + this.javaProject)); + } + } + } + return classpathEntries; + } private IVMInstall getProjectJRE() throws CoreException { return JavaRuntime.getVMInstall(this.javaProject); |