Skip to content

Commit ff732eb

Browse files
committed
Merge branch 'development' of github.com:OSGP/open-smart-grid-platform into development
2 parents 3372734 + 4085dfb commit ff732eb

File tree

77 files changed

+1353
-647
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+1353
-647
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Maven Dependency Tree Dependency Submission
2+
on:
3+
schedule:
4+
- cron: '0 0 * * *'
5+
workflow_dispatch:
6+
7+
permissions:
8+
contents: write
9+
10+
jobs:
11+
dependency-detection-and-submission:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: 'Checkout Repository'
15+
uses: actions/checkout@v4
16+
17+
- name: Submit Dependency Snapshot
18+
uses: advanced-security/maven-dependency-submission-action@v3

integration-tests/cucumber-tests-platform-smartmetering/src/test/resources/features/osgp-adapter-ws-smartmetering/bundle/BundledSetActivityCalendar.feature

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ Feature: SmartMetering Bundle - SetActivityCalendar
77
As a grid operator
88
I want to be able to set activity calendar on a meter via a bundle request
99

10-
Background:
10+
Scenario Outline: Set activity calendar on a device in a bundle request
1111
Given a dlms device
12-
| DeviceIdentification | TEST1024000000001 |
13-
| DeviceType | SMART_METER_E |
14-
15-
Scenario: Set activity calendar on a device in a bundle request
16-
Given a bundle request
17-
| DeviceIdentification | TEST1024000000001 |
12+
| DeviceIdentification | <deviceIdentification> |
13+
| DeviceType | SMART_METER_E |
14+
| Protocol | <protocol> |
15+
| ProtocolVersion | <version> |
16+
And a bundle request
17+
| DeviceIdentification | <deviceIdentification> |
1818
And an activity calendar
1919
| ActivityCalendarName | CALENDAR |
2020
| ActivatePassiveCalendarTime | FFFFFFFEFFFFFFFFFF000000 |
@@ -71,3 +71,13 @@ Feature: SmartMetering Bundle - SetActivityCalendar
7171
When the bundle request is received
7272
Then the bundle response should contain a set special days response with values
7373
| Result | OK |
74+
75+
Examples:
76+
| deviceIdentification | protocol | version |
77+
| TEST1024000000002 | DSMR | 2.2 |
78+
| TEST1024000000002 | DSMR | 4.2.2 |
79+
| TEST1031000000002 | SMR | 4.3 |
80+
| TEST1027000000002 | SMR | 5.0.0 |
81+
| TEST1028000000002 | SMR | 5.1 |
82+
| TEST1028000000002 | SMR | 5.2 |
83+
| TEST1028000000002 | SMR | 5.5 |

integration-tests/cucumber-tests-platform-smartmetering/src/test/resources/features/osgp-adapter-ws-smartmetering/configuration/SetActivityCalendar.feature

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,23 @@ Feature: SmartMetering Configuration - Set Activity Calendar
88
I want to be able to set the activity calendar on a device
99
In order to ensure proper tarriffication on the device
1010

11-
Scenario: Use wildcards for set activity calendar
11+
Scenario Outline: Use wildcards for set activity calendar
1212
Given a dlms device
13-
| DeviceIdentification | TEST1024000000001 |
14-
| DeviceType | SMART_METER_E |
13+
| DeviceIdentification | <deviceIdentification> |
14+
| DeviceType | SMART_METER_E |
15+
| Protocol | <protocol> |
16+
| ProtocolVersion | <version> |
1517
When the set activity calendar request is received
16-
| DeviceIdentification | TEST1024000000001 |
18+
| DeviceIdentification | <deviceIdentification> |
1719
Then the activity calendar profiles are set on the device
18-
| DeviceIdentification | TEST1024000000001 |
20+
| DeviceIdentification | <deviceIdentification> |
21+
22+
Examples:
23+
| deviceIdentification | protocol | version |
24+
| TEST1024000000002 | DSMR | 2.2 |
25+
| TEST1024000000002 | DSMR | 4.2.2 |
26+
| TEST1031000000002 | SMR | 4.3 |
27+
| TEST1027000000002 | SMR | 5.0.0 |
28+
| TEST1028000000002 | SMR | 5.1 |
29+
| TEST1028000000002 | SMR | 5.2 |
30+
| TEST1028000000002 | SMR | 5.5 |

