diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 1970fec..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1,141 +0,0 @@
-# https://docs.github.com/en/get-started/git-basics/configuring-git-to-handle-line-endings#example
-# inspired by
-# - https://github.com/alexkaratarakis/gitattributes/blob/master/Java.gitattributes
-# - https://github.com/alexkaratarakis/gitattributes/blob/master/Common.gitattributes
-
-# Handle line endings automatically for files detected as text
-# and leave all files detected as binary untouched.
-* text=auto
-
-#
-# The above will handle all files with names NOT matching patterns defined below
-#
-
-# Git files
-.gitattributes text eol=lf
-**/.gitattributes text eol=lf
-.gitignore text eol=lf
-**/.gitignore text eol=lf
-
-
-# Documents
-*.doc binary diff=astextplain
-*.docx binary diff=astextplain
-*.dot binary diff=astextplain
-*.pdf binary diff=astextplain
-*.ppt binary diff=astextplain
-*.pptx binary diff=astextplain
-*.rtf binary diff=astextplain
-*.vsd binary diff=astextplain
-*.vsdx binary diff=astextplain
-*.odt binary diff=odf
-*.ods binary diff=odf
-*.odp binary diff=odf
-*.adoc text
-*.csv text
-*.md text diff=markdown
-*.txt text
-
-
-# Config/Serialisation
-.editorconfig text
-**/.editorconfig text
-*.graphql text
-*.ini text
-*.properties text
-*.json text
-*.toml text
-*.xml text
-*.yaml text
-*.yml text
-
-
-# Scripts
-*.bat text eol=crlf
-*.cmd text eol=crlf
-*.ps1 text eol=crlf
-*.bash text eol=lf
-*.fish text eol=lf
-*.sh text eol=lf
-*.zsh text eol=lf
-*.dart text
-*.hx text
-*.lua text
-*.php text
-*.py text
-*.python text
-*.sql text
-mvnw text eol=lf
-**/Dockerfile text eol=lf
-**/*.Dockerfile text eol=lf
-
-
-# Archives
-*.7z binary
-*.gz binary
-*.tar binary
-*.tar.gz binary
-*.tgz binary
-*.xz binary
-*.zip binary
-
-
-# Native binaries
-*.dll binary
-*.dylib binary
-*.exe binary
-*.so binary
-
-
-# Images
-*.eps binary
-*.gif binary
-*.ico binary
-*.jpg binary
-*.jpeg binary
-*.png binary
-*.svg text
-*.svgz binary
-*.tif binary
-*.tiff binary
-
-
-# Fonts
-*.eot binary
-*.otf binary
-*.ttf binary
-*.woff binary
-
-
-# Java
-*.gradle text diff=java
-*.gradle.kts text diff=java
-*.java text diff=java
-*.class binary
-*.ear binary
-*.jceks binary
-*.jks binary
-*.jar binary
-*.pak binary
-*.war binary
-*.jsp text
-*.jspf text
-*.jspx text
-*.tld text
-*.tag text
-*.tagx text
-
-
-# Web
-*.css text diff=css
-*.htm text diff=html
-*.html text diff=html
-*.js text
-*.ts text
-*.vue text
-
-
-# https://git-scm.com/docs/gitattributes#_export_ignore
-.gitattributes export-ignore
-.gitignore export-ignore
-.gitkeep export-ignore
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
deleted file mode 100644
index 6bdaa99..0000000
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ /dev/null
@@ -1,6 +0,0 @@
-*Issue #, if available:*
-
-*Description of changes:*
-
-
-By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
deleted file mode 100644
index 4bd5819..0000000
--- a/.github/dependabot.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-# https://docs.github.com/en/code-security/dependabot/working-with-dependabot/dependabot-options-reference
-version: 2
-updates:
-- package-ecosystem: github-actions
- directory: /
- schedule:
- interval: weekly
- day: monday
- time: "14:00"
- commit-message:
- prefix: ci
- prefix-development: ci
- include: scope
- labels:
- - dependencies
- - gha
- - pinned
-
-- package-ecosystem: maven
- directory: /
- schedule:
- interval: weekly
- day: monday
- time: "14:00"
- commit-message:
- prefix: fix
- prefix-development: build
- include: scope
- labels:
- - dependencies
- - mvn
- - pinned
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
deleted file mode 100644
index 1dd17c2..0000000
--- a/.github/workflows/build.yml
+++ /dev/null
@@ -1,82 +0,0 @@
-# SPDX-FileCopyrightText: © Sebastian Thomschke and contributors
-# SPDX-FileContributor: Sebastian Thomschke (https://sebthom.de/)
-# SPDX-License-Identifier: EPL-2.0
-# SPDX-ArtifactOfProjectHomePage: https://github.com/sebthom/open-with-eclipse-plugin
-#
-# https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax
-name: Build
-
-on: # https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows
- schedule:
- # https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#schedule
- - cron: "0 15 1 * *"
- push:
- branches-ignore: # build all branches except:
- - "dependabot/**" # prevent GHA triggered twice (once for commit to the branch and once for opening/syncing the PR)
- tags-ignore: # don't build tags
- - "**"
- paths-ignore:
- - ".act*"
- - "**/*.adoc"
- - "**/*.md"
- - ".editorconfig"
- - ".git*"
- - ".github/*.yml"
- - ".github/ISSUE_TEMPLATE/*"
- - ".github/workflows/stale.yml"
- pull_request:
- paths-ignore:
- - ".act*"
- - "**/*.adoc"
- - "**/*.md"
- - ".editorconfig"
- - ".git*"
- - ".github/*.yml"
- - ".github/ISSUE_TEMPLATE/*"
- - ".github/workflows/stale.yml"
- workflow_dispatch:
- # https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#workflow_dispatch
- inputs:
- extra-maven-args:
- description: "Additional command-line arguments to append to all Maven invocations"
- required: false
- type: string
- debug-with-ssh:
- description: "Start an SSH session for debugging purposes at the end of the build:"
- default: never
- type: choice
- options: [ always, on_failure, on_failure_or_cancelled, never ]
- debug-with-ssh-only-for-actor:
- description: "Restrict SSH debug session access to the GitHub user who triggered the workflow"
- default: true
- type: boolean
-
-jobs:
- ###########################################################
- eclipse-plugin-build:
- ###########################################################
- uses: sebthom/gha-shared/.github/workflows/reusable.eclipse-plugin-build.yml@v1
- with:
- timeout-minutes: 10
-
- target-files: build.target
-
- extra-maven-args: ${{ inputs.extra-maven-args }}
- jarsigner-alias: sebthom.github.io
-
- development-branch: main
- development-updatesite-branch: updatesite-preview
- release-branch: release
- release-updatesite-branch: updatesite
- release-archive-name: de.sebthom.eclipse.open_with_eclipse.updatesite.zip
-
- debug-with-ssh: ${{ inputs.debug-with-ssh }}
- debug-with-ssh-only-for-actor: ${{ inputs.debug-with-ssh-only-for-actor }}
-
- secrets:
- JARSIGNER_KEYSTORE: ${{ secrets.CERTDB }} # populated by https://github.com/sebthom/sebthom.github.io/actions/workflows/renew-cert.yml
-
- permissions:
- actions: write # to delete action cache entries
- contents: write # to create releases (commit to updatesite branches)
- pull-requests: write # for dependabot auto merges
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
deleted file mode 100644
index f318fa9..0000000
--- a/.github/workflows/stale.yml
+++ /dev/null
@@ -1,20 +0,0 @@
-# https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax
-name: Stale issues
-
-on: # https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows
- schedule:
- # https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#schedule
- - cron: '0 15 1,15 * *'
- workflow_dispatch:
- # https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#workflow_dispatch
-
-permissions:
- issues: write
- pull-requests: write
-
-jobs:
- stale:
- runs-on: ubuntu-latest
- steps:
- - name: Run stale action
- uses: sebthom/gha-shared/.github/actions/stale@v1
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index f33b671..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,46 +0,0 @@
-# Local work folder that is not checked in
-_LOCAL/
-
-# Eclipse
-.apt_generated/
-.checkstyle
-.classpath
-.factorypath
-.project
-**/.settings/*
-!**/.settings/org.eclipse.jdt.core.prefs
-bin/
-
-# Maven
-target/
-pom.xml.tag
-pom.xml.releaseBackup
-pom.xml.versionsBackup
-pom.xml.next
-release.properties
-dependency-reduced-pom.xml
-buildNumber.properties
-.mvn/timing.properties
-
-# IntelliJ
-/.idea
-/*.iml
-/*.ipr
-/*.iws
-
-# NetBeans
-nb-configuration.xml
-
-# Visual Studio Code
-/.vscode
-
-# OSX
-.DS_Store
-
-# Vim
-*.swo
-*.swp
-
-# patch
-*.orig
-*.rej
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
deleted file mode 100644
index 82fd6cf..0000000
--- a/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,132 +0,0 @@
-# Contributor Covenant Code of Conduct
-
-## Our Pledge
-
-We as members, contributors, and leaders pledge to make participation in our
-community a harassment-free experience for everyone, regardless of age, body
-size, visible or invisible disability, ethnicity, sex characteristics, gender
-identity and expression, level of experience, education, socio-economic status,
-nationality, personal appearance, race, caste, color, religion, or sexual
-identity and orientation.
-
-We pledge to act and interact in ways that contribute to an open, welcoming,
-diverse, inclusive, and healthy community.
-
-## Our Standards
-
-Examples of behavior that contributes to a positive environment for our
-community include:
-
-* Demonstrating empathy and kindness toward other people
-* Being respectful of differing opinions, viewpoints, and experiences
-* Giving and gracefully accepting constructive feedback
-* Accepting responsibility and apologizing to those affected by our mistakes,
- and learning from the experience
-* Focusing on what is best not just for us as individuals, but for the overall
- community
-
-Examples of unacceptable behavior include:
-
-* The use of sexualized language or imagery, and sexual attention or advances of
- any kind
-* Trolling, insulting or derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or email address,
- without their explicit permission
-* Other conduct which could reasonably be considered inappropriate in a
- professional setting
-
-## Enforcement Responsibilities
-
-Community leaders are responsible for clarifying and enforcing our standards of
-acceptable behavior and will take appropriate and fair corrective action in
-response to any behavior that they deem inappropriate, threatening, offensive,
-or harmful.
-
-Community leaders have the right and responsibility to remove, edit, or reject
-comments, commits, code, wiki edits, issues, and other contributions that are
-not aligned to this Code of Conduct, and will communicate reasons for moderation
-decisions when appropriate.
-
-## Scope
-
-This Code of Conduct applies within all community spaces, and also applies when
-an individual is officially representing the community in public spaces.
-Examples of representing our community include using an official email address,
-posting via an official social media account, or acting as an appointed
-representative at an online or offline event.
-
-## Enforcement
-
-Instances of abusive, harassing, or otherwise unacceptable behavior may be
-reported to the community leaders responsible for enforcement at
-https://github.com/sebthom/open-with-eclipse-plugin/issues
-All complaints will be reviewed and investigated promptly and fairly.
-
-All community leaders are obligated to respect the privacy and security of the
-reporter of any incident.
-
-## Enforcement Guidelines
-
-Community leaders will follow these Community Impact Guidelines in determining
-the consequences for any action they deem in violation of this Code of Conduct:
-
-### 1. Correction
-
-**Community Impact**: Use of inappropriate language or other behavior deemed
-unprofessional or unwelcome in the community.
-
-**Consequence**: A private, written warning from community leaders, providing
-clarity around the nature of the violation and an explanation of why the
-behavior was inappropriate. A public apology may be requested.
-
-### 2. Warning
-
-**Community Impact**: A violation through a single incident or series of
-actions.
-
-**Consequence**: A warning with consequences for continued behavior. No
-interaction with the people involved, including unsolicited interaction with
-those enforcing the Code of Conduct, for a specified period of time. This
-includes avoiding interactions in community spaces as well as external channels
-like social media. Violating these terms may lead to a temporary or permanent
-ban.
-
-### 3. Temporary Ban
-
-**Community Impact**: A serious violation of community standards, including
-sustained inappropriate behavior.
-
-**Consequence**: A temporary ban from any sort of interaction or public
-communication with the community for a specified period of time. No public or
-private interaction with the people involved, including unsolicited interaction
-with those enforcing the Code of Conduct, is allowed during this period.
-Violating these terms may lead to a permanent ban.
-
-### 4. Permanent Ban
-
-**Community Impact**: Demonstrating a pattern of violation of community
-standards, including sustained inappropriate behavior, harassment of an
-individual, or aggression toward or disparagement of classes of individuals.
-
-**Consequence**: A permanent ban from any sort of public interaction within the
-community.
-
-## Attribution
-
-This Code of Conduct is adapted from the [Contributor Covenant][homepage],
-version 2.1, available at
-[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
-
-Community Impact Guidelines were inspired by
-[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
-
-For answers to common questions about this code of conduct, see the FAQ at
-[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
-[https://www.contributor-covenant.org/translations][translations].
-
-[homepage]: https://www.contributor-covenant.org
-[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
-[Mozilla CoC]: https://github.com/mozilla/diversity
-[FAQ]: https://www.contributor-covenant.org/faq
-[translations]: https://www.contributor-covenant.org/translations
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index 7e5fd65..0000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# Contributing to the Project
-
-Thank you for your interest in contributing to this project! We strive to make the contribution process clear and welcoming.
-
-Please take a moment to review the guidelines below.
-
-
-## Code of Conduct
-
-Please review and adhere to our [Code of Conduct](CODE_OF_CONDUCT.md) in all your interactions with the project.
-This helps us maintain a positive and respectful environment for everyone involved.
-
-
-## How to Contribute
-
-### Contributor Responsibilities
-
-By submitting your contributions, you agree to the following:
-- You are the sole author of the content you contribute, or you have the appropriate rights and permissions to contribute it.
-- If employed, you have obtained any necessary permissions from your employer to contribute to this project.
-- All contributions will be made available under the project’s license.
-
-### Issues
-
-We use GitHub Issues to track bugs and feature requests. When submitting an issue, please ensure:
-- The description is clear and concise.
-- You provide enough details and steps to reproduce the issue, if applicable.
-
-### Pull Requests
-
-Before making substantial contributions:
-1. **Discuss Changes**: Please file an issue first to discuss your proposed changes with the team. This helps ensure your contribution aligns with the project’s goals.
-2. **Follow Best Practices**: Adhere to the guidelines and ensure your code meets the project’s standards (see [Code Guidelines](CODING_GUIDELINES.md)).
-
-When submitting a pull request:
-- Ensure your changes are well-documented.
-- Include tests for any new features or significant changes.
-- Reference the relevant issue(s) in your pull request description.
-
-### Source Code Formatting
-
-Before committing your code ensure it is formatted according the [vegardit.com Eclipse formatter rules](https://github.com/vegardit/vegardit-maven-parent/blob/main/src/etc/eclipse-formatter.xml).
-
-IntelliJ users can use the [Eclipse Code Formatter](https://plugins.jetbrains.com/plugin/6546-eclipse-code-formatter) plugin to import and use the formatter settings.
-
-
-## Licensing
-
-By contributing to this project, you agree that your contributions will be licensed under the [Eclipse Public License 2.0](LICENSE.txt).
-
-The project itself is also licensed under the [Eclipse Public License 2.0](LICENSE.txt)).
diff --git a/LICENSE.txt b/LICENSE.txt
deleted file mode 100644
index e48e096..0000000
--- a/LICENSE.txt
+++ /dev/null
@@ -1,277 +0,0 @@
-Eclipse Public License - v 2.0
-
- THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
- PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
- OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
-1. DEFINITIONS
-
-"Contribution" means:
-
- a) in the case of the initial Contributor, the initial content
- Distributed under this Agreement, and
-
- b) in the case of each subsequent Contributor:
- i) changes to the Program, and
- ii) additions to the Program;
- where such changes and/or additions to the Program originate from
- and are Distributed by that particular Contributor. A Contribution
- "originates" from a Contributor if it was added to the Program by
- such Contributor itself or anyone acting on such Contributor's behalf.
- Contributions do not include changes or additions to the Program that
- are not Modified Works.
-
-"Contributor" means any person or entity that Distributes the Program.
-
-"Licensed Patents" mean patent claims licensable by a Contributor which
-are necessarily infringed by the use or sale of its Contribution alone
-or when combined with the Program.
-
-"Program" means the Contributions Distributed in accordance with this
-Agreement.
-
-"Recipient" means anyone who receives the Program under this Agreement
-or any Secondary License (as applicable), including Contributors.
-
-"Derivative Works" shall mean any work, whether in Source Code or other
-form, that is based on (or derived from) the Program and for which the
-editorial revisions, annotations, elaborations, or other modifications
-represent, as a whole, an original work of authorship.
-
-"Modified Works" shall mean any work in Source Code or other form that
-results from an addition to, deletion from, or modification of the
-contents of the Program, including, for purposes of clarity any new file
-in Source Code form that contains any contents of the Program. Modified
-Works shall not include works that contain only declarations,
-interfaces, types, classes, structures, or files of the Program solely
-in each case in order to link to, bind by name, or subclass the Program
-or Modified Works thereof.
-
-"Distribute" means the acts of a) distributing or b) making available
-in any manner that enables the transfer of a copy.
-
-"Source Code" means the form of a Program preferred for making
-modifications, including but not limited to software source code,
-documentation source, and configuration files.
-
-"Secondary License" means either the GNU General Public License,
-Version 2.0, or any later versions of that license, including any
-exceptions or additional permissions as identified by the initial
-Contributor.
-
-2. GRANT OF RIGHTS
-
- a) Subject to the terms of this Agreement, each Contributor hereby
- grants Recipient a non-exclusive, worldwide, royalty-free copyright
- license to reproduce, prepare Derivative Works of, publicly display,
- publicly perform, Distribute and sublicense the Contribution of such
- Contributor, if any, and such Derivative Works.
-
- b) Subject to the terms of this Agreement, each Contributor hereby
- grants Recipient a non-exclusive, worldwide, royalty-free patent
- license under Licensed Patents to make, use, sell, offer to sell,
- import and otherwise transfer the Contribution of such Contributor,
- if any, in Source Code or other form. This patent license shall
- apply to the combination of the Contribution and the Program if, at
- the time the Contribution is added by the Contributor, such addition
- of the Contribution causes such combination to be covered by the
- Licensed Patents. The patent license shall not apply to any other
- combinations which include the Contribution. No hardware per se is
- licensed hereunder.
-
- c) Recipient understands that although each Contributor grants the
- licenses to its Contributions set forth herein, no assurances are
- provided by any Contributor that the Program does not infringe the
- patent or other intellectual property rights of any other entity.
- Each Contributor disclaims any liability to Recipient for claims
- brought by any other entity based on infringement of intellectual
- property rights or otherwise. As a condition to exercising the
- rights and licenses granted hereunder, each Recipient hereby
- assumes sole responsibility to secure any other intellectual
- property rights needed, if any. For example, if a third party
- patent license is required to allow Recipient to Distribute the
- Program, it is Recipient's responsibility to acquire that license
- before distributing the Program.
-
- d) Each Contributor represents that to its knowledge it has
- sufficient copyright rights in its Contribution, if any, to grant
- the copyright license set forth in this Agreement.
-
- e) Notwithstanding the terms of any Secondary License, no
- Contributor makes additional grants to any Recipient (other than
- those set forth in this Agreement) as a result of such Recipient's
- receipt of the Program under the terms of a Secondary License
- (if permitted under the terms of Section 3).
-
-3. REQUIREMENTS
-
-3.1 If a Contributor Distributes the Program in any form, then:
-
- a) the Program must also be made available as Source Code, in
- accordance with section 3.2, and the Contributor must accompany
- the Program with a statement that the Source Code for the Program
- is available under this Agreement, and informs Recipients how to
- obtain it in a reasonable manner on or through a medium customarily
- used for software exchange; and
-
- b) the Contributor may Distribute the Program under a license
- different than this Agreement, provided that such license:
- i) effectively disclaims on behalf of all other Contributors all
- warranties and conditions, express and implied, including
- warranties or conditions of title and non-infringement, and
- implied warranties or conditions of merchantability and fitness
- for a particular purpose;
-
- ii) effectively excludes on behalf of all other Contributors all
- liability for damages, including direct, indirect, special,
- incidental and consequential damages, such as lost profits;
-
- iii) does not attempt to limit or alter the recipients' rights
- in the Source Code under section 3.2; and
-
- iv) requires any subsequent distribution of the Program by any
- party to be under a license that satisfies the requirements
- of this section 3.
-
-3.2 When the Program is Distributed as Source Code:
-
- a) it must be made available under this Agreement, or if the
- Program (i) is combined with other material in a separate file or
- files made available under a Secondary License, and (ii) the initial
- Contributor attached to the Source Code the notice described in
- Exhibit A of this Agreement, then the Program may be made available
- under the terms of such Secondary Licenses, and
-
- b) a copy of this Agreement must be included with each copy of
- the Program.
-
-3.3 Contributors may not remove or alter any copyright, patent,
-trademark, attribution notices, disclaimers of warranty, or limitations
-of liability ("notices") contained within the Program from any copy of
-the Program which they Distribute, provided that Contributors may add
-their own appropriate notices.
-
-4. COMMERCIAL DISTRIBUTION
-
-Commercial distributors of software may accept certain responsibilities
-with respect to end users, business partners and the like. While this
-license is intended to facilitate the commercial use of the Program,
-the Contributor who includes the Program in a commercial product
-offering should do so in a manner which does not create potential
-liability for other Contributors. Therefore, if a Contributor includes
-the Program in a commercial product offering, such Contributor
-("Commercial Contributor") hereby agrees to defend and indemnify every
-other Contributor ("Indemnified Contributor") against any losses,
-damages and costs (collectively "Losses") arising from claims, lawsuits
-and other legal actions brought by a third party against the Indemnified
-Contributor to the extent caused by the acts or omissions of such
-Commercial Contributor in connection with its distribution of the Program
-in a commercial product offering. The obligations in this section do not
-apply to any claims or Losses relating to any actual or alleged
-intellectual property infringement. In order to qualify, an Indemnified
-Contributor must: a) promptly notify the Commercial Contributor in
-writing of such claim, and b) allow the Commercial Contributor to control,
-and cooperate with the Commercial Contributor in, the defense and any
-related settlement negotiations. The Indemnified Contributor may
-participate in any such claim at its own expense.
-
-For example, a Contributor might include the Program in a commercial
-product offering, Product X. That Contributor is then a Commercial
-Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance
-claims and warranties are such Commercial Contributor's responsibility
-alone. Under this section, the Commercial Contributor would have to
-defend claims against the other Contributors related to those performance
-claims and warranties, and if a court requires any other Contributor to
-pay any damages as a result, the Commercial Contributor must pay
-those damages.
-
-5. NO WARRANTY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
-PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
-BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
-IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
-TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
-PURPOSE. Each Recipient is solely responsible for determining the
-appropriateness of using and distributing the Program and assumes all
-risks associated with its exercise of rights under this Agreement,
-including but not limited to the risks and costs of program errors,
-compliance with applicable laws, damage to or loss of data, programs
-or equipment, and unavailability or interruption of operations.
-
-6. DISCLAIMER OF LIABILITY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
-PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
-SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
-PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
-EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-7. GENERAL
-
-If any provision of this Agreement is invalid or unenforceable under
-applicable law, it shall not affect the validity or enforceability of
-the remainder of the terms of this Agreement, and without further
-action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.
-
-If Recipient institutes patent litigation against any entity
-(including a cross-claim or counterclaim in a lawsuit) alleging that the
-Program itself (excluding combinations of the Program with other software
-or hardware) infringes such Recipient's patent(s), then such Recipient's
-rights granted under Section 2(b) shall terminate as of the date such
-litigation is filed.
-
-All Recipient's rights under this Agreement shall terminate if it
-fails to comply with any of the material terms or conditions of this
-Agreement and does not cure such failure in a reasonable period of
-time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use
-and distribution of the Program as soon as reasonably practicable.
-However, Recipient's obligations under this Agreement and any licenses
-granted by Recipient relating to the Program shall continue and survive.
-
-Everyone is permitted to copy and distribute copies of this Agreement,
-but in order to avoid inconsistency the Agreement is copyrighted and
-may only be modified in the following manner. The Agreement Steward
-reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement
-Steward has the right to modify this Agreement. The Eclipse Foundation
-is the initial Agreement Steward. The Eclipse Foundation may assign the
-responsibility to serve as the Agreement Steward to a suitable separate
-entity. Each new version of the Agreement will be given a distinguishing
-version number. The Program (including Contributions) may always be
-Distributed subject to the version of the Agreement under which it was
-received. In addition, after a new version of the Agreement is published,
-Contributor may elect to Distribute the Program (including its
-Contributions) under the new version.
-
-Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
-receives no rights or licenses to the intellectual property of any
-Contributor under this Agreement, whether expressly, by implication,
-estoppel or otherwise. All rights in the Program not expressly granted
-under this Agreement are reserved. Nothing in this Agreement is intended
-to be enforceable by any entity that is not a Contributor or Recipient.
-No third-party beneficiary rights are created under this Agreement.
-
-Exhibit A - Form of Secondary Licenses Notice
-
-"This Source Code may also be made available under the following
-Secondary Licenses when the conditions for such availability set forth
-in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
-version(s), and exceptions or additional permissions here}."
-
- Simply including a copy of this Agreement, including this Exhibit A
- is not sufficient to license the Source Code under Secondary Licenses.
-
- If it is not possible or desirable to put the notice in a particular
- file, then You may include the notice in a location (such as a LICENSE
- file in a relevant directory) where a recipient would be likely to
- look for such a notice.
-
- You may add additional accurate notices of copyright ownership.
diff --git a/META-INF/LICENSE.THIRD-PARTY.txt b/META-INF/LICENSE.THIRD-PARTY.txt
new file mode 100644
index 0000000..8bfb3a5
--- /dev/null
+++ b/META-INF/LICENSE.THIRD-PARTY.txt
@@ -0,0 +1,21 @@
+
+Lists of 19 third-party dependencies.
+ (MIT license) Animal Sniffer Annotations (org.codehaus.mojo:animal-sniffer-annotations:1.9 - http://mojo.codehaus.org/animal-sniffer/animal-sniffer-annotations)
+ (Apache-2.0) Apache Commons IO (commons-io:commons-io:2.20.0 - https://commons.apache.org/proper/commons-io/)
+ (Apache-2.0) Apache Commons Lang (org.apache.commons:commons-lang3:3.19.0 - https://commons.apache.org/proper/commons-lang/)
+ (Apache License, Version 2.0) Apache Felix Declarative Services (org.apache.felix:org.apache.felix.scr:2.2.2 - http://felix.apache.org/org.apache.felix.scr/)
+ (Unicode/ICU License) ICU4J (com.ibm.icu:icu4j:67.1 - http://icu-project.org/)
+ (Apache License v2.0) (LGPL, version 2.1) Java Native Access (net.java.dev.jna:jna:5.8.0 - https://github.com/java-native-access/jna)
+ (Apache License v2.0) (LGPL, version 2.1) Java Native Access Platform (net.java.dev.jna:jna-platform:5.8.0 - https://github.com/java-native-access/jna)
+ (Eclipse Public License 2.0) jstuff-core (net.sf.jstuff:jstuff-core:8.2.0 - https://github.com/sebthom/jstuff/jstuff-core)
+ (Eclipse Public License 2.0) no-npe-eea-all (com.vegardit.no-npe:no-npe-eea-all:1.3.10-20251207.195431-2 - https://github.com/vegardit/no-npe/no-npe-eea-all)
+ (Unknown license) open-with-eclipse-feature (de.sebthom.eclipse.open_with_eclipse:de.sebthom.eclipse.open_with_eclipse.feature:1.0.0-SNAPSHOT - no url defined)
+ (Unknown license) open-with-eclipse-plugin (de.sebthom.eclipse.open_with_eclipse:de.sebthom.eclipse.open_with_eclipse:1.0.0-SNAPSHOT - no url defined)
+ (Apache License, Version 2.0) org.osgi:org.osgi.namespace.extender (org.osgi:org.osgi.namespace.extender:1.0.1 - http://www.osgi.org/)
+ (Apache License, Version 2.0) org.osgi:org.osgi.namespace.implementation (org.osgi:org.osgi.namespace.implementation:1.0.0 - http://www.osgi.org/)
+ (Apache-2.0) org.osgi:org.osgi.service.component (org.osgi:org.osgi.service.component:1.5.0 - https://docs.osgi.org/)
+ (Apache-2.0) org.osgi:org.osgi.service.event (org.osgi:org.osgi.service.event:1.4.1 - https://docs.osgi.org/)
+ (Apache-2.0) org.osgi:org.osgi.service.prefs (org.osgi:org.osgi.service.prefs:1.1.2 - https://docs.osgi.org/)
+ (Apache-2.0) org.osgi:org.osgi.util.function (org.osgi:org.osgi.util.function:1.2.0 - https://docs.osgi.org/)
+ (Apache-2.0) org.osgi:org.osgi.util.promise (org.osgi:org.osgi.util.promise:1.2.0 - https://docs.osgi.org/)
+ (Apache-2.0) org.osgi:osgi.annotation (org.osgi:osgi.annotation:8.0.1 - https://docs.osgi.org/)
diff --git a/README.md b/README.md
deleted file mode 100644
index c57f277..0000000
--- a/README.md
+++ /dev/null
@@ -1,101 +0,0 @@
-# "Open with Eclipse" plugin for Eclipse
-
-[](https://github.com/sebthom/open-with-eclipse-plugin/actions/workflows/build.yml)
-[](CODE_OF_CONDUCT.md)
-[](LICENSE.txt)
-[](https://marketplace.eclipse.org/content/open-eclipse-plugin)
-
-
-**Feedback and high-quality pull requests are highly welcome!**
-
-1. [What is it?](#what-is-it)
-1. [Installation](#installation)
-1. [Building from Sources](#building)
-1. [License](#license)
-
-
-## What is it?
-
-This plugin allows you to register a Windows Explorer "Open with Eclipse" menu entry for your Eclipse installation.
-
-
-
-
-
-
-## Installation
-
-To install the plugin into an existing Eclipse installation do:
-1. Within Eclipse go to: Help -> Install New Software...
-1. Enter the following update site URL: https://raw.githubusercontent.com/sebthom/open-with-eclipse-plugin/updatesite
-1. Select the `Open with Eclipse` feature to install.
-1. Ensure that the option `Contact all update sites during install to find required software` is enabled.
-1. Click `Next` twice.
-1. Read/accept the license terms and click `Finish`.
-1. Eclipse will now download the necessary files in the background.
-1. When the download has finished, Eclipse will ask about installing unsigned content. You need to accept if you want to
-1. After installation you will be prompted for a restart of Eclipse, which is recommended.
-
-
-## Building from Sources
-
-To ensure reproducible builds this Maven project inherits from the [vegardit-maven-parent](https://github.com/vegardit/vegardit-maven-parent)
-project which declares fixed versions and sensible default settings for all official Maven plug-ins.
-
-The project also uses the [maven-toolchains-plugin](http://maven.apache.org/plugins/maven-toolchains-plugin/) which decouples the JDK that is
-used to execute Maven and it's plug-ins from the target JDK that is used for compilation and/or unit testing. This ensures full binary
-compatibility of the compiled artifacts with the runtime library of the required target JDK.
-
-To build the project follow these steps:
-
-1. Download and install a Java 17 SDK, e.g. from:
- - https://adoptium.net/releases.html?variant=openjdk17
- - https://www.azul.com/downloads/?version=java-17-lts&architecture=x86-64-bit&package=jdk
-
-1. Download and install the latest [Maven distribution](https://maven.apache.org/download.cgi).
-
-1. In your user home directory create the file `.m2/toolchains.xml` with the following content:
-
- ```xml
-
-
-
- jdk
-
- 17
- default
-
-
- [PATH_TO_YOUR_JDK_17]
-
-
-
- ```
-
- Set the `[PATH_TO_YOUR_JDK_17]` parameter accordingly.
-
-1. Checkout the code using one of the following methods:
-
- - `git clone https://github.com/sebthom/open-with-eclipse-plugin`
- - `svn co https://github.com/sebthom/open-with-eclipse-plugin open-with-eclipse-plugin`
-
-1. Run `mvn clean verify` in the project root directory. This will execute compilation, unit-testing, integration-testing and
- packaging of all artifacts.
-
-
-## License
-
-If not otherwise specified (see below), files in this repository fall under the [Eclipse Public License 2.0](LICENSE.txt).
-
-Individual files contain the following tag instead of the full license text:
-```
-SPDX-License-Identifier: EPL-2.0
-```
-
-This enables machine processing of license information based on the SPDX License Identifiers that are available here: https://spdx.org/licenses/.
-
-An exception is made for:
-1. files in readable text which contain their own license information, or
-2. files in a directory containing a separate `LICENSE.txt` file, or
-3. files where an accompanying file exists in the same directory with a `.LICENSE.txt` suffix added to the base-name of the original file.
- For example `foobar.js` is may be accompanied by a `foobar.LICENSE.txt` license file.
diff --git a/artifacts.jar b/artifacts.jar
new file mode 100644
index 0000000..41dbceb
Binary files /dev/null and b/artifacts.jar differ
diff --git a/artifacts.xml.xz b/artifacts.xml.xz
new file mode 100644
index 0000000..44a991c
Binary files /dev/null and b/artifacts.xml.xz differ
diff --git a/build.target b/build.target
deleted file mode 100644
index f8bc0f6..0000000
--- a/build.target
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/content.jar b/content.jar
new file mode 100644
index 0000000..2a711a7
Binary files /dev/null and b/content.jar differ
diff --git a/content.xml.xz b/content.xml.xz
new file mode 100644
index 0000000..308000c
Binary files /dev/null and b/content.xml.xz differ
diff --git a/feature/build.properties b/feature/build.properties
deleted file mode 100644
index b3a611b..0000000
--- a/feature/build.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-bin.includes = feature.xml,\
- feature.properties
diff --git a/feature/feature.properties b/feature/feature.properties
deleted file mode 100644
index 5894d16..0000000
--- a/feature/feature.properties
+++ /dev/null
@@ -1,14 +0,0 @@
-name=Open with Eclipse
-description=Open with Eclipse plugin
-
-copyright=\
-Copyright 2021-2022 by Sebastian Thomschke and contributors.\n\
-\n\
-All rights reserved. This program and the accompanying materials \
-are made available under the terms of the Eclipse Public License v2.0 \
-which accompanies this distribution, and is available at \
-https://www.eclipse.org/legal/epl-v20.html\n\
-\n\
-Visit https://github.com/sebthom/open-with-eclipse-plugin\n
-
-licenseURL=https://www.eclipse.org/legal/epl-v20.html
diff --git a/feature/feature.xml b/feature/feature.xml
deleted file mode 100644
index 046db81..0000000
--- a/feature/feature.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
- %description
-
-
-
- %copyright
-
-
-
- %license
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/feature/pom.xml b/feature/pom.xml
deleted file mode 100644
index fff6c21..0000000
--- a/feature/pom.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- 4.0.0
-
-
- de.sebthom.eclipse.open_with_eclipse
- de.sebthom.eclipse.open_with_eclipse.parent
- 1.0.0-SNAPSHOT
-
-
- open-with-eclipse-feature
- de.sebthom.eclipse.open_with_eclipse.feature
- eclipse-feature
-
diff --git a/features/de.sebthom.eclipse.open_with_eclipse.feature_1.0.0.20251207-2347.jar b/features/de.sebthom.eclipse.open_with_eclipse.feature_1.0.0.20251207-2347.jar
new file mode 100644
index 0000000..c6d5b63
Binary files /dev/null and b/features/de.sebthom.eclipse.open_with_eclipse.feature_1.0.0.20251207-2347.jar differ
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..ef64c0e
--- /dev/null
+++ b/index.html
@@ -0,0 +1,9 @@
+
+
+
+ Update Site
+
+
+Update Site
+
+
diff --git a/p2.index b/p2.index
new file mode 100644
index 0000000..f575ccf
--- /dev/null
+++ b/p2.index
@@ -0,0 +1,4 @@
+#Sun Dec 07 23:48:00 UTC 2025
+artifact.repository.factory.order=artifacts.xml.xz,artifacts.xml,\!
+metadata.repository.factory.order=content.xml.xz,content.xml,\!
+version=1
diff --git a/plugin/.settings/org.eclipse.jdt.core.prefs b/plugin/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index c9076a2..0000000
--- a/plugin/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,118 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.builder.annotationPath.allLocations=enabled
-org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=enabled
-org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
-org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
-org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
-org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
-org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
-org.eclipse.jdt.core.compiler.annotation.nullanalysis=enabled
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=17
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.APILeak=warning
-org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
-org.eclipse.jdt.core.compiler.problem.deadCode=warning
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
-org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=enabled
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
-org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=info
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
-org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
-org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
-org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
-org.eclipse.jdt.core.compiler.problem.nullReference=error
-org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
-org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=error
-org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
-org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=warning
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
-org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=disabled
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
-org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
-org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.release=enabled
-org.eclipse.jdt.core.compiler.source=17
diff --git a/plugin/META-INF/MANIFEST.MF b/plugin/META-INF/MANIFEST.MF
deleted file mode 100644
index ecd8837..0000000
--- a/plugin/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,19 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %OpenWithEclipse_PluginName
-Bundle-SymbolicName: de.sebthom.eclipse.open_with_eclipse;singleton:=true
-Bundle-Version: 1.0.0.qualifier
-Bundle-Vendor: Sebastian Thomschke
-Bundle-Localization: src/main/java/de/sebthom/eclipse/open_with_eclipse/localization/messages
-Automatic-Module-Name: de.sebthom.eclipse.open_with_eclipse
-Bundle-Activator: de.sebthom.eclipse.open_with_eclipse.Plugin
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: JavaSE-17
-Bundle-ClassPath: .
-Require-Bundle: org.eclipse.platform;bundle-version="4.25.0",
- org.eclipse.core.runtime,
- org.eclipse.osgi,
- org.eclipse.ui,
- org.apache.commons.lang3;bundle-version="[3.19.0,4.0.0)",
- de.sebthom.eclipse.commons;bundle-version="[1.0.0.20251127-1946,2.0.0)",
- net.sf.jstuff.core;bundle-version="[8.2.0,9.0.0)"
diff --git a/plugin/about.ini b/plugin/about.ini
deleted file mode 100644
index fca05ad..0000000
--- a/plugin/about.ini
+++ /dev/null
@@ -1,13 +0,0 @@
-# https://ekkescorner.wordpress.com/2010/06/13/brand-your-feature-and-be-part-of-about-eclipse/
-featureImage=src/main/resources/images/open_with_eclipse@2x.png
-aboutText=\
-Open with Eclipse\n\
-\n\
-Copyright 2021-2022 by Sebastian Thomschke and contributors.\n\
-\n\
-All rights reserved. This program and the accompanying materials \
-are made available under the terms of the Eclipse Public License v2.0 \
-which accompanies this distribution, and is available at \
-https://www.eclipse.org/legal/epl-v20.html\n\
-\n\
-Visit https://github.com/sebthom/open-with-eclipse-plugin
diff --git a/plugin/build.properties b/plugin/build.properties
deleted file mode 100644
index 717ab81..0000000
--- a/plugin/build.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-source.. = src/main/java/
-output.. = target/classes/
-bin.includes = META-INF/,\
- .,\
- plugin.xml,\
- src/main/resources/,\
- about.ini,\
- src/main/java/de/sebthom/eclipse/open_with_eclipse/localization/
-bin.excludes = src/main/java/de/sebthom/eclipse/open_with_eclipse/localization/Messages.java
-
-# JDT Null Analysis for Eclipse
-additional.bundles = org.eclipse.jdt.annotation
diff --git a/plugin/plugin.xml b/plugin/plugin.xml
deleted file mode 100644
index 8ba9bb8..0000000
--- a/plugin/plugin.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/plugin/pom.xml b/plugin/pom.xml
deleted file mode 100644
index 2431a3c..0000000
--- a/plugin/pom.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
- 4.0.0
-
-
- de.sebthom.eclipse.open_with_eclipse
- de.sebthom.eclipse.open_with_eclipse.parent
- 1.0.0-SNAPSHOT
-
-
- open-with-eclipse-plugin
- de.sebthom.eclipse.open_with_eclipse
- eclipse-plugin
-
-
-
- true
-
-
-
-
\ No newline at end of file
diff --git a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/Constants.java b/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/Constants.java
deleted file mode 100644
index 33d408e..0000000
--- a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/Constants.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright 2021-2022 by Sebastian Thomschke and contributors
- * SPDX-License-Identifier: EPL-2.0
- */
-package de.sebthom.eclipse.open_with_eclipse;
-
-import java.nio.file.Path;
-
-/**
- * @author Sebastian Thomschke
- */
-public interface Constants {
-
- String IMAGE_ICON = "src/main/resources/images/open_with_eclipse.png";
-
- Path LAUNCHER_EXE = Path.of(System.getProperty("eclipse.launcher", "eclipse.exe"));
-
- String LAUNCHER_NAME = System.getProperty("eclipse.launcher.name", "Eclipse");
-}
diff --git a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/Plugin.java b/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/Plugin.java
deleted file mode 100644
index d757fc1..0000000
--- a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/Plugin.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2021-2022 by Sebastian Thomschke and contributors
- * SPDX-License-Identifier: EPL-2.0
- */
-package de.sebthom.eclipse.open_with_eclipse;
-
-import static net.sf.jstuff.core.validation.NullAnalysisHelper.*;
-
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.jface.resource.ImageRegistry;
-import org.osgi.framework.BundleContext;
-
-import de.sebthom.eclipse.commons.AbstractEclipsePlugin;
-import de.sebthom.eclipse.commons.BundleResources;
-import de.sebthom.eclipse.commons.logging.PluginLogger;
-import de.sebthom.eclipse.commons.logging.StatusFactory;
-import net.sf.jstuff.core.reflection.Fields;
-import net.sf.jstuff.core.validation.Assert;
-
-/**
- * @author Sebastian Thomschke
- */
-public class Plugin extends AbstractEclipsePlugin {
-
- /**
- * during runtime you can get ID with getBundle().getSymbolicName()
- */
- public static final String PLUGIN_ID = asNonNull(Plugin.class.getPackage()).getName().replace('_', '-');
-
- private static @Nullable Plugin instance;
-
- /**
- * @return the shared instance
- */
- public static Plugin get() {
- Assert.notNull(instance, "Default plugin instance is still null.");
- return asNonNull(instance);
- }
-
- public static PluginLogger log() {
- return get().getLogger();
- }
-
- public static BundleResources resources() {
- return get().getBundleResources();
- }
-
- public static StatusFactory status() {
- return get().getStatusFactory();
- }
-
- @Override
- public BundleResources getBundleResources() {
- var bundleResources = this.bundleResources;
- if (bundleResources == null) {
- bundleResources = this.bundleResources = new BundleResources(this, "src/main/resources");
- }
- return bundleResources;
- }
-
- @Override
- protected void initializeImageRegistry(final ImageRegistry registry) {
- for (final var field : Constants.class.getFields()) {
- if (Fields.isStatic(field) && field.getType() == String.class && field.getName().startsWith("IMAGE_")) {
- final String imagePath = Fields.read(null, field);
- if (imagePath != null) {
- registerImage(registry, imagePath);
- }
- }
- }
- }
-
- @Override
- public void start(final BundleContext context) throws Exception {
- super.start(context);
- instance = this;
- }
-
- @Override
- public void stop(final BundleContext context) throws Exception {
- instance = null;
- super.stop(context);
- }
-}
diff --git a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/StartupListener.java b/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/StartupListener.java
deleted file mode 100644
index 4c638db..0000000
--- a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/StartupListener.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright 2021-2022 by Sebastian Thomschke and contributors
- * SPDX-License-Identifier: EPL-2.0
- */
-package de.sebthom.eclipse.open_with_eclipse;
-
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.IStartup;
-
-import de.sebthom.eclipse.commons.system.win.WindowsRegistry;
-import de.sebthom.eclipse.commons.ui.Texts;
-import de.sebthom.eclipse.commons.ui.UI;
-import de.sebthom.eclipse.open_with_eclipse.localization.Messages;
-import de.sebthom.eclipse.open_with_eclipse.prefs.PluginPreference;
-import net.sf.jstuff.core.Strings;
-import net.sf.jstuff.core.ref.MutableObservableRef;
-
-/**
- * @author Sebastian Thomschke
- */
-public class StartupListener implements IStartup {
-
- @Override
- public void earlyStartup() {
- if (!WindowsRegistry.isSupported())
- return;
-
- WindowsRegistryHelper.purgeInvalidOpenWithRegistryEntries();
-
- if (PluginPreference.isCreateOpenWithRegistration() //
- && !WindowsRegistryHelper.hasOpenWithRegistryEntry()) {
-
- UI.run(() -> {
- final var menuEntryLabel = MutableObservableRef.of(PluginPreference.getOpenWithContextMenuEntryLabel());
-
- final var dlg = new MessageDialog( //
- UI.getShell(), //
- NLS.bind(Messages.OpenWithEclipse_NoOpenWithContextMenuEntry_Title, Constants.LAUNCHER_NAME), // window title
- Plugin.get().getSharedImage(Constants.IMAGE_ICON), // window icon
- NLS.bind("No \"{0}\" entry in the Windows right-click/context menu yet.", PluginPreference
- .getOpenWithContextMenuEntryLabel()), // top message
- 0, // top message icon, e.g. MessageDialog.INFORMATION
- 1, // default button: OK
- IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL // button labels
- ) {
- @Override
- @SuppressWarnings("unused")
- protected Control createCustomArea(final Composite parent) {
- new Label(parent, SWT.NONE); // spacer
-
- final var question = new Label(parent, SWT.NONE);
- question.setText(NLS.bind(Messages.OpenWithEclipse_NoOpenWithContextMenuEntry_Question, Constants.LAUNCHER_NAME));
-
- final var group = new Composite(parent, SWT.BORDER);
- group.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
- group.setLayout(new GridLayout(2, false));
-
- final var entryLabel = new Label(group, SWT.NONE);
- entryLabel.setText(Messages.OpenWithEclipse_Pref_ContextMentyEntryLabel);
- entryLabel.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1));
-
- final var entryText = new Text(group, SWT.BORDER);
- entryText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
- Texts.bind(entryText, menuEntryLabel);
- Texts.onModified(entryText, txt -> getButton(IDialogConstants.OK_ID).setEnabled(Strings.isNotBlank(txt)));
-
- return group;
- }
- };
-
- if (dlg.open() == IDialogConstants.OK_ID) {
- PluginPreference.setCreateOpenWithRegistration(true);
- PluginPreference.setOpenWithContextMenuEntryLabel(menuEntryLabel.get());
- PluginPreference.save();
- WindowsRegistryHelper.createOpenWithRegistryEntry(Constants.LAUNCHER_EXE, menuEntryLabel.get());
- } else {
- PluginPreference.setCreateOpenWithRegistration(false);
- PluginPreference.save();
- }
- });
- }
- }
-}
diff --git a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/WindowsRegistryHelper.java b/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/WindowsRegistryHelper.java
deleted file mode 100644
index 7e06a29..0000000
--- a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/WindowsRegistryHelper.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright 2021-2022 by Sebastian Thomschke and contributors
- * SPDX-License-Identifier: EPL-2.0
- */
-package de.sebthom.eclipse.open_with_eclipse;
-
-import static de.sebthom.eclipse.commons.system.win.WindowsRegistry.*;
-
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-import org.eclipse.jdt.annotation.Nullable;
-
-import de.sebthom.eclipse.commons.system.win.WindowsRegistry;
-import net.sf.jstuff.core.Strings;
-import net.sf.jstuff.core.validation.Args;
-
-/**
- * @author Sebastian Thomschke
- */
-public abstract class WindowsRegistryHelper {
-
- private static final String SOFTWARE_CLASSES_WILDCARD_SHELL = WindowsRegistry.join("SOFTWARE", "Classes", "*", "shell");
- private static final @Nullable String DEFAULT_VALUE_NAME = null;
-
- public static void createOpenWithRegistryEntry(final Path launcherExe, final String contextMenuEntryLabel) {
- Args.isFileReadable("launcherExe", launcherExe);
- Args.notBlank("contextMenuEntryLabel", contextMenuEntryLabel);
-
- final var keyPath = WindowsRegistry.join(SOFTWARE_CLASSES_WILDCARD_SHELL, contextMenuEntryLabel);
- HKEY_CURRENT_USER.createKey(keyPath, "command");
- HKEY_CURRENT_USER.setStringValue(keyPath, "icon", launcherExe.toAbsolutePath());
- HKEY_CURRENT_USER.setStringValue(keyPath, "entryCreatedBy", Plugin.PLUGIN_ID);
- HKEY_CURRENT_USER.setStringValue(keyPath, "command", DEFAULT_VALUE_NAME, getOpenWithCommand(launcherExe));
- }
-
- private static String getOpenWithCommand(final Path launcherExe) {
- return "\"" + launcherExe.toAbsolutePath() + "\" \"%V\"";
- }
-
- /**
- * @return a corresponding Open with entry from the registry for the given Eclipse exe or null
- */
- private static @Nullable String getOpenWithRegistryEntry(final Path launcherExe) {
- final var openWithCommand = getOpenWithCommand(launcherExe);
-
- for (final var keyName : HKEY_CURRENT_USER.getKeys(SOFTWARE_CLASSES_WILDCARD_SHELL)) {
- final var keyPath = WindowsRegistry.join(SOFTWARE_CLASSES_WILDCARD_SHELL, keyName);
- if (openWithCommand.equals(HKEY_CURRENT_USER.getStringValue(keyPath, "command", DEFAULT_VALUE_NAME)))
- return keyPath;
- }
- return null;
- }
-
- public static boolean hasOpenWithRegistryEntry() {
- return hasOpenWithRegistryEntry(Constants.LAUNCHER_EXE);
- }
-
- private static boolean hasOpenWithRegistryEntry(final Path launcherExe) {
- Args.notNull("launcherExe", launcherExe);
-
- return getOpenWithRegistryEntry(launcherExe) != null;
- }
-
- public static int purgeInvalidOpenWithRegistryEntries() {
- var deleted = 0;
- for (final var keyName : HKEY_CURRENT_USER.getKeys(SOFTWARE_CLASSES_WILDCARD_SHELL)) {
- final var keyPath = WindowsRegistry.join(SOFTWARE_CLASSES_WILDCARD_SHELL, keyName);
- final var entryCreatedBy = HKEY_CURRENT_USER.getStringValue(keyPath, "entryCreatedBy");
- if (Plugin.PLUGIN_ID.equals(entryCreatedBy)) {
- final var command = HKEY_CURRENT_USER.getStringValue(keyPath, "command", DEFAULT_VALUE_NAME);
- if (command != null) {
- final var exePath = Strings.substringBetween(command, "\"", "\"");
- if (Strings.endsWithIgnoreCase(exePath, ".exe") //
- && !Files.exists(Path.of(exePath))) {
- HKEY_CURRENT_USER.deleteKey(keyPath, true);
- deleted++;
- }
- }
- }
- }
- return deleted;
- }
-
- public static int removeOpenWithRegistryEntries(final Path launcherExe) {
- var deleted = 0;
- final var launcherExePath = launcherExe.toAbsolutePath().toString();
- for (final var keyName : HKEY_CURRENT_USER.getKeys(SOFTWARE_CLASSES_WILDCARD_SHELL)) {
- final var keyPath = WindowsRegistry.join(SOFTWARE_CLASSES_WILDCARD_SHELL, keyName);
- final var entryCreatedBy = HKEY_CURRENT_USER.getStringValue(keyPath, "entryCreatedBy");
- if (Plugin.PLUGIN_ID.equals(entryCreatedBy)) {
- final var command = HKEY_CURRENT_USER.getStringValue(keyPath, "command", DEFAULT_VALUE_NAME);
- if (command != null) {
- final var exePath = Strings.substringBetween(command, "\"", "\"");
- if (launcherExePath.equalsIgnoreCase(exePath)) {
- HKEY_CURRENT_USER.deleteKey(keyPath, true);
- deleted++;
- }
- }
- }
- }
- return deleted;
- }
-}
diff --git a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/localization/Messages.java b/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/localization/Messages.java
deleted file mode 100644
index e8b56ca..0000000
--- a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/localization/Messages.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2021-2022 by Sebastian Thomschke and contributors
- * SPDX-License-Identifier: EPL-2.0
- */
-package de.sebthom.eclipse.open_with_eclipse.localization;
-
-import static net.sf.jstuff.core.validation.NullAnalysisHelper.lateNonNull;
-
-import de.sebthom.eclipse.commons.localization.MessagesInitializer;
-
-/**
- * @author Sebastian Thomschke
- */
-public final class Messages {
-
- private static final String BUNDLE_NAME = Messages.class.getPackageName() + ".messages";
-
- // Keys with default values directly assigned in this class are only used by Java classes.
- // Keys without default values are loaded from messages.properties, because they are also referenced in plugin.xml
-
- // CHECKSTYLE:IGNORE .* FOR NEXT 100 LINES
-
- public static String OpenWithEclipse_PluginName = lateNonNull();
- public static String OpenWithEclipse_OpenWith = "Open with {0}";
- public static String OpenWithEclipse_Pref_CreateOpenWithRegistration = "Create Windows context/right-click menu entry";
- public static String OpenWithEclipse_Pref_ContextMentyEntryLabel = "Menu entry name:";
- public static String OpenWithEclipse_NoOpenWithContextMenuEntry_Title = "Register {0} with Windows right-click menu?";
- public static String OpenWithEclipse_NoOpenWithContextMenuEntry_Question = "Do you want to create a menu entry for {0} now?";
-
- static {
- MessagesInitializer.initializeMessages(BUNDLE_NAME, Messages.class);
- }
-
- private Messages() {
- }
-}
diff --git a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/localization/messages.properties b/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/localization/messages.properties
deleted file mode 100644
index 951f3bd..0000000
--- a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/localization/messages.properties
+++ /dev/null
@@ -1 +0,0 @@
-OpenWithEclipse_PluginName=Open with Eclipse
diff --git a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/localization/package-info.java b/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/localization/package-info.java
deleted file mode 100644
index 54c0323..0000000
--- a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/localization/package-info.java
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Copyright 2021-2022 by Sebastian Thomschke and contributors
- * SPDX-License-Identifier: EPL-2.0
- *
- * @author Sebastian Thomschke
- */
-@NonNullByDefault({ARRAY_CONTENTS, FIELD, PARAMETER, RETURN_TYPE, TYPE_ARGUMENT, TYPE_BOUND, TYPE_PARAMETER})
-package de.sebthom.eclipse.open_with_eclipse.localization;
-
-import static org.eclipse.jdt.annotation.DefaultLocation.*;
-
-import org.eclipse.jdt.annotation.NonNullByDefault;
diff --git a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/package-info.java b/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/package-info.java
deleted file mode 100644
index 2174c1f..0000000
--- a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/package-info.java
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Copyright 2021-2022 by Sebastian Thomschke and contributors
- * SPDX-License-Identifier: EPL-2.0
- *
- * @author Sebastian Thomschke
- */
-@NonNullByDefault({ARRAY_CONTENTS, FIELD, PARAMETER, RETURN_TYPE, TYPE_ARGUMENT, TYPE_BOUND, TYPE_PARAMETER})
-package de.sebthom.eclipse.open_with_eclipse;
-
-import static org.eclipse.jdt.annotation.DefaultLocation.*;
-
-import org.eclipse.jdt.annotation.NonNullByDefault;
diff --git a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/prefs/PluginPreference.java b/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/prefs/PluginPreference.java
deleted file mode 100644
index baedfc0..0000000
--- a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/prefs/PluginPreference.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2021-2022 by Sebastian Thomschke and contributors
- * SPDX-License-Identifier: EPL-2.0
- */
-package de.sebthom.eclipse.open_with_eclipse.prefs;
-
-import java.io.IOException;
-
-import org.eclipse.jface.preference.IPersistentPreferenceStore;
-import org.eclipse.jface.util.IPropertyChangeListener;
-
-import de.sebthom.eclipse.open_with_eclipse.Plugin;
-import net.sf.jstuff.core.io.RuntimeIOException;
-
-/**
- * @author Sebastian Thomschke
- */
-public final class PluginPreference {
-
- public static final String PREFKEY_CREATE_OPEN_WITH_REGISTRATION = "createOpenWithRegistration";
- public static final String PREFKEY_OPEN_WITH_CONTEXT_MENU_ENTRY_LABEL = "openWithContextMenuEntryLabel";
-
- public static final IPersistentPreferenceStore STORE = Plugin.get().getPreferenceStore();
-
- public static void addListener(final IPropertyChangeListener listener) {
- STORE.addPropertyChangeListener(listener);
- }
-
- public static String getOpenWithContextMenuEntryLabel() {
- return STORE.getString(PREFKEY_OPEN_WITH_CONTEXT_MENU_ENTRY_LABEL);
- }
-
- public static boolean isCreateOpenWithRegistration() {
- return STORE.getBoolean(PREFKEY_CREATE_OPEN_WITH_REGISTRATION);
- }
-
- public static void removeListener(final IPropertyChangeListener listener) {
- STORE.removePropertyChangeListener(listener);
- }
-
- public static void save() {
- if (STORE.needsSaving()) {
- try {
- STORE.save();
- } catch (final IOException ex) {
- throw new RuntimeIOException(ex);
- }
- }
- }
-
- public static void setCreateOpenWithRegistration(final boolean value) {
- STORE.setValue(PREFKEY_CREATE_OPEN_WITH_REGISTRATION, value);
- }
-
- public static void setOpenWithContextMenuEntryLabel(final String value) {
- STORE.setValue(PREFKEY_OPEN_WITH_CONTEXT_MENU_ENTRY_LABEL, value);
- }
-
- private PluginPreference() {
- }
-}
diff --git a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/prefs/PluginPreferenceInitializer.java b/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/prefs/PluginPreferenceInitializer.java
deleted file mode 100644
index 360193d..0000000
--- a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/prefs/PluginPreferenceInitializer.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 2021-2022 by Sebastian Thomschke and contributors
- * SPDX-License-Identifier: EPL-2.0
- */
-package de.sebthom.eclipse.open_with_eclipse.prefs;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.osgi.util.NLS;
-
-import de.sebthom.eclipse.open_with_eclipse.Constants;
-import de.sebthom.eclipse.open_with_eclipse.localization.Messages;
-
-/**
- * @author Sebastian Thomschke
- */
-public final class PluginPreferenceInitializer extends AbstractPreferenceInitializer {
-
- @Override
- public void initializeDefaultPreferences() {
- PluginPreference.STORE.setDefault(PluginPreference.PREFKEY_CREATE_OPEN_WITH_REGISTRATION, true);
- PluginPreference.STORE.setDefault(PluginPreference.PREFKEY_OPEN_WITH_CONTEXT_MENU_ENTRY_LABEL, //
- NLS.bind(Messages.OpenWithEclipse_OpenWith, Constants.LAUNCHER_NAME) //
- );
- }
-}
diff --git a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/prefs/PluginPreferencePage.java b/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/prefs/PluginPreferencePage.java
deleted file mode 100644
index 092730a..0000000
--- a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/prefs/PluginPreferencePage.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2021-2022 by Sebastian Thomschke and contributors
- * SPDX-License-Identifier: EPL-2.0
- */
-package de.sebthom.eclipse.open_with_eclipse.prefs;
-
-import org.eclipse.jface.preference.BooleanFieldEditor;
-import org.eclipse.jface.preference.FieldEditorPreferencePage;
-import org.eclipse.jface.preference.StringFieldEditor;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchPreferencePage;
-
-import de.sebthom.eclipse.commons.prefs.fieldeditor.LabelFieldEditor;
-import de.sebthom.eclipse.open_with_eclipse.Constants;
-import de.sebthom.eclipse.open_with_eclipse.WindowsRegistryHelper;
-import de.sebthom.eclipse.open_with_eclipse.localization.Messages;
-
-/**
- * @author Sebastian Thomschke
- */
-public final class PluginPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage {
-
- @Override
- protected void createFieldEditors() {
- final var parent = getFieldEditorParent();
-
- addField(new BooleanFieldEditor( //
- PluginPreference.PREFKEY_CREATE_OPEN_WITH_REGISTRATION, //
- Messages.OpenWithEclipse_Pref_CreateOpenWithRegistration, //
- parent //
- ));
-
- addField(new LabelFieldEditor("", parent));
-
- addField(new StringFieldEditor( //
- PluginPreference.PREFKEY_OPEN_WITH_CONTEXT_MENU_ENTRY_LABEL, //
- Messages.OpenWithEclipse_Pref_ContextMentyEntryLabel, //
- parent //
- ));
- }
-
- @Override
- public boolean performOk() {
- if (super.performOk()) {
- WindowsRegistryHelper.removeOpenWithRegistryEntries(Constants.LAUNCHER_EXE);
- if (PluginPreference.isCreateOpenWithRegistration()) {
- WindowsRegistryHelper.createOpenWithRegistryEntry(Constants.LAUNCHER_EXE, PluginPreference.getOpenWithContextMenuEntryLabel());
- }
- return true;
- }
- return false;
- }
-
- public PluginPreferencePage() {
- super(FieldEditorPreferencePage.GRID);
- }
-
- @Override
- public void init(final IWorkbench workbench) {
- setPreferenceStore(PluginPreference.STORE);
- }
-}
diff --git a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/prefs/package-info.java b/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/prefs/package-info.java
deleted file mode 100644
index 9682600..0000000
--- a/plugin/src/main/java/de/sebthom/eclipse/open_with_eclipse/prefs/package-info.java
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Copyright 2021-2022 by Sebastian Thomschke and contributors
- * SPDX-License-Identifier: EPL-2.0
- *
- * @author Sebastian Thomschke
- */
-@NonNullByDefault({ARRAY_CONTENTS, FIELD, PARAMETER, RETURN_TYPE, TYPE_ARGUMENT, TYPE_BOUND, TYPE_PARAMETER})
-package de.sebthom.eclipse.open_with_eclipse.prefs;
-
-import static org.eclipse.jdt.annotation.DefaultLocation.*;
-
-import org.eclipse.jdt.annotation.NonNullByDefault;
diff --git a/plugin/src/main/resources/images/open_with_eclipse.png b/plugin/src/main/resources/images/open_with_eclipse.png
deleted file mode 100644
index 30c9e43..0000000
Binary files a/plugin/src/main/resources/images/open_with_eclipse.png and /dev/null differ
diff --git a/plugin/src/main/resources/images/open_with_eclipse@2x.png b/plugin/src/main/resources/images/open_with_eclipse@2x.png
deleted file mode 100644
index 720d5de..0000000
Binary files a/plugin/src/main/resources/images/open_with_eclipse@2x.png and /dev/null differ
diff --git a/plugins/de.sebthom.eclipse.open_with_eclipse_1.0.0.20251207-2347.jar b/plugins/de.sebthom.eclipse.open_with_eclipse_1.0.0.20251207-2347.jar
new file mode 100644
index 0000000..9264258
Binary files /dev/null and b/plugins/de.sebthom.eclipse.open_with_eclipse_1.0.0.20251207-2347.jar differ
diff --git a/plugins/net.sf.jstuff.core_8.2.0.jar b/plugins/net.sf.jstuff.core_8.2.0.jar
new file mode 100644
index 0000000..0da53f6
Binary files /dev/null and b/plugins/net.sf.jstuff.core_8.2.0.jar differ
diff --git a/plugins/org.apache.commons.lang3_3.19.0.jar b/plugins/org.apache.commons.lang3_3.19.0.jar
new file mode 100644
index 0000000..1ee7e03
Binary files /dev/null and b/plugins/org.apache.commons.lang3_3.19.0.jar differ
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 5132b24..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,357 +0,0 @@
-
-
-
-
- 4.0.0
-
-
- com.vegardit.maven
- vegardit-maven-parent
- 8.0.0
-
-
- de.sebthom.eclipse.open_with_eclipse
- de.sebthom.eclipse.open_with_eclipse.parent
- 1.0.0-SNAPSHOT
- pom
-
- open-with-eclipse
- https://github.com/sebthom/open-with-eclipse-plugin
- 2021
-
-
- Sebastian Thomschke
- https://github.com/sebthom
-
-
-
- Eclipse Public License 2.0
- repo
- https://spdx.org/licenses/EPL-2.0
-
-
-
-
-
- plugin
- feature
- updatesite
-
-
-
-
-
- https://github.com/sebthom/open-with-eclipse-plugin
- scm:git:https://github.com/sebthom/open-with-eclipse-plugin.git
- scm:git:https://github.com/sebthom/open-with-eclipse-plugin.git
- HEAD
-
-
-
-
- github.com
- https://github.com/sebthom/open-with-eclipse-plugin/issues
-
-
-
-
- github.com
- https://github.com/sebthom/open-with-eclipse-plugin/actions
-
-
-
-
- 17
- 5.0.3
-
-
- true
- true
-
-
-
-
-
- com.vegardit.no-npe
- no-npe-eea-all
- [1.3.9,)
- provided
-
-
-
-
- no-npe-snapshots
- https://raw.githubusercontent.com/vegardit/no-npe/mvn-snapshots-repo/
- false
- true
-
-
-
-
-
-
-
-
- maven-deploy-plugin
-
- true
-
-
-
-
- org.codehaus.gmavenplus
- gmavenplus-plugin
-
-
-
- commons-codec
- commons-codec
- 1.19.0
-
-
-
-
-
- org.eclipse.tycho
- tycho-bnd-plugin
- ${tycho.version}
-
-
-
- org.eclipse.tycho
- tycho-compiler-plugin
- ${tycho.version}
-
- true
-
- -annotationpath
- CLASSPATH
-
-
-
- true
-
-
-
-
- org.eclipse.tycho
- tycho-ds-plugin
- ${tycho.version}
-
-
-
- org.eclipse.tycho
- tycho-packaging-plugin
- ${tycho.version}
-
- yyyyMMdd-HHmm
-
- ${project.artifactId}_${unqualifiedVersion}.${buildQualifier}
-
-
-
-
- org.eclipse.tycho
- tycho-p2-plugin
- ${tycho.version}
-
-
-
- org.eclipse.tycho
- tycho-surefire-plugin
- ${tycho.version}
-
-
-
- org.eclipse.tycho
- tycho-versions-plugin
- ${tycho.version}
-
-
- org.eclipse.tycho
- tycho-p2-director-plugin
- ${tycho.version}
-
-
- org.eclipse.tycho
- tycho-p2-publisher-plugin
- ${tycho.version}
-
-
- org.eclipse.tycho
- tycho-p2-repository-plugin
- ${tycho.version}
-
-
-
-
- org.eclipse.m2e
- lifecycle-mapping
- 1.0.0
-
-
-
-
-
- org.apache.maven.plugins
- maven-clean-plugin
- [1.0,)
-
- clean
-
-
-
-
-
-
-
-
- org.eclipse.tycho
- tycho-packaging-plugin
- [1.0,)
-
- build-qualifier-aggregator
- validate-id
- validate-version
-
-
-
-
-
-
-
-
- org.eclipse.tycho
- tycho-compiler-plugin
- [1.0,)
-
- compile
- testCompile
-
-
-
-
-
-
-
-
- org.eclipse.tycho
- target-platform-configuration
- [1.0,)
-
- target-platform
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- org.eclipse.tycho
- tycho-maven-plugin
- ${tycho.version}
- true
-
-
-
- org.eclipse.tycho
- target-platform-configuration
- ${tycho.version}
-
- ignore
-
- JavaSE-${jdk.version}
-
-
- ../build.target
-
-
-
- linux
- gtk
- x86_64
-
-
- macosx
- cocoa
- x86_64
-
-
- win32
- win32
- x86_64
-
-
-
-
-
- org.eclipse.tycho
- tycho-source-plugin
- ${tycho.version}
-
-
- attach-source
-
- plugin-source
-
-
-
-
-
-
-
-
-
- disable-tycho-packaging-plugin-if-executed-in-eclipse
-
-
- eclipse.application
-
-
-
-
-
-
- org.eclipse.tycho
- tycho-packaging-plugin
-
-
- default-package-plugin
- none
-
-
-
-
-
-
-
-
diff --git a/src/site/img/contextmenu.png b/src/site/img/contextmenu.png
deleted file mode 100644
index e3b1abe..0000000
Binary files a/src/site/img/contextmenu.png and /dev/null differ
diff --git a/src/site/img/prefs.png b/src/site/img/prefs.png
deleted file mode 100644
index d258552..0000000
Binary files a/src/site/img/prefs.png and /dev/null differ
diff --git a/updatesite/category.xml b/updatesite/category.xml
deleted file mode 100644
index 9db69b6..0000000
--- a/updatesite/category.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/updatesite/pom.xml b/updatesite/pom.xml
deleted file mode 100644
index c26c0d2..0000000
--- a/updatesite/pom.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-
-
-
-
- 4.0.0
-
-
- de.sebthom.eclipse.open_with_eclipse
- de.sebthom.eclipse.open_with_eclipse.parent
- 1.0.0-SNAPSHOT
-
-
- open-with-eclipse-updatesite
- de.sebthom.eclipse.open_with_eclipse.updatesite
- eclipse-repository
-
-
-
- http://timestamp.digicert.com?alg=sha256
-
-
-
-
-
-
-
-
-
-
-
- jarsigner.keystore
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-jarsigner-plugin
- 3.1.0
-
-
- sign
-
- sign
-
- prepare-package
-
- ${jarsigner.timestamp.url}
-
-
-
- verify
-
- verify
-
- verify
-
- true
-
-
-
-
- ${project.build.directory}/repository/
-
- features/${project.groupId}*
- plugins/${project.groupId}*
-
-
- false
- false
-
-
-
- org.eclipse.tycho
- tycho-p2-repository-plugin
-
-
-
- update
-
- fix-artifacts-metadata
-
-
-
- verify
-
- verify-repository
-
-
-
-
-
-
-
-
-