Skip to content

Commit d85e04f

Browse files
authored
Merge pull request #440 from eclipse-arrowhead/development
Release v4.6.2
2 parents c6185d4 + 1443efa commit d85e04f

File tree

21 files changed

+192
-18
lines changed

21 files changed

+192
-18
lines changed

authorization/src/main/java/eu/arrowhead/core/authorization/service/AuthorizationDriver.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ public void publishAuthUpdate(final long updatedConsumerSystemId) {
113113
private void initializeSystemRequestDTO() {
114114
logger.debug("initializeSystemRequestDTO started...");
115115

116+
systemRequestDTO = new SystemRequestDTO();
116117
systemRequestDTO.setAddress(address);
117118
systemRequestDTO.setPort(port);
118119
systemRequestDTO.setSystemName(systemName);

choreographer/src/main/java/eu/arrowhead/core/choreographer/ChoreographerPlanController.java

Lines changed: 79 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.time.format.DateTimeParseException;
2020
import java.util.ArrayList;
2121
import java.util.List;
22+
import java.util.Optional;
2223

2324
import org.apache.http.HttpStatus;
2425
import org.apache.logging.log4j.LogManager;
@@ -49,6 +50,7 @@
4950
import eu.arrowhead.common.Defaults;
5051
import eu.arrowhead.common.Utilities;
5152
import eu.arrowhead.common.core.CoreSystem;
53+
import eu.arrowhead.common.database.entity.ChoreographerPlan;
5254
import eu.arrowhead.common.database.entity.ChoreographerSession;
5355
import eu.arrowhead.common.database.entity.Logs;
5456
import eu.arrowhead.common.database.service.CommonDBService;
@@ -58,6 +60,7 @@
5860
import eu.arrowhead.common.dto.shared.ChoreographerPlanListResponseDTO;
5961
import eu.arrowhead.common.dto.shared.ChoreographerPlanRequestDTO;
6062
import eu.arrowhead.common.dto.shared.ChoreographerPlanResponseDTO;
63+
import eu.arrowhead.common.dto.shared.ChoreographerRunPlanRequestByClientDTO;
6164
import eu.arrowhead.common.dto.shared.ChoreographerRunPlanRequestDTO;
6265
import eu.arrowhead.common.dto.shared.ChoreographerRunPlanResponseDTO;
6366
import eu.arrowhead.common.dto.shared.ChoreographerSessionStatus;
@@ -111,7 +114,8 @@ public class ChoreographerPlanController {
111114
private static final String DELETE_PLAN_HTTP_400_MESSAGE = "Could not remove Plan.";
112115

113116
private static final String START_SESSION_HTTP_200_MESSAGE = "Initiated plan execution with given id(s).";
114-
private static final String START_PLAN_HTTP_400_MESSAGE = "Could not start plan with given id(s).";
117+
private static final String START_SESSION_BY_CLIENT_HTTP_200_MESSAGE = "Initiated plan execution with given id(s) or name(s).";
118+
private static final String START_PLAN_HTTP_400_MESSAGE = "Could not start plan.";
115119

116120
private static final String ABORT_SESSION_HTTP_200_MESSAGE = "Initiated session abortion with given id.";
117121
private static final String ABORT_SESSION_HTTP_400_MESSAGE = "Could not abort session with given id.";
@@ -367,6 +371,69 @@ public void abortSession(@PathVariable final Long id) {
367371

368372
return new ChoreographerCheckPlanResponseDTO(id, result.getErrorMessages(), result.getNeedInterCloud());
369373
}
374+
375+
//-------------------------------------------------------------------------------------------------
376+
@ApiOperation(value = "Initiate the start of one or more plans.", tags = { CoreCommonConstants.SWAGGER_TAG_CLIENT })
377+
@ApiResponses(value = {
378+
@ApiResponse(code = HttpStatus.SC_OK, message = START_SESSION_BY_CLIENT_HTTP_200_MESSAGE, responseContainer = "List", response = ChoreographerRunPlanResponseDTO.class),
379+
@ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = START_PLAN_HTTP_400_MESSAGE, response= ErrorMessageDTO.class),
380+
@ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = CoreCommonConstants.SWAGGER_HTTP_401_MESSAGE, response= ErrorMessageDTO.class),
381+
@ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = CoreCommonConstants.SWAGGER_HTTP_500_MESSAGE, response= ErrorMessageDTO.class)
382+
})
383+
@PostMapping(path = CommonConstants.OP_CHOREOGRAPHER_CLIENT_SERVICE_SESSION_START_URI, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
384+
@ResponseBody public List<ChoreographerRunPlanResponseDTO> startPlansByClient(@RequestBody final List<ChoreographerRunPlanRequestByClientDTO> requests) {
385+
logger.debug("startPlans started...");
386+
387+
if (requests == null || requests.isEmpty()) {
388+
throw new BadPayloadException("No plan specified to start.", HttpStatus.SC_BAD_REQUEST, CommonConstants.CHOREOGRAPHER_URI + CommonConstants.OP_CHOREOGRAPHER_CLIENT_SERVICE_SESSION_START_URI);
389+
}
390+
391+
final List<ChoreographerRunPlanResponseDTO> results = new ArrayList<>(requests.size());
392+
for (final ChoreographerRunPlanRequestByClientDTO request : requests) {
393+
request.setAllowInterCloud(gatekeeperIsPresent && request.isAllowInterCloud()); // change inter-cloud flag based on gatekeeper presence in the cloud
394+
if (request.getPlanId() == null) {
395+
request.setPlanId(findPlan(request.getName())); // try to find plan id by name
396+
}
397+
398+
final ChoreographerRunPlanResponseDTO response = planChecker.checkPlanForExecution(request);
399+
400+
if (!Utilities.isEmpty(response.getErrorMessages())) {
401+
results.add(response);
402+
} else {
403+
final ChoreographerSession session = sessionDBService.initiateSession(request.getPlanId(), request.getQuantity(), createNotifyUri(request));
404+
results.add(new ChoreographerRunPlanResponseDTO(request.getPlanId(), session.getId(), session.getQuantityGoal(), response.getNeedInterCloud()));
405+
406+
logger.debug("Sending a message to {}.", ChoreographerService.START_SESSION_DESTINATION);
407+
jms.convertAndSend(ChoreographerService.START_SESSION_DESTINATION, new ChoreographerStartSessionDTO(session.getId(), request.getPlanId(), request.isAllowInterCloud(), request.getChooseOptimalExecutor()));
408+
}
409+
}
410+
411+
return results;
412+
}
413+
414+
//-------------------------------------------------------------------------------------------------
415+
@ApiOperation(value = "Initiate the abortion of the specified session.", response = Void.class, tags = { CoreCommonConstants.SWAGGER_TAG_CLIENT })
416+
@ApiResponses (value = {
417+
@ApiResponse(code = HttpStatus.SC_OK, message = ABORT_SESSION_HTTP_200_MESSAGE),
418+
@ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = ABORT_SESSION_HTTP_400_MESSAGE),
419+
@ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = CoreCommonConstants.SWAGGER_HTTP_401_MESSAGE),
420+
@ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = CoreCommonConstants.SWAGGER_HTTP_500_MESSAGE)
421+
})
422+
@DeleteMapping(path = CommonConstants.OP_CHOREOGRAPHER_CLIENT_SERVICE_SESSION_ABORT_URI)
423+
public void abortSessionByClient(@PathVariable final Long id) {
424+
logger.debug("New abort session request received with id: {}.", id);
425+
426+
if (id < 1) {
427+
throw new BadPayloadException(ID_NOT_VALID_ERROR_MESSAGE, HttpStatus.SC_BAD_REQUEST, CommonConstants.CHOREOGRAPHER_URI + CommonConstants.OP_CHOREOGRAPHER_CLIENT_SERVICE_SESSION_ABORT_URI);
428+
}
429+
430+
final ChoreographerSession session = sessionDBService.getSessionById(id);
431+
if (session.getStatus() == ChoreographerSessionStatus.DONE) {
432+
throw new BadPayloadException("Session with id " + id + " couldn't be aborted due to its DONE status");
433+
}
434+
435+
choreographerService.abortSession(id, null, MANUAL_ABORT_MESSAGE);
436+
}
370437

