Skip to content

Update jgit to version 7.7.1, Bouncy Castle to 1.85 and Apache Mina SSH to 2.19.0 - #9576

Open
matthiasblaesing wants to merge 8 commits into
apache:masterfrom
matthiasblaesing:jgit-signing-alt-updated
Open

Update jgit to version 7.7.1, Bouncy Castle to 1.85 and Apache Mina SSH to 2.19.0#9576
matthiasblaesing wants to merge 8 commits into
apache:masterfrom
matthiasblaesing:jgit-signing-alt-updated

Conversation

@matthiasblaesing

Copy link
Copy Markdown
Contributor

Followup PR for #9483 separating out the version updates.

Netbinox is a patched version of Equinox (the Eclipse OSGI runtime
conainer). The patch is bases on a Equinox version from 2014. The patch
was evolved to allow "Import-Package" declaration for JDK packages if
they are declared optional. This works as long as the imports are
declared optional. This is not the case for a growing number of
libraries.

NetBeans already carries an up-to-date OSGI container (Apache Felix), so
use that and drop the custom dependency.

In the wake of this the following modules were removed too:

  - o.eclipse.core.contenttype
  - o.eclipse.core.jobs
  - o.eclipse.core.net
  - o.eclipse.core.runtime
  - o.eclipse.core.runtime.compatibility.auth
  - o.eclipse.equinox.app
  - o.eclipse.equinox.common
  - o.eclipse.equinox.preferences
  - o.eclipse.equinox.registry
  - o.eclipse.equinox.security

It is assumed that equinox was added to be able to run eclise modules,
which in turn were required for Mylin (Bugtracking integration). The
latter was dropped, so the dependencies should be removed to reduce the
dependency footprint.
…m -> o.n.libs.jna.platform

Netigso (the NetBeans OSGI Integration layer) makes NetBeans modules
available to the OSGI environment. For JNA this works as long as the
dependent modules use the "Import-Package" header. It fails if the JNA
bundle is imported via "Require-Bundle". The reason for this is the
mismatch between the upstream bundle name and the NetBeans module name.

The alias/shim modules reexport the JNA modules with the upstream bundle
name.
This adds the required dependencies and switches the jgit ssh
integration from JSch to Apache Mina.

This adds four new dependencies:

- Apache MINA SSH Client implementation
  (org.apache.sshd:sshd-osgi and org.apache.sshd:sshd-sftp)
- JGIT ssh client implementation using Apache MINA (inkl. the
  ssh-agent integration)

Adjustments to the implementation:

- The jgit integration for mina does not query the credential provider
  for a passphrase when opening the identity file, but instead uses a
  password callback (existing Credentialsprovider was adjusted to
  tollerate this)
- The NetBeans ssh connection settings allow to choose between
  username/password and key authentication. There is no fallback between
  the two. The concept of a custom SshSessionFactory was transfered from
  the jsch implementation and reimplemented on top of the mina
  integration.
The patching was in place to enable loading commons-lang3 into the
NetBinox container (patched equinox). With NetBinox dropped in favor of
Apache Felix, this can be now removed.
Feature on Demand scans the feature list and uses the URL for the
feature to identify the correct feature. URL uses the registered
Handler to implement #equals and #hashCode. When run with NetBinox
both the layers and the FeatureInfo yield URLs using the
JarClassLoader. When run with Felix as OSGI runtime the layers report
URLHandlersStreamHandlerProxy.

Instead of changing the URL logic, use the URI to find a valid
FeatureInfo.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant