diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml
new file mode 100644
index 00000000000..c6c3f3df57b
--- /dev/null
+++ b/.github/workflows/copilot-setup-steps.yml
@@ -0,0 +1,32 @@
+name: "Copilot Setup Steps"
+
+# Automatically run the setup steps when they are changed to allow for easy validation, and
+# allow manual testing through the repository's "Actions" tab
+on:
+ workflow_dispatch:
+ pull_request:
+ paths:
+ - .github/workflows/copilot-setup-steps.yml
+
+jobs:
+ # The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
+ copilot-setup-steps:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v5
+
+ - name: Set up JDK 21
+ uses: actions/setup-java@v5
+ with:
+ java-version: '21'
+ distribution: 'temurin'
+ cache: 'maven'
+
+ - name: Set up Maven 3.9.11
+ uses: stCarolas/setup-maven@v5
+ with:
+ maven-version: '3.9.11'
+
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 00000000000..f152e6cacf6
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,273 @@
+# Eclipse Platform Repository - AI Agent Instructions
+
+This file provides guidance for AI coding assistants (GitHub Copilot, Claude Code, etc.) working with this repository.
+
+## Repository Overview
+
+This repository contains the core Eclipse Platform components that form the basis for the Eclipse IDE. It is a **large-scale Java/OSGi project** (~120MB, 5,600+ Java files across 38 Maven modules) using **Maven/Tycho** for building Eclipse RCP bundles and features.
+
+**Key Technologies:**
+- Language: Java (JDK 21)
+- Build: Maven 3.9.11 with Eclipse Tycho (OSGi/RCP build tooling)
+- Architecture: OSGi bundles organized as Eclipse plugins
+- Testing: JUnit with Tycho Surefire plugin
+
+**Main Modules:**
+- `runtime/` - Core runtime, jobs, expressions, content types (org.eclipse.core.runtime, org.eclipse.core.jobs)
+- `resources/` - Workspace, filesystem, project management (org.eclipse.core.resources, org.eclipse.core.filesystem)
+- `debug/` - Debug framework and UI, external tools, launch configurations
+- `team/` - Version control framework (CVS examples)
+- `ua/` - User assistance: help system, cheatsheets, tips
+- `ant/` - Ant integration and UI
+- `terminal/` - Terminal view
+- `platform/` - SDK packaging
+
+## Critical Build Information
+
+The `-Pbuild-individual-bundles` profile (configured in `.mvn/maven.config`) enables the bundle to fetch the parent POM from https://repo.eclipse.org/content/repositories/eclipse/.
+
+**Note:** If network access to Eclipse repositories is blocked, individual bundle builds will fail. In such environments, code exploration and analysis can still be performed, but build verification is not possible.
+
+### Build Profiles Used in CI
+
+The Jenkinsfile shows the complete build command:
+```bash
+mvn clean verify --batch-mode --fail-at-end \
+ -Pbree-libs -Papi-check -Pjavadoc \
+ -Dmaven.test.failure.ignore=true \
+ -Dcompare-version-with-baselines.skip=false \
+ -Dmaven.compiler.failOnWarning=false
+```
+
+Key profiles:
+- `-Pbree-libs` - Bundle Runtime Execution Environment libraries
+- `-Papi-check` - API baseline comparison (detects breaking changes)
+- `-Pjavadoc` - Generate Javadoc
+
+## Testing
+
+**Test Organization:**
+- Tests are in `/tests/` subdirectories (e.g., `runtime/tests/`, `resources/tests/`)
+- Test bundles follow naming: `org.eclipse..tests.`
+- Tests use JUnit 4/5 with Tycho Surefire
+
+**Running Tests:**
+```bash
+# Run tests for a specific bundle
+cd
+mvn clean verify -Pbuild-individual-bundles
+
+# Tests are automatically run during 'mvn verify'
+# Test results: target/surefire-reports/TEST-*.xml
+```
+
+**Important Test Notes:**
+- Some tests require graphical display (use Xvnc in CI - see Jenkinsfile)
+- Tests in `debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/LocalSuite.java` require user terminal and should NOT run on build machines
+- Test failures are allowed in CI (`-Dmaven.test.failure.ignore=true`)
+
+## Validation & CI Checks
+
+### GitHub Actions Workflows
+
+All workflows delegate to the aggregator repository:
+
+1. **PR Checks** (`.github/workflows/pr-checks.yml`):
+ - Freeze period verification
+ - No merge commits check
+ - Version increment verification (uses PDE API Tools)
+
+2. **Continuous Integration** (`.github/workflows/ci.yml`):
+ - Delegates to `mavenBuild.yml` in aggregator
+ - Runs full build with all profiles
+
+3. **CodeQL** (`.github/workflows/codeql.yml`):
+ - Security scanning for Java code
+
+### Local Validation Steps
+
+Before committing, verify your changes:
+
+```bash
+# 1. Build the affected bundle
+cd
+mvn clean verify -Pbuild-individual-bundles
+
+# 2. Check for API issues (PDE API Tools)
+# API baseline checks run automatically with -Papi-check
+# Results in: target/apianalysis/*.xml
+
+# 3. Check for compiler warnings
+# Results in: target/compilelogs/*.xml
+```
+
+### API Tools & Version Management
+
+**Critical:** Eclipse uses semantic versioning with API tooling enforcement:
+- Major version: Breaking API changes
+- Minor version: Binary compatible API additions, significant changes
+- Service version: Bug fixes (increments: +1 for maintenance, +100 for next release)
+- Qualifier: Build timestamp
+
+**Version Change Rules:**
+1. API breaking change → Increment major version, reset minor/service to 0
+2. API addition (binary compatible) → Increment minor version, reset service to 0
+3. Bug fix in maintenance → Increment service by 1
+4. Bug fix in next release → Increment service by 100
+
+**PDE API Tools automatically detects API changes and enforces version increments.**
+
+See `docs/VersionNumbering.md` and `docs/Evolving-Java-based-APIs.md` for complete details.
+
+## Project Structure
+
+### Root Files
+- `pom.xml` - Main reactor POM (defines modules)
+- `Jenkinsfile` - Jenkins CI pipeline configuration
+- `.mvn/maven.config` - Default Maven options (includes `-Pbuild-individual-bundles`)
+- `.gitignore` - Excludes `target/`, `bin/`, `*.class`, etc.
+
+### Key Configuration Files
+
+**Per Bundle:**
+- `pom.xml` - Maven coordinates and build config
+- `META-INF/MANIFEST.MF` - OSGi bundle manifest (Bundle-SymbolicName, Bundle-Version, dependencies)
+- `build.properties` - Tycho/PDE build configuration (source folders, bin.includes)
+- `.project` - Eclipse project descriptor
+- `.classpath` - Eclipse classpath (typically generated)
+
+**Coding Standards:**
+- `docs/Coding_Conventions.md` - Java coding style (follows Oracle conventions with modifications)
+- `docs/Naming_Conventions.md` - Package/class naming rules
+- Indent with tabs (4 spaces wide)
+- Encoding: UTF-8 (see `.settings/org.eclipse.core.resources.prefs`)
+
+## Common Pitfalls & Solutions
+
+### 1. Parent POM Resolution Failure
+**Error:** `Non-resolvable parent POM for org.eclipse.platform:eclipse.platform`
+
+**Solution:** Always use `-Pbuild-individual-bundles` profile when building individual bundles. This profile is pre-configured in `.mvn/maven.config` but may be needed explicitly in some contexts.
+
+### 2. Missing Dependencies During Build
+**Error:** Cannot resolve bundle dependencies
+
+**Solution:**
+- Individual bundles fetch dependencies from Eclipse repositories
+- Ensure https://repo.eclipse.org is accessible
+- Clean local Maven cache if corrupted: `rm -rf ~/.m2/repository/org/eclipse`
+
+### 3. Test Failures Requiring Display
+**Error:** Tests fail with "No display available"
+
+**Solution:**
+- Tests requiring GUI run automatically on CI (Xvnc configured in Jenkinsfile)
+- For local testing, use Xvfb: `xvfb-run mvn verify`
+- Or skip tests: `mvn verify -DskipTests`
+
+### 4. API Tools Errors
+**Error:** "API baseline errors found"
+
+**Solution:**
+- Review changes in `target/apianalysis/*.xml`
+- If API changed, update bundle version in `META-INF/MANIFEST.MF`
+- Follow version increment rules (see docs/VersionNumbering.md)
+- For intentional API breaks, update baseline comparison
+
+### 5. Build Timeouts
+Maven operations can take considerable time:
+- Clean build of single bundle: 1-3 minutes
+- Full platform build (aggregator): 30-60 minutes
+- Test execution: Variable, some test suites take 10+ minutes
+
+**Set adequate timeouts when building (default 120s may not be enough):**
+```bash
+mvn verify -Pbuild-individual-bundles # May need 180-300 seconds
+```
+
+## Making Changes
+
+### Typical Change Workflow
+
+1. **Locate the Bundle:**
+ - Runtime/core services → `runtime/bundles/`
+ - Resource/workspace → `resources/bundles/`
+ - Debug/launch → `debug/`
+ - Help/documentation → `ua/`
+
+2. **Make Code Changes:**
+ - Edit Java sources in bundle's `src/` directory
+ - Follow coding conventions (see `docs/Coding_Conventions.md`)
+ - Add/update Javadoc for public APIs
+
+3. **Update MANIFEST.MF if needed:**
+ - Changed API? Update `Bundle-Version` following semantic versioning
+ - New dependencies? Add to `Require-Bundle` or `Import-Package`
+
+4. **Build and Test:**
+ ```bash
+ cd
+ mvn clean verify -Pbuild-individual-bundles
+ ```
+
+5. **Verify No API Issues:**
+ - Check `target/apianalysis/*.xml` for API baseline errors
+ - Address any version increment requirements
+
+6. **Commit:**
+ - Write clear commit message
+ - Reference issue number if applicable
+
+## File Locations Reference
+
+**Documentation:** All in `docs/`
+- `docs/Coding_Conventions.md` - Code style
+- `docs/API_Central.md` - API guidelines hub
+- `docs/VersionNumbering.md` - Version management
+- `docs/FAQ/` - 200+ FAQ markdown files
+
+**Build Configuration:**
+- `.mvn/maven.config` - Maven CLI defaults
+- `Jenkinsfile` - CI build definition (60 min timeout)
+- `.github/workflows/*.yml` - GitHub Actions (all delegate to aggregator)
+
+**Key Bundle Directories:**
+- `runtime/bundles/org.eclipse.core.runtime` - Core Platform Runtime
+- `runtime/bundles/org.eclipse.core.jobs` - Jobs and scheduling
+- `resources/bundles/org.eclipse.core.resources` - Workspace API
+- `resources/bundles/org.eclipse.core.filesystem` - Filesystem abstraction
+
+## Working Efficiently
+
+**Trust these instructions first.** This repository has a complex build setup that cannot be fully explored from the repository alone. The information above captures the essential knowledge needed to:
+- Understand build requirements and limitations
+- Make targeted changes without breaking CI
+- Navigate the codebase effectively
+- Avoid common build pitfalls
+
+Only search beyond these instructions if:
+- Specific API behavior needs clarification (check `docs/FAQ/`)
+- Detailed versioning rules are needed (check `docs/VersionNumbering.md`)
+- You need examples of existing code patterns (search Java sources)
+- CI is failing with an error not covered here (check Jenkinsfile and workflow YAMLs)
+
+**When in doubt:** Build at the bundle level with `-Pbuild-individual-bundles` profile and verify tests pass locally before pushing changes.
+
+## AI Agent-Specific Notes
+
+### For GitHub Copilot
+- This file is automatically read by GitHub Copilot when providing code suggestions
+- Copilot uses this context to understand the project structure and conventions
+- Copilot excels at inline code completion and small-scale refactoring
+
+### For Claude Code
+- Claude Code has access to this file via the `CLAUDE.md` file in the repository root
+- Claude Code is better suited for multi-file refactoring and architectural changes
+- Use Claude Code for tasks requiring deep codebase understanding across multiple modules
+- Claude Code can execute builds and tests directly via Maven commands
+
+### For Other AI Agents
+- Read this file to understand the repository structure and build requirements
+- Follow the coding conventions in `docs/Coding_Conventions.md`
+- Always test changes with `mvn clean verify -Pbuild-individual-bundles` before committing
+- Check API baseline with `-Papi-check` when modifying public APIs
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 00000000000..20a6465a4e4
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,267 @@
+# Eclipse Platform Repository - Copilot Instructions
+
+## Repository Overview
+
+This repository contains the core Eclipse Platform components that form the basis for the Eclipse IDE. It is a **large-scale Java/OSGi project** (~120MB, 5,600+ Java files across 38 Maven modules) using **Maven/Tycho** for building Eclipse RCP bundles and features.
+
+**Key Technologies:**
+- Language: Java (JDK 17+, targets JDK 21 in CI)
+- Build: Maven 3.9+ with Eclipse Tycho (OSGi/RCP build tooling)
+- Architecture: OSGi bundles organized as Eclipse plugins
+- Testing: JUnit with Tycho Surefire plugin
+
+**Main Modules:**
+- `runtime/` - Core runtime, jobs, expressions, content types (org.eclipse.core.runtime, org.eclipse.core.jobs)
+- `resources/` - Workspace, filesystem, project management (org.eclipse.core.resources, org.eclipse.core.filesystem)
+- `debug/` - Debug framework and UI, external tools, launch configurations
+- `team/` - Version control framework (CVS examples)
+- `ua/` - User assistance: help system, cheatsheets, tips
+- `ant/` - Ant integration and UI
+- `terminal/` - Terminal view
+- `platform/` - SDK packaging
+
+## Critical Build Information
+
+**⚠️ IMPORTANT: This repository CANNOT be built in isolation.** It depends on a parent POM (`eclipse-platform-parent`) from the [eclipse.platform.releng.aggregator](https://github.com/eclipse-platform/eclipse.platform.releng.aggregator) repository.
+
+### Individual Bundle Builds
+
+Individual bundles CAN be built using the pre-configured profile if you have network access to Eclipse repositories:
+
+```bash
+cd # e.g., runtime/bundles/org.eclipse.core.runtime
+mvn clean verify -Pbuild-individual-bundles
+```
+
+The `-Pbuild-individual-bundles` profile (configured in `.mvn/maven.config`) enables the bundle to fetch the parent POM from https://repo.eclipse.org/content/repositories/eclipse/.
+
+**Note:** If network access to Eclipse repositories is blocked, individual bundle builds will fail. In such environments, code exploration and analysis can still be performed, but build verification is not possible.
+
+### Full Platform Build
+
+For full platform builds, use the aggregator repository which includes this repo as a Git submodule. The CI workflows in this repository delegate to workflows in the aggregator repository.
+
+### Build Profiles Used in CI
+
+The Jenkinsfile shows the complete build command:
+```bash
+mvn clean verify --batch-mode --fail-at-end \
+ -Pbree-libs -Papi-check -Pjavadoc \
+ -Dmaven.test.failure.ignore=true \
+ -Dcompare-version-with-baselines.skip=false \
+ -Dmaven.compiler.failOnWarning=false
+```
+
+Key profiles:
+- `-Pbree-libs` - Bundle Runtime Execution Environment libraries
+- `-Papi-check` - API baseline comparison (detects breaking changes)
+- `-Pjavadoc` - Generate Javadoc
+
+## Testing
+
+**Test Organization:**
+- Tests are in `/tests/` subdirectories (e.g., `runtime/tests/`, `resources/tests/`)
+- Test bundles follow naming: `org.eclipse..tests.`
+- Tests use JUnit 4/5 with Tycho Surefire
+
+**Running Tests:**
+```bash
+# Run tests for a specific bundle
+cd
+mvn clean verify -Pbuild-individual-bundles
+
+# Tests are automatically run during 'mvn verify'
+# Test results: target/surefire-reports/TEST-*.xml
+```
+
+**Important Test Notes:**
+- Some tests require graphical display (use Xvnc in CI - see Jenkinsfile)
+- Tests in `debug/org.eclipse.debug.tests/src/org/eclipse/debug/tests/LocalSuite.java` require user terminal and should NOT run on build machines
+- Test failures are allowed in CI (`-Dmaven.test.failure.ignore=true`)
+
+## Validation & CI Checks
+
+### GitHub Actions Workflows
+
+All workflows delegate to the aggregator repository:
+
+1. **PR Checks** (`.github/workflows/pr-checks.yml`):
+ - Freeze period verification
+ - No merge commits check
+ - Version increment verification (uses PDE API Tools)
+
+2. **Continuous Integration** (`.github/workflows/ci.yml`):
+ - Delegates to `mavenBuild.yml` in aggregator
+ - Runs full build with all profiles
+
+3. **CodeQL** (`.github/workflows/codeql.yml`):
+ - Security scanning for Java code
+
+### Local Validation Steps
+
+Before committing, verify your changes:
+
+```bash
+# 1. Build the affected bundle
+cd
+mvn clean verify -Pbuild-individual-bundles
+
+# 2. Check for API issues (PDE API Tools)
+# API baseline checks run automatically with -Papi-check
+# Results in: target/apianalysis/*.xml
+
+# 3. Check for compiler warnings
+# Results in: target/compilelogs/*.xml
+```
+
+### API Tools & Version Management
+
+**Critical:** Eclipse uses semantic versioning with API tooling enforcement:
+- Major version: Breaking API changes
+- Minor version: Binary compatible API additions, significant changes
+- Service version: Bug fixes (increments: +1 for maintenance, +100 for next release)
+- Qualifier: Build timestamp
+
+**Version Change Rules:**
+1. API breaking change → Increment major version, reset minor/service to 0
+2. API addition (binary compatible) → Increment minor version, reset service to 0
+3. Bug fix in maintenance → Increment service by 1
+4. Bug fix in next release → Increment service by 100
+
+**PDE API Tools automatically detects API changes and enforces version increments.**
+
+See `docs/VersionNumbering.md` and `docs/Evolving-Java-based-APIs.md` for complete details.
+
+## Project Structure
+
+### Root Files
+- `pom.xml` - Main reactor POM (defines modules)
+- `Jenkinsfile` - Jenkins CI pipeline configuration
+- `.mvn/maven.config` - Default Maven options (includes `-Pbuild-individual-bundles`)
+- `.gitignore` - Excludes `target/`, `bin/`, `*.class`, etc.
+
+### Key Configuration Files
+
+**Per Bundle:**
+- `pom.xml` - Maven coordinates and build config
+- `META-INF/MANIFEST.MF` - OSGi bundle manifest (Bundle-SymbolicName, Bundle-Version, dependencies)
+- `build.properties` - Tycho/PDE build configuration (source folders, bin.includes)
+- `.project` - Eclipse project descriptor
+- `.classpath` - Eclipse classpath (typically generated)
+
+**Coding Standards:**
+- `docs/Coding_Conventions.md` - Java coding style (follows Oracle conventions with modifications)
+- `docs/Naming_Conventions.md` - Package/class naming rules
+- Indent with tabs (4 spaces wide)
+- Encoding: UTF-8 (see `.settings/org.eclipse.core.resources.prefs`)
+
+## Common Pitfalls & Solutions
+
+### 1. Parent POM Resolution Failure
+**Error:** `Non-resolvable parent POM for org.eclipse.platform:eclipse.platform`
+
+**Solution:** Always use `-Pbuild-individual-bundles` profile when building individual bundles. This profile is pre-configured in `.mvn/maven.config` but may be needed explicitly in some contexts.
+
+### 2. Missing Dependencies During Build
+**Error:** Cannot resolve bundle dependencies
+
+**Solution:**
+- Individual bundles fetch dependencies from Eclipse repositories
+- Ensure https://repo.eclipse.org is accessible
+- Clean local Maven cache if corrupted: `rm -rf ~/.m2/repository/org/eclipse`
+
+### 3. Test Failures Requiring Display
+**Error:** Tests fail with "No display available"
+
+**Solution:**
+- Tests requiring GUI run automatically on CI (Xvnc configured in Jenkinsfile)
+- For local testing, use Xvfb: `xvfb-run mvn verify`
+- Or skip tests: `mvn verify -DskipTests`
+
+### 4. API Tools Errors
+**Error:** "API baseline errors found"
+
+**Solution:**
+- Review changes in `target/apianalysis/*.xml`
+- If API changed, update bundle version in `META-INF/MANIFEST.MF`
+- Follow version increment rules (see docs/VersionNumbering.md)
+- For intentional API breaks, update baseline comparison
+
+### 5. Build Timeouts
+Maven operations can take considerable time:
+- Clean build of single bundle: 1-3 minutes
+- Full platform build (aggregator): 30-60 minutes
+- Test execution: Variable, some test suites take 10+ minutes
+
+**Set adequate timeouts when building (default 120s may not be enough):**
+```bash
+mvn verify -Pbuild-individual-bundles # May need 180-300 seconds
+```
+
+## Making Changes
+
+### Typical Change Workflow
+
+1. **Locate the Bundle:**
+ - Runtime/core services → `runtime/bundles/`
+ - Resource/workspace → `resources/bundles/`
+ - Debug/launch → `debug/`
+ - Help/documentation → `ua/`
+
+2. **Make Code Changes:**
+ - Edit Java sources in bundle's `src/` directory
+ - Follow coding conventions (see `docs/Coding_Conventions.md`)
+ - Add/update Javadoc for public APIs
+
+3. **Update MANIFEST.MF if needed:**
+ - Changed API? Update `Bundle-Version` following semantic versioning
+ - New dependencies? Add to `Require-Bundle` or `Import-Package`
+
+4. **Build and Test:**
+ ```bash
+ cd
+ mvn clean verify -Pbuild-individual-bundles
+ ```
+
+5. **Verify No API Issues:**
+ - Check `target/apianalysis/*.xml` for API baseline errors
+ - Address any version increment requirements
+
+6. **Commit:**
+ - Write clear commit message
+ - Reference issue number if applicable
+
+## File Locations Reference
+
+**Documentation:** All in `docs/`
+- `docs/Coding_Conventions.md` - Code style
+- `docs/API_Central.md` - API guidelines hub
+- `docs/VersionNumbering.md` - Version management
+- `docs/FAQ/` - 200+ FAQ markdown files
+
+**Build Configuration:**
+- `.mvn/maven.config` - Maven CLI defaults
+- `Jenkinsfile` - CI build definition (60 min timeout)
+- `.github/workflows/*.yml` - GitHub Actions (all delegate to aggregator)
+
+**Key Bundle Directories:**
+- `runtime/bundles/org.eclipse.core.runtime` - Core Platform Runtime
+- `runtime/bundles/org.eclipse.core.jobs` - Jobs and scheduling
+- `resources/bundles/org.eclipse.core.resources` - Workspace API
+- `resources/bundles/org.eclipse.core.filesystem` - Filesystem abstraction
+
+## Working Efficiently
+
+**Trust these instructions first.** This repository has a complex build setup that cannot be fully explored from the repository alone. The information above captures the essential knowledge needed to:
+- Understand build requirements and limitations
+- Make targeted changes without breaking CI
+- Navigate the codebase effectively
+- Avoid common build pitfalls
+
+Only search beyond these instructions if:
+- Specific API behavior needs clarification (check `docs/FAQ/`)
+- Detailed versioning rules are needed (check `docs/VersionNumbering.md`)
+- You need examples of existing code patterns (search Java sources)
+- CI is failing with an error not covered here (check Jenkinsfile and workflow YAMLs)
+
+**When in doubt:** Build at the bundle level with `-Pbuild-individual-bundles` profile and verify tests pass locally before pushing changes.
diff --git a/ant/org.eclipse.ant.launching/META-INF/MANIFEST.MF b/ant/org.eclipse.ant.launching/META-INF/MANIFEST.MF
index 9c9a10f1a42..b3c019c6195 100644
--- a/ant/org.eclipse.ant.launching/META-INF/MANIFEST.MF
+++ b/ant/org.eclipse.ant.launching/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2
Bundle-Localization: plugin
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.ant.launching;singleton:=true
-Bundle-Version: 1.4.800.qualifier
+Bundle-Version: 1.4.900.qualifier
Bundle-Activator: org.eclipse.ant.internal.launching.AntLaunching
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)",
org.eclipse.debug.core;bundle-version="[3.12.0,4.0.0)",
diff --git a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntLaunchingUtil.java b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntLaunchingUtil.java
index e1cf4bcd058..a86b89148c2 100644
--- a/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntLaunchingUtil.java
+++ b/ant/org.eclipse.ant.launching/src/org/eclipse/ant/internal/launching/AntLaunchingUtil.java
@@ -345,7 +345,7 @@ public static IFile getFileForLocation(String path, File buildFileParent) {
* if unable to migrate
* @since 3.0
*/
- @SuppressWarnings({ "restriction", "deprecation" })
+ @SuppressWarnings({ "deprecation" })
public static void migrateToNewClasspathFormat(ILaunchConfiguration configuration) throws CoreException {
String oldClasspath = configuration.getAttribute(AntLaunching.ATTR_ANT_CUSTOM_CLASSPATH, (String) null);
String oldAntHome = configuration.getAttribute(AntLaunching.ATTR_ANT_HOME, (String) null);
diff --git a/ant/org.eclipse.ant.tests.core/META-INF/MANIFEST.MF b/ant/org.eclipse.ant.tests.core/META-INF/MANIFEST.MF
index 94398ae36fa..9e60c66d22b 100644
--- a/ant/org.eclipse.ant.tests.core/META-INF/MANIFEST.MF
+++ b/ant/org.eclipse.ant.tests.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.ant.tests.core; singleton:=true
-Bundle-Version: 3.7.600.qualifier
+Bundle-Version: 3.7.700.qualifier
Bundle-ClassPath: anttestscore.jar
Bundle-Activator: org.eclipse.ant.tests.core.testplugin.AntTestPlugin
Bundle-Vendor: %providerName
@@ -17,9 +17,9 @@ Require-Bundle: org.eclipse.ui.ide;resolution:=optional,
org.eclipse.ant.core,
org.eclipse.core.runtime
Import-Package: org.assertj.core.api,
- org.junit.jupiter.api,
- org.junit.jupiter.api.function,
- org.junit.platform.suite.api
+ org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.function;version="[5.14.0,6.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-17
Eclipse-BundleShape: dir
diff --git a/ant/org.eclipse.ant.tests.ui/META-INF/MANIFEST.MF b/ant/org.eclipse.ant.tests.ui/META-INF/MANIFEST.MF
index 41bfd504e19..3b147d54a5a 100644
--- a/ant/org.eclipse.ant.tests.ui/META-INF/MANIFEST.MF
+++ b/ant/org.eclipse.ant.tests.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.ant.tests.ui; singleton:=true
-Bundle-Version: 3.12.200.qualifier
+Bundle-Version: 3.12.300.qualifier
Bundle-ClassPath: anttestsui.jar
Bundle-Vendor: %providerName
Bundle-Localization: plugin
@@ -39,8 +39,8 @@ Require-Bundle: org.eclipse.ui.ide;resolution:=optional,
org.eclipse.core.externaltools
Import-Package: org.assertj.core.api,
org.assertj.core.api.iterable,
- org.junit.jupiter.api,
- org.junit.platform.suite.api
+ org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-21
Eclipse-BundleShape: dir
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/AntNewJavaProjectPage.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/AntNewJavaProjectPage.java
index e4ae08edbf6..ad540ae4db5 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/AntNewJavaProjectPage.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/datatransfer/AntNewJavaProjectPage.java
@@ -270,7 +270,7 @@ private void handleBrowseButtonPressed() {
String lastUsedPath = IAntCoreConstants.EMPTY_STRING;
FileDialog dialog = new FileDialog(getShell(), SWT.SINGLE | SWT.SHEET);
- dialog.setFilterExtensions(new String[] { "*.xml" }); //$NON-NLS-1$ ;
+ dialog.setFilterExtensions("*.xml"); //$NON-NLS-1$ ;
dialog.setFilterPath(lastUsedPath);
String result = dialog.open();
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntClasspathBlock.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntClasspathBlock.java
index b95781c1511..ce5a3c79b6c 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntClasspathBlock.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntClasspathBlock.java
@@ -239,7 +239,7 @@ private void addExternalJars() {
lastUsedPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().toOSString();
}
FileDialog dialog = new FileDialog(treeViewer.getControl().getShell(), SWT.MULTI | SWT.SHEET);
- dialog.setFilterExtensions(new String[] { "*.jar;*.zip" }); //$NON-NLS-1$
+ dialog.setFilterExtensions("*.jar;*.zip"); //$NON-NLS-1$
dialog.setFilterPath(lastUsedPath);
String result = dialog.open();
diff --git a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntPropertiesBlock.java b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntPropertiesBlock.java
index ac765190200..7e4e667f8ea 100644
--- a/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntPropertiesBlock.java
+++ b/ant/org.eclipse.ant.ui/Ant Tools Support/org/eclipse/ant/internal/ui/preferences/AntPropertiesBlock.java
@@ -411,7 +411,7 @@ private void addExternalPropertyFile() {
lastUsedPath = IAntCoreConstants.EMPTY_STRING;
}
FileDialog dialog = new FileDialog(fileTableViewer.getControl().getShell(), SWT.MULTI | SWT.SHEET);
- dialog.setFilterExtensions(new String[] { "*.properties", "*.*" }); //$NON-NLS-1$ //$NON-NLS-2$ ;
+ dialog.setFilterExtensions("*.properties", "*.*"); //$NON-NLS-1$ //$NON-NLS-2$ ;
dialog.setFilterPath(lastUsedPath);
String result = dialog.open();
diff --git a/ant/org.eclipse.ant.ui/META-INF/MANIFEST.MF b/ant/org.eclipse.ant.ui/META-INF/MANIFEST.MF
index 5ba2810b4d3..c14ad5fe8e8 100644
--- a/ant/org.eclipse.ant.ui/META-INF/MANIFEST.MF
+++ b/ant/org.eclipse.ant.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.ant.ui; singleton:=true
-Bundle-Version: 3.10.200.qualifier
+Bundle-Version: 3.10.300.qualifier
Bundle-Activator: org.eclipse.ant.internal.ui.AntUIPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/debug/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java b/debug/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java
index 36c94571fa2..06ffe1c8dd0 100644
--- a/debug/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java
+++ b/debug/org.eclipse.debug.core/core/org/eclipse/debug/core/DebugPlugin.java
@@ -1006,6 +1006,7 @@ public static Process exec(String[] cmdLine, File workingDirectory, String[] env
public static Process exec(String[] cmdLine, File workingDirectory, String[] envp, boolean mergeOutput) throws CoreException {
List factories = DebugPlugin.getDefault().getExecFactories();
Optional directory = shortenWindowsPath(workingDirectory);
+ String[] shortenedCmdLine = shortenWindowsCommandLine(cmdLine);
Optional
*/
+ @Deprecated
@FunctionalInterface
public interface IPropertyChangeListener extends EventListener {
@@ -285,6 +300,7 @@ public interface IPropertyChangeListener extends EventListener {
* @param event the property change event object describing which
* property changed and how
*/
+ @Deprecated
public void propertyChange(Preferences.PropertyChangeEvent event);
}
@@ -294,6 +310,7 @@ public interface IPropertyChangeListener extends EventListener {
* These listeners are to be informed when the current value of a property
* changes.
*/
+ @Deprecated
protected ListenerList listeners = new ListenerList<>();
/**
@@ -313,6 +330,7 @@ public interface IPropertyChangeListener extends EventListener {
* Indicates whether a value has been changed by setToDefault
* or setValue; initially false.
*/
+ @Deprecated
protected boolean dirty = false;
/**
@@ -330,6 +348,7 @@ public interface IPropertyChangeListener extends EventListener {
* @see #importPreferences(IPath)
* @see #validatePreferenceVersions(IPath)
*/
+ @Deprecated
public static void exportPreferences(IPath path) throws CoreException {
File file = path.toFile();
if (file.exists()) {
@@ -372,6 +391,7 @@ public static void exportPreferences(IPath path) throws CoreException {
* @see #exportPreferences(IPath)
* @see #validatePreferenceVersions(IPath)
*/
+ @Deprecated
public static void importPreferences(IPath path) throws CoreException {
if (!path.toFile().exists()) {
String msg = NLS.bind(PrefsMessages.preferences_fileNotFound, path.toOSString());
@@ -410,6 +430,7 @@ public static void importPreferences(IPath path) throws CoreException {
* @see #exportPreferences(IPath)
* @see #importPreferences(IPath)
*/
+ @Deprecated
public static IStatus validatePreferenceVersions(IPath file) {
PreferencesService service = PreferencesService.getDefault();
return service.validateVersions(file);
@@ -424,6 +445,7 @@ public static IStatus validatePreferenceVersions(IPath file) {
* @see #load(InputStream)
* @see #store(OutputStream, String)
*/
+ @Deprecated
public Preferences() {
defaultProperties = new Properties();
properties = new Properties(defaultProperties);
@@ -441,6 +463,7 @@ public Preferences() {
*
* @param listener a property change listener
*/
+ @Deprecated
public void addPropertyChangeListener(IPropertyChangeListener listener) {
listeners.add(listener);
}
@@ -451,6 +474,7 @@ public void addPropertyChangeListener(IPropertyChangeListener listener) {
*
* @param listener a property change listener
*/
+ @Deprecated
public void removePropertyChangeListener(IPropertyChangeListener listener) {
listeners.remove(listener);
}
@@ -464,6 +488,7 @@ public void removePropertyChangeListener(IPropertyChangeListener listener) {
* @return true if either a current value or a default
* value is known for the named property, and falseotherwise
*/
+ @Deprecated
public boolean contains(String name) {
return (properties.containsKey(name) || defaultProperties.containsKey(name));
}
@@ -479,6 +504,7 @@ public boolean contains(String name) {
* @param newValue the new value, or null if not known or not
* relevant
*/
+ @Deprecated
protected void firePropertyChangeEvent(String name, Object oldValue, Object newValue) {
if (name == null) {
throw new IllegalArgumentException();
@@ -515,6 +541,7 @@ public void run() throws Exception {
* @param name the name of the property
* @return the boolean-valued property
*/
+ @Deprecated
public boolean getBoolean(String name) {
String value = properties.getProperty(name);
if (value == null) {
@@ -542,6 +569,7 @@ public boolean getBoolean(String name) {
* @param name the name of the property
* @param value the new current value of the property
*/
+ @Deprecated
public void setValue(String name, boolean value) {
boolean defaultValue = getDefaultBoolean(name);
boolean oldValue = getBoolean(name);
@@ -573,6 +601,7 @@ public void setValue(String name, boolean value) {
* @param name the name of the property
* @return the default value of the named property
*/
+ @Deprecated
public boolean getDefaultBoolean(String name) {
String value = defaultProperties.getProperty(name);
if (value == null) {
@@ -596,6 +625,7 @@ public boolean getDefaultBoolean(String name) {
* @param name the name of the property
* @param value the new default value for the property
*/
+ @Deprecated
public void setDefault(String name, boolean value) {
defaultProperties.put(name, value ? Preferences.TRUE : Preferences.FALSE);
}
@@ -611,6 +641,7 @@ public void setDefault(String name, boolean value) {
* @param name the name of the property
* @return the double-valued property
*/
+ @Deprecated
public double getDouble(String name) {
return convertToDouble(properties.getProperty(name), DOUBLE_DEFAULT_DEFAULT);
}
@@ -635,6 +666,7 @@ public double getDouble(String name) {
* @param value the new current value of the property; must be
* a number (not a NaN)
*/
+ @Deprecated
public void setValue(String name, double value) {
if (Double.isNaN(value)) {
throw new IllegalArgumentException();
@@ -669,6 +701,7 @@ public void setValue(String name, double value) {
* @param name the name of the property
* @return the default value of the named property
*/
+ @Deprecated
public double getDefaultDouble(String name) {
return convertToDouble(defaultProperties.getProperty(name), DOUBLE_DEFAULT_DEFAULT);
}
@@ -689,6 +722,7 @@ public double getDefaultDouble(String name) {
* @param value the new default value for the property; must be
* a number (not a NaN)
*/
+ @Deprecated
public void setDefault(String name, double value) {
if (Double.isNaN(value)) {
throw new IllegalArgumentException();
@@ -729,6 +763,7 @@ private double convertToDouble(String rawPropertyValue, double defaultValue) {
* @param name the name of the property
* @return the float-valued property
*/
+ @Deprecated
public float getFloat(String name) {
return convertToFloat(properties.getProperty(name), FLOAT_DEFAULT_DEFAULT);
}
@@ -753,6 +788,7 @@ public float getFloat(String name) {
* @param value the new current value of the property; must be
* a number (not a NaN)
*/
+ @Deprecated
public void setValue(String name, float value) {
if (Float.isNaN(value)) {
throw new IllegalArgumentException();
@@ -787,6 +823,7 @@ public void setValue(String name, float value) {
* @param name the name of the property
* @return the default value of the named property
*/
+ @Deprecated
public float getDefaultFloat(String name) {
return convertToFloat(defaultProperties.getProperty(name), FLOAT_DEFAULT_DEFAULT);
}
@@ -807,6 +844,7 @@ public float getDefaultFloat(String name) {
* @param value the new default value for the property; must be
* a number (not a NaN)
*/
+ @Deprecated
public void setDefault(String name, float value) {
if (Float.isNaN(value)) {
throw new IllegalArgumentException();
@@ -847,6 +885,7 @@ private float convertToFloat(String rawPropertyValue, float defaultValue) {
* @param name the name of the property
* @return the int-valued property
*/
+ @Deprecated
public int getInt(String name) {
return convertToInt(properties.getProperty(name), INT_DEFAULT_DEFAULT);
}
@@ -870,6 +909,7 @@ public int getInt(String name) {
* @param name the name of the property
* @param value the new current value of the property
*/
+ @Deprecated
public void setValue(String name, int value) {
int defaultValue = getDefaultInt(name);
int oldValue = getInt(name);
@@ -901,6 +941,7 @@ public void setValue(String name, int value) {
* @param name the name of the property
* @return the default value of the named property
*/
+ @Deprecated
public int getDefaultInt(String name) {
return convertToInt(defaultProperties.getProperty(name), INT_DEFAULT_DEFAULT);
}
@@ -920,6 +961,7 @@ public int getDefaultInt(String name) {
* @param name the name of the property
* @param value the new default value for the property
*/
+ @Deprecated
public void setDefault(String name, int value) {
defaultProperties.put(name, Integer.toString(value));
}
@@ -957,6 +999,7 @@ private int convertToInt(String rawPropertyValue, int defaultValue) {
* @param name the name of the property
* @return the long-valued property
*/
+ @Deprecated
public long getLong(String name) {
return convertToLong(properties.getProperty(name), LONG_DEFAULT_DEFAULT);
}
@@ -980,6 +1023,7 @@ public long getLong(String name) {
* @param name the name of the property
* @param value the new current value of the property
*/
+ @Deprecated
public void setValue(String name, long value) {
long defaultValue = getDefaultLong(name);
long oldValue = getLong(name);
@@ -1011,6 +1055,7 @@ public void setValue(String name, long value) {
* @param name the name of the property
* @return the default value of the named property
*/
+ @Deprecated
public long getDefaultLong(String name) {
return convertToLong(defaultProperties.getProperty(name), LONG_DEFAULT_DEFAULT);
}
@@ -1030,6 +1075,7 @@ public long getDefaultLong(String name) {
* @param name the name of the property
* @param value the new default value for the property
*/
+ @Deprecated
public void setDefault(String name, long value) {
defaultProperties.put(name, Long.toString(value));
}
@@ -1066,6 +1112,7 @@ private long convertToLong(String rawPropertyValue, long defaultValue) {
* @param name the name of the property
* @return the string-valued property
*/
+ @Deprecated
public String getString(String name) {
String value = properties.getProperty(name);
return (value != null ? value : STRING_DEFAULT_DEFAULT);
@@ -1090,6 +1137,7 @@ public String getString(String name) {
* @param name the name of the property
* @param value the new current value of the property
*/
+ @Deprecated
public void setValue(String name, String value) {
if (value == null) {
throw new IllegalArgumentException();
@@ -1124,6 +1172,7 @@ public void setValue(String name, String value) {
* @param name the name of the property
* @return the default value of the named property
*/
+ @Deprecated
public String getDefaultString(String name) {
String value = defaultProperties.getProperty(name);
return (value != null ? value : STRING_DEFAULT_DEFAULT);
@@ -1144,6 +1193,7 @@ public String getDefaultString(String name) {
* @param name the name of the property
* @param value the new default value for the property
*/
+ @Deprecated
public void setDefault(String name, String value) {
if (value == null) {
throw new IllegalArgumentException();
@@ -1161,6 +1211,7 @@ public void setDefault(String name, String value) {
* and false otherwise (including the case where the property
* is unknown to this object)
*/
+ @Deprecated
public boolean isDefault(String name) {
return !properties.containsKey(name);
}
@@ -1184,6 +1235,7 @@ public boolean isDefault(String name) {
*
* @param name the name of the property
*/
+ @Deprecated
public void setToDefault(String name) {
Object oldPropertyValue = properties.remove(name);
if (oldPropertyValue != null) {
@@ -1201,6 +1253,7 @@ public void setToDefault(String name) {
*
* @return an array of property names
*/
+ @Deprecated
public String[] propertyNames() {
return properties.keySet().toArray(EMPTY_STRING_ARRAY);
}
@@ -1211,6 +1264,7 @@ public String[] propertyNames() {
*
* @return an array of property names
*/
+ @Deprecated
public String[] defaultPropertyNames() {
return defaultProperties.keySet().toArray(EMPTY_STRING_ARRAY);
}
@@ -1223,6 +1277,7 @@ public String[] defaultPropertyNames() {
* known to this preference object has a current value different from its
* default value, and false otherwise
*/
+ @Deprecated
public boolean needsSaving() {
return dirty;
}
@@ -1242,6 +1297,7 @@ public boolean needsSaving() {
* @exception IOException if there is a problem saving this preference object
* @see Properties#store(OutputStream,String)
*/
+ @Deprecated
public void store(OutputStream out, String header) throws IOException {
properties.store(out, header);
dirty = false;
@@ -1258,6 +1314,7 @@ public void store(OutputStream out, String header) throws IOException {
* object
* @see java.util.Properties#load(InputStream)
*/
+ @Deprecated
public void load(InputStream in) throws IOException {
properties.load(in);
dirty = false;
diff --git a/runtime/bundles/org.eclipse.core.tools/about.ini b/runtime/bundles/org.eclipse.core.tools/about.ini
index f893efd31f2..130e80d1ed7 100644
--- a/runtime/bundles/org.eclipse.core.tools/about.ini
+++ b/runtime/bundles/org.eclipse.core.tools/about.ini
@@ -11,7 +11,7 @@ aboutText=%blurb
# needed for primary features only
# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.gif
+featureImage=eclipse32.svg
# Property "aboutImage" contains path to product image (500x330 or 115x164)
# needed for primary features only
diff --git a/runtime/bundles/org.eclipse.core.tools/build.properties b/runtime/bundles/org.eclipse.core.tools/build.properties
index b0d9780d0bb..561ae6d5e00 100644
--- a/runtime/bundles/org.eclipse.core.tools/build.properties
+++ b/runtime/bundles/org.eclipse.core.tools/build.properties
@@ -23,5 +23,6 @@ bin.includes = plugin.xml,\
plugin.properties,\
about.ini,\
about.mappings,\
- about.properties
+ about.properties,\
+ eclipse32.svg
qualifier=context
diff --git a/runtime/bundles/org.eclipse.core.tools/eclipse32.svg b/runtime/bundles/org.eclipse.core.tools/eclipse32.svg
new file mode 100644
index 00000000000..4f0e95ebbf3
--- /dev/null
+++ b/runtime/bundles/org.eclipse.core.tools/eclipse32.svg
@@ -0,0 +1,234 @@
+
+
+
+
diff --git a/runtime/tests/org.eclipse.core.contenttype.tests/META-INF/MANIFEST.MF b/runtime/tests/org.eclipse.core.contenttype.tests/META-INF/MANIFEST.MF
index b7070695144..ddbb119a28c 100644
--- a/runtime/tests/org.eclipse.core.contenttype.tests/META-INF/MANIFEST.MF
+++ b/runtime/tests/org.eclipse.core.contenttype.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.core.contenttype.tests;singleton:=true
-Bundle-Version: 1.4.100.qualifier
+Bundle-Version: 1.4.200.qualifier
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Export-Package:
@@ -11,8 +11,8 @@ Require-Bundle:
org.eclipse.core.contenttype;bundle-version="3.6",
org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)"
Import-Package: org.assertj.core.api,
- org.junit.jupiter.api,
- org.junit.platform.suite.api
+ org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-17
Bundle-ActivationPolicy: lazy
Automatic-Module-Name: org.eclipse.core.contenttype.tests
diff --git a/runtime/tests/org.eclipse.core.expressions.tests/META-INF/MANIFEST.MF b/runtime/tests/org.eclipse.core.expressions.tests/META-INF/MANIFEST.MF
index 69e2e7115c2..1c9eae3130f 100644
--- a/runtime/tests/org.eclipse.core.expressions.tests/META-INF/MANIFEST.MF
+++ b/runtime/tests/org.eclipse.core.expressions.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.core.expressions.tests; singleton:=true
-Bundle-Version: 3.7.500.qualifier
+Bundle-Version: 3.7.600.qualifier
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Export-Package:
@@ -11,9 +11,9 @@ Require-Bundle:
org.eclipse.core.expressions;bundle-version="[3.4.100,4.0.0)",
org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)"
Import-Package: org.assertj.core.api,
- org.junit.jupiter.api,
- org.junit.jupiter.api.function,
- org.junit.platform.suite.api
+ org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.function;version="[5.14.0,6.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-17
Eclipse-BundleShape: dir
Bundle-ActivationPolicy: lazy
diff --git a/runtime/tests/org.eclipse.core.tests.harness/META-INF/MANIFEST.MF b/runtime/tests/org.eclipse.core.tests.harness/META-INF/MANIFEST.MF
index 4487952ac0c..4e515734337 100644
--- a/runtime/tests/org.eclipse.core.tests.harness/META-INF/MANIFEST.MF
+++ b/runtime/tests/org.eclipse.core.tests.harness/META-INF/MANIFEST.MF
@@ -14,12 +14,12 @@ Require-Bundle: org.junit,
org.eclipse.jdt.junit4.runtime,
org.eclipse.jdt.junit5.runtime,
org.eclipse.pde.junit.runtime,
- junit-platform-launcher,
- junit-platform-engine,
- junit-jupiter-engine,
- junit-vintage-engine,
- junit-platform-suite-commons,
- junit-platform-suite-engine
+ junit-platform-launcher;bundle-version="[1.14.0,2.0.0)",
+ junit-platform-engine;bundle-version="[1.14.0,2.0.0)",
+ junit-jupiter-engine;bundle-version="[5.14.0,6.0.0)",
+ junit-vintage-engine;bundle-version="[5.14.0,6.0.0)",
+ junit-platform-suite-commons;bundle-version="[1.14.0,2.0.0)",
+ junit-platform-suite-engine;bundle-version="[1.14.0,2.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-17
Import-Package: javax.xml.parsers,
@@ -31,14 +31,14 @@ Import-Package: javax.xml.parsers,
net.bytebuddy,
org.apiguardian.api,
org.assertj.core.api,
- org.junit.jupiter.api,
- org.junit.jupiter.api.condition,
- org.junit.jupiter.api.extension,
- org.junit.jupiter.migrationsupport,
- org.junit.jupiter.params,
- org.junit.platform.commons,
- org.junit.platform.runner,
- org.junit.platform.suite.api,
+ org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.condition;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.extension;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.migrationsupport;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.params;version="[5.14.0,6.0.0)",
+ org.junit.platform.commons;version="[1.14.0,2.0.0)",
+ org.junit.platform.runner;version="[1.14.0,2.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)",
org.opentest4j,
org.w3c.dom,
org.xml.sax
diff --git a/runtime/tests/org.eclipse.core.tests.runtime/META-INF/MANIFEST.MF b/runtime/tests/org.eclipse.core.tests.runtime/META-INF/MANIFEST.MF
index 31efec75674..2487c0c862b 100644
--- a/runtime/tests/org.eclipse.core.tests.runtime/META-INF/MANIFEST.MF
+++ b/runtime/tests/org.eclipse.core.tests.runtime/META-INF/MANIFEST.MF
@@ -15,11 +15,12 @@ Require-Bundle: org.junit,
org.eclipse.core.runtime;bundle-version="3.29.0",
org.eclipse.core.tests.harness;bundle-version="3.11.0"
Import-Package: org.assertj.core.api,
- org.junit.jupiter.api,
- org.junit.jupiter.api.extension,
- org.junit.jupiter.api.function,
- org.junit.jupiter.api.io,
- org.junit.platform.suite.api
+ org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.condition;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.extension;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.function;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.io;version="[5.14.0,6.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-17
Plugin-Class: org.eclipse.core.tests.runtime.RuntimeTestsPlugin
diff --git a/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/AllInternalRuntimeTests.java b/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/AllInternalRuntimeTests.java
index 765014a6b7a..57bff2dcc33 100644
--- a/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/AllInternalRuntimeTests.java
+++ b/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/AllInternalRuntimeTests.java
@@ -18,6 +18,8 @@
@Suite
@SelectClasses({ //
+ CollectionTrustManagerTest.class, //
+ KeyStoreUtilTest.class, //
LogSerializationTest.class, //
PlatformURLLocalTest.class, //
PlatformURLSessionTest.class })
diff --git a/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/CollectionTrustManagerTest.java b/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/CollectionTrustManagerTest.java
new file mode 100644
index 00000000000..ac5c36feb96
--- /dev/null
+++ b/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/CollectionTrustManagerTest.java
@@ -0,0 +1,275 @@
+/*******************************************************************************
+ * Copyright (c) 2025 SAP SE 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:
+ * SAP SE - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.core.tests.internal.runtime;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.arrayContaining;
+import static org.hamcrest.Matchers.sameInstance;
+import static org.junit.Assert.assertThrows;
+
+import java.math.BigInteger;
+import java.security.Principal;
+import java.security.PublicKey;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+import javax.net.ssl.X509TrustManager;
+import org.eclipse.core.internal.runtime.CollectionTrustManager;
+import org.junit.Test;
+
+@SuppressWarnings("restriction")
+public class CollectionTrustManagerTest {
+
+ @Test
+ public void testAcceptedIssuers() throws Exception {
+ X509Certificate[] acceptedIssuers1 = { new StubX509Certificate(), new StubX509Certificate() };
+ X509Certificate[] acceptedIssuers2 = { new StubX509Certificate(), new StubX509Certificate() };
+ X509TrustManager manager1 = new StubX509TrustManager(List.of(acceptedIssuers1));
+ X509TrustManager manager2 = new StubX509TrustManager(List.of(acceptedIssuers2));
+ CollectionTrustManager collectionTrustManager = new CollectionTrustManager(Arrays.asList(manager1, manager2));
+
+ X509Certificate[] allAcceptedIssuers = collectionTrustManager.getAcceptedIssuers();
+
+ assertThat(allAcceptedIssuers,
+ arrayContaining(acceptedIssuers1[0], acceptedIssuers1[1], acceptedIssuers2[0], acceptedIssuers2[1]));
+ }
+
+ @Test
+ public void testCheckClientTrusted() throws Exception {
+ X509Certificate[] chainTrustedBy1 = { new StubX509Certificate() };
+ X509Certificate[] chainTrustedBy2 = { new StubX509Certificate() };
+ X509Certificate[] chainTrustedByNone = { new StubX509Certificate() };
+ X509Certificate[] chainTrustedByBoth = { new StubX509Certificate() };
+ String authType = "testAuthType";
+
+ StubX509TrustManager manager1 = new StubX509TrustManager(List.of(chainTrustedBy1, chainTrustedByBoth));
+ StubX509TrustManager manager2 = new StubX509TrustManager(List.of(chainTrustedBy2, chainTrustedByBoth));
+
+ CollectionTrustManager collectionTrustManager = new CollectionTrustManager(Arrays.asList(manager1, manager2));
+
+ collectionTrustManager.checkClientTrusted(chainTrustedBy1, authType);
+ collectionTrustManager.checkClientTrusted(chainTrustedBy2, authType);
+ collectionTrustManager.checkClientTrusted(chainTrustedByBoth, authType);
+
+ CertificateException exception = assertThrows(CertificateException.class, () -> {
+ collectionTrustManager.checkClientTrusted(chainTrustedByNone, authType);
+ });
+ assertThat(exception, sameInstance(manager1.exception)); // first in the list
+ assertThat(exception.getSuppressed(), arrayContaining(sameInstance(manager2.exception))); // second, suppressed
+ }
+
+ @Test
+ public void testCheckServerTrusted() throws Exception {
+ X509Certificate[] chainTrustedBy1 = { new StubX509Certificate() };
+ X509Certificate[] chainTrustedBy2 = { new StubX509Certificate() };
+ X509Certificate[] chainTrustedByNone = { new StubX509Certificate() };
+ X509Certificate[] chainTrustedByBoth = { new StubX509Certificate() };
+ String authType = "testAuthType";
+
+ StubX509TrustManager manager1 = new StubX509TrustManager(List.of(chainTrustedBy1, chainTrustedByBoth));
+ StubX509TrustManager manager2 = new StubX509TrustManager(List.of(chainTrustedBy2, chainTrustedByBoth));
+
+ CollectionTrustManager collectionTrustManager = new CollectionTrustManager(Arrays.asList(manager1, manager2));
+
+ collectionTrustManager.checkServerTrusted(chainTrustedBy1, authType);
+ collectionTrustManager.checkServerTrusted(chainTrustedBy2, authType);
+ collectionTrustManager.checkServerTrusted(chainTrustedByBoth, authType);
+
+ CertificateException exception = assertThrows(CertificateException.class, () -> {
+ collectionTrustManager.checkServerTrusted(chainTrustedByNone, authType);
+ });
+ assertThat(exception, sameInstance(manager1.exception)); // first in the list
+ assertThat(exception.getSuppressed(), arrayContaining(sameInstance(manager2.exception))); // second, suppressed
+ }
+
+ private static class StubX509TrustManager implements X509TrustManager {
+
+ public final CertificateException exception = new CertificateException();
+ private List trusted;
+
+ public StubX509TrustManager(List trusted) {
+ this.trusted = trusted;
+ }
+
+ @Override
+ public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
+ for (X509Certificate[] trustedChain : trusted) {
+ if (Arrays.equals(chain, trustedChain)) {
+ return;
+ }
+ }
+ throw exception;
+ }
+
+ @Override
+ public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
+ for (X509Certificate[] trustedChain : trusted) {
+ if (Arrays.equals(chain, trustedChain)) {
+ return;
+ }
+ }
+ throw exception;
+ }
+
+ @Override
+ public X509Certificate[] getAcceptedIssuers() {
+ return trusted.stream().flatMap(Arrays::stream).toArray(X509Certificate[]::new);
+ }
+
+ }
+
+ private static class StubX509Certificate extends X509Certificate {
+
+ @Override
+ public boolean hasUnsupportedCriticalExtension() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public Set getCriticalExtensionOIDs() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public Set getNonCriticalExtensionOIDs() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public byte[] getExtensionValue(String oid) {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public void checkValidity() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public void checkValidity(Date date) {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public int getVersion() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public BigInteger getSerialNumber() {
+ throw new IllegalStateException();
+ }
+
+ @SuppressWarnings("deprecation")
+ @Override
+ public Principal getIssuerDN() {
+ throw new IllegalStateException();
+ }
+
+ @SuppressWarnings("deprecation")
+ @Override
+ public Principal getSubjectDN() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public Date getNotBefore() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public Date getNotAfter() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public byte[] getTBSCertificate() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public byte[] getSignature() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public String getSigAlgName() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public String getSigAlgOID() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public byte[] getSigAlgParams() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean[] getIssuerUniqueID() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean[] getSubjectUniqueID() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public boolean[] getKeyUsage() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public int getBasicConstraints() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public byte[] getEncoded() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public void verify(PublicKey key) {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public void verify(PublicKey key, String sigProvider) {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public PublicKey getPublicKey() {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public String toString() {
+ return Integer.toHexString(System.identityHashCode(this));
+ }
+
+ @Override
+ public boolean equals(Object other) {
+ return other == this;
+ }
+
+ }
+}
diff --git a/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/KeyStoreUtilTest.java b/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/KeyStoreUtilTest.java
new file mode 100644
index 00000000000..86409911337
--- /dev/null
+++ b/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/KeyStoreUtilTest.java
@@ -0,0 +1,328 @@
+/*******************************************************************************
+ * Copyright (c) 2025 SAP SE 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:
+ * SAP SE - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.core.tests.internal.runtime;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.arrayWithSize;
+import static org.hamcrest.Matchers.empty;
+import static org.hamcrest.Matchers.emptyArray;
+import static org.hamcrest.Matchers.hasItem;
+import static org.hamcrest.Matchers.hasSize;
+import static org.hamcrest.Matchers.instanceOf;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.matchesRegex;
+import static org.hamcrest.Matchers.not;
+import static org.hamcrest.Matchers.nullValue;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.StandardCopyOption;
+import java.security.GeneralSecurityException;
+import java.security.KeyManagementException;
+import java.security.KeyStore;
+import java.security.SecureRandom;
+import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.net.ssl.KeyManager;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509KeyManager;
+import javax.net.ssl.X509TrustManager;
+import javax.security.auth.x500.X500Principal;
+import org.eclipse.core.internal.runtime.CollectionTrustManager;
+import org.eclipse.core.internal.runtime.KeyStoreUtil;
+import org.eclipse.core.runtime.Platform;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledOnOs;
+import org.junit.jupiter.api.condition.OS;
+import org.junit.jupiter.api.io.TempDir;
+
+@SuppressWarnings("restriction")
+public class KeyStoreUtilTest {
+
+ private static final List SYSTEM_PROPERTIES_TO_BACKUP_AND_RESTORE = List.of( //
+ "eclipse.platform.mergeTrust", //
+ "javax.net.ssl.trustStore", //
+ "javax.net.ssl.trustStorePassword", //
+ "javax.net.ssl.trustStoreProvider", //
+ "javax.net.ssl.trustStoreType", //
+ "javax.net.ssl.keyStore", //
+ "javax.net.ssl.keyStorePassword", //
+ "javax.net.ssl.keyStoreProvider", //
+ "javax.net.ssl.keyStoreType");
+
+ @TempDir
+ private Path tempDir;
+
+ private Map systemPropertyBackups = new HashMap<>();
+ private SSLContext previousSslContext;
+
+ @BeforeEach
+ public void setup() throws Exception {
+ for (String property : SYSTEM_PROPERTIES_TO_BACKUP_AND_RESTORE) {
+ systemPropertyBackups.put(property, System.getProperty(property, null));
+ }
+ previousSslContext = SSLContext.getDefault();
+ System.setProperty("eclipse.platform.mergeTrust", "true");
+ }
+
+ @AfterEach
+ public void teardown() {
+ systemPropertyBackups.forEach((property, backupValue) -> {
+ if (backupValue == null) {
+ System.clearProperty(property);
+ } else {
+ System.setProperty(property, backupValue);
+ }
+ });
+ SSLContext.setDefault(previousSslContext);
+ }
+
+ @Test
+ public void loadTrustManagers_Default() throws Exception {
+
+ TestSpecificKeyStoreUtil keyStoreUtil = new TestSpecificKeyStoreUtil();
+
+ keyStoreUtil.setUpSslContext();
+
+ assertThat(SSLContext.getDefault(), is(keyStoreUtil.recordedSslContext));
+
+ assertThat(keyStoreUtil.recordedTrustManagers, arrayWithSize(1));
+ assertThat(keyStoreUtil.recordedTrustManagers[0], instanceOf(CollectionTrustManager.class));
+ assertThat(((CollectionTrustManager) keyStoreUtil.recordedTrustManagers[0]).getAcceptedIssuers(),
+ not(emptyArray()));
+
+ CollectionTrustManager tm = (CollectionTrustManager) keyStoreUtil.recordedTrustManagers[0];
+
+ // jvm
+ assertThat(tm.getTrustManagers(), not(empty()));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores, not(empty()));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores.get(0).manager(), is(tm.getTrustManagers().get(0)));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores.get(0).store(), is(nullValue()));
+ assertThat(
+ Arrays.stream(tm.getTrustManagers().get(0).getAcceptedIssuers())
+ .map(X509Certificate::getSubjectX500Principal).map(X500Principal::getName).toList(),
+ hasItem(matchesRegex("(?i).*digicert.*root.*")));
+
+ if (OS.WINDOWS.equals(OS.current())) {
+ assertThat(tm.getTrustManagers(), hasSize(2));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores, hasSize(2));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores.get(1).manager(),
+ is(tm.getTrustManagers().get(1)));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores.get(1).store().getType(), is("Windows-ROOT"));
+ assertThat(
+ Arrays.stream(tm.getTrustManagers().get(1).getAcceptedIssuers())
+ .map(X509Certificate::getSubjectX500Principal).map(X500Principal::getName).toList(),
+ hasItem(matchesRegex("(?i).*digicert.*root.*")));
+ } else if (OS.MAC.equals(OS.current())) {
+ assertThat(tm.getTrustManagers(), hasSize(2));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores, hasSize(2));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores.get(1).manager(),
+ is(tm.getTrustManagers().get(1)));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores.get(1).store().getType(), is("KeychainStore"));
+ // Apple KeychainStore only includes the 'System' certificates
+ // (enterprise/admin managed)
+ // but not the 'System Roots' ones (public CAs).
+ // There's nothing guaranteed / deterministic in the 'System' on CI machines
+ // that we could check for here...
+ } else {
+ assertThat(tm.getTrustManagers(), hasSize(1));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores, hasSize(1));
+ }
+
+ // no private keys
+ assertThat(keyStoreUtil.recordedKeyManagers, emptyArray());
+ }
+
+ @Test
+ public void loadTrustManagers_TrustSystemPropertiesPointToCustomTrustStore() throws Exception {
+
+ System.setProperty("javax.net.ssl.trustStore", copyResourceToTempDirAndGetPath("truststore.jks"));
+ System.setProperty("javax.net.ssl.trustStorePassword", "verysecret");
+
+ TestSpecificKeyStoreUtil keyStoreUtil = new TestSpecificKeyStoreUtil();
+
+ keyStoreUtil.setUpSslContext();
+
+ assertThat(SSLContext.getDefault(), is(keyStoreUtil.recordedSslContext));
+
+ assertThat(keyStoreUtil.recordedTrustManagers, arrayWithSize(1));
+ assertThat(((CollectionTrustManager) keyStoreUtil.recordedTrustManagers[0]).getAcceptedIssuers(),
+ not(emptyArray()));
+
+ CollectionTrustManager tm = (CollectionTrustManager) keyStoreUtil.recordedTrustManagers[0];
+
+ assertThat(tm.getTrustManagers(), hasSize(1)); // only the properties-based store
+
+ assertThat(
+ Arrays.stream(tm.getTrustManagers().get(0).getAcceptedIssuers())
+ .map(X509Certificate::getSubjectX500Principal).map(X500Principal::getName).toList(),
+ hasItem("CN=Test,C=DE"));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores, hasSize(1));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores.get(0).manager(), is(tm.getTrustManagers().get(0)));
+ // null caused KeyManagerFactory to load default system properties
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores.get(0).store(), is(nullValue()));
+
+ assertThat(keyStoreUtil.recordedKeyManagers, emptyArray());
+ }
+
+ @Test
+ @EnabledOnOs({ OS.WINDOWS, OS.MAC })
+ public void loadTrustManagers_TrustSystemPropertiesPointToPlatformSpecificKeystore() throws Exception {
+ if (OS.WINDOWS.equals(OS.current())) {
+ System.setProperty("javax.net.ssl.trustStore", "NONE");
+ System.setProperty("javax.net.ssl.trustStoreType", "Windows-ROOT");
+ } else if (OS.MAC.equals(OS.current())) {
+ System.setProperty("javax.net.ssl.trustStore", "NONE");
+ System.setProperty("javax.net.ssl.trustStoreType", "KeychainStore");
+ System.setProperty("javax.net.ssl.trustStoreProvider", "Apple");
+ }
+
+ TestSpecificKeyStoreUtil keyStoreUtil = new TestSpecificKeyStoreUtil();
+
+ keyStoreUtil.setUpSslContext();
+
+ assertThat(SSLContext.getDefault(), is(keyStoreUtil.recordedSslContext));
+
+ assertThat(keyStoreUtil.recordedTrustManagers, arrayWithSize(1));
+
+ CollectionTrustManager tm = (CollectionTrustManager) keyStoreUtil.recordedTrustManagers[0];
+
+ assertThat(tm.getTrustManagers(), hasSize(1)); // only the properties-based store
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores, hasSize(1));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores.get(0).manager(), is(tm.getTrustManagers().get(0)));
+ assertThat(keyStoreUtil.createdTrustManagersAndKeyStores.get(0).store(), is(nullValue()));
+
+ if (OS.WINDOWS.equals(OS.current())) {
+ assertThat(((CollectionTrustManager) keyStoreUtil.recordedTrustManagers[0]).getAcceptedIssuers(),
+ not(emptyArray()));
+ assertThat(
+ Arrays.stream(tm.getTrustManagers().get(0).getAcceptedIssuers())
+ .map(X509Certificate::getSubjectX500Principal).map(X500Principal::getName).toList(),
+ hasItem(matchesRegex("(?i).*digicert.*root.*")));
+ } else if (OS.MAC.equals(OS.current())) {
+ // Apple KeychainStore only includes the 'System' certificates
+ // (enterprise/admin managed)
+ // but not the 'System Roots' ones (public CAs).
+ // There's nothing guaranteed / deterministic in the 'System' on CI machines
+ // that we could check for here...
+ }
+ }
+
+ @Test
+ public void loadKeyManagers_Default() throws Exception {
+
+ TestSpecificKeyStoreUtil keyStoreUtil = new TestSpecificKeyStoreUtil();
+
+ keyStoreUtil.setUpSslContext();
+
+ assertThat(SSLContext.getDefault(), is(keyStoreUtil.recordedSslContext));
+
+ assertThat(keyStoreUtil.recordedKeyManagers, emptyArray());
+ assertThat(keyStoreUtil.createdKeyManagersAndKeyStores, hasSize(0));
+ }
+
+ @Test
+ public void loadKeyManagers_KeySystemPropertiesPointToCustomKeyStore() throws Exception {
+
+ System.setProperty("javax.net.ssl.keyStore", copyResourceToTempDirAndGetPath("keystore.p12"));
+ System.setProperty("javax.net.ssl.keyStorePassword", "verysecret");
+ System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
+
+ TestSpecificKeyStoreUtil keyStoreUtil = new TestSpecificKeyStoreUtil();
+
+ keyStoreUtil.setUpSslContext();
+
+ assertThat(SSLContext.getDefault(), is(keyStoreUtil.recordedSslContext));
+
+ assertThat(keyStoreUtil.recordedKeyManagers, arrayWithSize(1));
+ assertThat(keyStoreUtil.recordedKeyManagers[0], instanceOf(X509KeyManager.class));
+
+ X509KeyManager km = (X509KeyManager) keyStoreUtil.recordedKeyManagers[0];
+
+ assertThat(keyStoreUtil.createdKeyManagersAndKeyStores, hasSize(1));
+ assertThat(keyStoreUtil.createdKeyManagersAndKeyStores.get(0).manager(), is(km));
+ assertThat(keyStoreUtil.createdKeyManagersAndKeyStores.get(0).store().getType(), is("PKCS12"));
+
+ assertThat(km.getPrivateKey("test.key"), not(nullValue()));
+ }
+
+ @Test
+ public void optInSystemPropertyNotSet() throws Exception {
+ System.clearProperty("eclipse.platform.mergeTrust");
+
+ TestSpecificKeyStoreUtil keyStoreUtil = new TestSpecificKeyStoreUtil();
+
+ keyStoreUtil.setUpSslContext();
+
+ assertThat(SSLContext.getDefault(), is(previousSslContext));
+ }
+
+ private String copyResourceToTempDirAndGetPath(String resourceName) throws IOException {
+ Path file = tempDir.resolve(resourceName);
+ Files.copy(getClass().getResourceAsStream(resourceName), file, StandardCopyOption.REPLACE_EXISTING);
+ return file.toAbsolutePath().toString();
+ }
+
+ private static final class TestSpecificKeyStoreUtil extends KeyStoreUtil {
+
+ public TestSpecificKeyStoreUtil() {
+ super(Platform.getOS());
+ }
+
+ public static record X509TrustManagerAndKeyStore(X509TrustManager manager, KeyStore store) {
+ }
+
+ public static record X509KeyManagerAndKeyStore(X509KeyManager manager, KeyStore store) {
+ }
+
+ public TrustManager[] recordedTrustManagers;
+ public KeyManager[] recordedKeyManagers;
+ public SSLContext recordedSslContext;
+ public final List createdTrustManagersAndKeyStores = new ArrayList<>();
+ public final List createdKeyManagersAndKeyStores = new ArrayList<>();
+
+ @Override
+ protected X509TrustManager createX509TrustManager(KeyStore keyStore) throws GeneralSecurityException {
+ X509TrustManager manager = super.createX509TrustManager(keyStore);
+ this.createdTrustManagersAndKeyStores.add(new X509TrustManagerAndKeyStore(manager, keyStore));
+ return manager;
+ }
+
+ @Override
+ protected X509KeyManager createX509KeyManager(KeyStore keyStore, char[] password)
+ throws GeneralSecurityException {
+ X509KeyManager manager = super.createX509KeyManager(keyStore, password);
+ this.createdKeyManagersAndKeyStores.add(new X509KeyManagerAndKeyStore(manager, keyStore));
+ return manager;
+ }
+
+ @Override
+ protected void initSSLContext(SSLContext context, TrustManager[] trustManagers, KeyManager[] keyManagers,
+ SecureRandom random) throws KeyManagementException {
+ this.recordedTrustManagers = trustManagers;
+ this.recordedKeyManagers = keyManagers;
+ this.recordedSslContext = context;
+ super.initSSLContext(context, trustManagers, keyManagers, random);
+ }
+ }
+
+}
diff --git a/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/keystore.p12 b/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/keystore.p12
new file mode 100644
index 00000000000..b86cf756e4e
Binary files /dev/null and b/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/keystore.p12 differ
diff --git a/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/truststore.jks b/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/truststore.jks
new file mode 100644
index 00000000000..792a80521e3
Binary files /dev/null and b/runtime/tests/org.eclipse.core.tests.runtime/src/org/eclipse/core/tests/internal/runtime/truststore.jks differ
diff --git a/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java b/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java
index 9d70bbe589f..4d749396440 100644
--- a/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java
+++ b/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/EditionSelectionDialog.java
@@ -237,6 +237,7 @@ public int hashCode() {
* @param parent if not null the new dialog stays on top of this parent shell
* @param bundle ResourceBundle to configure the dialog
*/
+ @Deprecated
public EditionSelectionDialog(Shell parent, ResourceBundle bundle) {
super(parent, bundle);
}
@@ -268,6 +269,7 @@ public void setStatusMessage(String message) {
* @param contextId the help context id.
* @since 3.2
*/
+ @Deprecated
@Override
public void setHelpContextId(String contextId) {
super.setHelpContextId(contextId);
@@ -279,6 +281,7 @@ public void setHelpContextId(String contextId) {
* @param titleArgument an optional argument for the edition pane's title
* @since 2.0
*/
+ @Deprecated
public void setEditionTitleArgument(String titleArgument) {
fTitleArg= titleArgument;
}
@@ -289,6 +292,7 @@ public void setEditionTitleArgument(String titleArgument) {
* @param titleImage an optional image for the edition pane's title
* @since 2.0
*/
+ @Deprecated
public void setEditionTitleImage(Image titleImage) {
fTitleImage= titleImage;
}
@@ -305,6 +309,7 @@ public void setEditionTitleImage(Image titleImage) {
* it is an ITypedElement returned from IStructureCreator.locate(path, item)
* @since 2.0
*/
+ @Deprecated
public ITypedElement selectPreviousEdition(final ITypedElement target, ITypedElement[] inputEditions, Object ppath) {
Assert.isNotNull(target);
fTargetPair= new Pair(null, target);
@@ -380,6 +385,7 @@ public ITypedElement selectPreviousEdition(final ITypedElement target, ITypedEle
* if path was null; otherwise
* it is an ITypedElement returned from IStructureCreator.locate(path, item)
*/
+ @Deprecated
public ITypedElement selectEdition(final ITypedElement target, ITypedElement[] inputEditions, Object ppath) {
Assert.isNotNull(target);
@@ -544,6 +550,7 @@ private Pair createPair(IStructureCreator sc, Object path, ITypedElement input)
* @param hide if true identical entries are hidden; otherwise they are shown.
* @since 2.0
*/
+ @Deprecated
public void setHideIdenticalEntries(boolean hide) {
fHideIdentical= hide;
}
@@ -554,6 +561,7 @@ public void setHideIdenticalEntries(boolean hide) {
* @param isRight if true target is shown on right hand side.
* @since 2.0
*/
+ @Deprecated
public void setTargetIsRight(boolean isRight) {
fTargetIsRight= isRight;
}
@@ -565,6 +573,7 @@ public void setTargetIsRight(boolean isRight) {
* @param addMode if true dialog is in 'add' mode.
* @since 2.0
*/
+ @Deprecated
public void setAddMode(boolean addMode) {
fAddMode= addMode;
fMultiSelect= addMode;
@@ -577,6 +586,7 @@ public void setAddMode(boolean addMode) {
* @param compareMode if true dialog is in 'add' mode.
* @since 2.0
*/
+ @Deprecated
public void setCompareMode(boolean compareMode) {
fCompareMode= compareMode;
fStructureCompare= fCompareMode && !fAddMode;
@@ -593,6 +603,7 @@ public void setCompareMode(boolean compareMode) {
*
* @return the last specified target or a subsection thereof.
*/
+ @Deprecated
public ITypedElement getTarget() {
return fTargetPair.getItem();
}
@@ -604,6 +615,7 @@ public ITypedElement getTarget() {
* @return the selected editions as an array.
* @since 2.1
*/
+ @Deprecated
public ITypedElement[] getSelection() {
ArrayList result= new ArrayList<>();
if (fMemberSelection != null) {
@@ -635,6 +647,7 @@ public ITypedElement[] getSelection() {
* @param item if a path has been specified in selectEdition a sub element of the given target; otherwise the same as target
* @return a label the target side of a compare viewer
*/
+ @Deprecated
protected String getTargetLabel(ITypedElement target, ITypedElement item) {
String format= null;
if (target instanceof ResourceNode) {
@@ -680,6 +693,7 @@ private boolean hasVariable(String string) {
* @param item if a path has been specified in selectEdition a sub element of the given selectedEdition; otherwise the same as selectedEdition
* @return a label for the edition side of a compare viewer
*/
+ @Deprecated
protected String getEditionLabel(ITypedElement selectedEdition, ITypedElement item) {
String format= null;
if (selectedEdition instanceof ResourceNode) {
@@ -721,6 +735,7 @@ protected String getEditionLabel(ITypedElement selectedEdition, ITypedElement it
* @return a label of a node in the edition tree viewer
* @since 2.0
*/
+ @Deprecated
protected String getShortEditionLabel(ITypedElement edition, ITypedElement item, Date date) {
String format= null;
if (edition instanceof ResourceNode) {
@@ -752,6 +767,7 @@ protected String getShortEditionLabel(ITypedElement edition, ITypedElement item,
* @return a label the edition side of a compare viewer
* @since 2.0
*/
+ @Deprecated
protected Image getEditionImage(ITypedElement selectedEdition, ITypedElement item) {
if (selectedEdition instanceof ResourceNode) {
return selectedEdition.getImage();
@@ -769,6 +785,7 @@ protected Image getEditionImage(ITypedElement selectedEdition, ITypedElement ite
return null;
}
+ @Deprecated
@Override
protected synchronized Control createDialogArea(Composite parent2) {
@@ -905,6 +922,7 @@ protected Viewer getViewer(Viewer oldViewer, Object input) {
return parent;
}
+ @Deprecated
@Override
protected void createButtonsForButtonBar(Composite parent) {
String buttonLabel= Utilities.getString(fBundle, "buttonLabel", IDialogConstants.OK_LABEL); //$NON-NLS-1$
@@ -923,6 +941,7 @@ protected void createButtonsForButtonBar(Composite parent) {
* Overidden to disable dismiss on double click in compare mode.
* @since 2.0
*/
+ @Deprecated
@Override
protected void okPressed() {
if (fCompareMode) {
diff --git a/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/IStreamMerger.java b/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/IStreamMerger.java
index 6c2c622ea0f..70fa80fcad3 100644
--- a/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/IStreamMerger.java
+++ b/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/IStreamMerger.java
@@ -35,16 +35,19 @@ public interface IStreamMerger {
/**
* Indicates the successful completion of the merge operation (value IStatus.OK)
*/
+ @Deprecated
public static final int OK= IStatus.OK;
/**
* Indicates that a change conflict prevented the merge from successful completion (value 1)
*/
+ @Deprecated
public static final int CONFLICT= 1;
/**
* Status code describing an internal error (value 2)
*/
+ @Deprecated
public static final int INTERNAL_ERROR= 2;
/**
@@ -65,6 +68,7 @@ public interface IStreamMerger {
* @param monitor reports progress of the merge operation
* @return returns the completion status of the operation
*/
+ @Deprecated
IStatus merge(OutputStream output, String outputEncoding,
InputStream ancestor, String ancestorEncoding,
InputStream target, String targetEncoding,
diff --git a/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithOtherResourceAction.java b/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithOtherResourceAction.java
index a523d7d5611..28d442a4943 100644
--- a/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithOtherResourceAction.java
+++ b/team/bundles/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareWithOtherResourceAction.java
@@ -26,6 +26,7 @@
@Deprecated
public class CompareWithOtherResourceAction extends CompareAction {
+ @Deprecated
@Override
public void run(ISelection selection) {
// Show CompareWithOtherResourceDialog which return resources to compare
@@ -34,6 +35,7 @@ public void run(ISelection selection) {
super.run(selection);
}
+ @Deprecated
@Override
protected boolean isEnabled(ISelection selection) {
int selectionSize = 0;
diff --git a/team/bundles/org.eclipse.team.core/META-INF/MANIFEST.MF b/team/bundles/org.eclipse.team.core/META-INF/MANIFEST.MF
index 3c0d9123e70..e3d5ba8e736 100644
--- a/team/bundles/org.eclipse.team.core/META-INF/MANIFEST.MF
+++ b/team/bundles/org.eclipse.team.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.team.core; singleton:=true
-Bundle-Version: 3.10.800.qualifier
+Bundle-Version: 3.10.900.qualifier
Bundle-Activator: org.eclipse.team.internal.core.TeamPlugin
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/team/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileTypeInfo.java b/team/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileTypeInfo.java
index 5cb19af60f7..4f0b3aa1fee 100644
--- a/team/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileTypeInfo.java
+++ b/team/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IFileTypeInfo.java
@@ -28,6 +28,7 @@ public interface IFileTypeInfo {
*
* @return the file extension
*/
+ @Deprecated
public String getExtension();
/**
@@ -41,5 +42,6 @@ public interface IFileTypeInfo {
*
* @return the file type
*/
+ @Deprecated
public int getType();
}
diff --git a/team/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IProjectSetSerializer.java b/team/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IProjectSetSerializer.java
index f1c3aeb84cd..55cda2204b0 100644
--- a/team/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IProjectSetSerializer.java
+++ b/team/bundles/org.eclipse.team.core/src/org/eclipse/team/core/IProjectSetSerializer.java
@@ -49,6 +49,7 @@ public interface IProjectSetSerializer {
* @return String[] an array of serialized reference strings uniquely identifying the projects
* @throws TeamException on failures; depends on concrete implementation
*/
+ @Deprecated
public String[] asReference(IProject[] providerProjects, Object context, IProgressMonitor monitor) throws TeamException;
/**
@@ -69,5 +70,6 @@ public interface IProjectSetSerializer {
* @return IProject[] an array of projects that were created
* @throws TeamException on failures; depends on concrete implementation
*/
+ @Deprecated
public IProject[] addToWorkspace(String[] referenceStrings, String filename, Object context, IProgressMonitor monitor) throws TeamException;
}
diff --git a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/wizards/ExportProjectSetLocationPage.java b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/wizards/ExportProjectSetLocationPage.java
index fde06acc8ce..8586204a6c5 100644
--- a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/wizards/ExportProjectSetLocationPage.java
+++ b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/wizards/ExportProjectSetLocationPage.java
@@ -131,8 +131,8 @@ private void createExportToFile(Composite composite) {
}
FileDialog d = new FileDialog(getShell(), SWT.SAVE);
- d.setFilterExtensions(new String[] {"*.psf"}); //$NON-NLS-1$
- d.setFilterNames(new String[] {TeamUIMessages.ExportProjectSetMainPage_Project_Set_Files_3});
+ d.setFilterExtensions("*.psf"); //$NON-NLS-1$
+ d.setFilterNames(TeamUIMessages.ExportProjectSetMainPage_Project_Set_Files_3);
d.setFileName(TeamUIMessages.ExportProjectSetMainPage_default);
String fileName = getFileName();
if (fileName != null) {
diff --git a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/wizards/ImportProjectSetMainPage.java b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/wizards/ImportProjectSetMainPage.java
index 3514a030c22..4b88ad83571 100644
--- a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/wizards/ImportProjectSetMainPage.java
+++ b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/internal/ui/wizards/ImportProjectSetMainPage.java
@@ -165,8 +165,8 @@ public void widgetSelected(SelectionEvent e) {
browseButton.setLayoutData(data);
browseButton.addListener(SWT.Selection, event -> {
FileDialog d = new FileDialog(getShell());
- d.setFilterExtensions(new String[] {"*.psf", "*"}); //$NON-NLS-1$ //$NON-NLS-2$
- d.setFilterNames(new String[] {TeamUIMessages.ImportProjectSetMainPage_Project_Set_Files_2, TeamUIMessages.ImportProjectSetMainPage_allFiles}); //
+ d.setFilterExtensions("*.psf", "*"); //$NON-NLS-1$ //$NON-NLS-2$
+ d.setFilterNames(TeamUIMessages.ImportProjectSetMainPage_Project_Set_Files_2, TeamUIMessages.ImportProjectSetMainPage_allFiles); //
String fileName= getFileName();
if (fileName != null && fileName.length() > 0) {
int separator= fileName.lastIndexOf(File.separatorChar);
diff --git a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/ISaveableWorkbenchPart.java b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/ISaveableWorkbenchPart.java
index 1beb347a0be..e56a92fe5d9 100644
--- a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/ISaveableWorkbenchPart.java
+++ b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/ISaveableWorkbenchPart.java
@@ -33,5 +33,6 @@ public interface ISaveableWorkbenchPart extends ISaveablePart, IWorkbenchPart {
/**
* The property id for isDirty.
*/
+ @Deprecated
public static final int PROP_DIRTY = ISaveablePart.PROP_DIRTY;
}
diff --git a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/PageSaveablePart.java b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/PageSaveablePart.java
index 68c8e7b2473..fc53db3bfce 100644
--- a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/PageSaveablePart.java
+++ b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/PageSaveablePart.java
@@ -66,6 +66,7 @@
public abstract class PageSaveablePart extends SaveablePartAdapter implements IContentChangeListener{
private final CompareConfiguration cc;
+ @Deprecated
Shell shell;
// Tracking of dirty state
@@ -87,6 +88,7 @@ public abstract class PageSaveablePart extends SaveablePartAdapter implements IC
* @param shell the shell for the part
* @param compareConfiguration the compare configuration
*/
+ @Deprecated
protected PageSaveablePart(Shell shell, CompareConfiguration compareConfiguration){
this.shell = shell;
this.cc = compareConfiguration;
@@ -104,11 +106,13 @@ protected PageSaveablePart(Shell shell, CompareConfiguration compareConfiguratio
};
}
+ @Deprecated
@Override
public boolean isDirty() {
return fDirty || fDirtyViewers.size() > 0;
}
+ @Deprecated
@Override
public void createPartControl(Composite parent) {
Composite composite = new Composite(parent, SWT.NULL);
@@ -185,6 +189,7 @@ protected Viewer getViewer(Viewer oldViewer, Object input) {
* selection listener on the page.
* @return the selection provider for the page
*/
+ @Deprecated
protected abstract ISelectionProvider getSelectionProvider();
/**
@@ -194,6 +199,7 @@ protected Viewer getViewer(Viewer oldViewer, Object input) {
* @param toolBarManager the toolbar manager for the page
* @return the top-level control for the page
*/
+ @Deprecated
protected abstract Control createPage(Composite parent, ToolBarManager toolBarManager);
/**
@@ -201,6 +207,7 @@ protected Viewer getViewer(Viewer oldViewer, Object input) {
* will appear in the header of the pane containing the page.
* @param title the page's title
*/
+ @Deprecated
protected void setPageDescription(String title) {
fEditionPane.setText(title);
}
@@ -209,6 +216,7 @@ protected void setPageDescription(String title) {
* Set the saveable part's dirty state to the given state.
* @param dirty the dirty state
*/
+ @Deprecated
protected void setDirty(boolean dirty) {
boolean confirmSave= true;
Object o= cc.getProperty(CompareEditor.CONFIRM_SAVE_PROPERTY);
@@ -263,6 +271,7 @@ private void feedInput2(ISelection sel) {
* with a progress monitor.
* @param input the compare input to be prepared
*/
+ @Deprecated
protected void prepareCompareInput(final ICompareInput input) {
if (input == null) {
return;
@@ -295,6 +304,7 @@ protected void prepareCompareInput(final ICompareInput input) {
* @param monitor a progress monitor
* @throws InvocationTargetException if an error occurs
*/
+ @Deprecated
protected abstract void prepareInput(ICompareInput input, CompareConfiguration configuration, IProgressMonitor monitor) throws InvocationTargetException;
private void hookContentChangeListener(ICompareInput node) {
@@ -313,6 +323,7 @@ private void hookContentChangeListener(ICompareInput node) {
* Return the parent shell of this part.
* @return the parent shell of this part
*/
+ @Deprecated
protected Shell getShell() {
return shell;
}
@@ -321,6 +332,7 @@ protected Shell getShell() {
* This method is internal to the framework and should not be called by clients
* outside of the framework.
*/
+ @Deprecated
protected void setNavigator(ISynchronizePageConfiguration configuration) {
configuration.setProperty(SynchronizePageConfiguration.P_NAVIGATOR, new CompareEditorInputNavigator(
new Object[] {
@@ -366,6 +378,7 @@ private Viewer findContentViewer(Composite parent, Viewer oldViewer, ICompareInp
* @param selection the selection
* @return a compare input representing the selection
*/
+ @Deprecated
protected ICompareInput getCompareInput(ISelection selection) {
if (selection != null && selection instanceof IStructuredSelection ss) {
if (ss.size() == 1) {
@@ -384,6 +397,7 @@ protected ICompareInput getCompareInput(ISelection selection) {
*
* @param showContentPanes whether to show contents pane
*/
+ @Deprecated
public void setShowContentPanes(boolean showContentPanes) {
this.showContentPanes = showContentPanes;
}
@@ -393,6 +407,7 @@ public void setShowContentPanes(boolean showContentPanes) {
*
* @return the primary control for this part.
*/
+ @Deprecated
public Control getControl() {
return control;
}
@@ -413,6 +428,7 @@ private CompareConfiguration getCompareConfiguration() {
* @param monitor
* a progress monitor
*/
+ @Deprecated
@Override
public void doSave(IProgressMonitor monitor) {
flushViewers(monitor);
diff --git a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/SaveablePartAdapter.java b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/SaveablePartAdapter.java
index 6b81f98df2f..72a89457add 100644
--- a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/SaveablePartAdapter.java
+++ b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/SaveablePartAdapter.java
@@ -34,46 +34,56 @@
@Deprecated
public abstract class SaveablePartAdapter implements ISaveableWorkbenchPart {
+ @Deprecated
@Override
public void doSaveAs() {
}
+ @Deprecated
@Override
public boolean isSaveAsAllowed() {
return false;
}
+ @Deprecated
@Override
public boolean isSaveOnCloseNeeded() {
return false;
}
+ @Deprecated
@Override
public void addPropertyListener(IPropertyListener listener) {
}
+ @Deprecated
@Override
public void dispose() {
}
+ @Deprecated
@Override
public IWorkbenchPartSite getSite() {
return null;
}
+ @Deprecated
@Override
public String getTitleToolTip() {
return null;
}
+ @Deprecated
@Override
public void removePropertyListener(IPropertyListener listener) {
}
+ @Deprecated
@Override
public void setFocus() {
}
+ @Deprecated
@Override
public T getAdapter(Class adapter) {
return null;
diff --git a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/SaveablePartDialog.java b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/SaveablePartDialog.java
index 1d1bef60411..7e344ea9430 100644
--- a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/SaveablePartDialog.java
+++ b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/SaveablePartDialog.java
@@ -55,17 +55,20 @@ public class SaveablePartDialog extends TrayDialog {
* @param shell the parent shell or null to create a top level shell.
* @param input the part to show in the dialog.
*/
+ @Deprecated
public SaveablePartDialog(Shell shell, ISaveableWorkbenchPart input) {
super(shell);
setShellStyle(getShellStyle() | SWT.RESIZE | SWT.MAX);
this.input = input;
}
+ @Deprecated
@Override
protected void createButtonsForButtonBar(Composite parent) {
createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
}
+ @Deprecated
@Override
protected Control createDialogArea(Composite parent2) {
Composite parent = (Composite) super.createDialogArea(parent2);
@@ -77,6 +80,7 @@ protected Control createDialogArea(Composite parent2) {
return parent;
}
+ @Deprecated
@Override
public boolean close() {
saveChanges();
@@ -102,10 +106,12 @@ private void saveChanges() {
* @return the input to the dialog
* @since 3.2
*/
+ @Deprecated
protected ISaveableWorkbenchPart getInput() {
return input;
}
+ @Deprecated
@Override
protected IDialogSettings getDialogBoundsSettings() {
IDialogSettings compareSettings = PlatformUI.getDialogSettingsProvider(FrameworkUtil.getBundle(SaveablePartDialog.class)).getDialogSettings();
@@ -122,10 +128,12 @@ protected IDialogSettings getDialogBoundsSettings() {
* Set the help content id of this dialog.
* @param contextId the help context id
*/
+ @Deprecated
public void setHelpContextId(String contextId) {
fContextId= contextId;
}
+ @Deprecated
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
@@ -134,6 +142,7 @@ protected void configureShell(Shell newShell) {
}
}
+ @Deprecated
@Override
protected Point getInitialSize() {
Point initialSize = super.getInitialSize();
diff --git a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/history/HistoryPageSaveablePart.java b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/history/HistoryPageSaveablePart.java
index 46a2a03b7b0..7c8b61ec1fc 100644
--- a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/history/HistoryPageSaveablePart.java
+++ b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/history/HistoryPageSaveablePart.java
@@ -57,6 +57,7 @@ public class HistoryPageSaveablePart extends PageSaveablePart {
* @param object the object
* @return whether the object had an {@link IHistoryPageSource} available or not
*/
+ @Deprecated
public static boolean showHistoryInDialog(Shell shell, Object object) {
IHistoryPageSource pageSource = HistoryPageSource.getHistoryPageSource(object);
if (pageSource != null && pageSource.canShowHistoryFor(object)) {
@@ -88,26 +89,31 @@ private static boolean isFile(Object object) {
* @param pageSource the page source
* @param object the object whose history is to be displayed
*/
+ @Deprecated
public HistoryPageSaveablePart(Shell shell, CompareConfiguration configuration, IHistoryPageSource pageSource, Object object) {
super(shell,configuration);
this.pageSource = pageSource;
this.object = object;
}
+ @Deprecated
@Override
public String getTitle() {
return historyPage.getName();
}
+ @Deprecated
@Override
public Image getTitleImage() {
return null;
}
+ @Deprecated
@Override
public void contentChanged(IContentChangeNotifier source) {
}
+ @Deprecated
@Override
protected Control createPage(Composite parent, ToolBarManager toolBarManager) {
site = new DialogHistoryPageSite(getShell());
@@ -124,11 +130,13 @@ protected Control createPage(Composite parent, ToolBarManager toolBarManager) {
return ((Page) historyPage).getControl();
}
+ @Deprecated
@Override
protected final ISelectionProvider getSelectionProvider() {
return site.getSelectionProvider();
}
+ @Deprecated
@Override
protected ICompareInput getCompareInput(ISelection selection) {
ICompareInput compareInput = super.getCompareInput(selection);
@@ -147,6 +155,7 @@ protected ICompareInput getCompareInput(ISelection selection) {
return null;
}
+ @Deprecated
@Override
protected void prepareInput(ICompareInput input, CompareConfiguration configuration, IProgressMonitor monitor) throws InvocationTargetException {
IHistoryCompareAdapter compareAdapter = Adapters.adapt(historyPage, IHistoryCompareAdapter.class);
@@ -155,6 +164,7 @@ protected void prepareInput(ICompareInput input, CompareConfiguration configurat
}
}
+ @Deprecated
@Override
public void dispose() {
super.dispose();
diff --git a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ParticipantPageDialog.java b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ParticipantPageDialog.java
index 306faf80316..0eaa813f723 100644
--- a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ParticipantPageDialog.java
+++ b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ParticipantPageDialog.java
@@ -51,11 +51,13 @@ public class ParticipantPageDialog extends SaveablePartDialog {
* @param input the compare input to show in the dialog
* @param participant the given participant
*/
+ @Deprecated
public ParticipantPageDialog(Shell shell, SaveablePartAdapter input, ISynchronizeParticipant participant) {
super(shell, input);
this.participant = participant;
}
+ @Deprecated
@Override
protected Control createDialogArea(Composite parent2) {
Composite parent = (Composite) super.createDialogArea(parent2);
@@ -67,6 +69,7 @@ protected Control createDialogArea(Composite parent2) {
return parent;
}
+ @Deprecated
@Override
protected void buttonPressed(int buttonId) {
if(buttonId == IDialogConstants.OK_ID && isRememberParticipant()) {
@@ -97,6 +100,7 @@ private void rememberParticipant() {
*
* @return the participant showing in this dialog.
*/
+ @Deprecated
protected ISynchronizeParticipant getParticipant() {
return participant;
}
@@ -109,6 +113,7 @@ protected ISynchronizeParticipant getParticipant() {
* view should be presented to the user
* @since 3.2
*/
+ @Deprecated
protected boolean isOfferToRememberParticipant() {
return true;
}
diff --git a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ParticipantPageSaveablePart.java b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ParticipantPageSaveablePart.java
index 9ad0603daff..9e6ef97bf71 100644
--- a/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ParticipantPageSaveablePart.java
+++ b/team/bundles/org.eclipse.team.ui/src/org/eclipse/team/ui/synchronize/ParticipantPageSaveablePart.java
@@ -87,12 +87,14 @@ public class ParticipantPageSaveablePart extends PageSaveablePart implements ICo
* @param pageConfiguration the configuration that will be provided to the participant prior to creating the page
* @param participant the participant whose page will be displayed in this part
*/
+ @Deprecated
public ParticipantPageSaveablePart(Shell shell, CompareConfiguration cc, ISynchronizePageConfiguration pageConfiguration, ISynchronizeParticipant participant) {
super(shell,cc);
this.participant = participant;
this.pageConfiguration = pageConfiguration;
}
+ @Deprecated
@Override
public void dispose() {
if(titleImage != null) {
@@ -108,6 +110,7 @@ public void dispose() {
super.dispose();
}
+ @Deprecated
@Override
public Image getTitleImage() {
if(titleImage == null) {
@@ -116,11 +119,13 @@ public Image getTitleImage() {
return titleImage;
}
+ @Deprecated
@Override
public String getTitle() {
return Utils.shortenText(SynchronizeView.MAX_NAME_LENGTH, participant.getName());
}
+ @Deprecated
@Override
public boolean isDirty() {
if (participant instanceof ModelSynchronizeParticipant msp) {
@@ -132,6 +137,7 @@ public boolean isDirty() {
return super.isDirty();
}
+ @Deprecated
@Override
public void contentChanged(IContentChangeNotifier source) {
try {
@@ -145,6 +151,7 @@ public void contentChanged(IContentChangeNotifier source) {
}
}
+ @Deprecated
@Override
public void doSave(IProgressMonitor pm) {
// TODO needs to work for models
@@ -163,6 +170,7 @@ public void doSave(IProgressMonitor pm) {
}
}
+ @Deprecated
@Override
protected Control createPage(Composite parent, ToolBarManager toolBarManager) {
listener = event -> {
@@ -194,6 +202,7 @@ protected Control createPage(Composite parent, ToolBarManager toolBarManager) {
return page.getControl();
}
+ @Deprecated
@Override
protected final ISelectionProvider getSelectionProvider() {
return ((ISynchronizePage)page).getViewer();
@@ -234,6 +243,7 @@ private void initializeDiffViewer(Viewer viewer) {
* {@inheritDoc}
* @since 3.2
*/
+ @Deprecated
@Override
protected void prepareInput(final ICompareInput input, CompareConfiguration configuration, IProgressMonitor monitor) throws InvocationTargetException {
monitor.beginTask(TeamUIMessages.SyncInfoCompareInput_3, 100);
@@ -302,6 +312,7 @@ private static void commit(IProgressMonitor pm, DiffNode node) throws CoreExcept
*
* @return Returns the pageConfiguration.
*/
+ @Deprecated
public ISynchronizePageConfiguration getPageConfiguration() {
return pageConfiguration;
}
@@ -311,6 +322,7 @@ public ISynchronizePageConfiguration getPageConfiguration() {
*
* @return Returns the participant.
*/
+ @Deprecated
public ISynchronizeParticipant getParticipant() {
return participant;
}
@@ -319,6 +331,7 @@ public ISynchronizeParticipant getParticipant() {
* {@inheritDoc}
* @since 3.2
*/
+ @Deprecated
@Override
protected ICompareInput getCompareInput(ISelection selection) {
ICompareInput compareInput = super.getCompareInput(selection);
diff --git a/team/tests/org.eclipse.compare.tests/META-INF/MANIFEST.MF b/team/tests/org.eclipse.compare.tests/META-INF/MANIFEST.MF
index 0c84b8bf90f..33ddc5aceee 100644
--- a/team/tests/org.eclipse.compare.tests/META-INF/MANIFEST.MF
+++ b/team/tests/org.eclipse.compare.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.compare.tests;singleton:=true
-Bundle-Version: 3.8.800.qualifier
+Bundle-Version: 3.8.900.qualifier
Require-Bundle: org.eclipse.compare,
org.eclipse.jface.text,
org.eclipse.jface,
@@ -16,9 +16,9 @@ Require-Bundle: org.eclipse.compare,
org.eclipse.team.ui
Import-Package: org.assertj.core.api,
org.assertj.core.api.iterable,
- org.junit.jupiter.api,
- org.junit.jupiter.api.extension,
- org.junit.platform.suite.api
+ org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.extension;version="[5.14.0,6.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)"
Bundle-Activator: org.eclipse.compare.tests.CompareTestPlugin
Bundle-ActivationPolicy: lazy
Bundle-Vendor: %providerName
diff --git a/team/tests/org.eclipse.core.tests.net/META-INF/MANIFEST.MF b/team/tests/org.eclipse.core.tests.net/META-INF/MANIFEST.MF
index fa254724b70..323d078a0a8 100644
--- a/team/tests/org.eclipse.core.tests.net/META-INF/MANIFEST.MF
+++ b/team/tests/org.eclipse.core.tests.net/META-INF/MANIFEST.MF
@@ -2,13 +2,13 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Net Tests Plug-in
Bundle-SymbolicName: org.eclipse.core.tests.net
-Bundle-Version: 1.6.400.qualifier
+Bundle-Version: 1.6.500.qualifier
Bundle-Vendor: Eclipse.org
Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)",
org.eclipse.core.net;bundle-version="[1.0.0,2.0.0)"
Import-Package: org.assertj.core.api,
- org.junit.jupiter.api,
- org.junit.platform.suite.api
+ org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-17
Eclipse-BundleShape: dir
diff --git a/team/tests/org.eclipse.core.tests.net/pom.xml b/team/tests/org.eclipse.core.tests.net/pom.xml
index f26bcba583a..a1a41798d6d 100644
--- a/team/tests/org.eclipse.core.tests.net/pom.xml
+++ b/team/tests/org.eclipse.core.tests.net/pom.xml
@@ -17,7 +17,7 @@
4.38.0-SNAPSHOT
org.eclipse.core.tests.net
- 1.6.400-SNAPSHOT
+ 1.6.500-SNAPSHOT
eclipse-test-plugin
diff --git a/team/tests/org.eclipse.team.tests.core/META-INF/MANIFEST.MF b/team/tests/org.eclipse.team.tests.core/META-INF/MANIFEST.MF
index ac47aefaab6..a191a8cd873 100644
--- a/team/tests/org.eclipse.team.tests.core/META-INF/MANIFEST.MF
+++ b/team/tests/org.eclipse.team.tests.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.team.tests.core; singleton:=true
-Bundle-Version: 3.10.500.qualifier
+Bundle-Version: 3.10.600.qualifier
Bundle-Vendor: %providerName
Bundle-Localization: plugin
Export-Package: org.eclipse.team.tests.core,
@@ -27,10 +27,10 @@ Require-Bundle: org.eclipse.ui.ide;resolution:=optional,
org.eclipse.core.filesystem,
org.eclipse.compare.tests
Import-Package: org.assertj.core.api,
- org.junit.jupiter.api,
- org.junit.jupiter.api.extension,
- org.junit.jupiter.api.function,
- org.junit.platform.suite.api
+ org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.extension;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.function;version="[5.14.0,6.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)"
Bundle-ActivationPolicy: lazy
Eclipse-BundleShape: dir
Bundle-RequiredExecutionEnvironment: JavaSE-17
diff --git a/team/tests/org.eclipse.team.tests.core/pom.xml b/team/tests/org.eclipse.team.tests.core/pom.xml
index 0ef6677001d..c66911365bc 100644
--- a/team/tests/org.eclipse.team.tests.core/pom.xml
+++ b/team/tests/org.eclipse.team.tests.core/pom.xml
@@ -17,7 +17,7 @@
4.38.0-SNAPSHOT
org.eclipse.team.tests.core
- 3.10.500-SNAPSHOT
+ 3.10.600-SNAPSHOT
eclipse-test-plugin
diff --git a/terminal/bundles/org.eclipse.terminal.view.ui/forceQualifierUpdate.txt b/terminal/bundles/org.eclipse.terminal.view.ui/forceQualifierUpdate.txt
new file mode 100644
index 00000000000..45a1d524bad
--- /dev/null
+++ b/terminal/bundles/org.eclipse.terminal.view.ui/forceQualifierUpdate.txt
@@ -0,0 +1,2 @@
+# To force a version qualifier update add the bug here
+https://github.com/eclipse-platform/eclipse.platform.releng.aggregator/issues/3412
\ No newline at end of file
diff --git a/terminal/features/org.eclipse.terminal.feature/build.properties b/terminal/features/org.eclipse.terminal.feature/build.properties
index b3a611b5c93..e2bd14c5f3e 100644
--- a/terminal/features/org.eclipse.terminal.feature/build.properties
+++ b/terminal/features/org.eclipse.terminal.feature/build.properties
@@ -1,2 +1,3 @@
bin.includes = feature.xml,\
+ p2.inf,\
feature.properties
diff --git a/terminal/features/org.eclipse.terminal.feature/p2.inf b/terminal/features/org.eclipse.terminal.feature/p2.inf
new file mode 100644
index 00000000000..c8ab159caed
--- /dev/null
+++ b/terminal/features/org.eclipse.terminal.feature/p2.inf
@@ -0,0 +1,6 @@
+
+# The Eclipse Terminal feature replaces a whole set of features that the TM project
+# used to provide. The granularity of the TM project is collapsed into a single
+# feature in Eclipse Terminal. For ISVs that require additional granularity they
+# are advised to provide their own features that lists their requirements
+update.matchExp=providedCapabilities.exists(pc | pc.namespace == 'org.eclipse.equinox.p2.iu' && (pc.name == 'org.eclipse.terminal.feature.feature.group' || pc.name == 'org.eclipse.tm.terminal.connector.local.feature.feature.group' || pc.name == 'org.eclipse.tm.terminal.connector.ssh.feature.feature.group' || pc.name == 'org.eclipse.tm.terminal.connector.telnet.feature.feature.group' || pc.name == 'org.eclipse.tm.terminal.control.feature.feature.group' || pc.name == 'org.eclipse.tm.terminal.feature.feature.group' || pc.name == 'org.eclipse.tm.terminal.view.feature.feature.group'))
diff --git a/terminal/tests/org.eclipse.terminal.test/META-INF/MANIFEST.MF b/terminal/tests/org.eclipse.terminal.test/META-INF/MANIFEST.MF
index bdd9e0f6344..1b61ffdf8b2 100644
--- a/terminal/tests/org.eclipse.terminal.test/META-INF/MANIFEST.MF
+++ b/terminal/tests/org.eclipse.terminal.test/META-INF/MANIFEST.MF
@@ -21,5 +21,6 @@ Export-Package: org.eclipse.terminal.internal.connector;x-internal:=true,
org.eclipse.terminal.model,
org.eclipse.terminal.test
Import-Package: org.junit.jupiter.api;version="[5.9.3,6.0.0)",
- org.junit.jupiter.api.function;version="[5.9.3,6.0.0)"
+ org.junit.jupiter.api.function;version="[5.9.3,6.0.0)",
+ org.junit.platform.suite.api;version="[1.9.3,2.0.0)"
Automatic-Module-Name: org.eclipse.terminal.test
diff --git a/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/internal/emulator/AllTestSuite.java b/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/internal/emulator/AllTestSuite.java
index 9b9695cf1a4..cac790ea5fe 100644
--- a/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/internal/emulator/AllTestSuite.java
+++ b/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/internal/emulator/AllTestSuite.java
@@ -12,27 +12,17 @@
*******************************************************************************/
package org.eclipse.terminal.internal.emulator;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
/**
* Terminal emulator test cases.
* Runs in emulator package to allow access to default visible items.
*/
-public class AllTestSuite extends TestCase {
- public AllTestSuite() {
- super(null);
- }
-
- public AllTestSuite(String name) {
- super(name);
- }
-
- public static Test suite() {
- TestSuite suite = new TestSuite(AllTestSuite.class.getName());
- suite.addTestSuite(VT100EmulatorBackendTest.class);
- return suite;
- }
+@Suite
+@SelectClasses({ //
+ VT100EmulatorBackendTest.class, //
+})
+public class AllTestSuite {
}
diff --git a/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/internal/model/AllTestSuite.java b/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/internal/model/AllTestSuite.java
index f2bf7ad9f51..47660269f0a 100644
--- a/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/internal/model/AllTestSuite.java
+++ b/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/internal/model/AllTestSuite.java
@@ -12,36 +12,26 @@
*******************************************************************************/
package org.eclipse.terminal.internal.model;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
/**
* Internal Terminal Model test cases.
* Runs in internal model package to allow access to default visible items.
*/
-public class AllTestSuite extends TestCase {
- public AllTestSuite() {
- super(null);
- }
-
- public AllTestSuite(String name) {
- super(name);
- }
-
- public static Test suite() {
- TestSuite suite = new TestSuite(AllTestSuite.class.getName());
- suite.addTestSuite(SnapshotChangesTest.class);
- suite.addTestSuite(SynchronizedTerminalTextDataTest.class);
- suite.addTestSuite(TerminalTextDataFastScrollTest.class);
- suite.addTestSuite(TerminalTextDataFastScrollMaxHeightTest.class);
- suite.addTestSuite(TerminalTextDataPerformanceTest.class);
- suite.addTestSuite(TerminalTextDataSnapshotTest.class);
- suite.addTestSuite(TerminalTextDataSnapshotWindowTest.class);
- suite.addTestSuite(TerminalTextDataStoreTest.class);
- suite.addTestSuite(TerminalTextDataTest.class);
- suite.addTestSuite(TerminalTextDataWindowTest.class);
- return suite;
- }
+@Suite
+@SelectClasses({ //
+ SnapshotChangesTest.class, //
+ SynchronizedTerminalTextDataTest.class, //
+ TerminalTextDataFastScrollTest.class, //
+ TerminalTextDataFastScrollMaxHeightTest.class, //
+ TerminalTextDataPerformanceTest.class, //
+ TerminalTextDataSnapshotTest.class, //
+ TerminalTextDataSnapshotWindowTest.class, //
+ TerminalTextDataStoreTest.class, //
+ TerminalTextDataTest.class, //
+ TerminalTextDataWindowTest.class, //
+})
+public class AllTestSuite {
}
diff --git a/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/model/AllTestSuite.java b/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/model/AllTestSuite.java
index fa3b9b0a37c..d1c4b9e68d3 100644
--- a/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/model/AllTestSuite.java
+++ b/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/model/AllTestSuite.java
@@ -12,29 +12,18 @@
*******************************************************************************/
package org.eclipse.terminal.model;
-import junit.framework.JUnit4TestAdapter;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
/**
* Public Terminal Model test cases.
* Runs in internal model package to allow access to default visible items.
*/
-public class AllTestSuite extends TestCase {
- public AllTestSuite() {
- super(null);
- }
-
- public AllTestSuite(String name) {
- super(name);
- }
-
- public static Test suite() {
- TestSuite suite = new TestSuite(AllTestSuite.class.getName());
- suite.addTest(new JUnit4TestAdapter(TerminalColorUITest.class));
- suite.addTestSuite(StyleTest.class);
- return suite;
- }
+@Suite
+@SelectClasses({ //
+ TerminalColorUITest.class, //
+ StyleTest.class, //
+})
+public class AllTestSuite {
}
diff --git a/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/test/AutomatedPluginTestSuite.java b/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/test/AutomatedPluginTestSuite.java
index ec19cdae290..537449895c5 100644
--- a/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/test/AutomatedPluginTestSuite.java
+++ b/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/test/AutomatedPluginTestSuite.java
@@ -13,27 +13,17 @@
package org.eclipse.terminal.test;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
/**
* Master Test Suite to run all Terminal plug-in tests.
*/
-public class AutomatedPluginTestSuite extends TestCase {
- /**
- * Call each AllTestSuite class from each of the test packages.
- */
- public static Test suite() {
- TestSuite suite = new TestSuite(AutomatedPluginTestSuite.class.getName());
- //These tests require Eclipse Platform to be up
- suite.addTestSuite(org.eclipse.terminal.internal.connector.TerminalConnectorPluginTest.class);
- suite.addTestSuite(org.eclipse.terminal.internal.connector.TerminalConnectorFactoryTest.class);
-
- //These tests must run as plain JUnit because they require access
- //to "package" protected methods
- //suite.addTest(AutomatedTestSuite.suite());
- return suite;
- }
+@Suite
+@SelectClasses({ //
+ org.eclipse.terminal.internal.connector.TerminalConnectorPluginTest.class, //
+ org.eclipse.terminal.internal.connector.TerminalConnectorFactoryTest.class, //
+})
+public class AutomatedPluginTestSuite {
}
diff --git a/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/test/AutomatedTestSuite.java b/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/test/AutomatedTestSuite.java
index e5f0ef9a8f7..d07b27e91f6 100644
--- a/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/test/AutomatedTestSuite.java
+++ b/terminal/tests/org.eclipse.terminal.test/src/org/eclipse/terminal/test/AutomatedTestSuite.java
@@ -12,35 +12,22 @@
*******************************************************************************/
package org.eclipse.terminal.test;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.junit.platform.suite.api.SelectClasses;
+import org.junit.platform.suite.api.Suite;
/**
* Master test suite to run all terminal unit tests.
*/
-public class AutomatedTestSuite extends TestCase {
+@Suite
+@SelectClasses({ //
+ org.eclipse.terminal.internal.emulator.AllTestSuite.class, //
+ org.eclipse.terminal.internal.model.AllTestSuite.class, //
+ org.eclipse.terminal.model.AllTestSuite.class, //
+ org.eclipse.terminal.internal.connector.TerminalConnectorTest.class, //
+ org.eclipse.terminal.internal.connector.TerminalToRemoteInjectionOutputStreamTest.class, //
+})
+public class AutomatedTestSuite {
public static final String PI_TERMINAL_TESTS = "org.eclipse.terminal.test"; //$NON-NLS-1$
- public AutomatedTestSuite() {
- super(null);
- }
-
- public AutomatedTestSuite(String name) {
- super(name);
- }
-
- /**
- * Call each AllTestSuite class from each of the test packages.
- */
- public static Test suite() {
- TestSuite suite = new TestSuite(AutomatedTestSuite.class.getName());
- suite.addTest(org.eclipse.terminal.internal.emulator.AllTestSuite.suite());
- suite.addTest(org.eclipse.terminal.internal.model.AllTestSuite.suite());
- suite.addTest(org.eclipse.terminal.model.AllTestSuite.suite());
- suite.addTestSuite(org.eclipse.terminal.internal.connector.TerminalConnectorTest.class);
- suite.addTestSuite(org.eclipse.terminal.internal.connector.TerminalToRemoteInjectionOutputStreamTest.class);
- return suite;
- }
}
diff --git a/ua/org.eclipse.help.base/about.ini b/ua/org.eclipse.help.base/about.ini
index 76a035608c3..ff2b3fa15cc 100644
--- a/ua/org.eclipse.help.base/about.ini
+++ b/ua/org.eclipse.help.base/about.ini
@@ -11,7 +11,7 @@ aboutText=%blurb
# needed for primary features only
# Property "featureImage" contains path to feature image (32x32)
-featureImage=eclipse32.png
+featureImage=eclipse32.svg
# Property "aboutImage" contains path to product image (500x330 or 115x164)
# needed for primary features only
diff --git a/ua/org.eclipse.help.base/build.properties b/ua/org.eclipse.help.base/build.properties
index b1323e48594..9a997796f13 100644
--- a/ua/org.eclipse.help.base/build.properties
+++ b/ua/org.eclipse.help.base/build.properties
@@ -24,9 +24,9 @@ bin.includes = doc/,\
about.ini,\
about.mappings,\
about.properties,\
- eclipse32.png,\
META-INF/,\
- ant_tasks/helpbase-ant.jar
+ ant_tasks/helpbase-ant.jar,\
+ eclipse32.svg
jars.compile.order = .,\
ant_tasks/helpbase-ant.jar
diff --git a/ua/org.eclipse.help.base/eclipse32.png b/ua/org.eclipse.help.base/eclipse32.png
deleted file mode 100644
index bf856800755..00000000000
Binary files a/ua/org.eclipse.help.base/eclipse32.png and /dev/null differ
diff --git a/ua/org.eclipse.help.base/eclipse32.svg b/ua/org.eclipse.help.base/eclipse32.svg
new file mode 100644
index 00000000000..4f0e95ebbf3
--- /dev/null
+++ b/ua/org.eclipse.help.base/eclipse32.svg
@@ -0,0 +1,234 @@
+
+
+
+
diff --git a/ua/org.eclipse.tips.tests/META-INF/MANIFEST.MF b/ua/org.eclipse.tips.tests/META-INF/MANIFEST.MF
index 5e5dd4b19da..eff594da88c 100644
--- a/ua/org.eclipse.tips.tests/META-INF/MANIFEST.MF
+++ b/ua/org.eclipse.tips.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Tip of the Day Tests
Bundle-SymbolicName: org.eclipse.tips.tests
-Bundle-Version: 1.2.200.qualifier
+Bundle-Version: 1.2.300.qualifier
Bundle-Vendor: Eclipse
Bundle-RequiredExecutionEnvironment: JavaSE-17
Require-Bundle: org.eclipse.tips.ide;bundle-version="0.1.0",
@@ -15,6 +15,6 @@ Require-Bundle: org.eclipse.tips.ide;bundle-version="0.1.0",
Automatic-Module-Name: org.eclipse.tips.tests
Import-Package: com.google.gson;version="[2.8.6,3.0.0)",
org.assertj.core.api,
- org.junit.jupiter.api,
- org.junit.jupiter.api.function,
- org.junit.platform.suite.api
+ org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.function;version="[5.14.0,6.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)"
diff --git a/ua/org.eclipse.tips.tests/src/org/eclipse/tips/core/TipImageURLTest.java b/ua/org.eclipse.tips.tests/src/org/eclipse/tips/core/TipImageURLTest.java
index ceacbf9483b..d01ed7b58c1 100644
--- a/ua/org.eclipse.tips.tests/src/org/eclipse/tips/core/TipImageURLTest.java
+++ b/ua/org.eclipse.tips.tests/src/org/eclipse/tips/core/TipImageURLTest.java
@@ -25,7 +25,7 @@
public class TipImageURLTest {
- private static final String URL = "http://remainsoftware.com/img.png";
+ private static final String URL = "https://github.com/eclipse-platform/eclipse.platform/blob/master/ua/org.eclipse.tips.tests/icons/dummy.png";
@org.junit.jupiter.api.Test
public void testTipImage() {
diff --git a/ua/org.eclipse.ua.tests.doc/META-INF/MANIFEST.MF b/ua/org.eclipse.ua.tests.doc/META-INF/MANIFEST.MF
index d9106e7f84e..dc2a34ad8af 100644
--- a/ua/org.eclipse.ua.tests.doc/META-INF/MANIFEST.MF
+++ b/ua/org.eclipse.ua.tests.doc/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: org.eclipse.ua.tests.doc;singleton:=true
-Bundle-Version: 1.3.100.qualifier
+Bundle-Version: 1.3.200.qualifier
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime;bundle-version="[3.29.0,4.0.0)",
org.eclipse.equinox.http.registry;bundle-version="1.0.200",
@@ -16,8 +16,8 @@ Bundle-ActivationPolicy: lazy
Import-Package: javax.servlet;version="3.1.0",
javax.servlet.http;version="3.1.0",
org.assertj.core.api,
- org.junit.jupiter.api,
- org.junit.platform.suite.api
+ org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)"
Export-Package: org.eclipse.ua.tests.doc,
org.eclipse.ua.tests.doc.internal;x-internal:=true,
org.eclipse.ua.tests.doc.internal.actions;x-internal:=true,
diff --git a/ua/org.eclipse.ua.tests.doc/pom.xml b/ua/org.eclipse.ua.tests.doc/pom.xml
index b2ae6efb1fc..cb182068da0 100644
--- a/ua/org.eclipse.ua.tests.doc/pom.xml
+++ b/ua/org.eclipse.ua.tests.doc/pom.xml
@@ -19,7 +19,7 @@
org.eclipse.platform
org.eclipse.ua.tests.doc
- 1.3.100-SNAPSHOT
+ 1.3.200-SNAPSHOT
eclipse-test-plugin
diff --git a/ua/org.eclipse.ua.tests/META-INF/MANIFEST.MF b/ua/org.eclipse.ua.tests/META-INF/MANIFEST.MF
index e8cc761f27e..6764b8072ca 100644
--- a/ua/org.eclipse.ua.tests/META-INF/MANIFEST.MF
+++ b/ua/org.eclipse.ua.tests/META-INF/MANIFEST.MF
@@ -21,9 +21,9 @@ Import-Package: javax.servlet;version="3.1.0",
org.apache.lucene.store;version="[10.0.0,11.0.0)",
org.apache.lucene.util;version="[10.0.0,11.0.0)",
org.assertj.core.api,
- org.junit.jupiter.api,
- org.junit.jupiter.api.function,
- org.junit.platform.suite.api
+ org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.jupiter.api.function;version="[5.14.0,6.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)"
Bundle-RequiredExecutionEnvironment: JavaSE-21
Export-Package: org.eclipse.ua.tests,
org.eclipse.ua.tests.browser.servlet,
diff --git a/ua/org.eclipse.ui.cheatsheets/META-INF/MANIFEST.MF b/ua/org.eclipse.ui.cheatsheets/META-INF/MANIFEST.MF
index 392efbc99d9..a36e35b45fd 100644
--- a/ua/org.eclipse.ui.cheatsheets/META-INF/MANIFEST.MF
+++ b/ua/org.eclipse.ui.cheatsheets/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %PLUGIN_NAME
Bundle-SymbolicName: org.eclipse.ui.cheatsheets; singleton:=true
-Bundle-Version: 3.8.700.qualifier
+Bundle-Version: 3.8.800.qualifier
Bundle-Activator: org.eclipse.ui.internal.cheatsheets.CheatSheetPlugin
Bundle-Vendor: %PROVIDER_NAME
Bundle-Localization: plugin
diff --git a/ua/org.eclipse.ui.cheatsheets/pom.xml b/ua/org.eclipse.ui.cheatsheets/pom.xml
index 8608b9cad39..599ff528880 100644
--- a/ua/org.eclipse.ui.cheatsheets/pom.xml
+++ b/ua/org.eclipse.ui.cheatsheets/pom.xml
@@ -19,6 +19,6 @@
org.eclipse.platform
org.eclipse.ui.cheatsheets
- 3.8.700-SNAPSHOT
+ 3.8.800-SNAPSHOT
eclipse-plugin
diff --git a/ua/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java b/ua/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java
index ad0047882a1..e3218b4e4dc 100644
--- a/ua/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java
+++ b/ua/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/composite/views/CompositeCheatSheetPage.java
@@ -67,7 +67,6 @@
* A page which represents a composite cheat sheet
*/
-@SuppressWarnings("deprecation") // java.util.Observable since 9;
public class CompositeCheatSheetPage extends Page implements ISelectionChangedListener, IMenuContributor {
public static final String REVIEW_TAG = "__review__"; //$NON-NLS-1$
diff --git a/ua/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java b/ua/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java
index 3248e553511..2c794fdb104 100644
--- a/ua/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java
+++ b/ua/org.eclipse.ui.cheatsheets/src/org/eclipse/ui/internal/cheatsheets/dialogs/CheatSheetCategoryBasedSelectionDialog.java
@@ -363,7 +363,7 @@ private class BrowseListener implements SelectionListener {
public void widgetSelected(SelectionEvent e) {
// Launch a file dialog to select a cheatsheet file
FileDialog fileDlg = new FileDialog(getShell());
- fileDlg.setFilterExtensions(new String[]{"*.xml"}); //$NON-NLS-1$
+ fileDlg.setFilterExtensions("*.xml"); //$NON-NLS-1$
fileDlg.setText(Messages.SELECTION_DIALOG_FILEPICKER_TITLE);
fileDlg.open();
String filename = fileDlg.getFileName();
diff --git a/update/org.eclipse.update.configurator.tests/META-INF/MANIFEST.MF b/update/org.eclipse.update.configurator.tests/META-INF/MANIFEST.MF
index 01bac7f4a0d..3bf53c47b42 100644
--- a/update/org.eclipse.update.configurator.tests/META-INF/MANIFEST.MF
+++ b/update/org.eclipse.update.configurator.tests/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@ Automatic-Module-Name: org.eclipse.update.configurator.tests
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.update.configurator.tests;singleton:=true
-Bundle-Version: 0.2.0.qualifier
+Bundle-Version: 0.2.100.qualifier
Bundle-Localization: plugin
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.update.configurator
@@ -13,5 +13,5 @@ Bundle-Vendor: %providerName
Export-Package: org.eclipse.update.configurator.tests,
org.eclipse.update.internal.configurator.tests
Eclipse-BundleShape: dir
-Import-Package: org.junit.jupiter.api,
- org.junit.platform.suite.api
+Import-Package: org.junit.jupiter.api;version="[5.14.0,6.0.0)",
+ org.junit.platform.suite.api;version="[1.14.0,2.0.0)"
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/ConfiguratorUtils.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/ConfiguratorUtils.java
index ab903529948..bb23f728d48 100644
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/ConfiguratorUtils.java
+++ b/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/ConfiguratorUtils.java
@@ -44,6 +44,7 @@ public class ConfiguratorUtils {
* @return platform configuration used in current instance of platform
* @since 3.0
*/
+ @Deprecated
public static IPlatformConfiguration getCurrentPlatformConfiguration() {
// acquire factory service first
BundleContext context = ConfigurationActivator.getBundleContext();
@@ -69,6 +70,7 @@ public static IPlatformConfiguration getCurrentPlatformConfiguration() {
* is specified, an empty configuration object is returned
* @return platform configuration used in current instance of platform
*/
+ @Deprecated
public static IPlatformConfiguration getPlatformConfiguration(URL url) throws IOException {
// acquire factory service first
BundleContext context = ConfigurationActivator.getBundleContext();
@@ -95,6 +97,7 @@ public static IPlatformConfiguration getPlatformConfiguration(URL url) throws IO
* @param loc location of the platform installation. Used to resolve entries in the save location
* @return platform configuration used in current instance of platform
*/
+ @Deprecated
public static IPlatformConfiguration getPlatformConfiguration(URL url, URL loc) throws IOException {
// acquire factory service first
BundleContext context = ConfigurationActivator.getBundleContext();
@@ -115,6 +118,7 @@ public static IPlatformConfiguration getPlatformConfiguration(URL url, URL loc)
/**
* @return the URL of this eclipse installation
*/
+ @Deprecated
public static URL getInstallURL() {
return Utils.getInstallURL();
}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfiguration.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfiguration.java
index 4394c208840..0176d8c6368 100644
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfiguration.java
+++ b/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfiguration.java
@@ -44,6 +44,7 @@ public interface IPlatformConfiguration {
*
* @since 2.0
*/
+ @Deprecated
public interface ISiteEntry {
/**
@@ -52,6 +53,7 @@ public interface ISiteEntry {
* @return site url
* @since 2.0
*/
+ @Deprecated
public URL getURL();
/**
@@ -60,6 +62,7 @@ public interface ISiteEntry {
* @return site policy
* @since 2.0
*/
+ @Deprecated
public ISitePolicy getSitePolicy();
/**
@@ -68,6 +71,7 @@ public interface ISiteEntry {
* @param policy site policy
* @since 2.0
*/
+ @Deprecated
public void setSitePolicy(ISitePolicy policy);
/**
@@ -78,6 +82,7 @@ public interface ISiteEntry {
* A feature entry is returned as a path relative to the site URL
* @since 2.0
*/
+ @Deprecated
public String[] getFeatures();
/**
@@ -90,6 +95,7 @@ public interface ISiteEntry {
* A plug-in entry is returned as a path relative to the site URL *
* @since 2.0
*/
+ @Deprecated
public String[] getPlugins();
/**
@@ -100,6 +106,7 @@ public interface ISiteEntry {
* @return site change stamp
* @since 2.0
*/
+ @Deprecated
public long getChangeStamp();
/**
@@ -132,6 +139,7 @@ public interface ISiteEntry {
* @return true if site can be updated, false otherwise
* @since 2.0
*/
+ @Deprecated
public boolean isUpdateable();
/**
@@ -142,6 +150,7 @@ public interface ISiteEntry {
* @return true if the site is linked, false otherwise
* @since 2.0
*/
+ @Deprecated
public boolean isNativelyLinked();
}
@@ -167,6 +176,7 @@ public interface ISiteEntry {
*
* @since 2.0
*/
+ @Deprecated
public interface ISitePolicy {
/**
@@ -178,6 +188,7 @@ public interface ISitePolicy {
* policy type is interpreted as path entries to included plugin.xml
* or fragment.xml relative to the site URL
*/
+ @Deprecated
public static final int USER_INCLUDE = 0;
/**
@@ -185,6 +196,7 @@ public interface ISitePolicy {
* policy type is interpreted as path entries to excluded plugin.xml
* or fragment.xml relative to the site URL
*/
+ @Deprecated
public static final int USER_EXCLUDE = 1;
/**
@@ -192,6 +204,7 @@ public interface ISitePolicy {
* are contributed to the runtime.
* @since 3.1
*/
+ @Deprecated
public static final int MANAGED_ONLY = 2;
/**
@@ -200,6 +213,7 @@ public interface ISitePolicy {
* @return policy type
* @since 2.0
*/
+ @Deprecated
public int getType();
/**
@@ -208,6 +222,7 @@ public interface ISitePolicy {
* @return the list as an array
* @since 2.0
*/
+ @Deprecated
public String[] getList();
/**
@@ -220,6 +235,7 @@ public interface ISitePolicy {
* @see #USER_EXCLUDE
* @since 2.0
*/
+ @Deprecated
public void setList(String[] list);
}
@@ -235,6 +251,7 @@ public interface ISitePolicy {
*
* @since 2.0
*/
+ @Deprecated
public interface IFeatureEntry {
/**
@@ -242,6 +259,7 @@ public interface IFeatureEntry {
* @return feature identifier
* @since 2.0
*/
+ @Deprecated
public String getFeatureIdentifier();
/**
@@ -249,6 +267,7 @@ public interface IFeatureEntry {
* @return feature version (as string), or null
* @since 2.0
*/
+ @Deprecated
public String getFeatureVersion();
/**
@@ -263,6 +282,7 @@ public interface IFeatureEntry {
* @return feature identifier (as string), or null
* @since 2.1
*/
+ @Deprecated
public String getFeaturePluginIdentifier();
/**
@@ -277,6 +297,7 @@ public interface IFeatureEntry {
* @return feature version (as string), or null
* @since 2.0
*/
+ @Deprecated
public String getFeaturePluginVersion();
/**
@@ -285,6 +306,7 @@ public interface IFeatureEntry {
* @return application identifier, or null
* @since 2.0
*/
+ @Deprecated
public String getFeatureApplication();
/**
@@ -295,6 +317,7 @@ public interface IFeatureEntry {
* @return array of URLs, or an empty array
* @since 2.0
*/
+ @Deprecated
public URL[] getFeatureRootURLs();
/**
@@ -304,6 +327,7 @@ public interface IFeatureEntry {
* false otherwise.
* @since 2.0
*/
+ @Deprecated
public boolean canBePrimary();
}
@@ -315,6 +339,7 @@ public interface IFeatureEntry {
* @return created site entry
* @since 2.0
*/
+ @Deprecated
public ISiteEntry createSiteEntry(URL url, ISitePolicy policy);
/**
@@ -327,6 +352,7 @@ public interface IFeatureEntry {
* @return created site policy entry
* @since 2.0
*/
+ @Deprecated
public ISitePolicy createSitePolicy(int type, String[] list);
/**
@@ -348,6 +374,7 @@ public interface IFeatureEntry {
* @return create feature entry
* @since 2.0
*/
+ @Deprecated
public IFeatureEntry createFeatureEntry(String id, String version, String pluginVersion, boolean primary, String application, URL[] root);
/**
@@ -371,6 +398,7 @@ public interface IFeatureEntry {
* @return create feature entry
* @since 2.1
*/
+ @Deprecated
public IFeatureEntry createFeatureEntry(String id, String version, String pluginIdentifier, String pluginVersion, boolean primary, String application, URL[] root);
/**
@@ -380,6 +408,7 @@ public interface IFeatureEntry {
* @param entry site entry
* @since 2.0
*/
+ @Deprecated
public void configureSite(ISiteEntry entry);
/**
@@ -392,6 +421,7 @@ public interface IFeatureEntry {
* the same URL should be replaced (true) or not (false).
* @since 2.0
*/
+ @Deprecated
public void configureSite(ISiteEntry entry, boolean replace);
/**
@@ -401,6 +431,7 @@ public interface IFeatureEntry {
* @param entry site entry
* @since 2.0
*/
+ @Deprecated
public void unconfigureSite(ISiteEntry entry);
/**
@@ -410,6 +441,7 @@ public interface IFeatureEntry {
* configured
* @since 2.0
*/
+ @Deprecated
public ISiteEntry[] getConfiguredSites();
/**
@@ -419,6 +451,7 @@ public interface IFeatureEntry {
* @return matching site entry, or null if no match found
* @since 2.0
*/
+ @Deprecated
public ISiteEntry findConfiguredSite(URL url);
/**
@@ -428,6 +461,7 @@ public interface IFeatureEntry {
* @param entry feature entry
* @since 2.0
*/
+ @Deprecated
public void configureFeatureEntry(IFeatureEntry entry);
/**
@@ -435,6 +469,7 @@ public interface IFeatureEntry {
* @param entry feature entry
* @since 2.0
*/
+ @Deprecated
public void unconfigureFeatureEntry(IFeatureEntry entry);
/**
@@ -443,6 +478,7 @@ public interface IFeatureEntry {
* are configured
* @since 2.0
*/
+ @Deprecated
public IFeatureEntry[] getConfiguredFeatureEntries();
/**
@@ -451,6 +487,7 @@ public interface IFeatureEntry {
* @return ferature entry, or null.
* @since 2.0
*/
+ @Deprecated
public IFeatureEntry findConfiguredFeatureEntry(String id);
/**
@@ -460,6 +497,7 @@ public interface IFeatureEntry {
* configuration location could not be determined.
* @since 2.0
*/
+ @Deprecated
public URL getConfigurationLocation();
/**
@@ -470,6 +508,7 @@ public interface IFeatureEntry {
* @return configuration change stamp
* @since 2.0
*/
+ @Deprecated
public long getChangeStamp();
/**
@@ -504,6 +543,7 @@ public interface IFeatureEntry {
* @return primary feature identifier, or null if none configured
* @since 2.0
*/
+ @Deprecated
public String getPrimaryFeatureIdentifier();
/**
@@ -513,6 +553,7 @@ public interface IFeatureEntry {
* @return an array of plug-in path elements (full URL entries), or an empty array.
* @since 2.0
*/
+ @Deprecated
public URL[] getPluginPath();
/**
@@ -549,6 +590,7 @@ public interface IFeatureEntry {
* otherwise
* @since 2.0
*/
+ @Deprecated
public boolean isUpdateable();
/**
@@ -561,6 +603,7 @@ public interface IFeatureEntry {
* otherwise
* @since 2.0
*/
+ @Deprecated
public boolean isTransient();
/**
@@ -574,6 +617,7 @@ public interface IFeatureEntry {
* otherwise
* @since 2.0
*/
+ @Deprecated
public void isTransient(boolean value);
/**
@@ -582,12 +626,14 @@ public interface IFeatureEntry {
* configuration state, and updates the lists of available plug-ins.
* @since 2.0
*/
+ @Deprecated
public void refresh();
/**
* Called to save the configuration information
* @since 2.0
*/
+ @Deprecated
public void save() throws IOException;
/**
@@ -597,6 +643,7 @@ public interface IFeatureEntry {
* @param url save location.
* @since 2.0
*/
+ @Deprecated
public void save(URL url) throws IOException;
}
diff --git a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfigurationFactory.java b/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfigurationFactory.java
index 179470f659a..39ab8372fa0 100644
--- a/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfigurationFactory.java
+++ b/update/org.eclipse.update.configurator/src/org/eclipse/update/configurator/IPlatformConfigurationFactory.java
@@ -34,6 +34,7 @@ public interface IPlatformConfigurationFactory {
*
* @return platform configuration used in current instance of platform
*/
+ @Deprecated
public IPlatformConfiguration getCurrentPlatformConfiguration();
/**
* Returns a platform configuration object, optionally initialized with previously saved
@@ -43,6 +44,7 @@ public interface IPlatformConfigurationFactory {
* is specified, an empty configuration object is returned
* @return platform configuration used in current instance of platform
*/
+ @Deprecated
public IPlatformConfiguration getPlatformConfiguration(URL url) throws IOException;
/**
@@ -55,5 +57,6 @@ public interface IPlatformConfigurationFactory {
* location
* @return platform configuration used in current instance of platform
*/
+ @Deprecated
public IPlatformConfiguration getPlatformConfiguration(URL url, URL loc) throws IOException;
}