371438
//=================================================================================================
372439
// assistant methods
@@ -376,4 +443,15 @@ private String createNotifyUri(final ChoreographerRunPlanRequestDTO request) {
376443
return Utilities.isEmpty(request.getNotifyAddress()) ? null
377444
: request.getNotifyProtocol() + "://" + request.getNotifyAddress() + ":" + request.getNotifyPort() + "/" + request.getNotifyPath();
378445
}
446+
447+
//-------------------------------------------------------------------------------------------------
448+
private Long findPlan(final String name) {
449+
if (Utilities.isEmpty(name)) {
450+
return null;
451+
}
452+
453+
final Optional<ChoreographerPlan> plan = planDBService.getPlanByName(name);
454+
455+
return plan.isPresent() ? plan.get().getId() : null;
456+
}
379457
}

choreographer/src/main/java/eu/arrowhead/core/choreographer/database/service/ChoreographerPlanDBService.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,13 @@ public ChoreographerPlan getPlanById(final long id) {
142142
throw new ArrowheadException(CoreCommonConstants.DATABASE_OPERATION_EXCEPTION_MSG, ex);
143143
}
144144
}
145+
146+
//-------------------------------------------------------------------------------------------------
147+
public Optional<ChoreographerPlan> getPlanByName(final String name) {
148+
logger.debug("getPlanByName started...");
149+
150+
return choreographerPlanRepository.findByName(name);
151+
}
145152