osgp/platform/osgp-adapter-ws-core/src/main/java/org/opensmartgridplatform/adapter/ws/core/application/services/FirmwareManagementService.java

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ public void addManufacturer(
210210
this.domainHelperService.isAllowed(organisation, PlatformFunction.CREATE_MANUFACTURER);
211211

212212
final Manufacturer databaseManufacturer =
213-
this.manufacturerRepository.findByCode(manufacturer.getCode());
213+
this.manufacturerRepository.findByCodeIgnoreCase(manufacturer.getCode());
214214

215215
if (databaseManufacturer != null) {
216216
LOGGER.info("Manufacturer already exists.");
@@ -237,7 +237,7 @@ public void changeManufacturer(
237237
this.domainHelperService.isAllowed(organisation, PlatformFunction.CHANGE_MANUFACTURER);
238238

239239
final Manufacturer databaseManufacturer =
240-
this.manufacturerRepository.findByCode(manufacturer.getCode());
240+
this.manufacturerRepository.findByCodeIgnoreCase(manufacturer.getCode());
241241

242242
if (databaseManufacturer == null) {
243243
LOGGER.info("Manufacturer not found.");
@@ -268,7 +268,7 @@ public void removeManufacturer(
268268
this.domainHelperService.isAllowed(organisation, PlatformFunction.REMOVE_MANUFACTURER);
269269

270270
final Manufacturer databaseManufacturer =
271-
this.manufacturerRepository.findByCode(manufacturerCode);
271+
this.manufacturerRepository.findByCodeIgnoreCase(manufacturerCode);
272272
final List<DeviceModel> deviceModels =
273273
this.deviceModelRepository.findByManufacturer(databaseManufacturer);
274274

@@ -377,7 +377,8 @@ public void addDeviceModel(
377377
final Manufacturer manufacturer = this.findManufacturerByCode(manufacturerCode);
378378

379379
final DeviceModel savedDeviceModel =
380-
this.deviceModelRepository.findByManufacturerAndModelCode(manufacturer, modelCode);
380+
this.deviceModelRepository.findByManufacturerAndModelCodeIgnoreCase(
381+
manufacturer, modelCode);
381382

382383
if (savedDeviceModel != null) {
383384
LOGGER.info("DeviceModel already exists.");
@@ -406,9 +407,11 @@ public void removeDeviceModel(
406407
this.domainHelperService.findOrganisation(organisationIdentification);
407408
this.domainHelperService.isAllowed(organisation, PlatformFunction.REMOVE_DEVICE_MODEL);
408409

409-
final Manufacturer databaseManufacturer = this.manufacturerRepository.findByCode(manufacturer);
410+
final Manufacturer databaseManufacturer =
411+
this.manufacturerRepository.findByCodeIgnoreCase(manufacturer);
410412
final DeviceModel removedDeviceModel =
411-
this.deviceModelRepository.findByManufacturerAndModelCode(databaseManufacturer, modelCode);
413+
this.deviceModelRepository.findByManufacturerAndModelCodeIgnoreCase(
414+
databaseManufacturer, modelCode);
412415

413416
if (removedDeviceModel == null) {
414417
LOGGER.info("DeviceModel not found.");
@@ -453,9 +456,11 @@ public void changeDeviceModel(
453456
this.domainHelperService.findOrganisation(organisationIdentification);
454457
this.domainHelperService.isAllowed(organisation, PlatformFunction.CHANGE_DEVICE_MODEL);
455458

456-
final Manufacturer databaseManufacturer = this.manufacturerRepository.findByCode(manufacturer);
459+
final Manufacturer databaseManufacturer =
460+
this.manufacturerRepository.findByCodeIgnoreCase(manufacturer);
457461
final DeviceModel changedDeviceModel =
458-
this.deviceModelRepository.findByManufacturerAndModelCode(databaseManufacturer, modelCode);
462+
this.deviceModelRepository.findByManufacturerAndModelCodeIgnoreCase(
463+
databaseManufacturer, modelCode);
459464

460465
if (changedDeviceModel == null) {
461466
LOGGER.info("DeviceModel not found.");
@@ -505,9 +510,11 @@ private List<FirmwareFile> getFirmwareFiles(
505510
return new ArrayList<>();
506511
}
507512

508-
final Manufacturer manufacturer = this.manufacturerRepository.findByCode(manufacturerCode);
513+
final Manufacturer manufacturer =
514+
this.manufacturerRepository.findByCodeIgnoreCase(manufacturerCode);
509515
final DeviceModel deviceModel =
510-
this.deviceModelRepository.findByManufacturerAndModelCode(manufacturer, modelCode);
516+
this.deviceModelRepository.findByManufacturerAndModelCodeIgnoreCase(
517+
manufacturer, modelCode);
511518

512519
if (deviceModel == null) {
513520
return new ArrayList<>();
@@ -588,7 +595,8 @@ public void addFirmware(
588595
final Manufacturer databaseManufacturer = this.findManufacturerByCode(manufacturer);
589596

590597
final DeviceModel databaseDeviceModel =
591-
this.deviceModelRepository.findByManufacturerAndModelCode(databaseManufacturer, modelCode);
598+
this.deviceModelRepository.findByManufacturerAndModelCodeIgnoreCase(
599+
databaseManufacturer, modelCode);
592600

593601
if (databaseDeviceModel == null) {
594602
LOGGER.info("DeviceModel doesn't exist.");
@@ -654,7 +662,8 @@ public void addFirmware(
654662

655663
private Manufacturer findManufacturerByCode(final String manufacturer)
656664
throws FunctionalException {
657-
final Manufacturer databaseManufacturer = this.manufacturerRepository.findByCode(manufacturer);
665+
final Manufacturer databaseManufacturer =
666+
this.manufacturerRepository.findByCodeIgnoreCase(manufacturer);
658667

659668
if (databaseManufacturer == null) {
660669
LOGGER.info("Manufacturer doesn't exist.");
@@ -694,7 +703,7 @@ public void addOrChangeFirmware(
694703
this.findManufacturerByCode(deviceModel.getManufacturer());
695704

696705
final DeviceModel databaseDeviceModel =
697-
this.deviceModelRepository.findByManufacturerAndModelCode(
706+
this.deviceModelRepository.findByManufacturerAndModelCodeIgnoreCase(
698707
databaseManufacturer, deviceModel.getModelCode());
699708

700709
if (databaseDeviceModel == null) {
@@ -812,7 +821,8 @@ public void changeFirmware(
812821
.orElseThrow(
813822
supplyFirmwareFileNotFoundException(id, firmwareFileRequest.getFileName()));
814823

815-
final Manufacturer databaseManufacturer = this.manufacturerRepository.findByCode(manufacturer);
824+
final Manufacturer databaseManufacturer =
825+
this.manufacturerRepository.findByCodeIgnoreCase(manufacturer);
816826

817827
if (databaseManufacturer == null) {
818828
LOGGER.info("Manufacturer {} doesn't exist.", manufacturer);
@@ -823,7 +833,8 @@ public void changeFirmware(
823833
}
824834

825835
final DeviceModel databaseDeviceModel =
826-
this.deviceModelRepository.findByManufacturerAndModelCode(databaseManufacturer, modelCode);
836+
this.deviceModelRepository.findByManufacturerAndModelCodeIgnoreCase(
837+
databaseManufacturer, modelCode);
827838

828839
if (databaseDeviceModel == null) {
829840
LOGGER.info(

osgp/platform/osgp-adapter-ws-core/src/main/java/org/opensmartgridplatform/adapter/ws/core/endpoints/FirmwareManagementEndpoint.java

Lines changed: 24 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -855,23 +855,25 @@ public AddFirmwareResponse addFirmware(
855855
@RequestPayload final AddFirmwareRequest request)
856856
throws OsgpException {
857857

858-
LOGGER.info("Adding firmware:{}.", request.getFirmware().getFilename());
858+
final Firmware firmware = request.getFirmware();
859+
860+
LOGGER.info("Adding firmware:{}.", firmware.getFilename());
859861
final AddFirmwareResponse addFirmwareResponse = new AddFirmwareResponse();
860862

861863
try {
862864
final FirmwareModuleData firmwareModuleData =
863865
this.firmwareManagementMapper.map(
864-
request.getFirmware().getFirmwareModuleData(), FirmwareModuleData.class);
866+
firmware.getFirmwareModuleData(), FirmwareModuleData.class);
865867

866868
// The AddFirmwareRequest accepts multiple DeviceModels to be related to a Firmware.
867869
// This FirmwareManagementService only accepts ONE for now
868-
final String manufacturer = this.getManufacturerFromFirmware(request.getFirmware());
869-
final String modelCode = this.getModelCodeFromFirmware(request.getFirmware());
870+
final String manufacturer = this.getManufacturerFromFirmware(firmware);
871+
final String modelCode = this.getModelCodeFromFirmware(firmware);
870872

871873
this.firmwareManagementService.addFirmware(
872874
organisationIdentification,
873-
this.firmwareFileRequestFor(request.getFirmware()),
874-
request.getFirmware().getFile(),
875+
this.firmwareFileRequestFor(firmware),
876+
firmware.getFile(),
875877
manufacturer,
876878
modelCode,
877879
firmwareModuleData);
@@ -890,7 +892,7 @@ public AddFirmwareResponse addFirmware(
890892
LOGGER.error(
891893
"Exception: {} while adding firmware: {} for organisation {}",
892894
e.getMessage(),
893-
request.getFirmware().getFilename(),
895+
firmware.getFilename(),
894896
organisationIdentification,
895897
e);
896898
this.handleException(e);
@@ -917,23 +919,24 @@ public ChangeFirmwareResponse changeFirmware(
917919
@OrganisationIdentification final String organisationIdentification,
918920
@RequestPayload final ChangeFirmwareRequest request)
919921
throws OsgpException {
922+
final Firmware firmware = request.getFirmware();
920923

921-
LOGGER.info("Changing firmware:{}.", request.getFirmware().getFilename());
924+
LOGGER.info("Changing firmware:{}.", firmware.getFilename());
922925

923926
final FirmwareModuleData firmwareModuleData =
924927
this.firmwareManagementMapper.map(
925-
request.getFirmware().getFirmwareModuleData(), FirmwareModuleData.class);
928+
firmware.getFirmwareModuleData(), FirmwareModuleData.class);
926929

927930
// The ChangeFirmwareRequest accepts multiple DeviceModels to be related to a Firmware.
928931
// This FirmwareManagementService only accepts ONE for now
929-
final String manufacturer = this.getManufacturerFromFirmware(request.getFirmware());
930-
final String modelCode = this.getModelCodeFromFirmware(request.getFirmware());
932+
final String manufacturer = this.getManufacturerFromFirmware(firmware);
933+
final String modelCode = this.getModelCodeFromFirmware(firmware);
931934

932935
try {
933936
this.firmwareManagementService.changeFirmware(
934937
organisationIdentification,
935938
request.getId(),
936-
this.firmwareFileRequestFor(request.getFirmware()),
939+
this.firmwareFileRequestFor(firmware),
937940
manufacturer,
938941
modelCode,
939942
firmwareModuleData);
@@ -944,7 +947,7 @@ public ChangeFirmwareResponse changeFirmware(
944947
LOGGER.error(
945948
"Exception: {} while Changing firmware: {} for organisation {}",
946949
e.getMessage(),
947-
request.getFirmware().getFilename(),
950+
firmware.getFilename(),
948951
organisationIdentification,
949952
e);
950953
this.handleException(e);
@@ -963,19 +966,21 @@ public AddOrChangeFirmwareResponse addOrChangeFirmware(
963966
@RequestPayload final AddOrChangeFirmwareRequest request)
964967
throws OsgpException {
965968

966-
LOGGER.info("Adding Or changing firmware:{}.", request.getFirmware().getFilename());
969+
final Firmware firmware = request.getFirmware();
970+
971+
LOGGER.info("Adding Or changing firmware:{}.", firmware.getFilename());
967972
final AddOrChangeFirmwareResponse addOrChangeFirmwareResponse =
968973
new AddOrChangeFirmwareResponse();
969974

970975
try {
971976
final FirmwareModuleData firmwareModuleData =
972977
this.firmwareManagementMapper.map(
973-
request.getFirmware().getFirmwareModuleData(), FirmwareModuleData.class);
978+
firmware.getFirmwareModuleData(), FirmwareModuleData.class);
974979

975980
final List<org.opensmartgridplatform.domain.core.valueobjects.DeviceModel> deviceModels =
976981
new ArrayList<>();
977982
for (final org.opensmartgridplatform.adapter.ws.schema.core.firmwaremanagement.DeviceModel
978-
wsDeviceModel : request.getFirmware().getDeviceModels()) {
983+
wsDeviceModel : firmware.getDeviceModels()) {
979984
final org.opensmartgridplatform.domain.core.valueobjects.DeviceModel deviceModel =
980985
this.firmwareManagementMapper.map(
981986
wsDeviceModel,
@@ -985,8 +990,8 @@ public AddOrChangeFirmwareResponse addOrChangeFirmware(
985990

986991
this.firmwareManagementService.addOrChangeFirmware(
987992
organisationIdentification,
988-
this.firmwareFileRequestFor(request.getFirmware()),
989-
request.getFirmware().getFile(),
993+
this.firmwareFileRequestFor(firmware),
994+
firmware.getFile(),
990995
deviceModels,
991996
firmwareModuleData);
992997
} catch (final ConstraintViolationException e) {
@@ -1004,7 +1009,7 @@ public AddOrChangeFirmwareResponse addOrChangeFirmware(
10041009
LOGGER.error(
10051010
"Exception: {} while adding or changing firmware: {} for organisation {}",
10061011
e.getMessage(),
1007-
request.getFirmware().getFilename(),
1012+
firmware.getFilename(),
10081013
organisationIdentification,
10091014
e);
10101015
this.handleException(e);

osgp/platform/osgp-adapter-ws-shared-db/src/main/java/org/opensmartgridplatform/adapter/ws/shared/db/domain/repositories/writable/WritableDeviceModelRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
@Repository
1414
public interface WritableDeviceModelRepository extends JpaRepository<DeviceModel, Long> {
15-
DeviceModel findByManufacturerAndModelCode(Manufacturer manufacturer, String modelCode);
15+
DeviceModel findByManufacturerAndModelCodeIgnoreCase(Manufacturer manufacturer, String modelCode);
1616

1717
DeviceModel findByManufacturerCodeAndModelCode(String string, String modelCode);
1818

osgp/platform/osgp-adapter-ws-shared-db/src/main/java/org/opensmartgridplatform/adapter/ws/shared/db/domain/repositories/writable/WritableManufacturerRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
@Repository
1212
public interface WritableManufacturerRepository extends JpaRepository<Manufacturer, Long> {
13-
Manufacturer findByCode(String code);
13+
Manufacturer findByCodeIgnoreCase(String code);
1414

1515
Manufacturer findByName(String manufacturerName);
1616
}

osgp/platform/osgp-secret-management/src/main/resources/logback-spring.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ SPDX-License-Identifier: Apache-2.0
3535
<!-- TRACE, DEBUG, INFO, WARN, ERROR -->
3636
<logger name="org.opensmartgridplatform.secretmanagement.application" level="DEBUG"/>
3737
<logger name="org.opensmartgridplatform.adapter.protocol.dlms.application.services.SecretManagementService" level="TRACE"/>
38-
<logger name="org.opensmartgridplatform.adapter.protocol.dlms.application.services.ThrottlingService" level="WARN"/>
3938
<logger name="org.opensmartgridplatform.shared.security.providers" level="DEBUG"/>
4039

4140
<logger name="org.opensmartgridplatform.adapter.ws.endpointinterceptors" level="TRACE"/>

osgp/protocol-adapter-dlms/osgp-dlms/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ SPDX-License-Identifier: Apache-2.0
3030
<groupId>org.apache.maven.plugins</groupId>
3131
<artifactId>maven-jar-plugin</artifactId>
3232
<version>${maven.jar.plugin.version}</version>
33+
<executions>
34+
<execution>
35+
<goals>
36+
<goal>test-jar</goal>
37+
</goals>
38+
</execution>
39+
</executions>
3340
</plugin>
3441
<plugin>
3542
<artifactId>maven-surefire-plugin</artifactId>

osgp/protocol-adapter-dlms/osgp-dlms/src/main/java/org/opensmartgridplatform/dlms/objectconfig/CosemObject.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,12 @@
2424

2525
@Getter
2626
@NoArgsConstructor
27-
@JsonTypeInfo(use = Id.NAME, property = "class-id", visible = true)
27+
@JsonTypeInfo(use = Id.NAME, property = "class-id", visible = true, defaultImpl = CosemObject.class)
2828
@JsonSubTypes({
2929
@JsonSubTypes.Type(value = Data.class, name = "1"),
3030
@JsonSubTypes.Type(value = Register.class, name = "3"),
3131
@JsonSubTypes.Type(value = ExtendedRegister.class, name = "4"),
3232
@JsonSubTypes.Type(value = ProfileGeneric.class, name = "7"),
33-
@JsonSubTypes.Type(value = CosemObject.class, name = "8"),
34-
@JsonSubTypes.Type(value = CosemObject.class, name = "22"),
35-
@JsonSubTypes.Type(value = CosemObject.class, name = "40"),
36-
@JsonSubTypes.Type(value = CosemObject.class, name = "47"),
37-
@JsonSubTypes.Type(value = CosemObject.class, name = "72"),
38-
@JsonSubTypes.Type(value = CosemObject.class, name = "77")
3933
})
4034
public class CosemObject {
4135
protected String tag;

0 commit comments

Comments
 (0)