Fix tests for Java11
Clean up JPACreateFactory and Fix failing tests in
org.eclipse.jpt.jpadiagrameditor.ui.tests.internal*
Changes from Erik Brangs
Co-authored-by: Erik Brangs <erik.brangs@gmx.de>
Signed-off-by: Stephane Bouchet <sbouchet@redhat.com>
Change-Id: I2c470aa085c459a8be8d32ad05208233f072e9fd
diff --git a/common/plugins/org.eclipse.jpt.common.core/META-INF/MANIFEST.MF b/common/plugins/org.eclipse.jpt.common.core/META-INF/MANIFEST.MF
index 354bcbe..96a344b 100644
--- a/common/plugins/org.eclipse.jpt.common.core/META-INF/MANIFEST.MF
+++ b/common/plugins/org.eclipse.jpt.common.core/META-INF/MANIFEST.MF
@@ -32,7 +32,7 @@
org.eclipse.wst.sse.core;bundle-version="[1.1.700,2.0.0)",
org.eclipse.wst.validation;bundle-version="[1.2.0,2.0.0)",
org.eclipse.wst.xml.core;bundle-version="[1.1.700,2.0.0)"
-Import-Package: com.ibm.icu.text;version="4.0.1"
+Import-Package: com.ibm.icu.text
Dali-Comment: We friend 'internal.utility' to all non-EclipseLink, non-test bundles
Export-Package: org.eclipse.jpt.common.core,
org.eclipse.jpt.common.core.gen,
diff --git a/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF b/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF
index 47302e7..5e1f0bc 100644
--- a/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF
+++ b/common/plugins/org.eclipse.jpt.common.ui/META-INF/MANIFEST.MF
@@ -26,7 +26,7 @@
org.eclipse.wst.common.frameworks;bundle-version="[1.2.200,2.0.0)",
org.eclipse.wst.common.project.facet.ui;bundle-version="[1.3.0,2.0.0)",
org.eclipse.wst.validation;bundle-version="[1.2.0,2.0.0)"
-Import-Package: com.ibm.icu.text;version="4.0.1"
+Import-Package: com.ibm.icu.text
Dali-Comment: *NO* EclipseLink friends!
Export-Package: org.eclipse.jpt.common.ui,
org.eclipse.jpt.common.ui.gen,
diff --git a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/TypeDeclarationTools.java b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/TypeDeclarationTools.java
index 89ec1a1..f981b88 100644
--- a/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/TypeDeclarationTools.java
+++ b/common/plugins/org.eclipse.jpt.common.utility/src/org/eclipse/jpt/common/utility/internal/TypeDeclarationTools.java
@@ -591,7 +591,7 @@
return isJavaLangClass8(String.copyValueOf(simpleClassName));
}
- // jdk 1.7
+ // jdk 1.8
@SuppressWarnings("nls")
private static final String[] JAVA_LANG_CLASS_NAMES_ARRAY_8 = ArrayTools.sort(
ArrayTools.concatenate(
@@ -607,11 +607,55 @@
*/
public static final Iterable<String> JAVA_LANG_CLASS_NAMES_8 = IterableTools.iterable(JAVA_LANG_CLASS_NAMES_ARRAY_8);
- // the current release is jdk 1.8
- private static final String[] JAVA_LANG_CLASS_NAMES_ARRAY = JAVA_LANG_CLASS_NAMES_ARRAY_8;
+ /**
+ * JDK 11
+ * @see #isJavaLangClass(String)
+ */
+ public static boolean isJavaLangClass11(String simpleClassName) {
+ return ArrayTools.binarySearch(JAVA_LANG_CLASS_NAMES_ARRAY_11, simpleClassName);
+ }
/**
- * The current release is jdk 1.8.
+ * @see #isJavaLangClass11(String)
+ */
+ public static boolean isJavaLangClass11(char[] simpleClassName) {
+ return isJavaLangClass11(String.copyValueOf(simpleClassName));
+ }
+
+ // jdk 11
+ @SuppressWarnings("nls")
+ private static final String[] JAVA_LANG_CLASS_NAMES_ARRAY_11 = ArrayTools.sort(
+ ArrayTools.concatenate(
+ JAVA_LANG_CLASS_NAMES_ARRAY_8,
+ new String[] {
+ "ProcessHandle",
+ "ProcessHandle.Info",
+ "StackWalker.StackFrame",
+ "System.Logger",
+ "Module",
+ "ModuleLayer",
+ "ModuleLayer.Controller",
+ "Runtime.Version",
+ "StackWalker",
+ "System.LoggerFinder",
+ "StackWalker.Option",
+ "System.Logger.Level",
+ "IllegalCallerException",
+ "LayerInstantiationException"
+ }
+ )
+ );
+
+ /**
+ * JDK 11.
+ */
+ public static final Iterable<String> JAVA_LANG_CLASS_NAMES_11 = IterableTools.iterable(JAVA_LANG_CLASS_NAMES_ARRAY_11);
+
+ // the current release is jdk 11
+ private static final String[] JAVA_LANG_CLASS_NAMES_ARRAY = JAVA_LANG_CLASS_NAMES_ARRAY_11;
+
+ /**
+ * The current release is jdk 11.
*/
public static final Iterable<String> JAVA_LANG_CLASS_NAMES = IterableTools.iterable(JAVA_LANG_CLASS_NAMES_ARRAY);
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ClasspathTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ClasspathTests.java
index fbfd429..ccacec8 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ClasspathTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/ClasspathTests.java
@@ -41,32 +41,47 @@
path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().getPath();
assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
- path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().getPath();
+ path = new Classpath(
+ this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"))
+ .compressed().getPath();
assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
- path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar")).compressed().getPath();
+ path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar"))
+ .compressed().getPath();
assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
- path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().getPath();
+ path = new Classpath(this.morph(
+ "C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"))
+ .compressed().getPath();
assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
- path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\i18n.jar;C:\\jdk\\i18n.jar;C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().getPath();
+ path = new Classpath(this.morph(
+ "C:\\jdk\\i18n.jar;C:\\jdk\\i18n.jar;C:\\jdk\\i18n.jar;C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"))
+ .compressed().getPath();
assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
- path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;;;;C:\\jdk\\jaws.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;;;")).compressed().getPath();
+ path = new Classpath(this.morph(
+ "C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;;;;C:\\jdk\\jaws.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;;;"))
+ .compressed().getPath();
assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
// no changes
path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().getPath();
assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
- path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar")).compressed().getPath();
+ path = new Classpath(
+ this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"))
+ .compressed().getPath();
assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
- path = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\..\\jdk\\i18n.jar;C:\\jdk\\jaws.jar")).compressed().getPath();
+ path = new Classpath(
+ this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\..\\jdk\\i18n.jar;C:\\jdk\\jaws.jar"))
+ .compressed().getPath();
assertEquals(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
- path = new Classpath(this.morph("C:\\jdk1\\jdk2\\jdk3\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk1\\jdk2\\jdk3\\..\\..\\..\\jdk1\\jdk2\\jdk3\\i18n.jar;C:\\jdk\\jaws.jar")).compressed().getPath();
+ path = new Classpath(this.morph(
+ "C:\\jdk1\\jdk2\\jdk3\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk1\\jdk2\\jdk3\\..\\..\\..\\jdk1\\jdk2\\jdk3\\i18n.jar;C:\\jdk\\jaws.jar"))
+ .compressed().getPath();
assertEquals(this.morph("C:\\jdk1\\jdk2\\jdk3\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar"), path);
}
@@ -138,7 +153,9 @@
}
public void testConvertToURLs() {
- Iterator<URL> entries = new Classpath(this.morph("C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getURLs().iterator();
+ Iterator<URL> entries = new Classpath(
+ this.morph("C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar"))
+ .getURLs().iterator();
assertEquals(this.morphURL("/C:/jdk/rt.jar"), entries.next().getPath());
assertEquals(this.morphURL("/C:/jdk/i18n.jar"), entries.next().getPath());
assertEquals(this.morphURL("/C:/jdk/jaws.jar"), entries.next().getPath());
@@ -148,7 +165,8 @@
}
public void testGetEntries() {
- Classpath cp = new Classpath(this.morph("C:\\jdk\\rt.jar;;.;C:\\jdk\\i18n.jar;;;C:\\jdk\\jaws.jar;;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\bar\\bar.jar;"));
+ Classpath cp = new Classpath(this.morph(
+ "C:\\jdk\\rt.jar;;.;C:\\jdk\\i18n.jar;;;C:\\jdk\\jaws.jar;;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\bar\\bar.jar;"));
Iterator<Classpath.Entry> entries = cp.getEntries().iterator();
assertEquals(this.morph("C:\\jdk\\rt.jar"), entries.next().getFileName());
assertEquals(this.morph("."), entries.next().getFileName());
@@ -174,27 +192,39 @@
Classpath.Entry entry = null;
// in the middle - qualified
- entry = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getEntryForFileNamed("rt.jar");
+ entry = new Classpath(
+ this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\rt.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar"))
+ .getEntryForFileNamed("rt.jar");
assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName());
// in the middle - unqualified
- entry = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;rt.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getEntryForFileNamed("rt.jar");
+ entry = new Classpath(
+ this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;rt.jar;C:\\foo\\classes;C:\\bar\\bar.jar"))
+ .getEntryForFileNamed("rt.jar");
assertEquals("rt.jar", entry.getFileName());
// at the beginning - qualified
- entry = new Classpath(this.morph("C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getEntryForFileNamed("rt.jar");
+ entry = new Classpath(
+ this.morph("C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar"))
+ .getEntryForFileNamed("rt.jar");
assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName());
// at the beginning - unqualified
- entry = new Classpath(this.morph("rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getEntryForFileNamed("rt.jar");
+ entry = new Classpath(
+ this.morph("rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar"))
+ .getEntryForFileNamed("rt.jar");
assertEquals("rt.jar", entry.getFileName());
// at the end - qualified
- entry = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\jdk\\rt.jar")).getEntryForFileNamed("rt.jar");
+ entry = new Classpath(
+ this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\jdk\\rt.jar"))
+ .getEntryForFileNamed("rt.jar");
assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName());
// at the end - unqualified
- entry = new Classpath(this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;rt.jar")).getEntryForFileNamed("rt.jar");
+ entry = new Classpath(
+ this.morph("C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;rt.jar"))
+ .getEntryForFileNamed("rt.jar");
assertEquals("rt.jar", entry.getFileName());
// alone - qualified
@@ -206,26 +236,36 @@
assertEquals("rt.jar", entry.getFileName());
// trick entry at the beginning
- entry = new Classpath(this.morph("rt.jar.new;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getEntryForFileNamed("rt.jar");
+ entry = new Classpath(this.morph(
+ "rt.jar.new;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar"))
+ .getEntryForFileNamed("rt.jar");
assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName());
// trick entry in the middle
- entry = new Classpath(this.morph("rt.jar.new;C:\\jdk\\rtrtrt.jar;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar")).getEntryForFileNamed("rt.jar");
+ entry = new Classpath(this.morph(
+ "rt.jar.new;C:\\jdk\\rtrtrt.jar;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar"))
+ .getEntryForFileNamed("rt.jar");
assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName());
// trick entry at the end
- entry = new Classpath(this.morph("rt.jar.new;C:\\jdk\\rtrtrt.jar;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\jdk\\rtrtrt.jar")).getEntryForFileNamed("rt.jar");
+ entry = new Classpath(this.morph(
+ "rt.jar.new;C:\\jdk\\rtrtrt.jar;C:\\jdk\\rt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\jdk\\rtrtrt.jar"))
+ .getEntryForFileNamed("rt.jar");
assertEquals(this.morph("C:\\jdk\\rt.jar"), entry.getFileName());
// missing
- entry = new Classpath(this.morph("rt.jar.new;C:\\jdk\\rtrtrt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\jdk\\rtrtrt.jar")).getEntryForFileNamed("rt.jar");
+ entry = new Classpath(this.morph(
+ "rt.jar.new;C:\\jdk\\rtrtrt.jar;C:\\jdk\\i18n.jar;C:\\jdk\\jaws.jar;C:\\foo\\classes;C:\\bar\\bar.jar;C:\\jdk\\rtrtrt.jar"))
+ .getEntryForFileNamed("rt.jar");
assertEquals("path entry should not be found", null, entry);
}
public void testGetEntryForClassNamed() {
- assertNotNull(Classpath.completeClasspath().getEntryForClassNamed(java.lang.String.class.getName()));
- assertNull(Classpath.completeClasspath().getEntryForClassNamed("foo.bar.Baz"));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ assertNotNull(Classpath.completeClasspath().getEntryForClassNamed(java.lang.String.class.getName()));
+ assertNull(Classpath.completeClasspath().getEntryForClassNamed("foo.bar.Baz"));
+ }
}
public void testLocationForClass() {
@@ -240,61 +280,80 @@
}
public void testRtJarName() throws IOException {
- File rtFile = new File(Classpath.rtJarName());
- assertTrue("rt.jar does not exist", rtFile.exists());
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ File rtFile = new File(Classpath.rtJarName());
+ assertTrue("rt.jar does not exist", rtFile.exists());
- JarFile rtJarFile = new JarFile(rtFile);
- JarEntry entry = rtJarFile.getJarEntry("java/lang/Object.class");
- rtJarFile.close();
- assertTrue("bogus rt.jar", entry != null);
+ JarFile rtJarFile = new JarFile(rtFile);
+ JarEntry entry = rtJarFile.getJarEntry("java/lang/Object.class");
+ rtJarFile.close();
+ assertTrue("bogus rt.jar", entry != null);
+ }
}
public void testJREClassNames() {
- assertTrue("Vector is missing from JRE class names", IterableTools.contains(Classpath.bootClasspath().getClassNames(), java.util.Vector.class.getName()));
- assertTrue("File is missing from JRE class names", IterableTools.contains(Classpath.bootClasspath().getClassNames(), java.io.File.class.getName()));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ assertTrue("Vector is missing from JRE class names", IterableTools
+ .contains(Classpath.bootClasspath().getClassNames(), java.util.Vector.class.getName()));
+ assertTrue("File is missing from JRE class names",
+ IterableTools.contains(Classpath.bootClasspath().getClassNames(), java.io.File.class.getName()));
+ }
}
public void testJavaExtensionDirectoryNames() {
- char sep = File.separatorChar;
- String stdExtDirName = JAVA_HOME + sep + "lib" + sep + "ext";
- assertTrue("standard extension dir name missing: " + stdExtDirName, ArrayTools.contains(Classpath.javaExtensionDirectoryNames(), stdExtDirName));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ char sep = File.separatorChar;
+ String stdExtDirName = JAVA_HOME + sep + "lib" + sep + "ext";
+ assertTrue("standard extension dir name missing: " + stdExtDirName,
+ ArrayTools.contains(Classpath.javaExtensionDirectoryNames(), stdExtDirName));
+ }
}
public void testJavaExtensionDirectories() {
- char sep = File.separatorChar;
- File stdExtDir = new File(JAVA_HOME + sep + "lib" + sep + "ext");
- assertTrue("standard extension dir missing: " + stdExtDir.getParent(), ArrayTools.contains(Classpath.javaExtensionDirectories(), stdExtDir));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ char sep = File.separatorChar;
+ File stdExtDir = new File(JAVA_HOME + sep + "lib" + sep + "ext");
+ assertTrue("standard extension dir missing: " + stdExtDir.getParent(),
+ ArrayTools.contains(Classpath.javaExtensionDirectories(), stdExtDir));
+ }
}
public void testJavaExtensionClasspathEntries() {
- if (SystemTools.javaSpecificationVersionIsLessThan("1.4") || SystemTools.javaSpecificationVersionIsGreaterThan("1.8")) {
+ if (SystemTools.javaSpecificationVersionIsLessThan("1.4")
+ || SystemTools.javaSpecificationVersionIsGreaterThan("11")) {
fail("we need to update this test for the current JDK: " + SystemTools.javaSpecificationVersion());
}
- Collection<String> jarNames = new ArrayList<String>();
- Iterable<Classpath.Entry> entries = Classpath.javaExtensionClasspath().getEntries();
- for (Classpath.Entry entry : entries) {
- jarNames.add(entry.getFileName());
- }
- char sep = File.separatorChar;
- String stdExtJarName = JAVA_HOME + sep + "lib" + sep + "ext" + sep + "dnsns.jar";
- String msg = "JDK standard extension jar missing: " + stdExtJarName;
- boolean jarPresent = jarNames.contains(stdExtJarName);
- if (SystemTools.jvmIsSun() || (SystemTools.jvmIsIBM() && SystemTools.javaSpecificationVersionIsGreaterThan("1.5"))) {
- assertTrue(msg, jarPresent);
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ Collection<String> jarNames = new ArrayList<String>();
+ Iterable<Classpath.Entry> entries = Classpath.javaExtensionClasspath().getEntries();
+ for (Classpath.Entry entry : entries) {
+ jarNames.add(entry.getFileName());
+ }
+ char sep = File.separatorChar;
+ String stdExtJarName = JAVA_HOME + sep + "lib" + sep + "ext" + sep + "dnsns.jar";
+ String msg = "JDK standard extension jar missing: " + stdExtJarName;
+ boolean jarPresent = jarNames.contains(stdExtJarName);
+ if (SystemTools.jvmIsSun()
+ || (SystemTools.jvmIsIBM() && SystemTools.javaSpecificationVersionIsGreaterThan("1.5"))) {
+ assertTrue(msg, jarPresent);
+ }
}
}
public void testJavaExtensionClassNames() {
- if (SystemTools.javaSpecificationVersionIsLessThan("1.4") || SystemTools.javaSpecificationVersionIsGreaterThan("1.8")) {
+ if (SystemTools.javaSpecificationVersionIsLessThan("1.4")
+ || SystemTools.javaSpecificationVersionIsGreaterThan("11")) {
fail("we need to update this test for the current JDK: " + SystemTools.javaSpecificationVersion());
}
-
- String className = "sun.net.spi.nameservice.dns.DNSNameService";
- String msg = "JDK standard extension class missing: " + className;
- boolean classPresent = IteratorTools.contains(Classpath.javaExtensionClasspath().classNames(), className);
- if (SystemTools.jvmIsSun() || (SystemTools.jvmIsIBM() && SystemTools.javaSpecificationVersionIsGreaterThan("1.5"))) {
- assertTrue(msg, classPresent);
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ String className = "sun.net.spi.nameservice.dns.DNSNameService";
+ String msg = "JDK standard extension class missing: " + className;
+ boolean classPresent = IteratorTools.contains(Classpath.javaExtensionClasspath().classNames(), className);
+ if (SystemTools.jvmIsSun()
+ || (SystemTools.jvmIsIBM() && SystemTools.javaSpecificationVersionIsGreaterThan("1.5"))) {
+ assertTrue(msg, classPresent);
+ }
}
}
@@ -305,7 +364,8 @@
// when the tests are executed as an ANT task, they are run under
// an ANT class loader and the "Java" classpath does not include this class
if (cl.getClass().getName().startsWith("sun.misc")) {
- assertTrue("class missing: " + className, IterableTools.contains(Classpath.javaClasspath().getClassNames(), className));
+ assertTrue("class missing: " + className,
+ IterableTools.contains(Classpath.javaClasspath().getClassNames(), className));
}
}
@@ -316,62 +376,83 @@
// when the tests are executed as an ANT task, they are run under
// an ANT class loader and the "Java" classpath does not include this class
if (cl.getClass().getName().startsWith("sun.misc")) {
- assertTrue("class missing: " + className, IterableTools.contains(Classpath.completeClasspath().getClassNames(), className));
+ assertTrue("class missing: " + className,
+ IterableTools.contains(Classpath.completeClasspath().getClassNames(), className));
}
}
public void testClasspathForClass() {
- assertNotNull(Classpath.classpathFor(java.lang.String.class));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ assertNotNull(Classpath.classpathFor(java.lang.String.class));
+ }
}
public void testAddClassNamesTo() {
- Collection<String> classNames = new ArrayList<String>(1000);
- Classpath.bootClasspath().addClassNamesTo(classNames);
- assertTrue(classNames.contains(java.util.Vector.class.getName()));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ Collection<String> classNames = new ArrayList<String>(1000);
+ Classpath.bootClasspath().addClassNamesTo(classNames);
+ assertTrue(classNames.contains(java.util.Vector.class.getName()));
+ }
}
public void testToString() {
- assertNotNull(Classpath.bootClasspath().toString());
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ assertNotNull(Classpath.bootClasspath().toString());
+ }
}
public void testEntry_getCanonicalFile() {
- Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
- assertTrue(entry.getCanonicalFile().getPath().endsWith(".jar"));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
+ assertTrue(entry.getCanonicalFile().getPath().endsWith(".jar"));
+ }
}
public void testEntry_getCanonicalFileName() {
- Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
- String name = entry.getCanonicalFileName();
- if (SystemTools.jvmIsSun()) {
- assertTrue(name.endsWith("rt.jar"));
- } else if (SystemTools.jvmIsIBM()) {
- assertTrue(name.endsWith("vm.jar"));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
+ String name = entry.getCanonicalFileName();
+ if (SystemTools.jvmIsSun()) {
+ assertTrue(name.endsWith("rt.jar"));
+ } else if (SystemTools.jvmIsIBM()) {
+ assertTrue(name.endsWith("vm.jar"));
+ }
}
}
public void testEntry_equals() {
- Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
- assertFalse(entry.equals("foo"));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
+ assertFalse(entry.equals("foo"));
+ }
}
public void testEntry_containsClass() {
- Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
- assertTrue(entry.contains(java.lang.String.class));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
+ assertTrue(entry.contains(java.lang.String.class));
+ }
}
public void testEntry_containsString() {
- Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
- assertTrue(entry.contains(java.lang.String.class.getName()));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
+ assertTrue(entry.contains(java.lang.String.class.getName()));
+ }
}
public void testEntry_getClassNames() {
- Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
- assertTrue(IterableTools.contains(entry.getClassNames(), java.lang.String.class.getName()));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
+ assertTrue(IterableTools.contains(entry.getClassNames(), java.lang.String.class.getName()));
+ }
}
public void testEntry_classNames() {
- Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
- assertTrue(IteratorTools.contains(entry.classNames(), java.lang.String.class.getName()));
+ if (SystemTools.javaSpecificationVersionIsLessThan("11")) {
+ Classpath.Entry entry = Classpath.bootClasspath().getEntryForClassNamed(java.lang.String.class.getName());
+ assertTrue(IteratorTools.contains(entry.classNames(), java.lang.String.class.getName()));
+ }
}
/**
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SystemToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SystemToolsTests.java
index a0b17b7..6d09159 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SystemToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/SystemToolsTests.java
@@ -33,6 +33,8 @@
assertTrue(SystemTools.javaSpecificationVersionIsGreaterThan("1.6"));
} else if (version.equals("1.8")) {
assertTrue(SystemTools.javaSpecificationVersionIsGreaterThan("1.7"));
+ } else if (version.equals("11")) {
+ assertTrue(SystemTools.javaSpecificationVersionIsGreaterThan("10"));
} else {
fail("untested Java specification version: " + version);
}
@@ -50,6 +52,8 @@
assertTrue(SystemTools.javaSpecificationVersionIsLessThan("2.0"));
} else if (version.equals("1.8")) {
assertTrue(SystemTools.javaSpecificationVersionIsLessThan("2.0"));
+ } else if (version.equals("11")) {
+ assertTrue(SystemTools.javaSpecificationVersionIsLessThan("12"));
} else {
fail("untested Java specification version: " + version);
}
@@ -71,6 +75,9 @@
} else if (version.equals("1.8")) {
assertTrue(SystemTools.javaSpecificationVersionIsGreaterThanOrEqualTo("1.7"));
assertTrue(SystemTools.javaSpecificationVersionIsGreaterThanOrEqualTo("1.8"));
+ } else if (version.equals("11")) {
+ assertTrue(SystemTools.javaSpecificationVersionIsGreaterThanOrEqualTo("10"));
+ assertTrue(SystemTools.javaSpecificationVersionIsGreaterThanOrEqualTo("11"));
} else {
fail("untested Java specification version: " + version);
}
@@ -93,6 +100,9 @@
} else if (version.equals("1.8")) {
assertTrue(SystemTools.javaSpecificationVersionIsLessThanOrEqualTo("1.8"));
assertTrue(SystemTools.javaSpecificationVersionIsLessThanOrEqualTo("2.0"));
+ } else if (version.equals("11")) {
+ assertTrue(SystemTools.javaSpecificationVersionIsLessThanOrEqualTo("11"));
+ assertTrue(SystemTools.javaSpecificationVersionIsLessThanOrEqualTo("12"));
} else {
fail("untested Java specification version: " + version);
}
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TypeDeclarationToolsTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TypeDeclarationToolsTests.java
index 0fe3f7f..16018ae 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TypeDeclarationToolsTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/TypeDeclarationToolsTests.java
@@ -353,9 +353,29 @@
assertFalse(TypeDeclarationTools.isJavaLangClass8("".toCharArray()));
assertFalse(TypeDeclarationTools.isJavaLangClass8("Collection".toCharArray()));
}
+
+ public void testIsJavaLangClass11String() {
+ assertTrue(TypeDeclarationTools.isJavaLangClass11("Object"));
+ assertTrue(TypeDeclarationTools.isJavaLangClass11("String"));
+ assertTrue(TypeDeclarationTools.isJavaLangClass11("AutoCloseable"));
+ assertTrue(TypeDeclarationTools.isJavaLangClass11("FunctionalInterface"));
+ assertFalse(TypeDeclarationTools.isJavaLangClass11(""));
+ assertFalse(TypeDeclarationTools.isJavaLangClass11("Collection"));
+ assertTrue(TypeDeclarationTools.isJavaLangClass11("Module"));
+ }
+
+ public void testIsJavaLangClass11CharArray() {
+ assertTrue(TypeDeclarationTools.isJavaLangClass11("Object".toCharArray()));
+ assertTrue(TypeDeclarationTools.isJavaLangClass11("String".toCharArray()));
+ assertTrue(TypeDeclarationTools.isJavaLangClass11("AutoCloseable".toCharArray()));
+ assertTrue(TypeDeclarationTools.isJavaLangClass11("FunctionalInterface".toCharArray()));
+ assertFalse(TypeDeclarationTools.isJavaLangClass11("".toCharArray()));
+ assertFalse(TypeDeclarationTools.isJavaLangClass11("Collection".toCharArray()));
+ assertTrue(TypeDeclarationTools.isJavaLangClass11("Module".toCharArray()));
+ }
public void testJDKVersion() {
assertTrue("update TypeDeclarationTools.JAVA_LANG_CLASS_NAMES for new JDK...",
- SystemTools.javaSpecificationVersionIsLessThanOrEqualTo("1.8"));
+ SystemTools.javaSpecificationVersionIsLessThanOrEqualTo("11"));
}
}
diff --git a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/XMLToolsWriteTests.java b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/XMLToolsWriteTests.java
index 236791b..7f5d4f0 100644
--- a/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/XMLToolsWriteTests.java
+++ b/common/tests/org.eclipse.jpt.common.utility.tests/src/org/eclipse/jpt/common/utility/tests/internal/XMLToolsWriteTests.java
@@ -56,14 +56,18 @@
stream.close();
StringBuffer sb = new StringBuffer(2000);
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"");
- if ((SystemTools.jvmIsOracle() || SystemTools.jvmIsApple()) && SystemTools.javaSpecificationVersionIsGreaterThan("1.5")) {
+ if (((SystemTools.jvmIsOracle() || SystemTools.jvmIsApple())
+ && SystemTools.javaSpecificationVersionIsGreaterThan("1.5"))
+ || SystemTools.javaSpecificationVersionIsLessThanOrEqualTo("11")) {
sb.append(" standalone=\"no\"");
}
sb.append("?>");
if (SystemTools.osIsMac()) {
sb.append(' ');
}
- if (SystemTools.jvmIsOracle() || (SystemTools.jvmIsIBM() && SystemTools.javaSpecificationVersionIsLessThanOrEqualTo("1.5"))) {
+ if (((SystemTools.jvmIsOracle() || SystemTools.jvmIsApple())
+ && SystemTools.javaSpecificationVersionIsGreaterThan("1.5"))
+ || SystemTools.javaSpecificationVersionIsLessThanOrEqualTo("11")) {
sb.append(CR);
}
sb.append("<root-element>");
@@ -77,7 +81,9 @@
if (SystemTools.osIsMac()) {
sb.append(' ');
}
- if (SystemTools.jvmIsOracle() || (SystemTools.jvmIsIBM() && SystemTools.javaSpecificationVersionIsLessThanOrEqualTo("1.5"))) {
+ if (((SystemTools.jvmIsOracle() || SystemTools.jvmIsApple())
+ && SystemTools.javaSpecificationVersionIsGreaterThan("1.5"))
+ || SystemTools.javaSpecificationVersionIsLessThanOrEqualTo("11")) {
sb.append(CR);
}
String expected = sb.toString();
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.ui/META-INF/MANIFEST.MF b/jaxb/plugins/org.eclipse.jpt.jaxb.ui/META-INF/MANIFEST.MF
index 8fda47c..ffb01db 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.ui/META-INF/MANIFEST.MF
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.ui/META-INF/MANIFEST.MF
@@ -33,7 +33,7 @@
org.eclipse.wst.xsd.core;bundle-version="[1.1.600,2.0.0)",
org.eclipse.xsd;bundle-version="[2.6.0,3.0.0)",
org.eclipse.ui.navigator.resources;bundle-version="[3.4.0,4.0.0)"
-Import-Package: com.ibm.icu.text;version="4.0.1"
+Import-Package: com.ibm.icu.text
Export-Package: org.eclipse.jpt.jaxb.ui,
org.eclipse.jpt.jaxb.ui.internal;x-internal:=true,
org.eclipse.jpt.jaxb.ui.internal.actions;x-internal:=true,
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.jpa.core/META-INF/MANIFEST.MF
index ba4d158..83c4fab 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/META-INF/MANIFEST.MF
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/META-INF/MANIFEST.MF
@@ -35,7 +35,7 @@
org.eclipse.wst.validation;bundle-version="[1.2.0,2.0.0)",
org.eclipse.wst.xml.core;bundle-version="[1.1.300,2.0.0)",
org.eclipse.ltk.core.refactoring;bundle-version="[3.5.100,4.0.0)"
-Import-Package: com.ibm.icu.text;version="4.0.1"
+Import-Package: com.ibm.icu.text
Export-Package: org.eclipse.jpt.jpa.core,
org.eclipse.jpt.jpa.core.context,
org.eclipse.jpt.jpa.core.context.java,
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.db/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.jpa.db/META-INF/MANIFEST.MF
index 8c6375d..7320bfa 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.db/META-INF/MANIFEST.MF
+++ b/jpa/plugins/org.eclipse.jpt.jpa.db/META-INF/MANIFEST.MF
@@ -16,7 +16,7 @@
org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)",
org.eclipse.jpt.common.core;bundle-version="[1.2.0,2.0.0)",
org.eclipse.jpt.common.utility;bundle-version="[2.0.0,3.0.0)"
-Import-Package: com.ibm.icu.text;version="4.0.1"
+Import-Package: com.ibm.icu.text
Export-Package: org.eclipse.jpt.jpa.db,
org.eclipse.jpt.jpa.db.internal;x-internal:=true,
org.eclipse.jpt.jpa.db.internal.driver;x-internal:=true
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/META-INF/MANIFEST.MF
index 22864a2..87ca93d 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/META-INF/MANIFEST.MF
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/META-INF/MANIFEST.MF
@@ -37,7 +37,7 @@
org.eclipse.wst.common.frameworks.ui;bundle-version="[1.1.200,2.0.0)",
org.eclipse.wst.common.project.facet.core;bundle-version="[1.4.100,2.0.0)",
org.eclipse.wst.validation;bundle-version="[1.2.0,2.0.0)"
-Import-Package: com.ibm.icu.text;version="4.0.1"
+Import-Package: com.ibm.icu.text
Export-Package: org.eclipse.jpt.jpa.eclipselink.ui,
org.eclipse.jpt.jpa.eclipselink.ui.details,
org.eclipse.jpt.jpa.eclipselink.ui.internal;x-internal:=true,
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.gen/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.jpa.gen/META-INF/MANIFEST.MF
index 7a6b4aa..44f8877 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.gen/META-INF/MANIFEST.MF
+++ b/jpa/plugins/org.eclipse.jpt.jpa.gen/META-INF/MANIFEST.MF
@@ -24,7 +24,7 @@
org.eclipse.wst.common.emf;bundle-version="[1.2.0,2.0.0)",
org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)",
org.eclipse.core.filebuffers;bundle-version="[3.4.0,4.0.0)"
-Import-Package: com.ibm.icu.text;version="4.0.1"
+Import-Package: com.ibm.icu.text
Export-Package: org.eclipse.jpt.jpa.gen,
org.eclipse.jpt.jpa.gen.internal;x-internal:=true,
org.eclipse.jpt.jpa.gen.internal.util;x-internal:=true
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.jpa.ui/META-INF/MANIFEST.MF
index 5f7bf9e..bd693c3 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.ui/META-INF/MANIFEST.MF
+++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/META-INF/MANIFEST.MF
@@ -48,7 +48,7 @@
org.eclipse.wst.web.ui;bundle-version="[1.1.200,2.0.0)",
org.eclipse.wst.xml.core;bundle-version="[1.1.700,2.0.0)",
org.eclipse.wst.xml.ui;bundle-version="[1.1.300,2.0.0)"
-Import-Package: com.ibm.icu.text;version="4.0.1"
+Import-Package: com.ibm.icu.text
Export-Package: org.eclipse.jpt.jpa.ui,
org.eclipse.jpt.jpa.ui.details,
org.eclipse.jpt.jpa.ui.details.orm,
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/META-INF/MANIFEST.MF b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/META-INF/MANIFEST.MF
index 3322d0b..c6079d4 100644
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/META-INF/MANIFEST.MF
+++ b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/META-INF/MANIFEST.MF
@@ -30,7 +30,8 @@
org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
org.eclipse.core.filesystem;bundle-version="1.3.100",
org.eclipse.jpt.common.ui;bundle-version="1.3.0",
- org.eclipse.jdt.core.manipulation;bundle-version="1.5.0"
+ org.eclipse.jdt.core.manipulation;bundle-version="1.5.0",
+ org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)"
Export-Package: org.eclipse.jpt.jpadiagrameditor.ui.internal;x-internal:=true,
org.eclipse.jpt.jpadiagrameditor.ui.internal.dialog;x-internal:=true,
org.eclipse.jpt.jpadiagrameditor.ui.internal.facade;x-internal:=true,
diff --git a/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.swtbot.tests/META-INF/MANIFEST.MF b/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.swtbot.tests/META-INF/MANIFEST.MF
index eb3bc99..21bab74 100644
--- a/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.swtbot.tests/META-INF/MANIFEST.MF
+++ b/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.swtbot.tests/META-INF/MANIFEST.MF
@@ -35,4 +35,5 @@
org.eclipse.swtbot.junit4_x;bundle-version="2.1.0",
org.eclipse.swtbot.forms.finder;bundle-version="2.1.0",
org.hamcrest.core;bundle-version="1.3.0",
- org.junit;bundle-version="4.11.0"
+ org.junit;bundle-version="4.11.0",
+ org.slf4j.api;bundle-version="1.7.30"
diff --git a/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/META-INF/MANIFEST.MF b/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/META-INF/MANIFEST.MF
index faf7a34..6b79ff8 100644
--- a/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/META-INF/MANIFEST.MF
+++ b/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/META-INF/MANIFEST.MF
@@ -27,7 +27,8 @@
org.eclipse.wst.common.modulecore;bundle-version="[1.2.1,2.0.0)",
org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,2.0.0)",
org.eclipse.core.filesystem;bundle-version="[1.3.1,2.0.0)",
- org.junit;bundle-version="[4.0.0,5.0.0)"
+ org.junit;bundle-version="[4.0.0,5.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)"
Export-Package: org.eclipse.jpt.jpadiagrameditor.ui.tests.internal;x-internal:=true,
org.eclipse.jpt.jpadiagrameditor.ui.tests.internal.editor;x-internal:=true,
org.eclipse.jpt.jpadiagrameditor.ui.tests.internal.feature;x-internal:=true,
diff --git a/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/src/org/eclipse/jpt/jpadiagrameditor/ui/tests/internal/JPACreateFactory.java b/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/src/org/eclipse/jpt/jpadiagrameditor/ui/tests/internal/JPACreateFactory.java
index 3126ca3..84737c1 100644
--- a/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/src/org/eclipse/jpt/jpadiagrameditor/ui/tests/internal/JPACreateFactory.java
+++ b/jpa_diagram_editor/tests/org.eclipse.jpt.jpadiagrameditor.ui.tests/src/org/eclipse/jpt/jpadiagrameditor/ui/tests/internal/JPACreateFactory.java
@@ -64,27 +64,27 @@
@SuppressWarnings({"restriction", "nls"})
public class JPACreateFactory {
-
+
public static final String JPA_JAR_NAME_SYSTEM_PROPERTY = "org.eclipse.jpt.jpa.jar";
- public static final String ECLIPSELINK_JAR_NAME_SYSTEM_PROPERTY = "org.eclipse.jpt.eclipselink.jar";
-
+ public static final String ECLIPSELINK_JAR_NAME_SYSTEM_PROPERTY = "org.eclipse.jpt.eclipselink.jar";
+
private static JPACreateFactory factory = null;
- private IFacetedProject facetedProject;
- private IProject project;
+ private IFacetedProject facetedProject;
+ private IProject project;
private IJavaProject javaProject;
//private IPackageFragmentRoot sourceFolder;
JpaProject jpaProject;
-
+
public static synchronized JPACreateFactory instance() {
if (factory == null)
factory = new JPACreateFactory();
return factory;
}
-
+
private IProject buildPlatformProject(String projectName) throws CoreException {
IWorkspaceDescription description = ResourcesPlugin.getWorkspace().getDescription();
description.setAutoBuilding(true);
- ResourcesPlugin.getWorkspace().setDescription(description);
+ ResourcesPlugin.getWorkspace().setDescription(description);
IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);
p.create(null);
p.open(null);
@@ -92,14 +92,14 @@
}
protected IDataModel buildJpaConfigDataModel() {
- IDataModel dataModel = DataModelFactory.createDataModel(new JpaFacetInstallDataModelProvider());
+ IDataModel dataModel = DataModelFactory.createDataModel(new JpaFacetInstallDataModelProvider());
dataModel.setProperty(IFacetDataModelProperties.FACET_VERSION_STR, "2.0");
dataModel.setProperty(JpaFacetDataModelProperties.PLATFORM, null /*GenericPlatform.VERSION_1_0.getId()*/);
dataModel.setProperty(JpaFacetDataModelProperties.LIBRARY_PROVIDER_DELEGATE, null);
// dataModel.setProperty(JpaFacetInstallDataModelProperties.CREATE_ORM_XML, Boolean.TRUE);
return dataModel;
}
-
+
public JpaProject createJPAProject(String projectName) throws CoreException {
return createJPAProject(projectName, null, "1.0");
}
@@ -107,8 +107,8 @@
public JpaProject createJPA20Project(String projectName) throws CoreException {
return createJPAProject(projectName, null, "2.0");
}
-
-
+
+
public JpaProject createJPAProject(String projectName, IDataModel jpaConfig, String jpaFacetVersion) throws CoreException {
project = buildPlatformProject(projectName);
javaProject = createJavaProject(project, true);
@@ -137,23 +137,23 @@
// jpaProject.setUpdater(new SynchronousJpaProjectUpdater(jpaProject));
return jpaProject;
}
-
+
private JpaProject getJpaProject(IProject p) {
- return (JpaProject) p.getAdapter(JpaProject.class);
+ return p.getAdapter(JpaProject.class);
}
public static String eclipseLinkJarName() {
return getSystemProperty(ECLIPSELINK_JAR_NAME_SYSTEM_PROPERTY);
}
-
+
public void installFacet(IFacetedProject facetedProject,
- String facetName,
+ String facetName,
String versionName) throws CoreException {
installFacet(facetedProject, facetName, versionName, null);
}
public void uninstallFacet(IFacetedProject facetedProject,
- String facetName,
+ String facetName,
String versionName) throws CoreException {
uninstallFacet(facetedProject, facetName, versionName, null);
}
@@ -163,15 +163,15 @@
* defined in JpaFacetInstallDataModelProvider#getDefaultProperty(String)
*/
public void installFacet(IFacetedProject facetedProject,
- String facetName,
- String versionName,
+ String facetName,
+ String versionName,
IDataModel config) throws CoreException {
facetedProject.installProjectFacet(this.facetVersion(facetName, versionName), config, null);
}
public void uninstallFacet(IFacetedProject facetedProject,
- String facetName,
- String versionName,
+ String facetName,
+ String versionName,
IDataModel config) throws CoreException {
facetedProject.uninstallProjectFacet(this.facetVersion(facetName, versionName), config, null);
}
@@ -179,7 +179,7 @@
private IProjectFacetVersion facetVersion(String facetName, String versionName) {
return ProjectFacetsManager.getProjectFacet(facetName).getVersion(versionName);
}
-
+
protected static String getSystemProperty(String propertyName) {
return System.getProperty(propertyName);
}
@@ -191,12 +191,12 @@
private void addClasspathEntry(IJavaProject javaProject, IClasspathEntry entry) throws JavaModelException {
javaProject.setRawClasspath(ArrayTools.add(javaProject.getRawClasspath(), entry), null);
}
-
+
private IFacetedProject createFacetedProject(IProject project) throws CoreException {
return ProjectFacetsManager.create(project, true, null); // true = "convert if necessary"
}
-
- public IJavaProject createJavaProject(IProject project,
+
+ public IJavaProject createJavaProject(IProject project,
boolean autoBuild) throws CoreException {
facetedProject = createFacetedProject(project);
installFacet(facetedProject, "jst.java", "5.0");
@@ -204,11 +204,11 @@
//sourceFolder = javaProject.getPackageFragmentRoot(project.getFolder("src"));
return javaProject;
}
-
+
public static String jpaJarName() {
return getSystemProperty(JPA_JAR_NAME_SYSTEM_PROPERTY);
}
-
+
public IFile createEntity(JpaProject jpaProject, String fullyQualifiedName) throws Exception {
StringTokenizer tokenizer = new StringTokenizer(fullyQualifiedName, ".");
ArrayList<String> nameElements = new ArrayList<String>();
@@ -229,83 +229,83 @@
JpaContextRoot jpaProjectContent = jpaProject.getContextRoot();
PersistenceXml persXML = jpaProjectContent.getPersistenceXml();
int cnt = 0;
- while ((persXML == null) && (cnt < 100)) {
+ while ((persXML == null) && (cnt < 100)) {
Thread.sleep(250);
persXML = jpaProjectContent.getPersistenceXml();
cnt++;
}
if (persXML == null)
throw new NullPointerException("The persistence XML is not created");
-
+
IFile entity1 = createEntityInProject(jpaProject.getProject(), packageStrings, name);
JavaResourceAbstractType jrpt = jpaProject.getJavaResourceType(fullyQualifiedName);
cnt = 0;
while((jrpt == null) && (cnt < 100)) {
try {
Thread.sleep(250);
- } catch (Exception e) {}
+ } catch (Exception e) {}
jrpt = jpaProject.getJavaResourceType(fullyQualifiedName);
cnt++;
}
if (jrpt == null)
- throw new NullPointerException("The entity '" + fullyQualifiedName + "' could not be created");
+ throw new NullPointerException("The entity '" + fullyQualifiedName + "' could not be created");
return entity1;
}
-
- public IFile createEntityInProject(IProject project,
- String[] packageFragments,
- String entityName) throws IOException,
- CoreException,
+
+ public IFile createEntityInProject(IProject project,
+ String[] packageFragments,
+ String entityName) throws IOException,
+ CoreException,
JavaModelException {
String folderName = getFolderName(project, packageFragments);
- String packageName = packageFragments[0];
+ String packageName = packageFragments[0];
for (int i = 1; i < packageFragments.length; i++) {
packageName += "." + packageFragments[i];
}
-
+
IPath path = new Path(folderName);
- IFolder folder = project.getFolder(path);
+ IFolder folder = project.getFolder(path);
return createEntity(folder, packageName , entityName);
}
@SuppressWarnings("deprecation")
private String getFolderName(IProject project, String[] packageFragments)
throws JavaModelException {
- IJavaProject javaProject = JavaCore.create(project);
+ IJavaProject javaProject = JavaCore.create(project);
IPackageFragmentRoot[] packageFragmentRoots = new IPackageFragmentRoot[0];
- final IClasspathEntry[] classpathEntries = javaProject.getRawClasspath();
+ final IClasspathEntry[] classpathEntries = javaProject.getRawClasspath();
for (IClasspathEntry classpathEntry : classpathEntries) {
if (classpathEntry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
packageFragmentRoots = javaProject.getPackageFragmentRoots(classpathEntry);
break;
- }
+ }
}
-
- String folderName = packageFragmentRoots[0].getResource().getName();
+
+ String folderName = packageFragmentRoots[0].getCorrespondingResource().getProjectRelativePath().toString();
for (String fragment : packageFragments) {
folderName += Path.SEPARATOR + fragment;
}
return folderName;
}
-
+
private IFile createEntity(IFolder folder, String packageName, String entityName) throws IOException, CoreException {
String entityShortName = entityName.substring(entityName.lastIndexOf('.') + 1);
if (!folder.exists()) {
createDirectories(folder, true, true, new NullProgressMonitor());
}
- IFile file = folder.getFile(entityShortName + ".java");
+ IFile file = folder.getFile(entityShortName + ".java");
if (!file.exists()) {
- String content = "package " + packageName + ";\n\n"
- + "import javax.persistence.*;\n\n"
+ String content = "package " + packageName + ";\n\n"
+ + "import javax.persistence.*;\n\n"
+ "@Entity \n"
+ "public class " + entityShortName + " {\n"
+ " private int id;\n"
+ " @Id \n"
- + " public int getId() {\n"
+ + " public int getId() {\n"
+ " return id;\n"
+ " }\n"
+ " public void setId(int id) {\n"
- + " this.id = id;\n"
+ + " this.id = id;\n"
+ " }\n"
+ "}"; //$NON-NLS-1$
ByteArrayOutputStream stream = new ByteArrayOutputStream();
@@ -315,11 +315,11 @@
file.create(new ByteArrayInputStream(stream.toByteArray()), true, new NullProgressMonitor());
} finally {
stream.close();
- }
+ }
}
return file;
- }
-
+ }
+
public IFile createEntityWithCompositePKInProject(IProject project,
String[] packageFragments, String entityName) throws IOException,
CoreException, JavaModelException {
@@ -379,18 +379,18 @@
IFolder folder = project.getFolder(path);
return createEntityWithEmbeddedPK(folder, packageName, entityName);
}
-
-
-
+
+
+
private IFile createEntityWithCompositePK(IFolder folder, String packageName, String entityName) throws IOException, CoreException{
String entityShortName = entityName.substring(entityName.lastIndexOf('.') + 1);
if (!folder.exists()) {
createDirectories(folder, true, true, new NullProgressMonitor());
}
- IFile file = folder.getFile(entityShortName + ".java");
+ IFile file = folder.getFile(entityShortName + ".java");
if (!file.exists()) {
- String content = "package " + packageName + ";\n\n"
- + "import javax.persistence.*;\n\n"
+ String content = "package " + packageName + ";\n\n"
+ + "import javax.persistence.*;\n\n"
+ "@Entity \n"
+ "@IdClass("+entityShortName+"Id.class)"
+ "public class " + entityShortName + " {\n"
@@ -411,35 +411,35 @@
file.create(new ByteArrayInputStream(stream.toByteArray()), true, new NullProgressMonitor());
} finally {
stream.close();
- }
+ }
}
return file;
}
-
+
private IFile createIdClass(IFolder folder, String packageName, String entityName) throws IOException, CoreException{
String entityShortName = entityName.substring(entityName.lastIndexOf('.') + 1);
if (!folder.exists()) {
createDirectories(folder, true, true, new NullProgressMonitor());
}
- IFile file = folder.getFile(entityShortName + "Id.java");
+ IFile file = folder.getFile(entityShortName + "Id.java");
if (!file.exists()) {
- String content = "package " + packageName + ";\n\n"
- + "import javax.persistence.*;\n\n"
+ String content = "package " + packageName + ";\n\n"
+ + "import javax.persistence.*;\n\n"
+"import java.io.Serializable;"
+ "public class " + entityShortName + "Id {\n"
+ " private String firstName;\n"
+ " private String lastName;\n"
- + " public String getFirstName() {\n"
+ + " public String getFirstName() {\n"
+ " return firstName;\n"
+ " }\n"
+ " public void setFirstName(String firstName) {\n"
- + " this.firstName = firstName;\n"
+ + " this.firstName = firstName;\n"
+ " }\n"
- + " public String getLastName() {\n"
+ + " public String getLastName() {\n"
+ " return lastName;\n"
+ " }\n"
+ " public void setLastName(String lastName) {\n"
- + " this.lastName = lastName;\n"
+ + " this.lastName = lastName;\n"
+ " }\n"
+ "}"; //$NON-NLS-1$
ByteArrayOutputStream stream = new ByteArrayOutputStream();
@@ -449,30 +449,30 @@
file.create(new ByteArrayInputStream(stream.toByteArray()), true, new NullProgressMonitor());
} finally {
stream.close();
- }
+ }
}
return file;
}
-
+
private IFile createEntityWithEmbeddedPK(IFolder folder, String packageName, String entityName) throws IOException, CoreException{
String entityShortName = entityName.substring(entityName.lastIndexOf('.') + 1);
if (!folder.exists()) {
createDirectories(folder, true, true, new NullProgressMonitor());
}
- IFile file = folder.getFile(entityShortName + ".java");
+ IFile file = folder.getFile(entityShortName + ".java");
if (!file.exists()) {
- String content = "package " + packageName + ";\n\n"
- + "import javax.persistence.*;\n\n"
+ String content = "package " + packageName + ";\n\n"
+ + "import javax.persistence.*;\n\n"
+ "@Entity\n"
+ "public class " + entityShortName + " {\n"
+ "@EmbeddedId\n"
- + " private "+ entityShortName +"Id id;\n"
+ + " private "+ entityShortName +"Id id;\n"
+ "public void setId(" + entityShortName+ "Id param) {\n"
+ " this.id = param;\n"
+ "}\n"
+ "public "+entityShortName+"Id getId() {\n"
+ "return id;\n"
- + "}\n"
+ + "}\n"
+ "}"; //$NON-NLS-1$
ByteArrayOutputStream stream = new ByteArrayOutputStream();
try {
@@ -481,20 +481,20 @@
file.create(new ByteArrayInputStream(stream.toByteArray()), true, new NullProgressMonitor());
} finally {
stream.close();
- }
+ }
}
return file;
}
-
+
private IFile createEmbeddedClass(IFolder folder, String packageName, String entityName) throws IOException, CoreException{
String entityShortName = entityName.substring(entityName.lastIndexOf('.') + 1);
if (!folder.exists()) {
createDirectories(folder, true, true, new NullProgressMonitor());
}
- IFile file = folder.getFile(entityShortName + ".java");
+ IFile file = folder.getFile(entityShortName + ".java");
if (!file.exists()) {
String content = "package " + packageName + ";\n\n"
- + "import javax.persistence.*;\n"
+ + "import javax.persistence.*;\n"
+ "@Embeddable\n"
+ "public class " + entityShortName + " {\n"
+"private String firstName;\n"
@@ -512,12 +512,12 @@
file.create(new ByteArrayInputStream(stream.toByteArray()), true, new NullProgressMonitor());
} finally {
stream.close();
- }
+ }
}
return file;
}
-
-
+
+
private void createDirectories(IContainer container, boolean force,
boolean local, IProgressMonitor monitor) throws CoreException {
if (container != null && container instanceof IFolder) {
@@ -531,7 +531,7 @@
}
}
}
-
+
public static PersistentAttribute getPersistentAttribute(IFile entity, String attributeName){
Set<PersistentAttribute> result = getEntityFields(entity);
for(PersistentAttribute attribute : result){
@@ -541,7 +541,7 @@
}
return null;
}
-
+
public static PersistentType getPersistentType(IFile file){
JpaFile jpaFile = getJpaFile(file);
for (JpaStructureNode node : getRootNodes(jpaFile)) {
@@ -557,7 +557,7 @@
}
return jpaFile.getRootStructureNodes();
}
-
+
public static Set<PersistentAttribute> getEntityFields(IFile file){
Set<PersistentAttribute> result = new HashSet<PersistentAttribute>();
JpaFile jpaFile = getJpaFile(file);
@@ -574,11 +574,11 @@
}
private static JpaFile getJpaFile(IFile file) {
- return (JpaFile) file.getAdapter(JpaFile.class);
+ return file.getAdapter(JpaFile.class);
}
-
+
public void addAttributes(IFile entity, String attName, String attType, String annotation, String attActName, boolean isCollection){
- PersistentType javaPersistentType = (PersistentType)getPersistentType(entity);
+ PersistentType javaPersistentType = getPersistentType(entity);
int cnt = 0;
while ((javaPersistentType == null) && (cnt < 100)) {
try {
@@ -591,25 +591,25 @@
throw new RuntimeException("The entity could not be created");
JpaArtifactFactory.instance().makeNewAttribute(javaPersistentType, attName, attType, attActName, attType, null, null, isCollection);
}
-
+
private IFile createFieldAnnotatedEntity(IFolder folder, String packageName, String entityName) throws IOException, CoreException {
String entityShortName = entityName.substring(entityName.lastIndexOf('.') + 1);
if (!folder.exists()) {
createDirectories(folder, true, true, new NullProgressMonitor());
}
- IFile file = folder.getFile(entityShortName + ".java");
+ IFile file = folder.getFile(entityShortName + ".java");
if (!file.exists()) {
- String content = "package " + packageName + ";\n\n"
- + "import javax.persistence.*;\n\n"
+ String content = "package " + packageName + ";\n\n"
+ + "import javax.persistence.*;\n\n"
+ "@Entity \n"
+ "public class " + entityShortName + " {\n"
- + " @Id \n"
+ + " @Id \n"
+ " private int id;\n"
- + " public int getId() {\n"
+ + " public int getId() {\n"
+ " return id;\n"
+ " }\n"
+ " public void setId(int id) {\n"
- + " this.id = id;\n"
+ + " this.id = id;\n"
+ " }\n"
+ "}"; //$NON-NLS-1$
ByteArrayOutputStream stream = new ByteArrayOutputStream();
@@ -619,22 +619,22 @@
file.create(new ByteArrayInputStream(stream.toByteArray()), true, new NullProgressMonitor());
} finally {
stream.close();
- }
+ }
}
return file;
- }
+ }
public IFile createFieldAnnotatedEntityInProject(IProject project, String[] packageFragments, String entityName) throws IOException, CoreException, JavaModelException {
String folderName = getFolderName(project, packageFragments);
- String packageName = packageFragments[0];
+ String packageName = packageFragments[0];
for (int i = 1; i < packageFragments.length; i++) {
packageName += "." + packageFragments[i];
}
-
+
IPath path = new Path(folderName);
- IFolder folder = project.getFolder(path);
+ IFolder folder = project.getFolder(path);
return createFieldAnnotatedEntity(folder, packageName , entityName);
}
-
-
+
+
}