diff --git a/org.eclipse.jdt.text.tests/META-INF/MANIFEST.MF b/org.eclipse.jdt.text.tests/META-INF/MANIFEST.MF
index e0eb890ce7c..5fa7dbb4710 100644
--- a/org.eclipse.jdt.text.tests/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.text.tests/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Automatic-Module-Name: org.eclipse.jdt.text.tests
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: org.eclipse.jdt.text.tests;singleton:=true
-Bundle-Version: 3.14.550.qualifier
+Bundle-Version: 3.14.600.qualifier
Bundle-Activator: org.eclipse.jdt.text.tests.JdtTextTestPlugin
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %Plugin.providerName
@@ -36,7 +36,21 @@ Require-Bundle:
org.eclipse.jdt.ui.tests,
org.eclipse.test.performance,
org.eclipse.jdt.core.manipulation,
- org.eclipse.core.expressions
+ org.eclipse.core.expressions,
+ org.eclipse.core.tests.harness,
+ junit-jupiter-api
Bundle-RequiredExecutionEnvironment: JavaSE-17
Eclipse-BundleShape: dir
-Import-Package: org.junit.jupiter.api
+Import-Package: org.junit.jupiter.api,
+ org.junit.jupiter.api.extension,
+ org.junit.jupiter.migrationsupport,
+ org.junit.jupiter.migrationsupport.conditions,
+ org.junit.jupiter.migrationsupport.rules,
+ org.junit.jupiter.params,
+ org.junit.jupiter.params.aggregator,
+ org.junit.jupiter.params.converter,
+ org.junit.jupiter.params.provider,
+ org.junit.jupiter.params.support,
+ org.junit.platform.suite.api,
+ org.junit.platform.suite.commons;status=INTERNAL,
+ org.junit.platform.suite.engine;status=INTERNAL
diff --git a/org.eclipse.jdt.text.tests/pom.xml b/org.eclipse.jdt.text.tests/pom.xml
index d67ef8a73e7..b0fb8632da0 100644
--- a/org.eclipse.jdt.text.tests/pom.xml
+++ b/org.eclipse.jdt.text.tests/pom.xml
@@ -20,7 +20,7 @@
org.eclipse.jdt
org.eclipse.jdt.text.tests
- 3.14.550-SNAPSHOT
+ 3.14.600-SNAPSHOT
eclipse-test-plugin
diff --git a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/JdtTextTestSuite.java b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/JdtTextTestSuite.java
index 78ae735ecc5..8f02b18f676 100644
--- a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/JdtTextTestSuite.java
+++ b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/JdtTextTestSuite.java
@@ -14,8 +14,8 @@
*******************************************************************************/
package org.eclipse.jdt.text.tests;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
import org.eclipse.jdt.text.tests.codemining.CodeMiningTriggerTest;
import org.eclipse.jdt.text.tests.codemining.ParameterNamesCodeMiningTest;
@@ -29,8 +29,8 @@
*
* @since 3.0
*/
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
PluginsNotLoadedTest.class,
CompilationUnitDocumentProviderTest.class,
JavaHeuristicScannerTest.class,
diff --git a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/contentassist/ContentAssistTestSuite.java b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/contentassist/ContentAssistTestSuite.java
index bb539ae074d..a449d513ec0 100644
--- a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/contentassist/ContentAssistTestSuite.java
+++ b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/contentassist/ContentAssistTestSuite.java
@@ -14,16 +14,16 @@
*******************************************************************************/
package org.eclipse.jdt.text.tests.contentassist;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
/**
* Content assist test suite.
*
* @since 3.2
*/
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
//$JUnit-BEGIN$
CamelCaseCompletionTest.class,
JavadocCompletionTest.class,
diff --git a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/performance/DocumentPerformanceTestSuite.java b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/performance/DocumentPerformanceTestSuite.java
index f3e50a8bf74..c51b41328cc 100644
--- a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/performance/DocumentPerformanceTestSuite.java
+++ b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/performance/DocumentPerformanceTestSuite.java
@@ -13,15 +13,14 @@
*******************************************************************************/
package org.eclipse.jdt.text.tests.performance;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
/**
* @since 3.3
*/
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
DocumentPerformanceTest.class,
GapTextStorePerformanceTest.class,
LineTrackerPerformanceTest.class
diff --git a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/performance/WordRulePerformanceTestSuite.java b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/performance/WordRulePerformanceTestSuite.java
index bfe5827d385..2275dee8aca 100644
--- a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/performance/WordRulePerformanceTestSuite.java
+++ b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/performance/WordRulePerformanceTestSuite.java
@@ -13,14 +13,14 @@
*******************************************************************************/
package org.eclipse.jdt.text.tests.performance;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
/**
* @since 3.6
*/
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
WordRulePerformanceTest.class
})
public class WordRulePerformanceTestSuite {
diff --git a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/templates/TemplatesTestSuite.java b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/templates/TemplatesTestSuite.java
index 24f39c07c55..303867d3c85 100644
--- a/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/templates/TemplatesTestSuite.java
+++ b/org.eclipse.jdt.text.tests/src/org/eclipse/jdt/text/tests/templates/TemplatesTestSuite.java
@@ -12,16 +12,16 @@
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.text.tests.templates;
-import org.junit.runner.RunWith;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
/**
* Template test suite.
*
* @since 3.4
*/
-import org.junit.runners.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
//$JUnit-BEGIN$
TemplateContributionTest.class,
TemplateCompletionTests.class
diff --git a/org.eclipse.jdt.ui.tests.refactoring/META-INF/MANIFEST.MF b/org.eclipse.jdt.ui.tests.refactoring/META-INF/MANIFEST.MF
index d2c99b05012..a24eba260ed 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.ui.tests.refactoring/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Automatic-Module-Name: org.eclipse.jdt.ui.tests.refactoring
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: org.eclipse.jdt.ui.tests.refactoring; singleton:=true
-Bundle-Version: 3.15.600.qualifier
+Bundle-Version: 3.15.700.qualifier
Bundle-Activator: org.eclipse.jdt.ui.tests.refactoring.infra.RefactoringTestPlugin
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %Plugin.providerName
@@ -40,7 +40,20 @@ Require-Bundle:
org.eclipse.ui.ide,
org.eclipse.ui.workbench.texteditor,
org.junit,
- org.eclipse.core.tests.harness
+ org.eclipse.core.tests.harness,
+ junit-jupiter-api
Bundle-RequiredExecutionEnvironment: JavaSE-17
Eclipse-BundleShape: dir
-Import-Package: org.junit.jupiter.api
+Import-Package: org.junit.jupiter.api,
+ org.junit.jupiter.api.extension,
+ org.junit.jupiter.migrationsupport,
+ org.junit.jupiter.migrationsupport.conditions,
+ org.junit.jupiter.migrationsupport.rules,
+ org.junit.jupiter.params,
+ org.junit.jupiter.params.aggregator,
+ org.junit.jupiter.params.converter,
+ org.junit.jupiter.params.provider,
+ org.junit.jupiter.params.support,
+ org.junit.platform.suite.api,
+ org.junit.platform.suite.commons;status=INTERNAL,
+ org.junit.platform.suite.engine;status=INTERNAL
diff --git a/org.eclipse.jdt.ui.tests.refactoring/pom.xml b/org.eclipse.jdt.ui.tests.refactoring/pom.xml
index 2d16c316ab4..f64248519cd 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/pom.xml
+++ b/org.eclipse.jdt.ui.tests.refactoring/pom.xml
@@ -19,7 +19,7 @@
org.eclipse.jdt
org.eclipse.jdt.ui.tests.refactoring
- 3.15.600-SNAPSHOT
+ 3.15.700-SNAPSHOT
eclipse-test-plugin
${project.artifactId}
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/AllChangeTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/AllChangeTests.java
index a256de656b6..2f78662c7f4 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/AllChangeTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/AllChangeTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
RenameResourceChangeTests.class,
MoveRenameResourceChangeTests.class,
RenameSourceFolderChangeTests.class,
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/AllRefactoringTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/AllRefactoringTests.java
index 6209e2e2a7a..f7b5622ada1 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/AllRefactoringTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/AllRefactoringTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
RenameTests18.class,
InlineTempTests1d8.class,
InlineConstantTests1d8.class,
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/AllTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/AllTests.java
index 91667c4daee..708c4a6c071 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/AllTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/AllTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
AllRefactoringTests.class,
AllChangeTests.class,
UndoManagerTests.class,
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameFieldTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameFieldTests.java
index 6b99dc4cd67..9f0560f28dc 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameFieldTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameFieldTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
RenameNonPrivateFieldTests.class,
RenamePrivateFieldTests.class
})
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameMethodTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameMethodTests.java
index db4c0f63373..05a8bb36827 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameMethodTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameMethodTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
RenameVirtualMethodInClassTests.class,
RenameMethodInInterfaceTests.class,
RenamePrivateMethodTests.class,
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTests.java
index 714156031ce..5e3fca7b00e 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/RenameTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
RefactoringScannerTests.class,
RenamingNameSuggestorTests.class,
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/actions/AllTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/actions/AllTests.java
index bf537512b4f..3089874537f 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/actions/AllTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/actions/AllTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring.actions;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
StructureSelectionActionTests.class,
GoToNextPreviousMemberActionTests.class
})
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/all/AllAllRefactoringTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/all/AllAllRefactoringTests.java
index 4c8c994bf8f..1ea15a794a1 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/all/AllAllRefactoringTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/all/AllAllRefactoringTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring.all;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
org.eclipse.jdt.ui.tests.refactoring.actions.AllTests.class,
org.eclipse.jdt.ui.tests.refactoring.nls.NLSTestSuite.class,
org.eclipse.jdt.ui.tests.refactoring.AllTests.class,
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/all/AllRefactoringPerformanceTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/all/AllRefactoringPerformanceTests.java
index 3d880f52972..1635699c573 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/all/AllRefactoringPerformanceTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/all/AllRefactoringPerformanceTests.java
@@ -13,14 +13,14 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring.all;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
import org.eclipse.jdt.ui.tests.refactoring.reorg.AllReorgPerformanceTests;
import org.eclipse.jdt.ui.tests.refactoring.type.AllTypeConstraintsPerformanceTests;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
AllReorgPerformanceTests.class,
AllTypeConstraintsPerformanceTests.class
})
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/AllTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/AllTests.java
index 17c7c559a26..2f2860662c9 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/AllTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/ccp/AllTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring.ccp;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
DeleteTest.class,
CopyToClipboardActionTest.class,
PasteActionTest.class,
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/changes/AllTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/changes/AllTests.java
index 9eda64df910..7e23904d442 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/changes/AllTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/changes/AllTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring.changes;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
TrackPositionTest.class,
TextDiffContentTest.class
})
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/extensions/AllTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/extensions/AllTests.java
index 9b02c6424e0..4886e23c676 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/extensions/AllTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/extensions/AllTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring.extensions;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
ExtensionPointTests.class
})
public class AllTests {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/nls/NLSTestSuite.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/nls/NLSTestSuite.java
index 8f70ff33b2d..8f3c03bb50d 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/nls/NLSTestSuite.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/nls/NLSTestSuite.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring.nls;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
// old
NLSElementTester.class,
NLSScannerTester.class,
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/reorg/AllReorgPerformanceTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/reorg/AllReorgPerformanceTests.java
index 19ac3f0f452..cfe05ee090c 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/reorg/AllReorgPerformanceTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/reorg/AllReorgPerformanceTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring.reorg;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
RenamePackagePerfTests1.class,
RenamePackagePerfTests2.class,
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/type/AllTypeConstraintsPerformanceTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/type/AllTypeConstraintsPerformanceTests.java
index 9ce9216de7a..b95a8fead77 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/type/AllTypeConstraintsPerformanceTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/type/AllTypeConstraintsPerformanceTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring.type;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
ExtractInterfacePerfAcceptanceTests.class
})
public class AllTypeConstraintsPerformanceTests {
diff --git a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/typeconstraints/AllTests.java b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/typeconstraints/AllTests.java
index e1c69b95caa..00e2c44de41 100644
--- a/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/typeconstraints/AllTests.java
+++ b/org.eclipse.jdt.ui.tests.refactoring/test cases/org/eclipse/jdt/ui/tests/refactoring/typeconstraints/AllTests.java
@@ -13,12 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring.typeconstraints;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
TypeConstraintTests.class,
TypeEnvironmentTests.class
})
diff --git a/org.eclipse.jdt.ui.tests/META-INF/MANIFEST.MF b/org.eclipse.jdt.ui.tests/META-INF/MANIFEST.MF
index 69dc24cc37d..0bc05b798f5 100644
--- a/org.eclipse.jdt.ui.tests/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.ui.tests/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Automatic-Module-Name: org.eclipse.jdt.ui.tests
Bundle-ManifestVersion: 2
Bundle-Name: %Plugin.name
Bundle-SymbolicName: org.eclipse.jdt.ui.tests; singleton:=true
-Bundle-Version: 3.15.600.qualifier
+Bundle-Version: 3.15.700.qualifier
Bundle-Activator: org.eclipse.jdt.testplugin.JavaTestPlugin
Bundle-Vendor: %Plugin.providerName
Bundle-Localization: plugin
@@ -75,12 +75,22 @@ Require-Bundle:
org.eclipse.jdt.astview,
org.eclipse.compare.core,
org.eclipse.compare,
- org.eclipse.core.tests.harness
+ org.eclipse.core.tests.harness,
+ junit-jupiter-api
Bundle-RequiredExecutionEnvironment: JavaSE-17
Eclipse-BundleShape: dir
Bundle-ActivationPolicy: lazy
Import-Package: org.assertj.core.api;version="3.24.2",
org.junit.jupiter.api,
+ org.junit.jupiter.api.extension,
+ org.junit.jupiter.migrationsupport,
+ org.junit.jupiter.migrationsupport.conditions,
+ org.junit.jupiter.migrationsupport.rules,
+ org.junit.jupiter.params,
+ org.junit.jupiter.params.aggregator,
+ org.junit.jupiter.params.converter,
+ org.junit.jupiter.params.provider,
+ org.junit.jupiter.params.support,
org.junit.platform.suite.api,
org.junit.platform.suite.commons;status=INTERNAL,
org.junit.platform.suite.engine;status=INTERNAL
diff --git a/org.eclipse.jdt.ui.tests/performance/org/eclipse/jdt/ui/tests/performance/PerformanceTestSuite.java b/org.eclipse.jdt.ui.tests/performance/org/eclipse/jdt/ui/tests/performance/PerformanceTestSuite.java
index 1272355c56f..135fb0e2473 100644
--- a/org.eclipse.jdt.ui.tests/performance/org/eclipse/jdt/ui/tests/performance/PerformanceTestSuite.java
+++ b/org.eclipse.jdt.ui.tests/performance/org/eclipse/jdt/ui/tests/performance/PerformanceTestSuite.java
@@ -14,13 +14,13 @@
package org.eclipse.jdt.ui.tests.performance;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
import org.eclipse.jdt.ui.tests.performance.views.TypeHierarchyPerfTest;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
TypeHierarchyPerfTest.class
})
public class PerformanceTestSuite {
diff --git a/org.eclipse.jdt.ui.tests/performance/org/eclipse/jdt/ui/tests/performance/views/ViewPerformanceTestSuite.java b/org.eclipse.jdt.ui.tests/performance/org/eclipse/jdt/ui/tests/performance/views/ViewPerformanceTestSuite.java
index fe5057b8647..a2108b0c048 100644
--- a/org.eclipse.jdt.ui.tests/performance/org/eclipse/jdt/ui/tests/performance/views/ViewPerformanceTestSuite.java
+++ b/org.eclipse.jdt.ui.tests/performance/org/eclipse/jdt/ui/tests/performance/views/ViewPerformanceTestSuite.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.performance.views;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+ import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+ @Suite
+ @SelectClasses({
PackageExplorerPerfTest.class,
PackageExplorerColdPerfTest.class,
PackageExplorerEmptyPerfTest.class,
diff --git a/org.eclipse.jdt.ui.tests/pom.xml b/org.eclipse.jdt.ui.tests/pom.xml
index 4d09430d667..5cb5abdc32a 100644
--- a/org.eclipse.jdt.ui.tests/pom.xml
+++ b/org.eclipse.jdt.ui.tests/pom.xml
@@ -20,7 +20,7 @@
org.eclipse.jdt
org.eclipse.jdt.ui.tests
- 3.15.600-SNAPSHOT
+ 3.15.700-SNAPSHOT
eclipse-test-plugin
true
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/junit/launcher/JUnitLauncherTests.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/junit/launcher/JUnitLauncherTests.java
index 86f53ba02c9..16d5f92f448 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/junit/launcher/JUnitLauncherTests.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/junit/launcher/JUnitLauncherTests.java
@@ -14,11 +14,11 @@
package org.eclipse.jdt.junit.launcher;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
AdvancedJUnitLaunchConfigurationDelegateTest.class,
})
public class JUnitLauncherTests {
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/junit/tests/JUnitJUnitTests.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/junit/tests/JUnitJUnitTests.java
index 2c85f74fcbc..fb6e730b002 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/junit/tests/JUnitJUnitTests.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/junit/tests/JUnitJUnitTests.java
@@ -15,11 +15,11 @@
package org.eclipse.jdt.junit.tests;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
// TODO disabled unreliable tests driving the event loop:
//WrappingSystemTest.class,
//WrappingUnitTest.class,
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/AutomatedSuite.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/AutomatedSuite.java
index 740d3e6a6a8..32a3803503b 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/AutomatedSuite.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/AutomatedSuite.java
@@ -14,9 +14,9 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests;
-import org.junit.Before;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
import org.eclipse.jdt.junit.launcher.JUnitLauncherTests;
import org.eclipse.jdt.junit.tests.JUnitJUnitTests;
@@ -51,8 +51,8 @@
/**
* Test all areas of JDT UI.
*/
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
CoreTests.class,
CoreTestSuite.class,
QuickFixTestSuite.class,
@@ -87,7 +87,7 @@
SmokeViewsTest.class
})
public class AutomatedSuite {
- @Before
+ @BeforeEach
protected void setUp() throws Exception {
JavaCore.setOptions(TestOptions.getDefaultOptions());
TestOptions.initializeCodeGenerationOptions();
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/LeakTestSuite.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/LeakTestSuite.java
index 11b85519923..ca566722dbb 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/LeakTestSuite.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/LeakTestSuite.java
@@ -13,20 +13,21 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+
+
+/**
+ * Test for leaks
+ */
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
import org.eclipse.jdt.ui.tests.leaks.JavaLeakTest;
import org.eclipse.jdt.ui.tests.leaks.TextViewerUndoManagerLeakTest;
import org.eclipse.jdt.ui.tests.leaks.UndoManagerLeakTest;
import org.eclipse.jdt.ui.tests.search.SearchLeakTestWrapper;
-
-/**
- * Test for leaks
- */
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
JavaLeakTest.class,
SearchLeakTestWrapper.class,
UndoManagerLeakTest.class,
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/UIInteractiveSuite.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/UIInteractiveSuite.java
index a6632211faa..7f6d4c24654 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/UIInteractiveSuite.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/UIInteractiveSuite.java
@@ -13,18 +13,18 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+/**
+ * Test all areas of the UI.
+ */
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
import org.eclipse.jdt.ui.tests.dialogs.DialogsTest;
import org.eclipse.jdt.ui.tests.dialogs.PreferencesTest;
import org.eclipse.jdt.ui.tests.dialogs.WizardsTest;
-/**
- * Test all areas of the UI.
- */
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
PreferencesTest.class,
WizardsTest.class,
DialogsTest.class
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/buildpath/BuildpathTestSuite.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/buildpath/BuildpathTestSuite.java
index 0d1e4be3f07..f4e893d25cd 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/buildpath/BuildpathTestSuite.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/buildpath/BuildpathTestSuite.java
@@ -13,15 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.buildpath;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-
-/**
- * @since 3.5
- */
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
BuildpathModifierActionEnablementTest.class,
BuildpathModifierActionTest.class,
CPUserLibraryTest.class,
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/core/CoreTestSuite.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/core/CoreTestSuite.java
index 2945f1eca1e..35ae002d3df 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/core/CoreTestSuite.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/core/CoreTestSuite.java
@@ -13,16 +13,16 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.core;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
import org.eclipse.jdt.ui.tests.core.source.SourceActionTests;
import org.eclipse.jdt.internal.ui.compare.JavaIgnoreWhitespaceContributorTest;
import org.eclipse.jdt.internal.ui.compare.JavaTokenComparatorTest;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
AddImportTest.class,
SourceActionTests.class,
ASTNodesInsertTest.class,
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/core/source/SourceActionTests.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/core/source/SourceActionTests.java
index 5db2188e7a8..df99620fed6 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/core/source/SourceActionTests.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/core/source/SourceActionTests.java
@@ -14,17 +14,15 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.core.source;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
-
-
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
/**
*
* Tests for the actions in the source menu
*/
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
AddUnimplementedMethodsTest.class,
GenerateGettersSettersTest.class,
GenerateGettersSettersTest16.class,
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/jarexport/FatJarExportTests.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/jarexport/FatJarExportTests.java
deleted file mode 100644
index b5d2b10b149..00000000000
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/jarexport/FatJarExportTests.java
+++ /dev/null
@@ -1,1009 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2020 IBM Corporation and others.
- *
- * This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License 2.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 83258 [jar exporter] Deploy java application as executable jar
- * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 213638 [jar exporter] create ANT build file for current settings
- * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 220257 [jar application] ANT build file does not create Class-Path Entry in Manifest
- * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 243163 [jar exporter] export directory entries in "Runnable JAR File"
- * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 219530 [jar application] add Jar-in-Jar ClassLoader option
- * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 262766 [jar exporter] ANT file for Jar-in-Jar option contains relative path to jar-rsrc-loader.zip
- * Ferenc Hechler, ferenc_hechler@users.sourceforge.net - 262763 [jar exporter] remove Built-By attribute in ANT files from Fat JAR Exporter
- *******************************************************************************/
-package org.eclipse.jdt.ui.tests.jarexport;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import javax.xml.parsers.DocumentBuilder;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestName;
-import org.xml.sax.InputSource;
-import org.xml.sax.helpers.DefaultHandler;
-
-import org.w3c.dom.Element;
-import org.w3c.dom.NodeList;
-
-import org.eclipse.jdt.testplugin.JavaProjectHelper;
-import org.eclipse.jdt.testplugin.JavaTestPlugin;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Status;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-import org.eclipse.debug.core.DebugPlugin;
-import org.eclipse.debug.core.ILaunch;
-import org.eclipse.debug.core.ILaunchConfiguration;
-import org.eclipse.debug.core.ILaunchConfigurationType;
-import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.debug.core.Launch;
-import org.eclipse.debug.core.model.IProcess;
-
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaCore;
-
-import org.eclipse.jdt.internal.junit.util.XmlProcessorFactoryJdtJunit;
-
-import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
-import org.eclipse.jdt.launching.IVMInstall;
-import org.eclipse.jdt.launching.IVMRunner;
-import org.eclipse.jdt.launching.JavaRuntime;
-import org.eclipse.jdt.launching.VMRunnerConfiguration;
-
-import org.eclipse.jdt.ui.JavaUI;
-import org.eclipse.jdt.ui.jarpackager.IJarExportRunnable;
-import org.eclipse.jdt.ui.jarpackager.JarPackageData;
-import org.eclipse.jdt.ui.tests.core.rules.ProjectTestSetup;
-
-import org.eclipse.jdt.internal.ui.JavaPlugin;
-import org.eclipse.jdt.internal.ui.jarpackager.JarPackagerUtil;
-import org.eclipse.jdt.internal.ui.jarpackagerfat.FatJarAntExporter;
-import org.eclipse.jdt.internal.ui.jarpackagerfat.FatJarPackageWizardPage;
-import org.eclipse.jdt.internal.ui.jarpackagerfat.FatJarPackageWizardPage.CopyLibraryHandler;
-import org.eclipse.jdt.internal.ui.jarpackagerfat.FatJarPackageWizardPage.ExtractLibraryHandler;
-import org.eclipse.jdt.internal.ui.jarpackagerfat.FatJarPackageWizardPage.LibraryHandler;
-import org.eclipse.jdt.internal.ui.jarpackagerfat.FatJarPackageWizardPage.PackageLibraryHandler;
-import org.eclipse.jdt.internal.ui.jarpackagerfat.FatJarRsrcUrlBuilder;
-import org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext;
-
-public class FatJarExportTests {
-
- @Rule
- public ProjectTestSetup pts=new ProjectTestSetup();
-
- @Rule
- public TestName tn=new TestName();
-
- private static final int JAVA_RUN_TIMEOUT= 300; // 10th of a second
-
- @BeforeClass
- public static void setUpTest() {
- System.setProperty("jdt.bug.367669", "non-null");
- }
-
- private IJavaProject fProject;
- private IPackageFragmentRoot fMainRoot;
-
- @Before
- public void setUp() throws Exception {
- fProject= pts.getProject();
-
- fMainRoot= JavaProjectHelper.addSourceContainer(fProject, "src"); //$NON-NLS-1$
- IPackageFragment fragment= fMainRoot.createPackageFragment("org.eclipse.jdt.ui.test", true, null); //$NON-NLS-1$
- String str = """
- package org.eclipse.jdt.ui.test;
- import mylib.Foo;
- public class Main {
- public static void main(String[] args) {
- new Foo();
- new Foo.FooInner();
- new Foo.FooInner.FooInnerInner();
- }
- }
- """; //$NON-NLS-1$
- fragment.createCompilationUnit("Main.java", str, true, null); //$NON-NLS-1$
- }
-
- @After
- public void tearDown() throws Exception {
- JavaProjectHelper.clear(fProject, pts.getDefaultClasspath());
- }
-
- private static String getFooContent() {
- String str = """
- package mylib;
- public class Foo {
- public Foo() {
- System.out.println("created " + Foo.class.getName());
- }
- public static class FooInner {
- public static class FooInnerInner {
- }
- }
- }
- """; //$NON-NLS-1$
- return str;
- }
-
- private static JarPackageData createAndRunFatJar(IJavaProject project, String testName, boolean compressJar, LibraryHandler libraryHandler) throws Exception, CoreException {
- JarPackageData data= null;
- // create jar and check contents
- switch (libraryHandler.getID()) {
- case ExtractLibraryHandler.ID: {
- data= assertFatJarExport(project, testName, compressJar, libraryHandler);
- break;
- }
- case PackageLibraryHandler.ID: {
- data= assertFatJarWithLoaderExport(project, testName, compressJar, libraryHandler);
- break;
- }
- case CopyLibraryHandler.ID: {
- data= assertFatJarWithSubfolderExport(project, testName, compressJar, libraryHandler);
- break;
- }
- default: {
- fail("invalid library handling '" + libraryHandler.getID() + "'"); //$NON-NLS-1$ //$NON-NLS-2$
- break;
- }
- }
-
- // run newly generated jar and check stdout
- String stdout= runJar(project, data.getJarLocation().toOSString());
- // normalize EndOfLine to \n
- stdout= stdout.replaceAll("\r\n", "\n").replaceAll("\r", "\n"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- // check for successful call of Foo
- String expected= "created mylib.Foo\n"; //$NON-NLS-1$
- assertEquals(expected, stdout);
-
- return data;
- }
-
- private static JarPackageData assertFatJarExport(IJavaProject project, String testName, boolean compressJar, LibraryHandler libraryHandler) throws Exception {
- //create class files
- buildProject();
-
- //create data
- JarPackageData data= createJarPackageData(project, testName, libraryHandler);
-
- // set compression
- data.setCompress(compressJar);
-
- //assert archive content as expected
- try (ZipFile generatedArchive = createZipFile(data)) {
- //assert archive content as expected
- assertNotNull(generatedArchive);
- assertNotNull(generatedArchive.getEntry("org/eclipse/jdt/ui/test/Main.class")); //$NON-NLS-1$
- assertNotNull(generatedArchive.getEntry("mylib/Foo.class")); //$NON-NLS-1$
- assertNotNull(generatedArchive.getEntry("mylib/Foo$FooInner.class")); //$NON-NLS-1$
- assertNotNull(generatedArchive.getEntry("mylib/Foo$FooInner$FooInnerInner.class")); //$NON-NLS-1$
- }
-
- MultiStatus status= new MultiStatus(JavaUI.ID_PLUGIN, 0, "", null); //$NON-NLS-1$
-
- FatJarAntExporter antExporter= libraryHandler.getAntExporter(antScriptLocation(testName), data.getAbsoluteJarLocation(), createTempLaunchConfig(project));
- antExporter.run(status);
- assertTrue(getProblems(status), status.getSeverity() == IStatus.OK || status.getSeverity() == IStatus.INFO);
-
- return data;
- }
-
- private static JarPackageData assertFatJarWithLoaderExport(IJavaProject project, String testName, boolean compressJar, LibraryHandler libraryHandler) throws Exception {
- //create class files
- buildProject();
-
- //create data with Jar-in-Jar Loader
- JarPackageData data= createJarPackageData(project, testName, libraryHandler);
-
- // set compression
- data.setCompress(compressJar);
-
- //assert archive content as expected
- try (ZipFile generatedArchive = createZipFile(data)) {
- //assert archive content as expected
- assertNotNull(generatedArchive);
- assertNotNull(generatedArchive.getEntry("org/eclipse/jdt/ui/test/Main.class")); //$NON-NLS-1$
- // get loader entry
- ZipEntry loaderClassEntry= generatedArchive.getEntry("org/eclipse/jdt/internal/jarinjarloader/JarRsrcLoader.class"); //$NON-NLS-1$
- assertNotNull(loaderClassEntry);
- int magic;
- int minorVersion;
- int majorVersion;
- try ( // check version of class file JarRsrcLoader (jdk 1.6 = version 50.0)
- InputStream in = generatedArchive.getInputStream(loaderClassEntry)) {
- magic = 0;
- for (int i= 0; i < 4; i++)
- magic = (magic << 8) + in.read();
- minorVersion = ((in.read() << 8) + in.read());
- majorVersion = ((in.read() << 8) + in.read());
- }
- assertEquals("loader is a class file", 0xCAFEBABE, magic); //$NON-NLS-1$
- assertEquals("loader compiled with JDK 1.8", "52.0", majorVersion + "." + minorVersion); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- }
-
- MultiStatus status= new MultiStatus(JavaUI.ID_PLUGIN, 0, "", null); //$NON-NLS-1$
-
- FatJarAntExporter antExporter= libraryHandler.getAntExporter(antScriptLocation(testName), data.getAbsoluteJarLocation(), createTempLaunchConfig(project));
- antExporter.run(status);
- assertTrue(getProblems(status), status.getSeverity() == IStatus.OK || status.getSeverity() == IStatus.INFO);
-
- // check that jar-rsrc-loader.zip file was created next to build.xml
- IPath zipLocation= antScriptLocation(testName).removeLastSegments(1).append(FatJarRsrcUrlBuilder.JAR_RSRC_LOADER_ZIP);
- assertTrue("loader zip missing: " + zipLocation.toOSString(), zipLocation.toFile().exists());
-
- return data;
- }
-
- private static JarPackageData assertFatJarWithSubfolderExport(IJavaProject project, String testName, boolean compressJar, LibraryHandler libraryHandler) throws Exception {
- //create class files
- buildProject();
-
- //create data with Jar-in-Jar Loader
- JarPackageData data= createJarPackageData(project, testName, libraryHandler);
-
- // set compression
- data.setCompress(compressJar);
-
- //assert archive content as expected
- try (ZipFile generatedArchive= createZipFile(data)) {
- //assert archive content as expected
- assertNotNull(generatedArchive);
- assertNotNull(generatedArchive.getEntry("org/eclipse/jdt/ui/test/Main.class")); //$NON-NLS-1$
-
- // check for libraries sub-folder
- File jarFile= new File(generatedArchive.getName());
- String subFolderName= jarFile.getName().replaceFirst("^(.*)[.]jar$", "$1_lib"); //$NON-NLS-1$//$NON-NLS-2$
- File subFolderDir= new File(jarFile.getParentFile(), subFolderName);
- assertTrue("actual: '" + subFolderDir.toString() + "'", subFolderDir.isDirectory()); //$NON-NLS-1$//$NON-NLS-2$
- }
-
- MultiStatus status= new MultiStatus(JavaUI.ID_PLUGIN, 0, "", null); //$NON-NLS-1$
-
- FatJarAntExporter antExporter= libraryHandler.getAntExporter(antScriptLocation(testName), data.getAbsoluteJarLocation(), createTempLaunchConfig(project));
- antExporter.run(status);
- assertTrue(getProblems(status), status.getSeverity() == IStatus.OK || status.getSeverity() == IStatus.INFO);
-
- return data;
- }
-
- private static void buildProject() throws CoreException {
- ResourcesPlugin.getWorkspace().build(IncrementalProjectBuilder.FULL_BUILD, null);
-
- for (IMarker marker : ResourcesPlugin.getWorkspace().getRoot().findMarkers(null, true, IResource.DEPTH_INFINITE)) {
- assertNotEquals((String) marker.getAttribute(IMarker.MESSAGE), IMarker.SEVERITY_ERROR, marker.getAttribute(IMarker.SEVERITY, IMarker.SEVERITY_INFO));
- }
- }
-
-
- private static IPath antScriptLocation(String testName) {
- return ResourcesPlugin.getWorkspace().getRoot().getLocation().append("build_" + testName + ".xml"); //$NON-NLS-1$//$NON-NLS-2$
- }
-
- private static JarPackageData createJarPackageData(IJavaProject project, String testName, LibraryHandler libraryHandler) throws CoreException {
- JarPackageData data= new JarPackageData();
- data.setOverwrite(true);
- data.setIncludeDirectoryEntries(true);
-
- IPath destination= ResourcesPlugin.getWorkspace().getRoot().getLocation().append(testName + ".jar"); //$NON-NLS-1$
- data.setJarLocation(destination);
-
- ILaunchConfiguration launchConfig= createTempLaunchConfig(project);
-
- MultiStatus status= new MultiStatus(JavaUI.ID_PLUGIN, 0, "", null); //$NON-NLS-1$
- Object[] children= FatJarPackageWizardPage.getSelectedElementsWithoutContainedChildren(launchConfig, data, new BusyIndicatorRunnableContext(), status);
- assertTrue(getProblems(status), status.getSeverity() == IStatus.OK || status.getSeverity() == IStatus.INFO);
- data.setElements(children);
-
- data.setJarBuilder(libraryHandler.getBuilder(data));
-
- return data;
- }
-
- private static String getProblems(MultiStatus status) {
- StringBuilder result= new StringBuilder();
-
- for (IStatus child : status.getChildren()) {
- result.append(child.getMessage()).append("\n"); //$NON-NLS-1$
- }
-
- return result.toString();
- }
-
- /*
- * From org.eclipse.jdt.internal.debug.ui.launcher.JavaApplicationLaunchShortcut
- *
- * For internal use only (testing), clients must not call.
- */
- public static ILaunchConfiguration createTempLaunchConfig(IJavaProject project) {
- String projectName= project.getElementName();
-
- String configname= "fatjar_cfg_eraseme_" + projectName; //$NON-NLS-1$
- ILaunchConfiguration config= null;
- ILaunchConfigurationWorkingCopy wc= null;
- try {
- ILaunchManager launchManager= DebugPlugin.getDefault().getLaunchManager();
- ILaunchConfigurationType configType= launchManager.getLaunchConfigurationType(IJavaLaunchConfigurationConstants.ID_JAVA_APPLICATION);
- wc= configType.newInstance(null, launchManager.generateLaunchConfigurationName(configname));
- } catch (CoreException e) {
- JavaPlugin.log(e);
- return null;
- }
-
- wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_MAIN_TYPE_NAME, "org.eclipse.jdt.ui.test.Main"); //$NON-NLS-1$
- wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROJECT_NAME, projectName);
- try {
- config= wc.doSave();
- } catch (CoreException e) {
- JavaPlugin.log(e);
- }
-
- return config;
- }
-
- private static ZipFile createZipFile(JarPackageData data) throws Exception, CoreException {
- IWorkbenchWindow window= PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-
- IJarExportRunnable op= data.createJarExportRunnable(window.getShell());
- window.run(false, false, op);
-
- IStatus status= op.getStatus();
- if (status.getSeverity() == IStatus.ERROR)
- throw new CoreException(status);
-
- return JarPackagerUtil.createZipFile(data.getJarLocation());
- }
-
- private static String runJar(IJavaProject project, String jarPath) throws CoreException {
-
- IVMInstall vmInstall= JavaRuntime.getVMInstall(project);
- if (vmInstall == null)
- vmInstall= JavaRuntime.getDefaultVMInstall();
-
- if (vmInstall == null)
- throw new CoreException(new Status(IStatus.ERROR, JavaPlugin.getPluginId(), "Could not find a VM Install")); //$NON-NLS-1$
-
- IVMRunner vmRunner= vmInstall.getVMRunner(ILaunchManager.RUN_MODE);
- if (vmRunner == null)
- throw new CoreException(new Status(IStatus.ERROR, JavaPlugin.getPluginId(), "Could not create a VM Runner")); //$NON-NLS-1$
-
- VMRunnerConfiguration vmConfig= new VMRunnerConfiguration("-jar", new String[] {}); //$NON-NLS-1$
- vmConfig.setWorkingDirectory(new File(jarPath).getParent());
- vmConfig.setProgramArguments(new String[] { jarPath });
-
- ILaunch launch= new Launch(null, ILaunchManager.RUN_MODE, null);
- vmRunner.run(vmConfig, launch, null);
-
- IProcess[] processes= launch.getProcesses();
- if (processes.length == 0)
- throw new CoreException(new Status(IStatus.ERROR, JavaPlugin.getPluginId(), "Could not launch jar")); //$NON-NLS-1$
-
- int timeout= JAVA_RUN_TIMEOUT;
- while (timeout > 0 && !processes[0].isTerminated()) {
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- }
-
- timeout--;
- }
- if (!processes[0].isTerminated())
- throw new CoreException(new Status(IStatus.ERROR, JavaPlugin.getPluginId(), "Process did not terminate within timeout")); //$NON-NLS-1$
-
- int exitCode= processes[0].getExitValue();
-
- try {
- Thread.sleep(500);
- } catch (InterruptedException e) {
- }
-
- if (exitCode != 0) {
- String stdout= processes[0].getStreamsProxy().getOutputStreamMonitor().getContents();
- String errout= processes[0].getStreamsProxy().getErrorStreamMonitor().getContents();
-
- throw new CoreException(new Status(IStatus.ERROR, JavaPlugin.getPluginId(), "Run failed: exitcode=" + exitCode + ", stdout=[" + stdout + "], stderr=[" + errout + "]")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- } else {
- return processes[0].getStreamsProxy().getOutputStreamMonitor().getContents();
- }
- }
-
- private static void assertAntScript(JarPackageData data, IPath antScriptLocation, LibraryHandler libraryHandler, String[] filesets, String[] zipfilesets) throws Exception {
- String archiveName= data.getAbsoluteJarLocation().lastSegment();
- switch (libraryHandler.getID()) {
- case ExtractLibraryHandler.ID: {
- assertAntScriptExtract(archiveName, antScriptLocation, filesets, zipfilesets);
- break;
- }
- case PackageLibraryHandler.ID: {
- assertAntScriptPackage(archiveName, antScriptLocation, filesets, zipfilesets);
- break;
- }
- case CopyLibraryHandler.ID: {
- assertAntScriptCopy(archiveName, antScriptLocation, filesets, zipfilesets);
- break;
- }
- default: {
- fail("unknown library handling '" + libraryHandler.getID() + "'"); //$NON-NLS-1$//$NON-NLS-2$
- break;
- }
- }
- }
-
- private static void assertAntScriptCopy(String archiveName, IPath antScriptLocation, String[] filesets, String[] zipfilesets) throws Exception {
- String subfolderName= archiveName.replaceFirst("^(.*)[.]jar$", "$1_lib"); //$NON-NLS-1$//$NON-NLS-2$
-
- String projectNameValue= "Create Runnable Jar for Project TestSetupProject"; //$NON-NLS-1$
- projectNameValue+= " with libraries in sub-folder"; //$NON-NLS-1$
-
- Element xmlProject= readXML(antScriptLocation);
- assertEquals("project", xmlProject.getNodeName()); //$NON-NLS-1$
- assertEquals("create_run_jar", xmlProject.getAttribute("default")); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals(projectNameValue, xmlProject.getAttribute("name")); //$NON-NLS-1$
-
- Element xmlTarget= (Element)xmlProject.getElementsByTagName("target").item(0); //$NON-NLS-1$
- assertEquals("create_run_jar", xmlTarget.getAttribute("name")); //$NON-NLS-1$//$NON-NLS-2$
-
- Element xmlJar= (Element)xmlTarget.getElementsByTagName("jar").item(0); //$NON-NLS-1$
- assertTrue("actual: " + xmlJar.getAttribute("destfile"), xmlJar.getAttribute("destfile").endsWith(archiveName)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- Element xmlManifest= (Element)xmlJar.getElementsByTagName("manifest").item(0); //$NON-NLS-1$
-
- Element xmlAttribute1= (Element)xmlManifest.getElementsByTagName("attribute").item(0); //$NON-NLS-1$
- assertEquals("Main-Class", xmlAttribute1.getAttribute("name")); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("org.eclipse.jdt.ui.test.Main", xmlAttribute1.getAttribute("value")); //$NON-NLS-1$ //$NON-NLS-2$
-
- Element xmlAttribute2= (Element)xmlManifest.getElementsByTagName("attribute").item(1); //$NON-NLS-1$
- assertEquals("Class-Path", xmlAttribute2.getAttribute("name")); //$NON-NLS-1$ //$NON-NLS-2$
- assertTrue("actual value: " + xmlAttribute2.getAttribute("value"), xmlAttribute2.getAttribute("value").startsWith(".")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
- NodeList xmlFilesets= xmlJar.getElementsByTagName("fileset"); //$NON-NLS-1$
- assertEquals(filesets.length, xmlFilesets.getLength());
-
- for (int i= 0; i < xmlFilesets.getLength(); i++) {
- String dir= ((Element)xmlFilesets.item(i)).getAttribute("dir"); //$NON-NLS-1$
- boolean found= false;
- for (String fileset : filesets) {
- if (dir.endsWith(fileset)) {
- found= true;
- break;
- }
- }
- assertTrue("found fileset: '" + dir + "'", found); //$NON-NLS-1$//$NON-NLS-2$
- }
-
- Element xmlDelete= (Element)xmlTarget.getElementsByTagName("delete").item(0); //$NON-NLS-1$
- assertTrue("actual: " + xmlDelete.getAttribute("dir"), xmlDelete.getAttribute("dir").endsWith(subfolderName)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- Element xmlMkdir= (Element)xmlTarget.getElementsByTagName("mkdir").item(0); //$NON-NLS-1$
- assertTrue("actual: " + xmlMkdir.getAttribute("dir"), xmlMkdir.getAttribute("dir").endsWith(subfolderName)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- NodeList xmlCopies= xmlTarget.getElementsByTagName("copy"); //$NON-NLS-1$
- assertEquals(zipfilesets.length, xmlCopies.getLength());
-
- for (int i= 0; i < xmlCopies.getLength(); i++) {
- String absLibPath= ((Element)xmlCopies.item(i)).getAttribute("file"); //$NON-NLS-1$
- String libName= new File(absLibPath).getName();
- boolean found= false;
- for (String zipfileset : zipfilesets) {
- if (libName.equals(zipfileset)) {
- found= true;
- break;
- }
- }
- assertTrue("find zipfileset lib: '" + libName + "'", found); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- }
-
- private static void assertAntScriptPackage(String archiveName, IPath antScriptLocation, String[] filesets, String[] zipfilesets) throws Exception {
- String projectNameValue= "Create Runnable Jar for Project TestSetupProject"; //$NON-NLS-1$
- projectNameValue+= " with Jar-in-Jar Loader"; //$NON-NLS-1$
-
- Element xmlProject= readXML(antScriptLocation);
- assertEquals("project", xmlProject.getNodeName()); //$NON-NLS-1$
- assertEquals("create_run_jar", xmlProject.getAttribute("default")); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals(projectNameValue, xmlProject.getAttribute("name")); //$NON-NLS-1$
-
- Element xmlTarget= (Element)xmlProject.getElementsByTagName("target").item(0); //$NON-NLS-1$
- assertEquals("create_run_jar", xmlTarget.getAttribute("name")); //$NON-NLS-1$//$NON-NLS-2$
-
- Element xmlJar= (Element)xmlTarget.getElementsByTagName("jar").item(0); //$NON-NLS-1$
- assertTrue("actual: " + xmlJar.getAttribute("destfile"), xmlJar.getAttribute("destfile").endsWith(archiveName)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- Element xmlManifest= (Element)xmlJar.getElementsByTagName("manifest").item(0); //$NON-NLS-1$
-
- Element xmlAttribute1= (Element)xmlManifest.getElementsByTagName("attribute").item(0); //$NON-NLS-1$
- assertEquals("Main-Class", xmlAttribute1.getAttribute("name")); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader", xmlAttribute1.getAttribute("value")); //$NON-NLS-1$ //$NON-NLS-2$
-
- Element xmlAttribute2= (Element)xmlManifest.getElementsByTagName("attribute").item(1); //$NON-NLS-1$
- assertEquals("Rsrc-Main-Class", xmlAttribute2.getAttribute("name")); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("org.eclipse.jdt.ui.test.Main", xmlAttribute2.getAttribute("value")); //$NON-NLS-1$ //$NON-NLS-2$
-
- Element xmlAttribute3= (Element)xmlManifest.getElementsByTagName("attribute").item(2); //$NON-NLS-1$
- assertEquals("Class-Path", xmlAttribute3.getAttribute("name")); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals(".", xmlAttribute3.getAttribute("value")); //$NON-NLS-1$ //$NON-NLS-2$
-
- Element xmlAttribute4= (Element)xmlManifest.getElementsByTagName("attribute").item(3); //$NON-NLS-1$
- assertEquals("Rsrc-Class-Path", xmlAttribute4.getAttribute("name")); //$NON-NLS-1$ //$NON-NLS-2$
- assertTrue("actual value: " + xmlAttribute4.getAttribute("value"), xmlAttribute4.getAttribute("value").startsWith("./")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-
- NodeList xmlFilesets= xmlJar.getElementsByTagName("fileset"); //$NON-NLS-1$
- assertEquals(filesets.length, xmlFilesets.getLength());
-
- NodeList xmlZipfilesets= xmlJar.getElementsByTagName("zipfileset"); //$NON-NLS-1$
- assertEquals(zipfilesets.length + 1, xmlZipfilesets.getLength());
-
- for (int i= 0; i < xmlFilesets.getLength(); i++) {
- String dir= ((Element)xmlFilesets.item(i)).getAttribute("dir"); //$NON-NLS-1$
- boolean found= false;
- for (String fileset : filesets) {
- if (dir.endsWith(fileset)) {
- found= true;
- break;
- }
- }
- assertTrue("found fileset: '" + dir + "'", found); //$NON-NLS-1$//$NON-NLS-2$
- }
-
- for (int i= 0; i < xmlZipfilesets.getLength(); i++) {
- String libName= ((Element)xmlZipfilesets.item(i)).getAttribute("includes"); //$NON-NLS-1$
- boolean found= false;
- if (libName.isEmpty()) {
- libName= ((Element)xmlZipfilesets.item(i)).getAttribute("src"); //$NON-NLS-1$
- found= FatJarRsrcUrlBuilder.JAR_RSRC_LOADER_ZIP.equals(libName);
- }
- for (String zipfileset : zipfilesets) {
- if (libName.equals(zipfileset)) {
- found= true;
- break;
- }
- }
- assertTrue("find zipfileset lib: '" + libName + "'", found); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- private static void assertAntScriptExtract(String archiveName, IPath antScriptLocation, String[] filesets, String[] zipfilesets) throws Exception {
- String projectNameValue= "Create Runnable Jar for Project TestSetupProject"; //$NON-NLS-1$
-
- Element xmlProject= readXML(antScriptLocation);
- assertEquals("project", xmlProject.getNodeName()); //$NON-NLS-1$
- assertEquals("create_run_jar", xmlProject.getAttribute("default")); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals(projectNameValue, xmlProject.getAttribute("name")); //$NON-NLS-1$
-
- Element xmlTarget= (Element)xmlProject.getElementsByTagName("target").item(0); //$NON-NLS-1$
- assertEquals("create_run_jar", xmlTarget.getAttribute("name")); //$NON-NLS-1$//$NON-NLS-2$
-
- Element xmlJar= (Element)xmlTarget.getElementsByTagName("jar").item(0); //$NON-NLS-1$
- assertTrue("actual: " + xmlJar.getAttribute("destfile"), xmlJar.getAttribute("destfile").endsWith(archiveName)); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- assertEquals("mergewithoutmain", xmlJar.getAttribute("filesetmanifest")); //$NON-NLS-1$ //$NON-NLS-2$
-
- Element xmlManifest= (Element)xmlJar.getElementsByTagName("manifest").item(0); //$NON-NLS-1$
-
- Element xmlAttribute1= (Element)xmlManifest.getElementsByTagName("attribute").item(0); //$NON-NLS-1$
- assertEquals("Main-Class", xmlAttribute1.getAttribute("name")); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals("org.eclipse.jdt.ui.test.Main", xmlAttribute1.getAttribute("value")); //$NON-NLS-1$ //$NON-NLS-2$
-
- Element xmlAttribute2= (Element)xmlManifest.getElementsByTagName("attribute").item(1); //$NON-NLS-1$
- assertEquals("Class-Path", xmlAttribute2.getAttribute("name")); //$NON-NLS-1$ //$NON-NLS-2$
- assertEquals(".", xmlAttribute2.getAttribute("value")); //$NON-NLS-1$ //$NON-NLS-2$
-
- NodeList xmlFilesets= xmlJar.getElementsByTagName("fileset"); //$NON-NLS-1$
- assertEquals(filesets.length, xmlFilesets.getLength());
-
- NodeList xmlZipfilesets= xmlJar.getElementsByTagName("zipfileset"); //$NON-NLS-1$
- assertEquals(zipfilesets.length, xmlZipfilesets.getLength());
-
- for (int i= 0; i < xmlFilesets.getLength(); i++) {
- String dir= ((Element)xmlFilesets.item(i)).getAttribute("dir"); //$NON-NLS-1$
- boolean found= false;
- for (String fileset : filesets) {
- if (dir.endsWith(fileset)) {
- found= true;
- break;
- }
- }
- assertTrue("found fileset: '" + dir + "'", found); //$NON-NLS-1$//$NON-NLS-2$
- }
-
- for (int i= 0; i < xmlZipfilesets.getLength(); i++) {
- String excludes= ((Element)xmlZipfilesets.item(i)).getAttribute("excludes"); //$NON-NLS-1$
- assertEquals("META-INF/*.SF", excludes); //$NON-NLS-1$
- String src= ((Element)xmlZipfilesets.item(i)).getAttribute("src"); //$NON-NLS-1$
- boolean found= false;
- for (String zipfileset : zipfilesets) {
- if (src.endsWith(zipfileset)) {
- found= true;
- break;
- }
- }
- assertTrue("found zipfileset: '" + src + "'", found); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
-
- /**
- * Helper class to open a xml file
- *
- * @param xmlFilePath path to xml file to read
- * @return root element of the parsed xml-document
- * @throws Exception if anything went wrong
- */
- private static Element readXML(IPath xmlFilePath) throws Exception {
- try (InputStream in = new FileInputStream(xmlFilePath.toFile())) {
- DocumentBuilder parser= XmlProcessorFactoryJdtJunit.createDocumentBuilderFactoryWithErrorOnDOCTYPE().newDocumentBuilder();
- parser.setErrorHandler(new DefaultHandler());
- Element root= parser.parse(new InputSource(in)).getDocumentElement();
- in.close();
-
- return root;
- }
- }
-
- private String getName() {
- return tn.getMethodName();
- }
-
- @Test
- public void exportSameSrcRoot() throws Exception {
- IPackageFragment pack= fMainRoot.createPackageFragment("mylib", true, null); //$NON-NLS-1$
- try {
- pack.createCompilationUnit("Foo.java", getFooContent(), true, null); //$NON-NLS-1$
-
- JarPackageData data= createAndRunFatJar(fProject, getName(), true, new ExtractLibraryHandler());
- assertAntScript(data, antScriptLocation(getName()), new ExtractLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
-
- // Jar-in-Jar loader
- data= createAndRunFatJar(fProject, getName() + "_JiJ", true, new PackageLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_JiJ"), //$NON-NLS-1$
- new PackageLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
-
- // sub-folder libraries
- data= createAndRunFatJar(fProject, getName() + "_SL", true, new CopyLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_SL"), //$NON-NLS-1$
- new CopyLibraryHandler(), new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
- } finally {
- pack.delete(true, null);
- }
- }
-
- @Test
- public void exportSrcRootWithOutputFolder() throws Exception {
- IPackageFragmentRoot root= JavaProjectHelper.addSourceContainer(fProject, "other", new IPath[0], new IPath[0], "otherout"); //$NON-NLS-1$ //$NON-NLS-2$
- try {
- IPackageFragment pack= root.createPackageFragment("mylib", true, null); //$NON-NLS-1$
- pack.createCompilationUnit("Foo.java", getFooContent(), true, null); //$NON-NLS-1$
-
- JarPackageData data= createAndRunFatJar(fProject, getName(), true, new ExtractLibraryHandler());
- assertAntScript(data, antScriptLocation(getName()),
- new ExtractLibraryHandler(),
- new String[] { "TestSetupProject/bin", "TestSetupProject/otherout" },//$NON-NLS-1$ //$NON-NLS-2$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
-
- // Jar-in-Jar loader
- data= createAndRunFatJar(fProject, getName() + "_JiJ", true, new PackageLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_JiJ"), //$NON-NLS-1$
- new PackageLibraryHandler(),
- new String[] { "TestSetupProject/bin", "TestSetupProject/otherout" },//$NON-NLS-2$ //$NON-NLS-1$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
-
- // sub-folder libraries
- data= createAndRunFatJar(fProject, getName() + "_SL", true, new CopyLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_SL"), //$NON-NLS-1$
- new CopyLibraryHandler(), new String[] { "TestSetupProject/bin", "TestSetupProject/otherout" },//$NON-NLS-2$ //$NON-NLS-1$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
- } finally {
- JavaProjectHelper.removeSourceContainer(fProject, root.getElementName());
- }
- }
-
- @Test
- public void exportOtherSrcRoot() throws Exception {
- IPackageFragmentRoot root= JavaProjectHelper.addSourceContainer(fProject, "other"); //$NON-NLS-1$
- try {
- IPackageFragment pack= root.createPackageFragment("mylib", true, null); //$NON-NLS-1$
- pack.createCompilationUnit("Foo.java", getFooContent(), true, null); //$NON-NLS-1$
-
- JarPackageData data= createAndRunFatJar(fProject, getName(), true, new ExtractLibraryHandler());
- assertAntScript(data, antScriptLocation(getName()),
- new ExtractLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, new String[] { "rtstubs15.jar" }); //$NON-NLS-1$ //$NON-NLS-2$
-
- // Jar-in-Jar loader
- data= createAndRunFatJar(fProject, getName() + "_JiJ", true, new PackageLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_JiJ"), //$NON-NLS-1$
- new PackageLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
-
- // sub-folder libraries
- data= createAndRunFatJar(fProject, getName() + "_SL", true, new CopyLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_SL"), //$NON-NLS-1$
- new CopyLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
- } finally {
- JavaProjectHelper.removeSourceContainer(fProject, root.getElementName());
- }
- }
-
- @Test
- public void exportOtherProject() throws Exception {
- IJavaProject otherProject= JavaProjectHelper.createJavaProject("OtherProject", "bin"); //$NON-NLS-1$ //$NON-NLS-2$
- try {
- otherProject.setRawClasspath(pts.getDefaultClasspath(), null);
-
- IPackageFragmentRoot root= JavaProjectHelper.addSourceContainer(otherProject, "other"); //$NON-NLS-1$
- IPackageFragment pack= root.createPackageFragment("mylib", true, null); //$NON-NLS-1$
- pack.createCompilationUnit("Foo.java", getFooContent(), true, null); //$NON-NLS-1$
-
- JavaProjectHelper.addRequiredProject(fProject, otherProject);
-
- JarPackageData data= createAndRunFatJar(fProject, getName(), true, new ExtractLibraryHandler());
- assertAntScript(data, antScriptLocation(getName()),
- new ExtractLibraryHandler(),
- new String[] { "TestSetupProject/bin", "OtherProject/bin" }, new String[] { "rtstubs15.jar" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- // Jar-in-Jar loader
- data= createAndRunFatJar(fProject, getName() + "_JiJ", true, new PackageLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_JiJ"), //$NON-NLS-1$
- new PackageLibraryHandler(),
- new String[] { "TestSetupProject/bin", "OtherProject/bin" },//$NON-NLS-1$ //$NON-NLS-2$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
-
- // sub-folder libraries
- data= createAndRunFatJar(fProject, getName() + "_SL", true, new CopyLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_SL"), //$NON-NLS-1$
- new CopyLibraryHandler(),
- new String[] { "TestSetupProject/bin", "OtherProject/bin" },//$NON-NLS-1$ //$NON-NLS-2$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
- } finally {
- JavaProjectHelper.removeFromClasspath(fProject, otherProject.getProject().getFullPath());
- JavaProjectHelper.delete(otherProject);
- }
- }
-
- @Test
- public void exportInternalLib() throws Exception {
- File lib= JavaTestPlugin.getDefault().getFileInPlugin(JavaProjectHelper.MYLIB_STDOUT);
- IPackageFragmentRoot root= JavaProjectHelper.addLibraryWithImport(fProject, Path.fromOSString(lib.getPath()), null, null);
-
- try {
- JarPackageData data= createAndRunFatJar(fProject, getName(), true, new ExtractLibraryHandler());
- assertAntScript(data, antScriptLocation(getName()),
- new ExtractLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar", "TestSetupProject/mylib_stdout.jar" }); //$NON-NLS-1$ //$NON-NLS-2$
-
- // Jar-in-Jar loader
- data= createAndRunFatJar(fProject, getName() + "_JiJ", true, new PackageLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_JiJ"), //$NON-NLS-1$
- new PackageLibraryHandler(),
- new String[] { "TestSetupProject/bin" },//$NON-NLS-1$
- new String[] { "rtstubs15.jar", "mylib_stdout.jar" }); //$NON-NLS-1$ //$NON-NLS-2$
-
- // sub-folder libraries
- data= createAndRunFatJar(fProject, getName() + "_SL", true, new CopyLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_SL"), //$NON-NLS-1$
- new CopyLibraryHandler(),
- new String[] { "TestSetupProject/bin" },//$NON-NLS-1$
- new String[] { "rtstubs15.jar", "mylib_stdout.jar" }); //$NON-NLS-1$ //$NON-NLS-2$
- } finally {
- JavaProjectHelper.removeFromClasspath(fProject, root.getPath());
- }
- }
-
- @Test
- public void exportInternalLib_UncompressedJar() throws Exception {
- File lib= JavaTestPlugin.getDefault().getFileInPlugin(JavaProjectHelper.MYLIB_STDOUT);
- IPackageFragmentRoot root= JavaProjectHelper.addLibraryWithImport(fProject, Path.fromOSString(lib.getPath()), null, null);
-
- try {
- JarPackageData data= createAndRunFatJar(fProject, getName(), false, new ExtractLibraryHandler());
- assertAntScript(data, antScriptLocation(getName()),
- new ExtractLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, new String[] { "rtstubs15.jar", "TestSetupProject/mylib_stdout.jar" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- // Jar-in-Jar loader
- data= createAndRunFatJar(fProject, getName() + "_JiJ", true, new PackageLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_JiJ"), //$NON-NLS-1$
- new PackageLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar", "mylib_stdout.jar" }); //$NON-NLS-1$ //$NON-NLS-2$
-
- // sub-folder libraries
- data= createAndRunFatJar(fProject, getName() + "_SL", true, new CopyLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_SL"), //$NON-NLS-1$
- new CopyLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar", "mylib_stdout.jar" }); //$NON-NLS-1$ //$NON-NLS-2$
- } finally {
- JavaProjectHelper.removeFromClasspath(fProject, root.getPath());
- }
- }
-
- @Test
- public void exportExternalLib() throws Exception {
- File lib= JavaTestPlugin.getDefault().getFileInPlugin(JavaProjectHelper.MYLIB_STDOUT);
- IPackageFragmentRoot root= JavaProjectHelper.addLibrary(fProject, Path.fromOSString(lib.getPath()));
-
- try {
- // normal Jar
- JarPackageData data= createAndRunFatJar(fProject, getName(), true, new ExtractLibraryHandler());
- assertAntScript(data, antScriptLocation(getName()),
- new ExtractLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, new String[] { "rtstubs15.jar", "testresources/mylib_stdout.jar" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- // Jar-in-Jar loader
- data= createAndRunFatJar(fProject, getName() + "_JiJ", true, new PackageLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_JiJ"), //$NON-NLS-1$
- new PackageLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar", "mylib_stdout.jar" }); //$NON-NLS-1$ //$NON-NLS-2$
-
- // sub-folder libraries
- data= createAndRunFatJar(fProject, getName() + "_SL", true, new CopyLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_SL"), //$NON-NLS-1$
- new CopyLibraryHandler(), new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar", "mylib_stdout.jar" }); //$NON-NLS-1$ //$NON-NLS-2$
- } finally {
- JavaProjectHelper.removeFromClasspath(fProject, root.getPath());
- }
- }
-
- @Test
- public void classFolder() throws Exception {
- File lib= JavaTestPlugin.getDefault().getFileInPlugin(JavaProjectHelper.MYLIB_STDOUT);
-
- IPackageFragmentRoot root= JavaProjectHelper.addClassFolderWithImport(fProject, "cf", null, null, lib); //$NON-NLS-1$
- try {
- // normal Jar
- JarPackageData data= createAndRunFatJar(fProject, getName(), true, new ExtractLibraryHandler());
- assertAntScript(data, antScriptLocation(getName()),
- new ExtractLibraryHandler(),
- new String[] { "TestSetupProject/bin", "TestSetupProject/cf" }, new String[] { "rtstubs15.jar" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- // Jar-in-Jar loader
- data= createAndRunFatJar(fProject, getName() + "_JiJ", true, new PackageLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_JiJ"), //$NON-NLS-1$
- new PackageLibraryHandler(),
- new String[] { "TestSetupProject/bin", "TestSetupProject/cf" },//$NON-NLS-1$ //$NON-NLS-2$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
-
- // sub-folder libraries
- data= createAndRunFatJar(fProject, getName() + "_SL", true, new CopyLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_SL"), //$NON-NLS-1$
- new CopyLibraryHandler(), new String[] { "TestSetupProject/bin", "TestSetupProject/cf" },//$NON-NLS-1$ //$NON-NLS-2$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
- } finally {
- JavaProjectHelper.removeFromClasspath(fProject, root.getPath());
- }
- }
-
- @Test
- public void variable() throws Exception {
- File lib= JavaTestPlugin.getDefault().getFileInPlugin(JavaProjectHelper.MYLIB_STDOUT);
- JavaCore.setClasspathVariable("MYLIB", Path.fromOSString(lib.getPath()), null); //$NON-NLS-1$
-
- JavaProjectHelper.addVariableEntry(fProject, new Path("MYLIB"), null, null); //$NON-NLS-1$
- try {
- // normal Jar
- JarPackageData data= createAndRunFatJar(fProject, getName(), true, new ExtractLibraryHandler());
- assertAntScript(data, antScriptLocation(getName()),
- new ExtractLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, new String[] { "rtstubs15.jar", "testresources/mylib_stdout.jar" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- // Jar-in-Jar loader
- data= createAndRunFatJar(fProject, getName() + "_JiJ", true, new PackageLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_JiJ"), //$NON-NLS-1$
- new PackageLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar", "mylib_stdout.jar" }); //$NON-NLS-1$ //$NON-NLS-2$
-
- // sub-folder libraries
- data= createAndRunFatJar(fProject, getName() + "_SL", true, new CopyLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_SL"), //$NON-NLS-1$
- new CopyLibraryHandler(), new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar", "mylib_stdout.jar" }); //$NON-NLS-1$ //$NON-NLS-2$
- } finally {
- JavaProjectHelper.removeFromClasspath(fProject, new Path("MYLIB")); //$NON-NLS-1$
- }
- }
-
- @Test
- public void signedLibs() throws Exception {
- File lib= JavaTestPlugin.getDefault().getFileInPlugin(JavaProjectHelper.MYLIB_SIG);
- IPackageFragmentRoot root= JavaProjectHelper.addLibraryWithImport(fProject, Path.fromOSString(lib.getPath()), null, null);
-
- try {
- // normal Jar
- JarPackageData data= createAndRunFatJar(fProject, getName(), true, new ExtractLibraryHandler());
- assertAntScript(data, antScriptLocation(getName()),
- new ExtractLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, new String[] { "rtstubs15.jar", "TestSetupProject/mylib_sig.jar" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- // Jar-in-Jar loader
- data= createAndRunFatJar(fProject, getName() + "_JiJ", true, new PackageLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_JiJ"), //$NON-NLS-1$
- new PackageLibraryHandler(),
- new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar", "mylib_sig.jar" }); //$NON-NLS-1$ //$NON-NLS-2$
-
- // sub-folder libraries
- data= createAndRunFatJar(fProject, getName() + "_SL", true, new CopyLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_SL"), //$NON-NLS-1$
- new CopyLibraryHandler(), new String[] { "TestSetupProject/bin" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar", "mylib_sig.jar" }); //$NON-NLS-1$ //$NON-NLS-2$
- } finally {
- JavaProjectHelper.removeFromClasspath(fProject, root.getPath());
- }
- }
-
- @Test
- public void externalClassFolder() throws Exception {
- File classFolder= JavaTestPlugin.getDefault().getFileInPlugin(new Path("testresources/externalClassFolder/"));//$NON-NLS-1$
- assertNotNull("class folder not found", classFolder);//$NON-NLS-1$
- assertTrue("class folder not found", classFolder.exists());
- IPackageFragmentRoot externalRoot= JavaProjectHelper.addLibrary(fProject, Path.fromOSString(classFolder.getPath()), null, null);
-
- try {
- JarPackageData data= createAndRunFatJar(fProject, getName(), true, new ExtractLibraryHandler());
- assertAntScript(data, antScriptLocation(getName()),
- new ExtractLibraryHandler(),
- new String[] { "TestSetupProject/bin", "testresources/externalClassFolder" }, new String[] { "rtstubs15.jar" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-
- // Jar-in-Jar loader
- data= createAndRunFatJar(fProject, getName() + "_JiJ", true, new PackageLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_JiJ"), //$NON-NLS-1$
- new PackageLibraryHandler(),
- new String[] { "TestSetupProject/bin", "testresources/externalClassFolder" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
-
- // sub-folder libraries
- data= createAndRunFatJar(fProject, getName() + "_SL", true, new CopyLibraryHandler()); //$NON-NLS-1$
- assertAntScript(data, antScriptLocation(getName() + "_SL"), //$NON-NLS-1$
- new CopyLibraryHandler(), new String[] { "TestSetupProject/bin", "testresources/externalClassFolder" }, //$NON-NLS-1$
- new String[] { "rtstubs15.jar" }); //$NON-NLS-1$
- } finally {
- JavaProjectHelper.removeFromClasspath(fProject, externalRoot.getPath());
- }
- }
-}
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/jarexport/JarExportTests.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/jarexport/JarExportTests.java
index d301343047c..74e31b56a4d 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/jarexport/JarExportTests.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/jarexport/JarExportTests.java
@@ -14,11 +14,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.jarexport;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
PlainJarExportTests.class,
FatJarExportTests.class
})
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/packageview/PackageExplorerTests.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/packageview/PackageExplorerTests.java
index ce3dd1d9898..677677b06dd 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/packageview/PackageExplorerTests.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/packageview/PackageExplorerTests.java
@@ -14,11 +14,11 @@
package org.eclipse.jdt.ui.tests.packageview;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
ContentProviderTests1.class,
ContentProviderTests2.class,
ContentProviderTests3.class,
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/CleanUpTestCaseSuite.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/CleanUpTestCaseSuite.java
index 657ae7eda57..2028d51f818 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/CleanUpTestCaseSuite.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/CleanUpTestCaseSuite.java
@@ -14,11 +14,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.quickfix;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
CleanUpStressTest.class,
CleanUpTest.class,
CleanUpTest1d4.class,
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/QuickFixTestSuite.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/QuickFixTestSuite.java
index 26a59b0acc0..5abdecabb11 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/QuickFixTestSuite.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/quickfix/QuickFixTestSuite.java
@@ -14,11 +14,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.quickfix;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
QuickFixTest9.class,
QuickFixTest1d8.class,
QuickFixTest14.class,
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/refactoring/RefactoringTests.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/refactoring/RefactoringTests.java
index c246fd0a8df..f29fe5dff1d 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/refactoring/RefactoringTests.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/refactoring/RefactoringTests.java
@@ -13,11 +13,11 @@
*******************************************************************************/
package org.eclipse.jdt.ui.tests.refactoring;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
IsCompletelySelectedTest.class,
ParentCheckerTest.class
})
diff --git a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/search/SearchTest.java b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/search/SearchTest.java
index 2860591bef5..3726c21b69c 100644
--- a/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/search/SearchTest.java
+++ b/org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/search/SearchTest.java
@@ -14,11 +14,11 @@
package org.eclipse.jdt.ui.tests.search;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
-@RunWith(Suite.class)
-@Suite.SuiteClasses({
+@Suite
+@SelectClasses({
WorkspaceReferenceTest.class,
TreeContentProviderTestWrapper.class,
ParticipantTest.class,