Skip to content

Commit a9c3792

Browse files
Create ConfigServerClient instance and use it instead of BlockchainAdapterApiClient (#596)
1 parent b8ddff4 commit a9c3792

13 files changed

+132
-58
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ All notable changes to this project will be documented in this file.
77
### New Features
88

99
- Use `iexec-core-library` in `iexec-worker`. (#595)
10+
- Create `ConfigServerClient` instance and use it instead of `BlockchainAdapterApiClient`. (#596)
1011

1112
### Bug fixes
1213

build.gradle

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ dependencies {
4949
implementation "com.iexec.commons:iexec-commons-poco:$iexecCommonsPocoVersion"
5050
implementation "com.iexec.common:iexec-common:$iexecCommonVersion"
5151
implementation "com.iexec.commons:iexec-commons-containers:$iexecCommonsContainersVersion"
52-
implementation "com.iexec.blockchain:iexec-blockchain-adapter-api-library:$iexecBlockchainAdapterVersion"
5352
implementation "com.iexec.result-proxy:iexec-result-proxy-library:$iexecResultVersion"
5453
implementation "com.iexec.sms:iexec-sms-library:$iexecSmsVersion"
5554
implementation "com.iexec.core:iexec-core-library:$iexecCoreVersion"

gradle.properties

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
version=8.4.0
2-
iexecCommonVersion=8.4.0
2+
iexecCommonVersion=8.4.0-NEXT-SNAPSHOT
33
iexecCommonsContainersVersion=1.2.1
44
iexecCommonsPocoVersion=3.2.0
5-
iexecBlockchainAdapterVersion=8.4.0
65
iexecResultVersion=8.4.0
76
iexecSmsVersion=8.5.0
87
iexecCoreVersion=8.4.1-NEXT-SNAPSHOT
9-
108
nexusUser
119
nexusPassword

src/main/java/com/iexec/worker/chain/IexecHubService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2020-2023 IEXEC BLOCKCHAIN TECH
2+
* Copyright 2020-2024 IEXEC BLOCKCHAIN TECH
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@
2121
import com.iexec.common.lifecycle.purge.Purgeable;
2222
import com.iexec.commons.poco.chain.*;
2323
import com.iexec.commons.poco.contract.generated.IexecHubContract;
24-
import com.iexec.worker.config.BlockchainAdapterConfigurationService;
24+
import com.iexec.worker.config.ConfigServerConfigurationService;
2525
import lombok.extern.slf4j.Slf4j;
2626
import org.apache.commons.lang3.StringUtils;
2727
import org.springframework.beans.factory.annotation.Autowired;
@@ -55,10 +55,10 @@ public class IexecHubService extends IexecHubAbstractService implements Purgeabl
5555
@Autowired
5656
public IexecHubService(CredentialsService credentialsService,
5757
Web3jService web3jService,
58-
BlockchainAdapterConfigurationService blockchainAdapterConfigurationService) {
58+
ConfigServerConfigurationService configServerConfigurationService) {
5959
super(credentialsService.getCredentials(),
6060
web3jService,
61-
blockchainAdapterConfigurationService.getIexecHubContractAddress(),
61+
configServerConfigurationService.getIexecHubContractAddress(),
6262
1,
6363
5);
6464
this.credentialsService = credentialsService;

src/main/java/com/iexec/worker/chain/Web3jService.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2020-2023 IEXEC BLOCKCHAIN TECH
2+
* Copyright 2020-2024 IEXEC BLOCKCHAIN TECH
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -17,24 +17,24 @@
1717
package com.iexec.worker.chain;
1818

1919
import com.iexec.commons.poco.chain.Web3jAbstractService;
20-
import com.iexec.worker.config.BlockchainAdapterConfigurationService;
20+
import com.iexec.worker.config.ConfigServerConfigurationService;
2121
import com.iexec.worker.config.WorkerConfigurationService;
2222
import org.springframework.stereotype.Service;
2323

2424
@Service
2525
public class Web3jService extends Web3jAbstractService {
2626

27-
public Web3jService(BlockchainAdapterConfigurationService blockchainAdapterConfigurationService,
27+
public Web3jService(ConfigServerConfigurationService configServerConfigurationService,
2828
WorkerConfigurationService workerConfService) {
2929
super(
30-
blockchainAdapterConfigurationService.getChainId(),
30+
configServerConfigurationService.getChainId(),
3131
!workerConfService.getOverrideBlockchainNodeAddress().isEmpty() ?
3232
workerConfService.getOverrideBlockchainNodeAddress() :
33-
blockchainAdapterConfigurationService.getChainNodeUrl(),
34-
blockchainAdapterConfigurationService.getBlockTime(),
33+
configServerConfigurationService.getChainNodeUrl(),
34+
configServerConfigurationService.getBlockTime(),
3535
workerConfService.getGasPriceMultiplier(),
3636
workerConfService.getGasPriceCap(),
37-
blockchainAdapterConfigurationService.isSidechain()
37+
configServerConfigurationService.isSidechain()
3838
);
3939
}
4040

src/main/java/com/iexec/worker/config/BlockchainAdapterConfigurationService.java renamed to src/main/java/com/iexec/worker/config/ConfigServerConfigurationService.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2021-2023 IEXEC BLOCKCHAIN TECH
2+
* Copyright 2021-2024 IEXEC BLOCKCHAIN TECH
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
1616

1717
package com.iexec.worker.config;
1818

19-
import com.iexec.blockchain.api.BlockchainAdapterApiClient;
19+
import com.iexec.common.config.ConfigServerClient;
2020
import com.iexec.common.config.PublicChainConfig;
2121
import lombok.extern.slf4j.Slf4j;
2222
import org.springframework.stereotype.Service;
@@ -30,14 +30,14 @@
3030
*/
3131
@Slf4j
3232
@Service
33-
public class BlockchainAdapterConfigurationService {
33+
public class ConfigServerConfigurationService {
3434
private final PublicChainConfig publicChainConfig;
3535

36-
public BlockchainAdapterConfigurationService(BlockchainAdapterApiClient blockchainAdapterClient) {
37-
this.publicChainConfig = blockchainAdapterClient.getPublicChainConfig();
36+
public ConfigServerConfigurationService(ConfigServerClient configServerClient) {
37+
this.publicChainConfig = configServerClient.getPublicChainConfig();
3838
if (publicChainConfig == null) {
3939
throw new MissingConfigurationException(
40-
"Received public chain config is null; can't create BlockchainAdapterConfigurationService");
40+
"Received public chain config is null; can't create ConfigServerConfigurationService");
4141
}
4242

4343
log.info("Received public chain config [config:{}]", this.publicChainConfig);

src/main/java/com/iexec/worker/config/PublicConfigurationService.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,15 @@
1616

1717
package com.iexec.worker.config;
1818

19-
import com.iexec.blockchain.api.BlockchainAdapterApiClient;
20-
import com.iexec.blockchain.api.BlockchainAdapterApiClientBuilder;
21-
import com.iexec.common.config.PublicConfiguration;
19+
import com.iexec.common.config.ConfigServerClient;
20+
import com.iexec.common.config.ConfigServerClientBuilder;
21+
import com.iexec.core.config.PublicConfiguration;
2222
import com.iexec.resultproxy.api.ResultProxyClient;
2323
import com.iexec.resultproxy.api.ResultProxyClientBuilder;
2424
import com.iexec.worker.feign.CustomCoreFeignClient;
2525
import feign.Logger;
2626
import lombok.Getter;
27+
import org.apache.commons.lang3.StringUtils;
2728
import org.springframework.context.annotation.Bean;
2829
import org.springframework.stereotype.Service;
2930

@@ -46,10 +47,12 @@ public String getRequiredWorkerVersion() {
4647
}
4748

4849
@Bean
49-
public BlockchainAdapterApiClient blockchainAdapterApiClient() {
50-
return BlockchainAdapterApiClientBuilder.getInstance(
50+
public ConfigServerClient configServerClient() {
51+
final String configServerURL = StringUtils.isBlank(publicConfiguration.getConfigServerUrl()) ?
52+
publicConfiguration.getBlockchainAdapterUrl() : publicConfiguration.getConfigServerUrl();
53+
return ConfigServerClientBuilder.getInstance(
5154
Logger.Level.NONE,
52-
publicConfiguration.getBlockchainAdapterUrl());
55+
configServerURL);
5356
}
5457

5558
@Bean

src/main/java/com/iexec/worker/feign/CustomCoreFeignClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616

1717
package com.iexec.worker.feign;
1818

19-
import com.iexec.common.config.PublicConfiguration;
2019
import com.iexec.common.config.WorkerModel;
2120
import com.iexec.common.replicate.ReplicateStatusUpdate;
2221
import com.iexec.common.replicate.ReplicateTaskSummary;
2322
import com.iexec.core.api.SchedulerClient;
23+
import com.iexec.core.config.PublicConfiguration;
2424
import com.iexec.core.notification.TaskNotification;
2525
import com.iexec.core.notification.TaskNotificationType;
2626
import feign.FeignException;

src/test/java/com/iexec/worker/chain/IexecHubServiceTests.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2023-2023 IEXEC BLOCKCHAIN TECH
2+
* Copyright 2023-2024 IEXEC BLOCKCHAIN TECH
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -19,7 +19,7 @@
1919
import com.iexec.common.contribution.Contribution;
2020
import com.iexec.commons.poco.chain.*;
2121
import com.iexec.commons.poco.contract.generated.IexecHubContract;
22-
import com.iexec.worker.config.BlockchainAdapterConfigurationService;
22+
import com.iexec.worker.config.ConfigServerConfigurationService;
2323
import lombok.extern.slf4j.Slf4j;
2424
import org.junit.jupiter.api.BeforeEach;
2525
import org.junit.jupiter.api.Test;
@@ -55,7 +55,7 @@ class IexecHubServiceTests {
5555
private static final String CHAIN_TASK_ID = "0x5125c4ca7176e40d8c5386072a6f262029609a5d3a896fbf592cd965e65098d9";
5656

5757
@Mock
58-
private BlockchainAdapterConfigurationService blockchainAdapterConfigurationService;
58+
private ConfigServerConfigurationService configServerConfigurationService;
5959
@Mock
6060
private CredentialsService credentialsService;
6161
@Mock
@@ -72,13 +72,13 @@ class IexecHubServiceTests {
7272
@BeforeEach
7373
void init() throws Exception {
7474
MockitoAnnotations.openMocks(this);
75-
when(blockchainAdapterConfigurationService.getIexecHubContractAddress()).thenReturn("0x748e091bf16048cb5103E0E10F9D5a8b7fBDd860");
76-
when(blockchainAdapterConfigurationService.getBlockTime()).thenReturn(Duration.ofSeconds(5L));
77-
when(blockchainAdapterConfigurationService.getChainId()).thenReturn(65535);
75+
when(configServerConfigurationService.getIexecHubContractAddress()).thenReturn("0x748e091bf16048cb5103E0E10F9D5a8b7fBDd860");
76+
when(configServerConfigurationService.getBlockTime()).thenReturn(Duration.ofSeconds(5L));
77+
when(configServerConfigurationService.getChainId()).thenReturn(65535);
7878
credentials = Credentials.create(Keys.createEcKeyPair());
7979
when(credentialsService.getCredentials()).thenReturn(credentials);
8080
when(web3jService.getWeb3j()).thenReturn(web3jClient);
81-
iexecHubService = spy(new IexecHubService(credentialsService, web3jService, blockchainAdapterConfigurationService));
81+
iexecHubService = spy(new IexecHubService(credentialsService, web3jService, configServerConfigurationService));
8282
ReflectionTestUtils.setField(iexecHubService, "iexecHubContract", iexecHubContract);
8383
}
8484

src/test/java/com/iexec/worker/chain/Web3jServiceTests.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2023-2023 IEXEC BLOCKCHAIN TECH
2+
* Copyright 2023-2024 IEXEC BLOCKCHAIN TECH
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -16,7 +16,7 @@
1616

1717
package com.iexec.worker.chain;
1818

19-
import com.iexec.worker.config.BlockchainAdapterConfigurationService;
19+
import com.iexec.worker.config.ConfigServerConfigurationService;
2020
import com.iexec.worker.config.WorkerConfigurationService;
2121
import org.junit.jupiter.api.BeforeEach;
2222
import org.junit.jupiter.api.Test;
@@ -30,30 +30,30 @@
3030

3131
class Web3jServiceTests {
3232
@Mock
33-
private BlockchainAdapterConfigurationService blockchainAdapterConfigurationService;
33+
private ConfigServerConfigurationService configServerConfigurationService;
3434
@Mock
3535
private WorkerConfigurationService workerConfigurationService;
3636

3737
@BeforeEach
3838
void init() {
3939
MockitoAnnotations.openMocks(this);
40-
when(blockchainAdapterConfigurationService.getChainId()).thenReturn(134);
41-
when(blockchainAdapterConfigurationService.getBlockTime()).thenReturn(Duration.ofSeconds(5));
42-
when(blockchainAdapterConfigurationService.isSidechain()).thenReturn(true);
43-
when(blockchainAdapterConfigurationService.getChainNodeUrl()).thenReturn("https://bellecour.iex.ec");
40+
when(configServerConfigurationService.getChainId()).thenReturn(134);
41+
when(configServerConfigurationService.getBlockTime()).thenReturn(Duration.ofSeconds(5));
42+
when(configServerConfigurationService.isSidechain()).thenReturn(true);
43+
when(configServerConfigurationService.getChainNodeUrl()).thenReturn("https://bellecour.iex.ec");
4444
when(workerConfigurationService.getGasPriceMultiplier()).thenReturn(1.0f);
4545
when(workerConfigurationService.getGasPriceCap()).thenReturn(22_000_000_000L);
4646
}
4747

4848
@Test
4949
void shouldCreateInstanceWithDefaultNodeAddress() {
5050
when(workerConfigurationService.getOverrideBlockchainNodeAddress()).thenReturn("");
51-
assertThat(new Web3jService(blockchainAdapterConfigurationService, workerConfigurationService)).isNotNull();
51+
assertThat(new Web3jService(configServerConfigurationService, workerConfigurationService)).isNotNull();
5252
}
5353

5454
@Test
5555
void shouldCreateInstanceWithOverridenNodeAddress() {
5656
when(workerConfigurationService.getOverrideBlockchainNodeAddress()).thenReturn("http://localhost:8545");
57-
assertThat(new Web3jService(blockchainAdapterConfigurationService, workerConfigurationService)).isNotNull();
57+
assertThat(new Web3jService(configServerConfigurationService, workerConfigurationService)).isNotNull();
5858
}
5959
}

0 commit comments

Comments
 (0)