Skip to content

Commit 2a28756

Browse files
author
Dennis Labordus
authored
Merge pull request #55 from com-pas/develop
Develop -> Master (Release)
2 parents fced91c + d71d695 commit 2a28756

File tree

61 files changed

+762
-436
lines changed

Some content is hidden

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

61 files changed

+762
-436
lines changed

app/pom.xml

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,22 @@ SPDX-License-Identifier: Apache-2.0
3737
<dependency>
3838
<groupId>org.lfenergy.compas.scl.data</groupId>
3939
<artifactId>service</artifactId>
40-
<version>${project.version}</version>
4140
</dependency>
4241
<dependency>
4342
<groupId>org.lfenergy.compas.scl.data</groupId>
4443
<artifactId>repository-basex</artifactId>
45-
<version>${project.version}</version>
4644
<scope>runtime</scope>
4745
</dependency>
4846

47+
<dependency>
48+
<groupId>org.lfenergy.compas.core</groupId>
49+
<artifactId>commons</artifactId>
50+
</dependency>
51+
<dependency>
52+
<groupId>org.lfenergy.compas.core</groupId>
53+
<artifactId>rest-commons</artifactId>
54+
</dependency>
55+
4956
<dependency>
5057
<groupId>io.quarkus</groupId>
5158
<artifactId>quarkus-arc</artifactId>
@@ -70,6 +77,10 @@ SPDX-License-Identifier: Apache-2.0
7077
<groupId>io.quarkus</groupId>
7178
<artifactId>quarkus-container-image-docker</artifactId>
7279
</dependency>
80+
<dependency>
81+
<groupId>io.quarkus</groupId>
82+
<artifactId>quarkus-hibernate-validator</artifactId>
83+
</dependency>
7384

7485
<!-- Test Dependencies -->
7586
<dependency>
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// SPDX-FileCopyrightText: 2021 Alliander N.V.
2+
//
3+
// SPDX-License-Identifier: Apache-2.0
4+
package org.lfenergy.compas.scl.data.rest;
5+
6+
import org.lfenergy.compas.core.commons.ElementConverter;
7+
import org.lfenergy.compas.scl.data.util.SclDataModelMarshaller;
8+
import org.lfenergy.compas.scl.data.util.SclElementProcessor;
9+
10+
import javax.enterprise.inject.Produces;
11+
12+
/**
13+
* Create Beans from other dependencies that are used in the application.
14+
*/
15+
public class CompasSclDataServiceConfiguration {
16+
@Produces
17+
public ElementConverter createElementConverter() {
18+
return new ElementConverter();
19+
}
20+
21+
@Produces
22+
public SclElementProcessor creatSclElementProcessor() {
23+
return new SclElementProcessor();
24+
}
25+
26+
@Produces
27+
public SclDataModelMarshaller createSclDataModelMarshaller() {
28+
return new SclDataModelMarshaller();
29+
}
30+
}

app/src/main/java/org/lfenergy/compas/scl/data/rest/model/CreateRequest.java

Lines changed: 0 additions & 40 deletions
This file was deleted.

app/src/main/java/org/lfenergy/compas/scl/data/rest/model/UpdateRequest.java

Lines changed: 0 additions & 40 deletions
This file was deleted.

app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/CompasCommonResource.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
package org.lfenergy.compas.scl.data.rest.v1;
55

66
import org.lfenergy.compas.scl.data.model.SclType;
7-
import org.lfenergy.compas.scl.data.rest.model.Type;
8-
import org.lfenergy.compas.scl.data.rest.model.TypeListResponse;
7+
import org.lfenergy.compas.scl.data.rest.v1.model.Type;
8+
import org.lfenergy.compas.scl.data.rest.v1.model.TypeListResponse;
99

1010
import javax.ws.rs.GET;
1111
import javax.ws.rs.Path;

app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/CompasSclDataResource.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
// SPDX-License-Identifier: Apache-2.0
44
package org.lfenergy.compas.scl.data.rest.v1;
55

6+
import org.lfenergy.compas.core.commons.ElementConverter;
67
import org.lfenergy.compas.scl.data.model.SclType;
78
import org.lfenergy.compas.scl.data.model.Version;
8-
import org.lfenergy.compas.scl.data.rest.model.*;
9+
import org.lfenergy.compas.scl.data.rest.v1.model.*;
910
import org.lfenergy.compas.scl.data.service.CompasSclDataService;
10-
import org.lfenergy.compas.scl.data.util.SclElementConverter;
1111