146153
//-------------------------------------------------------------------------------------------------
147154
public ChoreographerPlanResponseDTO getPlanByIdResponse(final long id) {

configuration/src/main/java/eu/arrowhead/core/configuration/ConfigurationController.java

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,29 @@ public class ConfigurationController {
201201

202202
return ret;
203203
}
204+
205+
//-------------------------------------------------------------------------------------------------
206+
@ApiOperation(value = "Interface to get an other application's configuration", response = ConfigurationResponseDTO.class, tags = { CoreCommonConstants.SWAGGER_TAG_CLIENT })
207+
@ApiResponses (value = {
208+
@ApiResponse(code = HttpStatus.SC_OK, message = CoreCommonConstants.SWAGGER_HTTP_200_MESSAGE),
209+
@ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = CoreCommonConstants.SWAGGER_HTTP_401_MESSAGE),
210+
@ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CoreCommonConstants.SWAGGER_HTTP_404_MESSAGE),
211+
@ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = CoreCommonConstants.SWAGGER_HTTP_500_MESSAGE)
212+
})
213+
@GetMapping(path= CommonConstants.OP_CONFIGURATION_CONF_BY_PROXY + "/{systemName}", produces = MediaType.APPLICATION_JSON_VALUE)
214+
@ResponseBody public ConfigurationResponseDTO confGetByProxy(@PathVariable(value="systemName", required = true) String systemName) {
215+
if (Utilities.isEmpty(systemName)) {
216+
throw new InvalidParameterException(OP_NOT_VALID_ERROR_MESSAGE, HttpStatus.SC_BAD_REQUEST, CommonConstants.OP_CONFIGURATION_CONF_BY_PROXY);
217+
}
218+
systemName = systemName.toLowerCase().trim();
219+
220+
final ConfigurationResponseDTO ret = configurationDBService.getConfigForSystem(systemName);
221+
if (ret == null) {
222+
throw new DataNotFoundException(NOT_FOUND_ERROR_MESSAGE, HttpStatus.SC_NOT_FOUND, CommonConstants.OP_CONFIGURATION_CONF_BY_PROXY + "/" + systemName);
223+
}
224+
225+
return ret;
226+
}
204227

