Skip to content

Commit e003b14

Browse files
Merge pull request #81 from iExecBlockchainComputing/release/8.0.0
Release/8.0.0
2 parents 9243bd6 + b94d674 commit e003b14

File tree

24 files changed

+714
-253
lines changed

24 files changed

+714
-253
lines changed

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,27 @@
22

33
All notable changes to this project will be documented in this file.
44

5+
## [[8.0.0]](https://github.com/iExecBlockchainComputing/iexec-result-proxy/releases/tag/v8.0.0) 2023-03-03
6+
7+
### New Features
8+
* Support Gramine framework for TEE tasks.
9+
* Add iExec banner at startup.
10+
* Show application version on banner.
11+
### Bug Fixes
12+
* Sign issued JWT tokens.
13+
* Fix JWT tokens flow.
14+
### Quality
15+
* Clean controllers.
16+
### Dependency Upgrades
17+
* Replace the deprecated `openjdk` Docker base image with `eclipse-temurin` and upgrade to Java 11.0.18 patch.
18+
* Upgrade to Spring Boot 2.6.14.
19+
* Upgrade to Gradle 7.6.
20+
* Upgrade OkHttp to 4.9.0.
21+
* Upgrade `java-http-ipfs-client` to 1.4.0 for latest IPFS Kubo support (v0.18.1).
22+
* Upgrade `jjwt` to `jjwt-api` 0.11.5.
23+
* Upgrade to `iexec-common` 7.0.0.
24+
* Upgrade to `jenkins-library` 2.4.0.
25+
526
## [[7.3.0]](https://github.com/iExecBlockchainComputing/iexec-result-proxy/releases/tag/v7.3.0) 2023-01-18
627

728
* Add endpoint to allow health checks.

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM openjdk:11.0.15-jre-slim
1+
FROM eclipse-temurin:11.0.18_10-jre
22

33
ARG jar
44

Jenkinsfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@Library('global-jenkins-library@2.2.3') _
1+
@Library('global-jenkins-library@2.4.0') _
22
buildJavaProject(
33
buildInfo: getBuildInfo(),
44
integrationTestsEnvVars: [],

README.md

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -17,19 +17,17 @@ You can configure the iExec Result Proxy with the following properties:
1717

1818
| Environment variable | Description | Type | Default value |
1919
| --- | --- | --- | --- |
20-
| IEXEC_RESULT_PROXY_PORT | Server HTTP port of the result proxy. | Positive integer | `13200` |
21-
| MONGO_HOST | Mongo server host. Cannot be set with URI. | String | `localhost` |
22-
| MONGO_PORT | Mongo server port. Cannot be set with URI. | Positive integer | `13202` |
23-
| IEXEC_CHAIN_ID | Chain ID of the blockchain network to connect. | Integer | `17` |
24-
| IEXEC_IS_SIDECHAIN | Define if iExec on-chain protocol is built on top of token (`false`) or native currency (`true`). | Boolean | `false` |
25-
| IEXEC_PRIVATE_CHAIN_ADDRESS | Private URL to connect to the blockchain node. | URL | `http://localhost:8545` |
26-
| IEXEC_PUBLIC_CHAIN_ADDRESS | [unused] Public URL to connect to the blockchain node. | URL | `http://localhost:8545` |
27-
| IEXEC_HUB_ADDRESS | Proxy contract address to interact with the iExec on-chain protocol. | Ethereum address | `0xBF6B2B07e47326B7c8bfCb4A5460bef9f0Fd2002` |
28-
| IEXEC_START_BLOCK_NUMBER | [Unused] | Positive integer | `0` |
29-
| IEXEC_GAS_PRICE_MULTIPLIER | Transactions will be sent with `networkGasPrice * IEXEC_GAS_PRICE_MULTIPLIER`. | Float | `1.0` |
30-
| IEXEC_GAS_PRICE_CAP | In Wei, will be used for transactions if `networkGasPrice * IEXEC_GAS_PRICE_MULTIPLIER > gasPriceCap`. | Integer | `22000000000` |
31-
| IEXEC_IPFS_HOST | Host to connect to the IPFS node. | String | `127.0.0.1` |
32-
| IEXEC_IPFS_PORT | Server port of the IPFS node. | Positive integer | `5001` |
20+
| `IEXEC_RESULT_PROXY_PORT` | Server HTTP port of the result proxy. | Positive integer | `13200` |
21+
| `MONGO_HOST` | Mongo server host. Cannot be set with URI. | String | `localhost` |
22+
| `MONGO_PORT` | Mongo server port. Cannot be set with URI. | Positive integer | `13202` |
23+
| `IEXEC_CHAIN_ID` | Chain ID of the blockchain network to connect. | `Integer | `17` |
24+
| `IEXEC_IS_SIDECHAIN` | Define if iExec on-chain protocol is built on top of token (`false`) or native currency (`true`). | Boolean | `false` |
25+
| `IEXEC_PRIVATE_CHAIN_ADDRESS` | Private URL to connect to the blockchain node. | URL | `http://localhost:8545` |
26+
| `IEXEC_HUB_ADDRESS` | Proxy contract address to interact with the iExec on-chain protocol. | Ethereum address | `0xBF6B2B07e47326B7c8bfCb4A5460bef9f0Fd2002` |
27+
| `IEXEC_GAS_PRICE_MULTIPLIER` | Transactions will be sent with `networkGasPrice * IEXEC_GAS_PRICE_MULTIPLIER`. | Float | `1.0` |
28+
| `IEXEC_GAS_PRICE_CAP` | In Wei, will be used for transactions if `networkGasPrice * IEXEC_GAS_PRICE_MULTIPLIER > gasPriceCap`. | Integer | `22000000000` |
29+
| `IEXEC_IPFS_HOST` | Host to connect to the IPFS node. | String | `127.0.0.1` |
30+
| `IEXEC_IPFS_PORT` | Server port of the IPFS node. | Positive integer | `5001` |
3331

3432
## Health checks
3533

build.gradle

Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
plugins {
22
id 'java'
3-
id 'org.springframework.boot' version '2.6.2'
4-
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
5-
id 'eclipse'
3+
id 'io.freefair.lombok' version '6.6.1'
4+
id 'org.springframework.boot' version '2.6.14'
5+
id 'io.spring.dependency-management' version '1.1.0'
66
id 'jacoco'
77
id 'org.sonarqube' version '3.3'
88
id 'maven-publish'
99
}
1010

1111
ext {
12-
springCloudVersion = '2021.0.0'
12+
springCloudVersion = '2021.0.5'
13+
jjwtVersion = '0.11.5'
1314
}
1415

1516
if (!project.hasProperty('gitBranch')) {
@@ -18,13 +19,9 @@ if (!project.hasProperty('gitBranch')) {
1819

1920
allprojects {
2021
group = 'com.iexec.result-proxy'
21-
sourceCompatibility = 11
22-
targetCompatibility = 11
23-
2422
if (gitBranch != 'main' && gitBranch != 'master' && !(gitBranch ==~ '(release|hotfix|support)/.*')) {
2523
version += '-NEXT-SNAPSHOT'
2624
}
27-
2825
repositories {
2926
mavenLocal()
3027
mavenCentral()
@@ -42,11 +39,10 @@ allprojects {
4239
url 'https://jitpack.io'
4340
}
4441
}
45-
}
46-
47-
configurations {
48-
compileOnly {
49-
extendsFrom annotationProcessor
42+
java {
43+
toolchain {
44+
languageVersion.set(JavaLanguageVersion.of(11))
45+
}
5046
}
5147
}
5248

@@ -55,8 +51,10 @@ dependencies {
5551
implementation "com.iexec.common:iexec-common:${iexecCommonVersion}"
5652

5753
// Web3j issues, see core build.gradle
58-
implementation 'com.squareup.okhttp3:okhttp:4.3.1'
59-
implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.3.50'
54+
// NoSuchMethodError: 'okhttp3.RequestBody okhttp3.RequestBody.create(java.lang.String, okhttp3.MediaType)'
55+
// Spring Boot dependencies BOM enforces okhttp3 3.14.9 in 2.6.X
56+
// It is required to define the dependency version required by web3j until migration to at least Spring Boot 2.7.X
57+
implementation 'com.squareup.okhttp3:okhttp:4.9.0' // Web3j issue: https://github.com/web3j/web3j/issues/1180
6058

6159
// spring
6260
implementation 'org.springframework.boot:spring-boot-starter-actuator'
@@ -72,18 +70,16 @@ dependencies {
7270
testImplementation 'org.springframework.security:spring-security-test'
7371
testImplementation 'org.mockito:mockito-inline:2.13.0' // activates mocking final classes/methods
7472

75-
// lombok
76-
compileOnly 'org.projectlombok:lombok'
77-
annotationProcessor 'org.projectlombok:lombok'
78-
7973
// Spring Doc
8074
implementation 'org.springdoc:springdoc-openapi-ui:1.6.3'
8175

8276
// ipfs
83-
implementation 'com.github.ipfs:java-ipfs-http-client:1.3.3'
77+
implementation 'com.github.ipfs:java-ipfs-http-client:1.4.0'
8478

8579
// json web token
86-
implementation 'io.jsonwebtoken:jjwt:0.7.0'
80+
implementation "io.jsonwebtoken:jjwt-api:$jjwtVersion"
81+
runtimeOnly "io.jsonwebtoken:jjwt-impl:$jjwtVersion"
82+
runtimeOnly "io.jsonwebtoken:jjwt-jackson:$jjwtVersion"
8783

8884
// expiring map
8985
implementation 'net.jodah:expiringmap:0.5.8'
@@ -99,6 +95,13 @@ springBoot {
9995
buildInfo()
10096
}
10197

98+
tasks.named("bootJar") {
99+
manifest {
100+
attributes("Implementation-Title": "iExec Result Proxy",
101+
"Implementation-Version": project.version)
102+
}
103+
}
104+
102105
test {
103106
useJUnitPlatform()
104107
}
@@ -116,7 +119,7 @@ jacoco {
116119
// sonarqube code coverage requires jacoco XML report
117120
jacocoTestReport {
118121
reports {
119-
xml.enabled true
122+
xml.required = true
120123
}
121124
}
122125
tasks.test.finalizedBy tasks.jacocoTestReport
@@ -125,7 +128,7 @@ tasks.sonarqube.dependsOn tasks.jacocoTestReport
125128
publishing {
126129
publications {
127130
maven(MavenPublication) {
128-
artifact bootJar
131+
artifact tasks.named("bootJar")
129132
from components.java
130133
}
131134
}

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
version=7.3.0
2-
iexecCommonVersion=6.0.0
1+
version=8.0.0
2+
iexecCommonVersion=7.0.0
33

44
nexusUser
55
nexusPassword

gradle/wrapper/gradle-wrapper.jar

2.32 KB
Binary file not shown.
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip
4+
networkTimeout=10000
45
zipStoreBase=GRADLE_USER_HOME
56
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)