Skip to content

Commit ab314d7

Browse files
author
Dennis Labordus
authored
Merge pull request #146 from com-pas/develop
New release
2 parents 143905f + c18df0c commit ab314d7

File tree

26 files changed

+176
-219
lines changed

26 files changed

+176
-219
lines changed

app/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ SPDX-License-Identifier: Apache-2.0
3838

3939
<dependency>
4040
<groupId>org.lfenergy.compas.core</groupId>
41-
<artifactId>jaxrs-commons</artifactId>
41+
<artifactId>rest-commons</artifactId>
42+
</dependency>
43+
<dependency>
44+
<groupId>org.lfenergy.compas.core</groupId>
45+
<artifactId>websocket-commons</artifactId>
4246
</dependency>
4347

4448
<dependency>

app/src/main/docker/Dockerfile.jvm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
# docker run -i --rm -p 8080:8080 -p 5005:5005 -e JAVA_ENABLE_DEBUG="true" quarkus/app-jvm
2222
#
2323
###
24-
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.6
24+
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.7
2525

2626
ARG JAVA_PACKAGE=java-17-openjdk-headless
2727
ARG RUN_JAVA_VERSION=1.3.8

app/src/main/docker/Dockerfile.native

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
# docker run -i --rm -p 8080:8080 quarkus/app
1515
#
1616
###
17-
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.6
17+
FROM registry.access.redhat.com/ubi8/ubi-minimal:8.7
1818
WORKDIR /work/
1919
RUN chown 1001 /work \
2020
&& chmod "g+rwX" /work \

app/src/main/java/org/lfenergy/compas/scl/validator/rest/exception/NsdocNotFoundExceptionHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// SPDX-License-Identifier: Apache-2.0
44
package org.lfenergy.compas.scl.validator.rest.exception;
55

6-
import org.lfenergy.compas.core.jaxrs.model.ErrorResponse;
6+
import org.lfenergy.compas.core.commons.model.ErrorResponse;
77
import org.lfenergy.compas.scl.validator.exception.NsdocFileNotFoundException;
88

99
import javax.ws.rs.core.Response;

app/src/main/java/org/lfenergy/compas/scl/validator/rest/v1/SclValidatorServerEndpoint.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import io.quarkus.security.Authenticated;
77
import io.vertx.mutiny.core.eventbus.EventBus;
8+
import org.lfenergy.compas.core.websocket.ErrorResponseEncoder;
89
import org.lfenergy.compas.scl.extensions.model.SclFileType;
910
import org.lfenergy.compas.scl.validator.rest.v1.event.SclValidatorEventRequest;
1011
import org.lfenergy.compas.scl.validator.rest.v1.model.SclValidateRequest;
@@ -21,13 +22,14 @@
2122
import javax.websocket.server.PathParam;
2223
import javax.websocket.server.ServerEndpoint;
2324

25+
import static org.lfenergy.compas.core.websocket.WebsocketSupport.handleException;
2426
import static org.lfenergy.compas.scl.validator.rest.SclResourceConstants.TYPE_PATH_PARAM;
2527

