Remoting 3 Compatibility Notes
This page describes compatibility of the Remoting 3 library. It addresses binary compatibility and also functional compatibility with old remoting and Java versions.
Establishing connection between Remoting 2.x and 3.x
Remoting 3 library still contains
When any of these protocols is enabled on both sides,
remoting versions will be able to establish connection between each other.
This is a default behavior.
JNLP4-connect is the only enabled protocol on one of the sides,
3.x versions will be unable to establish the connection between each other.
It may happen only in the case of the custom configuration via system properties.
In Remoting 3 the required Java version is updated from Java 6 to Java 7.
In Jenkins project:
- Nothing changes, starting from
1.610Java 6 is not supported in Jenkins, on both master and slaves/agents
- In particular cases it was possible to run Jenkins slaves/agents on Java 6 with Remoting
2.x, but this configuration was not officially supported
In other projects:
- For projects using Java 7 or 8, the upgrade is safe
- For projects using Java 6, Remoting
3.xcannot be used there without upgrade to Java 7
2.xstable version can be temporarily used instead
3.x is not binary compatible with Remoting
but the scope of changes is limited to a single change with a limited impact.
Protocol class hierarchy change:
JnlpProtocol3classes were removed. Their functionality has been moved to the
JnlpProtocolHandlerclass and its subclasses.
JnlpServerHandshakeclass and all its subclasses have been removed from the library
- Several dependent internal classes have been removed or modified
The only known usage of the classes was in the Jenkins core, the incompatibility is fixed in the pull-request #2492.
Impact of the changes on Jenkins plugins:
- No impact if the plugins do not implement their own Remoting protocols
- There is no such plugins in open-source Jenkins plugins available in the main update center or hosted on GitHub
- There may be impact on other plugin implementation
Impact of the changes on other projects:
- Protocol implementations and protocol handling logic may require an update
- Pull request #2492 can be used as a reference