Skip to content

Commit 3d04923

Browse files
Merge pull request #229 from jembi/CU-86by1w64p_JeMPI-UI-Configuration
JeMPI UI configuration
2 parents 9963b83 + 1fbee89 commit 3d04923

File tree

78 files changed

+46345
-1551
lines changed

Some content is hidden

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

78 files changed

+46345
-1551
lines changed

JeMPI_Apps/JeMPI_API/pom.xml

-23
Original file line numberDiff line numberDiff line change
@@ -153,29 +153,6 @@
153153
<scope>test</scope>
154154
</dependency>
155155

156-
<dependency>
157-
<groupId>com.googlecode.json-simple</groupId>
158-
<artifactId>json-simple</artifactId>
159-
</dependency>
160-
161-
<!-- <dependency>-->
162-
<!-- <groupId>org.junit.jupiter</groupId>-->
163-
<!-- <artifactId>junit-jupiter</artifactId>-->
164-
<!-- <scope>test</scope>-->
165-
<!-- </dependency>-->
166-
167-
<!-- <dependency>-->
168-
<!-- <groupId>org.mockito</groupId>-->
169-
<!-- <artifactId>mockito-core</artifactId>-->
170-
<!-- <scope>test</scope>-->
171-
<!-- </dependency>-->
172-
173-
<!-- <dependency>-->
174-
<!-- <groupId>com.typesafe.akka</groupId>-->
175-
<!-- <artifactId>akka-actor-testkit-typed_${scala.tools.version}</artifactId>-->
176-
<!-- <scope>test</scope>-->
177-
<!-- </dependency>-->
178-
179156
</dependencies>
180157

181158
<build>

JeMPI_Apps/JeMPI_API/src/main/java/org/jembi/jempi/AppConfig.java

+13-7
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,14 @@ public final class AppConfig {
3232
public static final String KAFKA_BOOTSTRAP_SERVERS = CONFIG.getString("KAFKA_BOOTSTRAP_SERVERS");
3333
public static final String KAFKA_APPLICATION_ID = CONFIG.getString("KAFKA_APPLICATION_ID");
3434
private static final String[] DGRAPH_ALPHA_HOSTS = CONFIG.getString("DGRAPH_HOSTS").split(",");
35-
private static final int[] DGRAPH_ALPHA_PORTS = Arrays.stream(CONFIG.getString("DGRAPH_PORTS").split(",")).mapToInt(s -> {
36-
try {
37-
return Integer.parseInt(s);
38-
} catch (NumberFormatException ex) {
39-
return Integer.MIN_VALUE;
40-
}
41-
}).toArray();
35+
private static final int[] DGRAPH_ALPHA_PORTS = Arrays.stream(CONFIG.getString("DGRAPH_PORTS").split(","))
36+
.mapToInt(s -> {
37+
try {
38+
return Integer.parseInt(s);
39+
} catch (NumberFormatException ex) {
40+
return Integer.MIN_VALUE;
41+
}
42+
}).toArray();
4243

4344
public static final String LINKER_IP = CONFIG.getString("LINKER_IP");
4445
public static final Integer LINKER_HTTP_PORT = CONFIG.getInt("LINKER_HTTP_PORT");
@@ -48,6 +49,11 @@ public final class AppConfig {
4849
public static final Integer API_HTTP_PORT = CONFIG.getInt("API_HTTP_PORT");
4950
public static final Level GET_LOG_LEVEL = Level.toLevel(CONFIG.getString("LOG4J2_LEVEL"));
5051

52+
public static final String SYSTEM_CONFIG_DIR = CONFIG.getString("SYSTEM_CONFIG_DIR");
53+
public static final String API_CONFIG_REFERENCE_FILENAME = CONFIG.getString("API_CONFIG_REFERENCE_FILENAME");
54+
public static final String API_CONFIG_MASTER_FILENAME = CONFIG.getString("API_CONFIG_MASTER_FILENAME");
55+
public static final String API_FIELDS_CONFIG_FILENAME = CONFIG.getString("API_FIELDS_CONFIG_FILENAME");
56+
5157
private AppConfig() {
5258
}
5359

JeMPI_Apps/JeMPI_API/src/main/java/org/jembi/jempi/api/API.java

+6-9
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,14 @@
99
import org.apache.logging.log4j.Logger;
1010
import org.jembi.jempi.AppConfig;
1111
import org.jembi.jempi.libapi.BackEnd;
12-
import org.jembi.jempi.libapi.JsonFieldsConfig;
1312

1413
import java.util.UUID;
1514

1615
public final class API {
1716

1817
private static final Logger LOGGER = LogManager.getLogger(API.class);
19-
private static final String CONFIG_RESOURCE_FILE_NAME = "config-api.json";
20-
private final JsonFieldsConfig jsonFieldsConfig = new JsonFieldsConfig(CONFIG_RESOURCE_FILE_NAME);
2118
private HttpServer httpServer;
2219

23-
2420
private API() {
2521
LOGGER.info("API started.");
2622
}
@@ -45,10 +41,14 @@ public Behavior<Void> create() {
4541
AppConfig.POSTGRESQL_NOTIFICATIONS_DB,
4642
AppConfig.POSTGRESQL_AUDIT_DB,
4743
AppConfig.KAFKA_BOOTSTRAP_SERVERS,
48-
"CLIENT_ID_API-" + UUID.randomUUID()), "BackEnd");
44+
"CLIENT_ID_API-" + UUID.randomUUID(),
45+
AppConfig.SYSTEM_CONFIG_DIR,
46+
AppConfig.API_CONFIG_REFERENCE_FILENAME,
47+
AppConfig.API_CONFIG_MASTER_FILENAME,
48+
AppConfig.API_FIELDS_CONFIG_FILENAME), "BackEnd");
4949
context.watch(backEnd);
5050
httpServer = HttpServer.create();
51-
httpServer.open("0.0.0.0", AppConfig.API_HTTP_PORT, context.getSystem(), backEnd, jsonFieldsConfig.jsonFields);
51+
httpServer.open("0.0.0.0", AppConfig.API_HTTP_PORT, context.getSystem(), backEnd);
5252
return Behaviors.receive(Void.class).onSignal(Terminated.class, sig -> {
5353
httpServer.close(context.getSystem());
5454
return Behaviors.stopped();
@@ -59,9 +59,6 @@ public Behavior<Void> create() {
5959
private void run() {
6060
LOGGER.info("interface:port {}:{}", "0.0.0.0", AppConfig.API_HTTP_PORT);
6161
try {
62-
LOGGER.info("Loading fields configuration file ");
63-
jsonFieldsConfig.load(CONFIG_RESOURCE_FILE_NAME);
64-
LOGGER.info("Fields configuration file successfully loaded");
6562
ActorSystem.create(this.create(), "API-App");
6663
} catch (Exception e) {
6764
LOGGER.error("Unable to start the API", e);

JeMPI_Apps/JeMPI_API/src/main/java/org/jembi/jempi/api/HttpServer.java

+4-29
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,7 @@
44
import akka.actor.typed.ActorSystem;
55
import akka.http.javadsl.Http;
66
import akka.http.javadsl.ServerBinding;
7-
import akka.http.javadsl.model.HttpEntity;
8-
import akka.http.javadsl.model.StatusCodes;
97
import akka.http.javadsl.server.AllDirectives;
10-
import akka.http.javadsl.server.ExceptionHandler;
11-
import akka.http.javadsl.server.RejectionHandler;
128
import akka.http.javadsl.server.Route;
139
import ch.megard.akka.http.cors.javadsl.settings.CorsSettings;
1410
import org.apache.logging.log4j.LogManager;
@@ -17,7 +13,6 @@
1713
import org.jembi.jempi.AppConfig;
1814
import org.jembi.jempi.libapi.BackEnd;
1915
import org.jembi.jempi.libapi.Routes;
20-
import org.jembi.jempi.shared.models.GlobalConstants;
2116

2217
import java.util.concurrent.CompletionStage;
2318

@@ -43,10 +38,9 @@ public void open(
4338
final String httpServerHost,
4439
final int httpPort,
4540
final ActorSystem<Void> actorSystem,
46-
final ActorRef<BackEnd.Event> backEnd,
47-
final String jsonFields) {
41+
final ActorRef<BackEnd.Event> backEnd) {
4842
http = Http.get(actorSystem);
49-
binding = http.newServerAt(httpServerHost, httpPort).bind(this.createCorsRoutes(actorSystem, backEnd, jsonFields));
43+
binding = http.newServerAt(httpServerHost, httpPort).bind(this.createCorsRoutes(actorSystem, backEnd));
5044
LOGGER.info("Server online at http://{}:{}", httpServerHost, httpPort);
5145
}
5246

@@ -57,37 +51,18 @@ public void close(final ActorSystem<Void> actorSystem) {
5751

5852
public Route createCorsRoutes(
5953
final ActorSystem<Void> actorSystem,
60-
final ActorRef<BackEnd.Event> backEnd,
61-
final String jsonFields) {
54+
final ActorRef<BackEnd.Event> backEnd) {
6255
final var settings = CorsSettings.create(AppConfig.CONFIG);
6356

64-
final RejectionHandler rejectionHandler = RejectionHandler.defaultHandler().mapRejectionResponse(response -> {
65-
if (response.entity() instanceof HttpEntity.Strict) {
66-
String message = ((HttpEntity.Strict) response.entity()).getData().utf8String();
67-
LOGGER.warn("Request was rejected. Reason: %s".formatted(message));
68-
}
69-
70-
return response;
71-
});
72-
73-
final ExceptionHandler exceptionHandler = ExceptionHandler.newBuilder().match(Exception.class, x -> {
74-
LOGGER.error("An exception occurred while executing the Route", x);
75-
return complete(StatusCodes.INTERNAL_SERVER_ERROR, "An exception occurred, see server logs for details");
76-
}).build();
77-
7857
return cors(settings,
7958
() -> pathPrefix("JeMPI",
8059
() -> concat(Routes.createCoreAPIRoutes(actorSystem,
8160
backEnd,
82-
jsonFields,
8361
AppConfig.LINKER_IP,
8462
AppConfig.LINKER_HTTP_PORT,
8563
AppConfig.CONTROLLER_IP,
8664
AppConfig.CONTROLLER_HTTP_PORT,
87-
http),
88-
path(GlobalConstants.SEGMENT_POST_FIELDS_CONFIG,
89-
() -> complete(StatusCodes.OK, jsonFields))))).seal(rejectionHandler,
90-
exceptionHandler);
65+
http))));
9166
}
9267

9368
}

JeMPI_Apps/JeMPI_API_KC/pom.xml

-23
Original file line numberDiff line numberDiff line change
@@ -163,29 +163,6 @@
163163
<scope>test</scope>
164164
</dependency>
165165

166-
<dependency>
167-
<groupId>com.googlecode.json-simple</groupId>
168-
<artifactId>json-simple</artifactId>
169-
</dependency>
170-
171-
<!-- <dependency>-->
172-
<!-- <groupId>org.junit.jupiter</groupId>-->
173-
<!-- <artifactId>junit-jupiter</artifactId>-->
174-
<!-- <scope>test</scope>-->
175-
<!-- </dependency>-->
176-
177-
<!-- <dependency>-->
178-
<!-- <groupId>org.mockito</groupId>-->
179-
<!-- <artifactId>mockito-core</artifactId>-->
180-
<!-- <scope>test</scope>-->
181-
<!-- </dependency>-->
182-
183-
<!-- <dependency>-->
184-
<!-- <groupId>com.typesafe.akka</groupId>-->
185-
<!-- <artifactId>akka-actor-testkit-typed_${scala.tools.version}</artifactId>-->
186-
<!-- <scope>test</scope>-->
187-
<!-- </dependency>-->
188-
189166
</dependencies>
190167

191168
<build>

JeMPI_Apps/JeMPI_API_KC/src/main/java/org/jembi/jempi/AppConfig.java

+4
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ public final class AppConfig {
4747
public static final Integer CONTROLLER_HTTP_PORT = CONFIG.getInt("CONTROLLER_HTTP_PORT");
4848
public static final String SESSION_SECRET = CONFIG.getString("JEMPI_SESSION_SECRET");
4949
public static final Level GET_LOG_LEVEL = Level.toLevel(CONFIG.getString("LOG4J2_LEVEL"));
50+
public static final String SYSTEM_CONFIG_DIR = CONFIG.getString("SYSTEM_CONFIG_DIR");
51+
public static final String API_CONFIG_REFERENCE_FILENAME = CONFIG.getString("API_CONFIG_REFERENCE_FILENAME");
52+
public static final String API_CONFIG_MASTER_FILENAME = CONFIG.getString("API_CONFIG_MASTER_FILENAME");
53+
public static final String API_FIELDS_CONFIG_FILENAME = CONFIG.getString("API_FIELDS_CONFIG_FILENAME");
5054

5155
private AppConfig() {
5256
}

JeMPI_Apps/JeMPI_API_KC/src/main/java/org/jembi/jempi/api/APIKC.java

+6-14
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,14 @@
88
import org.jembi.jempi.AppConfig;
99
import org.jembi.jempi.api.httpServer.HttpServer;
1010
import org.jembi.jempi.libapi.BackEnd;
11-
import org.jembi.jempi.libapi.JsonFieldsConfig;
1211

1312
import java.util.UUID;
1413

1514
public final class APIKC {
1615

1716
private static final Logger LOGGER = LogManager.getLogger(APIKC.class);
18-
private static final String CONFIG_RESOURCE_FILE_NAME = "config-api.json";
19-
private final JsonFieldsConfig jsonFieldsConfig = new JsonFieldsConfig(CONFIG_RESOURCE_FILE_NAME);
2017
private HttpServer httpServer;
2118

22-
2319
private APIKC() {
2420
LOGGER.info("API started.");
2521
}
@@ -45,18 +41,17 @@ public Behavior<Void> create() {
4541
AppConfig.POSTGRESQL_NOTIFICATIONS_DB,
4642
AppConfig.POSTGRESQL_AUDIT_DB,
4743
AppConfig.KAFKA_BOOTSTRAP_SERVERS,
48-
"CLIENT_ID_API_KC-" + UUID.randomUUID()),
44+
"CLIENT_ID_API_KC-" + UUID.randomUUID(),
45+
AppConfig.SYSTEM_CONFIG_DIR,
46+
AppConfig.API_CONFIG_REFERENCE_FILENAME,
47+
AppConfig.API_CONFIG_MASTER_FILENAME,
48+
AppConfig.API_FIELDS_CONFIG_FILENAME),
4949
"BackEnd");
5050
context.watch(backEnd);
51-
// final var notificationsSteam = new NotificationStreamProcessor();
52-
// notificationsSteam.open(AppConfig.POSTGRESQL_DATABASE,
53-
// AppConfig.POSTGRESQL_PASSWORD,
54-
// AppConfig.KAFKA_APPLICATION_ID,
55-
// AppConfig.KAFKA_BOOTSTRAP_SERVERS);
5651
final DispatcherSelector selector = DispatcherSelector.fromConfig("akka.actor.default-dispatcher");
5752
final MessageDispatcher dispatcher = (MessageDispatcher) system.dispatchers().lookup(selector);
5853
httpServer = new HttpServer(dispatcher);
59-
httpServer.open("0.0.0.0", AppConfig.API_KC_HTTP_PORT, context.getSystem(), backEnd, jsonFieldsConfig.jsonFields);
54+
httpServer.open("0.0.0.0", AppConfig.API_KC_HTTP_PORT, context.getSystem(), backEnd);
6055
return Behaviors.receive(Void.class).onSignal(Terminated.class, sig -> {
6156
LOGGER.info("API Server Terminated. Reason {}", sig);
6257
httpServer.close(context.getSystem());
@@ -68,9 +63,6 @@ public Behavior<Void> create() {
6863
private void run() {
6964
LOGGER.info("interface:port {}:{}", "0.0.0.0", AppConfig.API_KC_HTTP_PORT);
7065
try {
71-
LOGGER.info("Loading fields configuration file ");
72-
jsonFieldsConfig.load(CONFIG_RESOURCE_FILE_NAME);
73-
LOGGER.info("Fields configuration file successfully loaded");
7466
ActorSystem.create(this.create(), "API-App");
7567
} catch (Exception e) {
7668
LOGGER.error("Unable to start the API", e);

JeMPI_Apps/JeMPI_API_KC/src/main/java/org/jembi/jempi/api/httpServer/HttpServer.java

+1-9
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,8 @@
2727
public final class HttpServer extends HttpSessionAwareDirectives<UserSession> {
2828
private static final Logger LOGGER = LogManager.getLogger(HttpServer.class);
2929
private CompletionStage<ServerBinding> binding = null;
30-
3130
private ActorSystem<Void> actorSystem;
3231
private ActorRef<BackEnd.Event> backEnd;
33-
private String jsonFields;
3432
private Http akkaHttpServer = null;
3533

3634
public HttpServer(final MessageDispatcher dispatcher) {
@@ -46,12 +44,10 @@ public void open(
4644
final String httpServerHost,
4745
final int httpPort,
4846
final ActorSystem<Void> actorSystem,
49-
final ActorRef<BackEnd.Event> backEnd,
50-
final String jsonFields) {
47+
final ActorRef<BackEnd.Event> backEnd) {
5148

5249
this.actorSystem = actorSystem;
5350
this.backEnd = backEnd;
54-
this.jsonFields = jsonFields;
5551
Configurator.setLevel(this.getClass(), AppConfig.GET_LOG_LEVEL);
5652

5753
akkaHttpServer = Http.get(actorSystem);
@@ -67,10 +63,6 @@ public Http getAkkaHttpServer() {
6763
return akkaHttpServer;
6864
}
6965

70-
public String getJsonFields() {
71-
return jsonFields;
72-
}
73-
7466
public ActorRef<BackEnd.Event> getBackEnd() {
7567
return backEnd;
7668
}

JeMPI_Apps/JeMPI_API_KC/src/main/java/org/jembi/jempi/api/httpServer/httpServerRoutes/RoutesEntries.java

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ public Route getRouteEntries() {
1919
return concat(new UserRoutes(this.httpServer).getRouteEntries(),
2020
requireSession(Routes.createCoreAPIRoutes(this.httpServer.getActorSystem(),
2121
this.httpServer.getBackEnd(),
22-
this.httpServer.getJsonFields(),
2322
AppConfig.LINKER_IP,
2423
AppConfig.LINKER_HTTP_PORT,
2524
AppConfig.CONTROLLER_IP,

JeMPI_Apps/JeMPI_API_KC/src/main/java/org/jembi/jempi/api/httpServer/httpServerRoutes/routes/UserRoutes.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,7 @@ private Route routeLogout() {
8181
@Override
8282
public Route getRouteEntries() {
8383
return concat(post(() -> path(GlobalConstants.SEGMENT_VALIDATE_OAUTH, () -> routeLoginWithKeycloakRequest(checkHeader))),
84-
get(() -> concat(path(GlobalConstants.SEGMENT_POST_FIELDS_CONFIG,
85-
() -> httpServer.setNewCsrfToken(checkHeader,
86-
() -> complete(StatusCodes.OK,
87-
httpServer.getJsonFields()))),
88-
path(GlobalConstants.SEGMENT_CURRENT_USER, this::routeCurrentUser),
84+
get(() -> concat(path(GlobalConstants.SEGMENT_CURRENT_USER, this::routeCurrentUser),
8985
path(GlobalConstants.SEGMENT_LOGOUT, this::routeLogout)))
9086

9187
);

JeMPI_Apps/JeMPI_LibAPI/pom.xml

-24
Original file line numberDiff line numberDiff line change
@@ -145,35 +145,11 @@
145145
<scope>test</scope>
146146
</dependency>
147147

148-
<dependency>
149-
<groupId>com.googlecode.json-simple</groupId>
150-
<artifactId>json-simple</artifactId>
151-
</dependency>
152148
<dependency>
153149
<groupId>commons-io</groupId>
154150
<artifactId>commons-io</artifactId>
155151
</dependency>
156152

157-
<!--
158-
<dependency>
159-
<groupId>org.junit.jupiter</groupId>
160-
<artifactId>junit-jupiter</artifactId>
161-
<scope>test</scope>
162-
</dependency>
163-
164-
<dependency>
165-
<groupId>org.mockito</groupId>
166-
<artifactId>mockito-core</artifactId>
167-
<scope>test</scope>
168-
</dependency>
169-
170-
<dependency>
171-
<groupId>com.typesafe.akka</groupId>
172-
<artifactId>akka-actor-testkit-typed_${scala.tools.version}</artifactId>
173-
<scope>test</scope>
174-
</dependency>
175-
-->
176-
177153
</dependencies>
178154

179155
<build>

0 commit comments

Comments
 (0)