205228
//-------------------------------------------------------------------------------------------------
206229
@ApiOperation(value = "Interface to list all configuration files", response = ConfigurationListResponseDTO.class, tags = { CoreCommonConstants.SWAGGER_TAG_MGMT })
@@ -238,6 +261,25 @@ public class ConfigurationController {
238261

239262
return configResponse;
240263
}
264+
265+
//-------------------------------------------------------------------------------------------------
266+
@ApiOperation(value = "Stores/updates an other application's configuration", response = ConfigurationResponseDTO.class, tags = { CoreCommonConstants.SWAGGER_TAG_CLIENT })
267+
@ApiResponses(value = {
268+
@ApiResponse(code = HttpStatus.SC_OK, message = PUT_CONFIG_MGMT_HTTP_200_MESSAGE),
269+
@ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = PUT_CONFIG_MGMT_HTTP_400_MESSAGE),
270+
@ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = CoreCommonConstants.SWAGGER_HTTP_401_MESSAGE),
271+
@ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = CoreCommonConstants.SWAGGER_HTTP_500_MESSAGE)
272+
})
273+
@PutMapping(path = CommonConstants.OP_CONFIGURATION_SAVE_CONF_BY_PROXY, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
274+
@ResponseBody public ConfigurationResponseDTO storeConfigurationForSystemByProxy(@RequestBody final ConfigurationRequestDTO config) {
275+
logger.debug("New storeConfigurationForSystemByProxy put request received.");
276+
final String origin = CommonConstants.CONFIGURATION_URI + CommonConstants.OP_CONFIGURATION_SAVE_CONF_BY_PROXY;
277+
278+
validateConfigRequestDTO(config.getSystemName(), config, origin);
279+
final ConfigurationResponseDTO configResponse = configurationDBService.setConfigForSystem(config.getSystemName(), config);
280+
281+
return configResponse;
282+
}
241283

242284
//-------------------------------------------------------------------------------------------------
243285
@ApiOperation(value = "Delete configuration", response = ConfigurationResponseDTO.class, tags = { CoreCommonConstants.SWAGGER_TAG_MGMT })

core-common/src/main/java/eu/arrowhead/common/CommonConstants.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,14 @@ public class CommonConstants {
9191

9292
public static final String CORE_SERVICE_CONFIGURATION_CONF = "conf";
9393
public static final String CORE_SERVICE_CONFIGURATION_RAWCONF = "confraw";
94+
public static final String CORE_SERVICE_CONFIGURATION_CONF_BY_PROXY = "conf-by-proxy";
95+
public static final String CORE_SERVICE_CONFIGURATION_SAVE_CONF_BY_PROXY = "save-conf-by-proxy";
9496

9597
public static final String CORE_SERVICE_CHOREOGRAPHER_PROCESS = "choreographer-service";
9698
public static final String CORE_SERVICE_CHOREOGRAPHER_REGISTER_EXECUTOR = "executor-register";
9799
public static final String CORE_SERVICE_CHOREOGRAPHER_UNREGISTER_EXECUTOR = "executor-unregister";
100+
public static final String CORE_SERVICE_CHOREOGRAPHER_START_SESSION = "choreographer-start-session";
101+
public static final String CORE_SERVICE_CHOREOGRAPHER_ABORT_SESSION = "choreographer-abort-session";
98102

99103
public static final String CORE_SERVICE_CERTIFICATEAUTHORITY_SIGN = "ca-sign";
100104
public static final String CORE_SERVICE_CERTIFICATEAUTHORITY_LIST_CERTIFICATES = "ca-list-certificates";
@@ -109,7 +113,7 @@ public class CommonConstants {
109113
public static final String CORE_SERVICE_QOSMONITOR_INTRA_PING_MEDIAN_MEASUREMENT = "qos-monitor-intra-ping-median-measurement";
110114
public static final String CORE_SERVICE_QOSMONITOR_INTER_DIRECT_PING_MEASUREMENT = "qos-monitor-inter-direct-ping-measurement";
111115
public static final String CORE_SERVICE_QOSMONITOR_INTER_RELAY_ECHO_MEASUREMENT = "qos-monitor-inter-relay-echo-measurement";
112-
public static final String CORE_SERVICE_QOSMONITOR_PUBLIC_KEY = "qos-monitor-public-key";
116+
public static final String CORE_SERVICE_QOSMONITOR_PUBLIC_KEY = "qos-monitor-public-key";
113117
public static final String CORE_SERVICE_QOSMONITOR_JOIN_RELAY_TEST = "qos-monitor-join-relay-test";
114118
public static final String CORE_SERVICE_QOSMONITOR_INIT_RELAY_TEST = "qos-monitor-init-relay-test";
115119
public static final String CORE_SERVICE_SERVICEREGISTRY_REGISTER = "service-register";
@@ -280,6 +284,8 @@ public class CommonConstants {
280284
public static final String OP_CONFIGURATION_CONF = "/config";
281285
public static final String OP_CONFIGURATION_RAWCONF = "/config/raw";
282286
public static final String OP_CONFIGURATION_MGMT_MANAGE = "/mgmt/config";
287+
public static final String OP_CONFIGURATION_CONF_BY_PROXY = "/proxy/config";
288+
public static final String OP_CONFIGURATION_SAVE_CONF_BY_PROXY = "/proxy/save-config";
283289

284290
public static final String CHOREOGRAPHER_URI = "/choreographer";
285291
public static final String CHOREOGRAPHER_SESSION_MGMT_URI = CoreCommonConstants.MGMT_URI + "/session";
@@ -294,6 +300,8 @@ public class CommonConstants {
294300
public static final String OP_CHOREOGRAPHER_EXECUTOR_UNREGISTER = "/executor/unregister";
295301
public static final String OP_CHOREOGRAPHER_NOTIFY_STEP_DONE = "/executor/notify-step-done";
296302
public static final String OP_CHOREOGRAPHER_EXECUTOR_UNREGISTER_REQUEST_PARAM_NAME = "name";
303+
public static final String OP_CHOREOGRAPHER_CLIENT_SERVICE_SESSION_START_URI = "/session/start";
304+
public static final String OP_CHOREOGRAPHER_CLIENT_SERVICE_SESSION_ABORT_URI = "/session/abort/{id}";
297305

298306
public static final String GATEWAY_URI = "/gateway";
299307
public static final String OP_GATEWAY_KEY_URI = "/publickey";

core-common/src/main/java/eu/arrowhead/common/core/CoreSystem.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,14 @@ public enum CoreSystem {
9191

9292
CHOREOGRAPHER(Defaults.DEFAULT_CHOREOGRAPHER_PORT, List.of(CoreSystemService.CHOREOGRAPHER_SERVICE,
9393
CoreSystemService.CHOREOGRAPHER_REGISTER_EXECUTOR_SERVICE,
94-
CoreSystemService.CHOREOGRAPHER_UNREGISTER_EXECUTOR_SERVICE)),
94+
CoreSystemService.CHOREOGRAPHER_UNREGISTER_EXECUTOR_SERVICE,
95+
CoreSystemService.CHOREOGRAPHER_START_SESSION_SERVICE,
96+
CoreSystemService.CHOREOGRAPHER_ABORT_SESSION_SERVICE)),
9597

9698
CONFIGURATION(Defaults.DEFAULT_CONFIGURATION_PORT, List.of(CoreSystemService.CONFIGURATION_SERVICE,
97-
CoreSystemService.CONFIGURATION_RAW_SERVICE)),
99+
CoreSystemService.CONFIGURATION_RAW_SERVICE,
100+
CoreSystemService.CONFIGURATION_BY_PROXY_SERVICE,
101+
CoreSystemService.CONFIGURATION_SAVE_BY_PROXY_SERVICE)),
98102

99103
QOSMONITOR(Defaults.DEFAULT_QOSMONITOR_PORT, List.of(CoreSystemService.QOSMONITOR_INTRA_PING_MEASUREMENT_SERVICE,
100104
CoreSystemService.QOSMONITOR_INTRA_PING_MEDIAN_MEASUREMENT_SERVICE,

core-common/src/main/java/eu/arrowhead/common/core/CoreSystemService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,11 +96,15 @@ public enum CoreSystemService {
9696
CONFIGURATION_SERVICE(CommonConstants.CORE_SERVICE_CONFIGURATION_CONF, CommonConstants.CONFIGURATION_URI + CommonConstants.OP_CONFIGURATION_CONF),
9797
CONFIGURATION_RAW_SERVICE(CommonConstants.CORE_SERVICE_CONFIGURATION_RAWCONF, CommonConstants.CONFIGURATION_URI + CommonConstants.OP_CONFIGURATION_RAWCONF, List.of(new InterfaceData(CommonConstants.HTTP, CommonConstants.BINARY))),
9898
CONFIGURATION_MANAGE_SERVICE(CommonConstants.CORE_SERVICE_CONFIGURATION_CONF, CommonConstants.CONFIGURATION_URI + CommonConstants.OP_CONFIGURATION_MGMT_MANAGE),
99+
CONFIGURATION_BY_PROXY_SERVICE(CommonConstants.CORE_SERVICE_CONFIGURATION_CONF_BY_PROXY, CommonConstants.CONFIGURATION_URI + CommonConstants.OP_CONFIGURATION_CONF_BY_PROXY),
100+
CONFIGURATION_SAVE_BY_PROXY_SERVICE(CommonConstants.CORE_SERVICE_CONFIGURATION_SAVE_CONF_BY_PROXY, CommonConstants.CONFIGURATION_URI + CommonConstants.OP_CONFIGURATION_SAVE_CONF_BY_PROXY),
99101

100102
// Choreographer services
101103
CHOREOGRAPHER_SERVICE(CommonConstants.CORE_SERVICE_CHOREOGRAPHER_PROCESS, CommonConstants.CHOREOGRAPHER_URI + CommonConstants.OP_CHOREOGRAPHER_NOTIFY_STEP_DONE),
102104
CHOREOGRAPHER_REGISTER_EXECUTOR_SERVICE(CommonConstants.CORE_SERVICE_CHOREOGRAPHER_REGISTER_EXECUTOR, CommonConstants.CHOREOGRAPHER_URI + CommonConstants.OP_CHOREOGRAPHER_EXECUTOR_REGISTER),
103105
CHOREOGRAPHER_UNREGISTER_EXECUTOR_SERVICE(CommonConstants.CORE_SERVICE_CHOREOGRAPHER_UNREGISTER_EXECUTOR, CommonConstants.CHOREOGRAPHER_URI + CommonConstants.OP_CHOREOGRAPHER_EXECUTOR_UNREGISTER),
106+
CHOREOGRAPHER_START_SESSION_SERVICE(CommonConstants.CORE_SERVICE_CHOREOGRAPHER_START_SESSION, CommonConstants.CHOREOGRAPHER_URI + CommonConstants.OP_CHOREOGRAPHER_CLIENT_SERVICE_SESSION_START_URI),
107+
CHOREOGRAPHER_ABORT_SESSION_SERVICE(CommonConstants.CORE_SERVICE_CHOREOGRAPHER_ABORT_SESSION, CommonConstants.CHOREOGRAPHER_URI + CommonConstants.OP_CHOREOGRAPHER_CLIENT_SERVICE_SESSION_ABORT_URI),
104108

105109
// QoS Monitor services
106110

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package eu.arrowhead.common.dto.shared;
2+
3+
import java.io.Serializable;
4+
5+
public class ChoreographerRunPlanRequestByClientDTO extends ChoreographerRunPlanRequestDTO implements Serializable {
6+
7+
//=================================================================================================
8+
// methods
9+
10+
private static final long serialVersionUID = -7679624305702873335L;
11+
12+
private String name;
13+
14+
//-------------------------------------------------------------------------------------------------
15+
public String getName() { return name; }
16+
17+
//-------------------------------------------------------------------------------------------------
18+
public void setName(final String name) { this.name = name; }
19+
}

docker/Dockerfile-system

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ RUN cd /opt/arrowhead-build && \
1414

1515
FROM eclipse-temurin:11.0.19_7-jre
1616

17-
ENV AH_VERSION=4.6.1
17+
ENV AH_VERSION=4.6.2
1818

1919
COPY --from=build /opt/arrowhead /opt/arrowhead
2020
COPY --from=build /opt/arrowhead-temp /opt/arrowhead-temp

gams/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<dependency>
2727
<groupId>com.jayway.jsonpath</groupId>
2828
<artifactId>json-path</artifactId>
29-
<version>2.4.0</version>
29+
<version>2.9.0</version>
3030
</dependency>
3131
<!-- https://mvnrepository.com/artifact/com.github.gbenroscience/parser-ng -->
3232
<dependency>

0 commit comments

Comments
 (0)