Skip to content

Commit 799b33a

Browse files
authored
Merge branch 'release-2.5' into fixTls
2 parents 9abf17a + 60da99e commit 799b33a

File tree

8 files changed

+95
-21
lines changed

8 files changed

+95
-21
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,3 @@ jobs:
2020
distribution: 'temurin'
2121
java-version: '11'
2222
cache: 'gradle'
23-
- run: ./gradlew build --no-daemon

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
1+
## v2.5.0
2+
Thu Dec 8 09:02:17 GMT 2022
3+
4+
* [94cfadee](https://github.com/hyperledger/fabric-chaincode-java/commit/94cfadee) Move inactive maintainers to emeritus status
5+
* [37bebee7](https://github.com/hyperledger/fabric-chaincode-java/commit/37bebee7) Adjust to using the Temurin JVM
6+
* [0c9f44fb](https://github.com/hyperledger/fabric-chaincode-java/commit/0c9f44fb) Basic github actions workflow
7+
* [d15f2cd1](https://github.com/hyperledger/fabric-chaincode-java/commit/d15f2cd1) Update pom.xml
8+
* [1fba41b2](https://github.com/hyperledger/fabric-chaincode-java/commit/1fba41b2) Remove unrequired Maven wrapper directory Update Maven wrapper to latest version
9+
* [3a2db82d](https://github.com/hyperledger/fabric-chaincode-java/commit/3a2db82d) Bump version to 2.5.0
10+
* [35eabb0a](https://github.com/hyperledger/fabric-chaincode-java/commit/35eabb0a) PurgePrivateData
11+
* [80a36ee4](https://github.com/hyperledger/fabric-chaincode-java/commit/80a36ee4) Swap to using the published fabric-protos libraries
12+
* [dd551979](https://github.com/hyperledger/fabric-chaincode-java/commit/dd551979) Update MAINTAINERS.md
13+
* [f25df1b6](https://github.com/hyperledger/fabric-chaincode-java/commit/f25df1b6) Add test for Logger.debug
14+
* [d1d093b4](https://github.com/hyperledger/fabric-chaincode-java/commit/d1d093b4) Regular Maintainece Task
15+
* [22c722fe](https://github.com/hyperledger/fabric-chaincode-java/commit/22c722fe) Update README.md
16+
* [2c35c3ed](https://github.com/hyperledger/fabric-chaincode-java/commit/2c35c3ed) JSONPropertyIgnore only works on getter
17+
* [02d1485a](https://github.com/hyperledger/fabric-chaincode-java/commit/02d1485a) Change from RocketChat to Discord
18+
* [5608879e](https://github.com/hyperledger/fabric-chaincode-java/commit/5608879e) Temporarily remove nightly publish & Fix PR build
19+
* [d13d3070](https://github.com/hyperledger/fabric-chaincode-java/commit/d13d3070) Fix transaction serializer usage
20+
* [5388349d](https://github.com/hyperledger/fabric-chaincode-java/commit/5388349d) Remove the log4j dependency
21+
122
## v2.4.1
223
Mon Dec 13 11:50:31 GMT 2021
324

COMPATIBILITY.md

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,24 @@ Github is used for code base management, issues should reported in the [FABCJ](h
55

66
## Summary of Compatibility
77

8-
This table shows the summary of the compatibility of the Java libraries at versions 1.4 and 2.1, together with the JVM version they require and the Fabric Peer versions they can communicate with.
8+
This table shows the summary of the compatibility of the Java libraries, together with the JVM version they require and the Fabric Peer versions they can communicate with.
99

10-
| | Fabric Peer v1.4 connectivity | Java 8 VM | Fabric Peer v2.1 Connectivity | Java 11 VM |
10+
| | Fabric Peer v1.4 connectivity | Java 8 VM | Fabric Peer v2.2/2.5 Connectivity | Java 11 VM |
1111
| ----------------------- | ----------------------------- | --------- | ----------------------------- | ---------- |
1212
| Java libraries **v1.4** | Yes | Yes | Yes | Yes |
1313
| Java libraries **v2.1** | Yes | No | Yes | Yes |
1414
| Java libraries **v2.4** | Yes | No | Yes | Yes |
15+
| Java libraries **v2.5** | Yes | No | Yes | Yes |
1516

1617

1718
Testing is performed with
1819
- Java v8: Openjdk version 1.8.0_222
19-
- Java v11: Openjdk version 11.04_11
20+
- Java v11: Eclipse Temurin 11.0.16.1_1-jdk (this has changed from Openjdk version 11.04_11)
21+
2022

2123
By default a Fabric Peer v1.4 will create a Java 8 VM, and a Fabric Peer v2.x will create a Java 11 VM. Whilst is the default, the docker image used to host the chaincode and contracts can be altered. Set the environment variable `CORE_CHAINCODE_JAVA_RUNTIME` on the peer to the name of the docker image. For example `CORE_CHAINCODE_JAVA_RUNTIME=example/customJavaRuntime:latest`
2224

23-
The Java Libraries will connect to the peer whilst running; this is referred to as 'Fabric Peer Connectivity' in the table. For example, whilst the Fabric Peer v1.4 will create a Java 8 environment, if a Java 11 environment was configured, the Java Libraries at v2.1.0 still function when connecting to the Fabric Peer v1.4.
25+
The Java Libraries will connect to the peer whilst running; this is referred to as 'Fabric Peer Connectivity' in the table. For example, whilst the Fabric Peer v1.4 will create a Java 8 environment, if a Java 11 environment was configured, the Java Libraries at v2.5.0 still function when connecting to the Fabric Peer v1.4.
2426

2527
## Compatibility
2628

@@ -30,26 +32,38 @@ The key elements are : 
3032
- the version of the JVM used to run the code
3133
- When starting a chaincode container to run a Smart Contract the version of the runtime that is used is determined by these factors:
3234

33-
Fabric v1.4.2, and Fabric v2.1.0 will, by default, start up docker image to host the chaincode and contracts. The version of the docker image used is defined by the version of Fabric in use.
35+
Fabric v1.4.2, and Fabric v2.5.0 will, by default, start up docker image to host the chaincode and contracts. The version of the docker image used is defined by the version of Fabric in use.
3436

35-
With Fabric v2.1.0, the chaincode container can be configured to be started by other means, and not the Peer. In this case, the environment used is not in the control of Fabric.
37+
With Fabric v2.1.0 and later, the chaincode container can be configured to be started by different chaincode builders, and not the Peer. In this case, the environment used is not in the control of Fabric.
3638

3739
The Java libraries are produced are `group: 'org.hyperledger.fabric-chaincode-java', name: 'fabric-chaincode-shim'`
3840

3941
### Supported JVMs
4042

41-
v1.4.x and v2.1.0 Java Libraries are supported running in Java 11 with the x86_64 architecture. Later Java 11 versions are supported but are not tested.
43+
v1.4.x and v2.5.0 Java Libraries are supported running in Java 11 with the x86_64 architecture. Later Java 11 versions are supported but are not tested.
4244

4345
v1.4.x Java Libraries are supported running in Java 8 with the  x86_64 architecture. Later Java 8 versions are supported but are not tested.
4446

4547
Architecture Support: all docker images, JVMs, tools are tested under x86_64 ONLY
4648

49+
50+
4751
### Default Peer Runtime selection
4852

49-
When using Fabric 2.1.0, the default docker image that is used to run the Java chaincode is *openjdk11:jdk-11.04_11-alpine*
53+
When using Fabric 2.5.0, the default docker image that is used to run the Java chaincode is *eclipse-temurin:11.0.16.1_1-jdk*
54+
55+
With the default docker image used by Fabric 2.5.0, if the packaged Java code contains a build script or a wrapper for either Maven or Gradle, it will be built using Gradle 7.0 wrapper , or Maven 3.8.1 wrapper.
56+
57+
- If both Gradle and Maven files are present Gradle is used.
58+
- Gradle build files can be groovy, or kotlin.
59+
- If the Gradle or Maven wrappers are present, this will used in preference to the installed wrappers.
60+
61+
Remeber that when using the wrappers, code will be downloaded from the internet. Keep this in mind for any installation with limited or no internet access.
62+
63+
Alternatively it is recommended to package prebuilt jar files, including the contract and all dependencies, in which case no build or Internet access is required when installing Java chaincode.
5064

51-
With the default docker image used by Fabric 2.1.0. should the packaged Java code contain a Maven or Gradle build script, it will be built using Gradle 5.6.2, or Maven 3.6.2 (if both Gradle and Maven files are present Gradle is used. Gradle build files can be groovy, or kotlin. If the Gradle wrapper is present, this will used in preference to the installed version of Gradle; note that the version of Gradle in the docker image is a copy of the Gradle Wrapper, not the full Gradle install. Therefore if there is limited Internet acccess in your production environment, do not use Gradle). Alternatively it is recommended to package prebuilt jar files, including the contract and all dependencies, in which case no build or Internet access is required when installing Java chaincode.
65+
Please check the [Dockerfile](./fabric-chaincode-docker/Dockerfile) that is used for the environment to see exactly how these versions are installed.
5266

5367
### Supported Runtime communication with the Peer
5468

55-
Subject to a suitable runtime environment, the 1.4.4 and 2.1.0 Java Libraries can used to communicate with a Fabric 2.1.0 or 1.4.4 Peer - with the level of functionality that is implied by the Fabric version in use. 
69+
Subject to a suitable runtime environment, the 1.4 and 2.5 Java Libraries can used to communicate with Fabric Peers at 2.5 and previous LTS versions. The level of functionality that is implied by the Fabric version in use and channel capabilities

CONTRIBUTING.md

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,7 @@ Here are a few guidelines to help you contribute successfully...
88

99
## Issues
1010

11-
All issues are tracked in the issues tab in github. If you find a bug which we don't already know about, you can help us by creating a new issue describing the problem. Please include as much detail as possible to help us track down the cause.
12-
13-
## Fixes
14-
15-
If you want to begin contributing code, looking through our open issues is a good way to start. Try looking for recent issues with detailed descriptions first, or ask us on Discord if you're unsure which issue to choose.
11+
All issues are tracked in the issues tab in github. If you find a bug which we don't already know about, you can help us by creating a new issue describing the problem. Please include as much detail as possible to help us track down the cause.If you want to begin contributing code, looking through our open issues is a good way to start. Try looking for recent issues with detailed descriptions first, or ask us on Discord if you're unsure which issue to choose.
1612

1713
## Enhancements
1814

@@ -42,6 +38,23 @@ See our [Code of Conduct Guidelines](../blob/main/CODE_OF_CONDUCT.md).
4238

4339
Should you have any questions or concerns, please reach out to one of the project's [Maintainers](../blob/main/MAINTAINERS.md).
4440

41+
42+
## How to work with the Codebase
43+
44+
Some useful gradle commands to help with building. You can add or remove the `--no-daemon` and `-x dependencyCheckAnalyze` as you wish; depending on the performance of you local machine.
45+
46+
```
47+
# build everything , but skip the (slow) dependency checks
48+
./gradlew --no-daemon build -x dependencyCheckAnalyze
49+
50+
# clean up to force tests and compile to rerun
51+
./gradlew clean cleanTest
52+
./gradlew --no-daemon :fabric-chaincode-shim:build -x dependencyCheckAnalyze
53+
54+
# build docker image
55+
./gradlew :fabric-chaincode-docker:buildImage
56+
```
57+
4558
## Hyperledger Fabric
4659

4760
See the

RELEASING.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ The following tasks are required before releasing:
1717

1818
- Update version numbers in `build.gradle` files to the required version
1919
- Update test, sample, and docs files to match the new version
20+
- Update the [`COMPATIBILITY.md`](./COMPATIBILITY.md)
2021
- Create a new release notes file
21-
- Update the `CHANGELOG.md` file
22+
- Update the [`CHANGELOG.md`](./CHANGELOG.md) file
2223

2324
The `changelog.sh` script in `scripts` will prepopulate the changelog but you must check and edit the file manually afterwards as required
2425

ci/azure-pipelines.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ schedules:
1818
trigger:
1919
branches:
2020
include:
21-
- "main"
21+
- "release-2.5"
2222
tags:
2323
include:
2424
- "*"
@@ -40,7 +40,7 @@ variables:
4040
- name: PUSH_VERSION
4141
value: stable
4242
- name: FABRIC_VERSION
43-
value: latest
43+
value: 2.5-stable
4444

4545
pool:
4646
vmImage: "ubuntu-latest"

fabric-chaincode-integration-test/getDockerImages.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
#
55
# SPDX-License-Identifier: Apache-2.0
66
#
7-
set -euo pipefail
7+
set -xeuo pipefail
88

9-
version=${FABRIC_VERSION:-latest}
9+
version=${FABRIC_VERSION:-2.5-stable}
1010
artifactory_url=hyperledger-fabric.jfrog.io
1111

1212
for image in peer orderer ca tools; do

release_notes/v2.5.0.txt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
v2.5.0 LTS
2+
----------
3+
4+
Release Notes
5+
-------------
6+
This is the LTS Release of of the v2.5 Fabric Chaincode Java. It replaces the previous v2.2 LTS.
7+
8+
- the default `JavaEnv` docker image has been moved to use the Eclipse Temurin Java 11 JDK
9+
- the PurgePrivateData feature is exposed via a new `PurgePrivateData` API
10+
11+
12+
Known Vulnerabilities
13+
---------------------
14+
none
15+
16+
Resolved Vulnerabilities
17+
------------------------
18+
none
19+
20+
Known Issues & Workarounds
21+
--------------------------
22+
none
23+
24+
Change Log
25+
----------
26+
https://github.com/hyperledger/fabric-chaincode-java/blob/release-2.x/CHANGELOG.md#v250

0 commit comments

Comments
 (0)