Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "JGit/New and Noteworthy/6.0"

(Created page with "= JGit = == Prerequisites == JGit 6.0 '''requires Java 11''' to run. Previous versions required a minimum of Java 1.8. Please note that memory management in Java is differe...")
 
(Prepare entry for SSH agent)
Line 14: Line 14:
 
For the full list of API changes, see the automated API comparison report linked on [https://www.eclipse.org/jgit/download/ the JGit download page].
 
For the full list of API changes, see the automated API comparison report linked on [https://www.eclipse.org/jgit/download/ the JGit download page].
  
 +
<!--
 +
== SSH Agent Support ==
 +
 +
JGit 6.0 comes with a new bundle <code>org.eclipse.jgit.ssh.apache.agent</code>, which provides support for communicating with an SSH agent:
 +
 +
* On Windows, it supports detecting Pageant, the SSH agent of PuTTY, and communicating with it through its shared memory mechanism.
 +
* On Unix (Linux, BSD, OS X), it supports communicating with an SSH agent via the usual Unix domain socket mechanism. The Unix domain socket file is given via environment variable <b><tt>SSH_AUTH_SOCK</tt></b>.
 +
 +
 +
The bundle publishes a service for <tt>java.util.ServiceLoader</tt>; the main SSH support in <code>org.eclipse.jgit.ssh.apache</code> uses the <tt>ServiceLoader</tt> to find the service implementation. If none is found, SSH agent support is not available.
 +
 +
The implementation uses JNA for low-level system operations.
 +
 +
Using the new bundle <code>org.eclipse.jgit.ssh.apache.agent</code> is completely optional; and JGit users are free to provide their own implementation instead in a third-party bundle. The bundle just has to publish a <tt>org.eclipse.jgit.ssh.apache.agent.ConnectorFactory</tt> implementation as service. (Ensure that the classpath is set up such that the <tt>ServiceLoader</tt> can find the custom implementation from within bundle <code>org.eclipse.jgit.ssh.apache</code>. In an OSGi environment, this is most easily achieved by making the bundle an OSGi fragment with that bundle as host.)
 +
-->
 
= Contributors =
 
= Contributors =
  

Revision as of 10:11, 24 October 2021

JGit

Prerequisites

JGit 6.0 requires Java 11 to run. Previous versions required a minimum of Java 1.8.

Please note that memory management in Java is different between Java versions; there are new garbage collection strategies. One corporate user of JGit who has been using it for a long time running on Java 11 reported that switching from Java 1.8 to Java 11 and using the new G1GC default garbage collector improved stability but might require about 10% more memory.

API changes

  • CommitCommand.setCredentialsProvider() is now fluent, returning the CommitCommand itself to allow chaining setters.


For the full list of API changes, see the automated API comparison report linked on the JGit download page.

Contributors

The following XX developers worked on this release:

<TBD: list of contributors, number>

Back to the top