1212
import javax.inject.Inject;
13+
import javax.validation.Valid;
1314
import javax.ws.rs.*;
1415
import javax.ws.rs.core.MediaType;
1516
import java.util.UUID;
@@ -20,7 +21,7 @@
2021
public class CompasSclDataResource {
2122
private CompasSclDataService compasSclDataService;
2223

23-
private SclElementConverter converter = new SclElementConverter();
24+
private ElementConverter converter = new ElementConverter();
2425

2526
@Inject
2627
public CompasSclDataResource(CompasSclDataService compasSclDataService) {
@@ -31,9 +32,9 @@ public CompasSclDataResource(CompasSclDataService compasSclDataService) {
3132
@Consumes(MediaType.APPLICATION_XML)
3233
@Produces(MediaType.APPLICATION_XML)
3334
public CreateResponse create(@PathParam(TYPE_PATH_PARAM) SclType type,
34-
CreateRequest request) {
35+
@Valid CreateRequest request) {
3536
var response = new CreateResponse();
36-
response.setId(compasSclDataService.create(type, request.getName(), request.getScl()));
37+
response.setId(compasSclDataService.create(type, request.getName(), request.getElements().get(0)));
3738
return response;
3839
}
3940

@@ -102,8 +103,8 @@ public String findRawSCLByUUIDAndVersion(@PathParam(TYPE_PATH_PARAM) SclType typ
102103
@Produces(MediaType.APPLICATION_XML)
103104
public void update(@PathParam(TYPE_PATH_PARAM) SclType type,
104105
@PathParam(ID_PATH_PARAM) UUID id,
105-
UpdateRequest request) {
106-
compasSclDataService.update(type, id, request.getChangeSetType(), request.getScl());
106+
@Valid UpdateRequest request) {
107+
compasSclDataService.update(type, id, request.getChangeSetType(), request.getElements().get(0));
107108
}
108109

109110
@DELETE
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// SPDX-FileCopyrightText: 2021 Alliander N.V.
2+
//
3+
// SPDX-License-Identifier: Apache-2.0
4+
5+
package org.lfenergy.compas.scl.data.rest.v1.model;
6+
7+
import org.eclipse.microprofile.openapi.annotations.media.Schema;
8+
import org.lfenergy.compas.core.commons.constraint.FilenameValid;
9+
import org.lfenergy.compas.core.commons.constraint.XmlAnyElementValid;
10+
import org.w3c.dom.Element;
11+
12+
import javax.validation.constraints.Size;
13+
import javax.xml.bind.annotation.*;
14+
import java.util.List;
15+
16+
import static org.lfenergy.compas.scl.data.SclDataServiceConstants.SCL_DATA_SERVICE_V1_NS_URI;
17+
import static org.lfenergy.compas.scl.data.SclDataServiceConstants.SCL_NS_URI;
18+
19+
@Schema(description = "A request to create a new entry in the database containing the SCL Element content.")
20+
@XmlRootElement(name = "CreateRequest", namespace = SCL_DATA_SERVICE_V1_NS_URI)
21+
@XmlAccessorType(XmlAccessType.FIELD)
22+
public class CreateRequest {
23+
@FilenameValid
24+
@Schema(description = "The name that will be stored as Private Element and can later be used to determine the filename.",
25+
example = "STATION-0012312")
26+
@XmlElement(name = "Name", namespace = SCL_DATA_SERVICE_V1_NS_URI, required = true)
27+
private String name;
28+
29+
@Size(min = 1, max = 1, message = "{org.lfenergy.compas.XmlAnyElementValid.moreElements.message}")
30+
@XmlAnyElementValid(elementName = "SCL", elementNamespace = SCL_NS_URI)
31+
@Schema(description = "Can contain one element, named 'SCL', containing a SCL XML Definition")
32+
@XmlAnyElement
33+
private List<Element> elements;
34+
35+
public String getName() {
36+
return name;
37+
}
38+
39+
public void setName(String name) {
40+
this.name = name;
41+
}
42+
43+
public List<Element> getElements() {
44+
return elements;
45+
}
46+
47+
public void setElements(List<Element> elements) {
48+
this.elements = elements;
49+
}
50+
}
51+

app/src/main/java/org/lfenergy/compas/scl/data/rest/model/CreateResponse.java renamed to app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/model/CreateResponse.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
//
33
// SPDX-License-Identifier: Apache-2.0
44

5-
package org.lfenergy.compas.scl.data.rest.model;
5+
package org.lfenergy.compas.scl.data.rest.v1.model;
66

77
import javax.xml.bind.annotation.XmlAccessType;
88
import javax.xml.bind.annotation.XmlAccessorType;
99
import javax.xml.bind.annotation.XmlElement;
1010
import javax.xml.bind.annotation.XmlRootElement;
1111
import java.util.UUID;
1212

13-
import static org.lfenergy.compas.scl.data.Constants.SCL_DATA_SERVICE_NS_URI;
13+
import static org.lfenergy.compas.scl.data.SclDataServiceConstants.SCL_DATA_SERVICE_V1_NS_URI;
1414

15-
@XmlRootElement(name = "CreateResponse", namespace = SCL_DATA_SERVICE_NS_URI)
15+
@XmlRootElement(name = "CreateResponse", namespace = SCL_DATA_SERVICE_V1_NS_URI)
1616
@XmlAccessorType(XmlAccessType.FIELD)
1717
public class CreateResponse {
18-
@XmlElement(name = "Id", namespace = SCL_DATA_SERVICE_NS_URI, required = true)
18+
@XmlElement(name = "Id", namespace = SCL_DATA_SERVICE_V1_NS_URI, required = true)
1919
private UUID id;
2020

2121
public UUID getId() {

app/src/main/java/org/lfenergy/compas/scl/data/rest/model/GetResponse.java renamed to app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/model/GetResponse.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//
33
// SPDX-License-Identifier: Apache-2.0
44

5-
package org.lfenergy.compas.scl.data.rest.model;
5+
package org.lfenergy.compas.scl.data.rest.v1.model;
66

77
import org.eclipse.microprofile.openapi.annotations.media.Schema;
88
import org.w3c.dom.Element;
@@ -12,9 +12,9 @@
1212
import javax.xml.bind.annotation.XmlAnyElement;
1313
import javax.xml.bind.annotation.XmlRootElement;
1414

15-
import static org.lfenergy.compas.scl.data.Constants.SCL_DATA_SERVICE_NS_URI;
15+
import static org.lfenergy.compas.scl.data.SclDataServiceConstants.SCL_DATA_SERVICE_V1_NS_URI;
1616

17-
@XmlRootElement(name = "GetResponse", namespace = SCL_DATA_SERVICE_NS_URI)
17+
@XmlRootElement(name = "GetResponse", namespace = SCL_DATA_SERVICE_V1_NS_URI)
1818
@XmlAccessorType(XmlAccessType.FIELD)
1919
public class GetResponse {
2020
@Schema(example = "SCL XML...")

app/src/main/java/org/lfenergy/compas/scl/data/rest/model/ListResponse.java renamed to app/src/main/java/org/lfenergy/compas/scl/data/rest/v1/model/ListResponse.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// SPDX-FileCopyrightText: 2021 Alliander N.V.
22
//
33
// SPDX-License-Identifier: Apache-2.0
4-
package org.lfenergy.compas.scl.data.rest.model;
4+
package org.lfenergy.compas.scl.data.rest.v1.model;
55

66
import org.lfenergy.compas.scl.data.model.Item;
77

@@ -11,12 +11,12 @@
1111
import javax.xml.bind.annotation.XmlRootElement;
1212
import java.util.List;
1313

14-
import static org.lfenergy.compas.scl.data.Constants.SCL_DATA_SERVICE_NS_URI;
14+
import static org.lfenergy.compas.scl.data.SclDataServiceConstants.SCL_DATA_SERVICE_V1_NS_URI;
1515

16-
@XmlRootElement(name = "ListResponse", namespace = SCL_DATA_SERVICE_NS_URI)
16+
@XmlRootElement(name = "ListResponse", namespace = SCL_DATA_SERVICE_V1_NS_URI)
1717
@XmlAccessorType(XmlAccessType.FIELD)
1818
public class ListResponse {
19-
@XmlElement(name = "Item", namespace = SCL_DATA_SERVICE_NS_URI)
19+
@XmlElement(name = "Item", namespace = SCL_DATA_SERVICE_V1_NS_URI)
2020
private List<Item> items;
2121

2222
public List<Item> getItems() {

0 commit comments

Comments
 (0)