2628
@Authenticated
2729
@ApplicationScoped
2830
@ServerEndpoint(value = "/validate-ws/v1/{" + TYPE_PATH_PARAM + "}",
2931
decoders = {SclValidateRequestDecoder.class, SclValidateResponseDecoder.class},
30-
encoders = {SclValidateRequestEncoder.class, SclValidateResponseEncoder.class})
32+
encoders = {SclValidateRequestEncoder.class, SclValidateResponseEncoder.class, ErrorResponseEncoder.class})
3133
public class SclValidatorServerEndpoint {
3234
private static final Logger LOGGER = LoggerFactory.getLogger(SclValidatorServerEndpoint.class);
3335

@@ -53,6 +55,7 @@ public void onMessage(Session session, SclValidateRequest request, @PathParam(TY
5355
@OnError
5456
public void onError(Session session, @PathParam(TYPE_PATH_PARAM) String type, Throwable throwable) {
5557
LOGGER.warn("Error with session {} for type {}.", session.getId(), type, throwable);
58+
handleException(session, throwable);
5659
}
5760

5861
@OnClose

app/src/main/java/org/lfenergy/compas/scl/validator/rest/v1/event/SclValidatorEventHandler.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package org.lfenergy.compas.scl.validator.rest.v1.event;
55

66
import io.quarkus.vertx.ConsumeEvent;
7+
import org.lfenergy.compas.core.websocket.WebsocketHandler;
78
import org.lfenergy.compas.scl.validator.rest.v1.model.SclValidateResponse;
89
import org.lfenergy.compas.scl.validator.service.SclValidatorService;
910

@@ -24,10 +25,10 @@ public SclValidatorEventHandler(SclValidatorService sclValidatorService) {
2425

2526
@ConsumeEvent(value = "validate-ws", blocking = true)
2627
public void validateWebsocketsEvent(SclValidatorEventRequest request) {
27-
var response = new SclValidateResponse();
28-
response.setValidationErrorList(sclValidatorService.validate(request.getType(), request.getSclData()));
29-
30-
var session = request.getSession();
31-
session.getAsyncRemote().sendObject(response);
28+
new WebsocketHandler<SclValidateResponse>().execute(request.getSession(), () -> {
29+
var response = new SclValidateResponse();
30+
response.setValidationErrorList(sclValidatorService.validate(request.getType(), request.getSclData()));
31+
return response;
32+
});
3233
}
3334
}

app/src/main/java/org/lfenergy/compas/scl/validator/rest/v1/websocket/SclValidateRequestDecoder.java

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,18 @@
33
// SPDX-License-Identifier: Apache-2.0
44
package org.lfenergy.compas.scl.validator.rest.v1.websocket;
55

6-
import org.lfenergy.compas.scl.validator.exception.SclValidatorException;
6+
import org.lfenergy.compas.core.websocket.AbstractDecoder;
7+
import org.lfenergy.compas.core.websocket.WebsocketSupport;
78
import org.lfenergy.compas.scl.validator.rest.v1.model.SclValidateRequest;
89

9-
import javax.websocket.Decoder;
10-
import javax.websocket.EndpointConfig;
11-
import javax.xml.bind.JAXBContext;
12-
import java.io.StringReader;
13-
14-
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.WEBSOCKET_DECODER_ERROR_CODE;
15-
16-
public class SclValidateRequestDecoder implements Decoder.Text<SclValidateRequest> {
17-
@Override
18-
public void init(EndpointConfig endpointConfig) {
19-
// do nothing.
20-
}
21-
10+
public class SclValidateRequestDecoder extends AbstractDecoder<SclValidateRequest> {
2211
@Override
2312
public boolean willDecode(String message) {
2413
return (message != null);
2514
}
2615

2716
@Override
2817
public SclValidateRequest decode(String message) {
29-
try {
30-
var jaxbContext = JAXBContext.newInstance(SclValidateRequest.class);
31-
var unmarshaller = jaxbContext.createUnmarshaller();
32-
var reader = new StringReader(message);
33-
return (SclValidateRequest) unmarshaller.unmarshal(reader);
34-
} catch (Exception exp) {
35-
throw new SclValidatorException(WEBSOCKET_DECODER_ERROR_CODE,
36-
"Error unmarshalling SCL Validate Request from Websockets.",
37-
exp);
38-
}
39-
}
40-
41-
@Override
42-
public void destroy() {
43-
// do nothing.
18+
return WebsocketSupport.decode(message, SclValidateRequest.class);
4419
}
4520
}

app/src/main/java/org/lfenergy/compas/scl/validator/rest/v1/websocket/SclValidateRequestEncoder.java

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,13 @@
33
// SPDX-License-Identifier: Apache-2.0
44
package org.lfenergy.compas.scl.validator.rest.v1.websocket;
55

6-
import org.lfenergy.compas.scl.validator.exception.SclValidatorException;
6+
import org.lfenergy.compas.core.websocket.AbstractEncoder;
7+
import org.lfenergy.compas.core.websocket.WebsocketSupport;
78
import org.lfenergy.compas.scl.validator.rest.v1.model.SclValidateRequest;
89

9-
import javax.websocket.Encoder;
10-
import javax.websocket.EndpointConfig;
11-
import javax.xml.bind.JAXBContext;
12-
import java.io.StringWriter;
13-
14-
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.WEBSOCKET_ENCODER_ERROR_CODE;
15-
16-
public class SclValidateRequestEncoder implements Encoder.Text<SclValidateRequest> {
17-
@Override
18-
public void init(EndpointConfig endpointConfig) {
19-
// do nothing.
20-
}
21-
22-
@Override
23-
public String encode(SclValidateRequest request) {
24-
try {
25-
var jaxbContext = JAXBContext.newInstance(SclValidateRequest.class);
26-
var marshaller = jaxbContext.createMarshaller();
27-
28-
var st = new StringWriter();
29-
marshaller.marshal(request, st);
30-
return st.toString();
31-
} catch (Exception exp) {
32-
throw new SclValidatorException(WEBSOCKET_ENCODER_ERROR_CODE,
33-
"Error marshalling SCL Validate Request from Websockets.",
34-
exp);
35-
}
36-
}
37-
10+
public class SclValidateRequestEncoder extends AbstractEncoder<SclValidateRequest> {
3811
@Override
39-
public void destroy() {
40-
// do nothing.
12+
public String encode(SclValidateRequest jaxbObject) {
13+
return WebsocketSupport.encode(jaxbObject, SclValidateRequest.class);
4114
}
4215
}

app/src/main/java/org/lfenergy/compas/scl/validator/rest/v1/websocket/SclValidateResponseDecoder.java

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,18 @@
33
// SPDX-License-Identifier: Apache-2.0
44
package org.lfenergy.compas.scl.validator.rest.v1.websocket;
55

6-
import org.lfenergy.compas.scl.validator.exception.SclValidatorException;
6+
import org.lfenergy.compas.core.websocket.AbstractDecoder;
7+
import org.lfenergy.compas.core.websocket.WebsocketSupport;
78
import org.lfenergy.compas.scl.validator.rest.v1.model.SclValidateResponse;
89

9-
import javax.websocket.Decoder;
10-
import javax.websocket.EndpointConfig;
11-
import javax.xml.bind.JAXBContext;
12-
import java.io.StringReader;
13-
14-
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.WEBSOCKET_DECODER_ERROR_CODE;
15-
16-
public class SclValidateResponseDecoder implements Decoder.Text<SclValidateResponse> {
17-
@Override
18-
public void init(EndpointConfig endpointConfig) {
19-
// do nothing.
20-
}
21-
10+
public class SclValidateResponseDecoder extends AbstractDecoder<SclValidateResponse> {
2211
@Override
2312
public boolean willDecode(String message) {
2413
return (message != null);
2514
}
2615

2716
@Override
2817
public SclValidateResponse decode(String message) {
29-
try {
30-
var jaxbContext = JAXBContext.newInstance(SclValidateResponse.class);
31-
var unmarshaller = jaxbContext.createUnmarshaller();
32-
var reader = new StringReader(message);
33-
return (SclValidateResponse) unmarshaller.unmarshal(reader);
34-
} catch (Exception exp) {
35-
throw new SclValidatorException(WEBSOCKET_DECODER_ERROR_CODE,
36-
"Error unmarshalling SCL Validate Response from Websockets.",
37-
exp);
38-
}
39-
}
40-
41-
@Override
42-
public void destroy() {
43-
// do nothing.
18+
return WebsocketSupport.decode(message, SclValidateResponse.class);
4419
}
4520
}

app/src/main/java/org/lfenergy/compas/scl/validator/rest/v1/websocket/SclValidateResponseEncoder.java

Lines changed: 5 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,13 @@
33
// SPDX-License-Identifier: Apache-2.0
44
package org.lfenergy.compas.scl.validator.rest.v1.websocket;
55

6-
import org.lfenergy.compas.scl.validator.exception.SclValidatorException;
6+
import org.lfenergy.compas.core.websocket.AbstractEncoder;
7+
import org.lfenergy.compas.core.websocket.WebsocketSupport;
78
import org.lfenergy.compas.scl.validator.rest.v1.model.SclValidateResponse;
89

9-
import javax.websocket.Encoder;
10-
import javax.websocket.EndpointConfig;
11-
import javax.xml.bind.JAXBContext;
12-
import java.io.StringWriter;
13-
14-
import static org.lfenergy.compas.scl.validator.exception.SclValidatorErrorCode.WEBSOCKET_ENCODER_ERROR_CODE;
15-
16-
public class SclValidateResponseEncoder implements Encoder.Text<SclValidateResponse> {
17-
@Override
18-
public void init(EndpointConfig endpointConfig) {
19-
// do nothing.
20-
}
21-
22-
@Override
23-
public String encode(SclValidateResponse response) {
24-
try {
25-
var jaxbContext = JAXBContext.newInstance(SclValidateResponse.class);
26-
var marshaller = jaxbContext.createMarshaller();
27-
28-
var st = new StringWriter();
29-
marshaller.marshal(response, st);
30-
return st.toString();
31-
} catch (Exception exp) {
32-
throw new SclValidatorException(WEBSOCKET_ENCODER_ERROR_CODE,
33-
"Error marshalling SCL Validate Response from Websockets.",
34-
exp);
35-
}
36-
}
37-
10+
public class SclValidateResponseEncoder extends AbstractEncoder<SclValidateResponse> {
3811
@Override
39-
public void destroy() {
40-
// do nothing.
12+
public String encode(SclValidateResponse jaxbObject) {
13+
return WebsocketSupport.encode(jaxbObject, SclValidateResponse.class);
4114
}
4215
}

0 commit comments

Comments
 (0)