Skip to content

Commit c8d3b97

Browse files
author
Gerald Unterrainer
committed
Merge remote-tracking branch 'origin/develop' into develop
2 parents b96f3b3 + 7832654 commit c8d3b97

36 files changed

+125
-139
lines changed

README.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,11 @@ Of course you can use your own. This example is only given as a reference and qu
2727

2828
```xml
2929
<?xml version="1.0" encoding="UTF-8"?>
30-
<persistence version="2.0"
31-
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
32-
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
33-
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
30+
<persistence version="3.0"
31+
xmlns="https://jakarta.ee/xml/ns/persistence"
32+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
33+
xsi:schemaLocation="https://jakarta.ee/xml/ns/persistence https://jakarta.ee/xml/ns/persistence/persistence_3_0.xsd">
34+
3435

3536
<persistence-unit name="my-persistence-unit" transaction-type="RESOURCE_LOCAL">
3637
<!-- Hibernate specific -->
@@ -41,9 +42,9 @@ Of course you can use your own. This example is only given as a reference and qu
4142

4243
<properties>
4344
<!-- Hibernate-specific / MariaDB-JDBC-driver specific -->
44-
<property name="javax.persistence.jdbc.driver" value="org.mariadb.jdbc.Driver" />
45-
<property name="javax.persistence.lock.timeout" value="10000" />
46-
<property name="javax.persistence.query.timeout" value="60000" />
45+
<property name="jakarta.persistence.jdbc.driver" value="org.mariadb.jdbc.Driver" />
46+
<property name="jakarta.persistence.lock.timeout" value="10000" />
47+
<property name="jakarta.persistence.query.timeout" value="60000" />
4748
<property name="hibernate.connection.driver_class" value="org.mariadb.jdbc.Driver" />
4849
<property name="hibernate.dialect" value="org.hibernate.dialect.MariaDBDialect" />
4950
<property name="hibernate.temp.use_jdbc_metadata_defaults" value="false" />
@@ -93,7 +94,7 @@ EntityManagerFactory emf =
9394
HttpServer server = HttpServer.builder()
9495
.applicationName("my-rest-server")
9596
.jsonMapper(jsonMapper)
96-
.orikaFactory(orikaFactory)
97+
.objectMapper(objectMapper)
9798
.build();
9899

99100
// All handlers are added and considered in order.

pom.xml

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
<project xmlns="http://maven.apache.org/POM/4.0.0"
2-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
42

53
<parent>
64
<groupId>info.unterrainer.commons</groupId>
@@ -17,7 +15,7 @@
1715

1816
<modelVersion>4.0.0</modelVersion>
1917
<artifactId>http-server</artifactId>
20-
<version>0.3.1</version>
18+
<version>0.3.4</version>
2119
<name>HttpServer</name>
2220
<packaging>jar</packaging>
2321

@@ -30,32 +28,27 @@
3028
<dependency>
3129
<groupId>info.unterrainer.commons</groupId>
3230
<artifactId>jre-utils</artifactId>
33-
<version>0.3.0</version>
31+
<version>0.3.6</version>
3432
</dependency>
3533
<dependency>
3634
<groupId>info.unterrainer.commons</groupId>
3735
<artifactId>rdb-utils</artifactId>
38-
<version>0.2.0</version>
36+
<version>0.2.1</version>
3937
</dependency>
4038
<dependency>
4139
<groupId>info.unterrainer.commons</groupId>
4240
<artifactId>serialization</artifactId>
43-
<version>0.2.0</version>
41+
<version>0.2.3</version>
4442
</dependency>
4543
<dependency>
46-
<groupId>javax.persistence</groupId>
47-
<artifactId>javax.persistence-api</artifactId>
48-
<version>2.2</version>
49-
</dependency>
50-
<dependency>
51-
<groupId>ma.glasnost.orika</groupId>
52-
<artifactId>orika-core</artifactId>
53-
<version>1.5.4</version>
44+
<groupId>jakarta.persistence</groupId>
45+
<artifactId>jakarta.persistence-api</artifactId>
46+
<version>3.1.0</version>
5447
</dependency>
5548
<dependency>
5649
<groupId>org.antlr</groupId>
5750
<artifactId>antlr4-runtime</artifactId>
58-
<version>4.8-1</version>
51+
<version>4.10</version>
5952
</dependency>
6053
<dependency>
6154
<groupId>org.keycloak</groupId>

src/main/java/info/unterrainer/commons/httpserver/GenericHandlerGroup.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,16 @@
2121
import info.unterrainer.commons.httpserver.interceptors.delegates.GetListInterceptor;
2222
import info.unterrainer.commons.httpserver.jsons.ListJson;
2323
import info.unterrainer.commons.rdbutils.entities.BasicJpa;
24-
import info.unterrainer.commons.serialization.JsonMapper;
25-
import info.unterrainer.commons.serialization.exceptions.JsonMappingException;
26-
import info.unterrainer.commons.serialization.exceptions.JsonProcessingException;
24+
import info.unterrainer.commons.serialization.jsonmapper.JsonMapper;
25+
import info.unterrainer.commons.serialization.jsonmapper.exceptions.JsonMappingException;
26+
import info.unterrainer.commons.serialization.jsonmapper.exceptions.JsonProcessingException;
2727
import info.unterrainer.commons.serialization.jsons.BasicJson;
28+
import info.unterrainer.commons.serialization.objectmapper.ObjectMapper;
2829
import io.javalin.core.security.Role;
2930
import io.javalin.http.Context;
3031
import lombok.AccessLevel;
3132
import lombok.RequiredArgsConstructor;
3233
import lombok.extern.slf4j.Slf4j;
33-
import ma.glasnost.orika.MapperFacade;
3434

3535
@Slf4j
3636
@RequiredArgsConstructor(access = AccessLevel.PACKAGE)
@@ -40,7 +40,7 @@ public class GenericHandlerGroup<P extends BasicJpa, J extends BasicJson, E> imp
4040
private final Class<P> jpaType;
4141
private final Class<J> jsonType;
4242
private final JsonMapper jsonMapper;
43-
private final MapperFacade orikaMapper;
43+
private final ObjectMapper objectMapper;
4444
private final String path;
4545
private final List<Endpoint> endpoints;
4646
private final List<GetListInterceptor> getListInterceptors;
@@ -107,7 +107,7 @@ private void getEntry(final Context ctx) {
107107
DaoTransaction<E> transaction = dao.getTransactionManager().beginTransaction(ctx);
108108

109109
P jpa = hu.getJpaById(ctx, transaction.getManager(), dao);
110-
J json = orikaMapper.map(jpa, jsonType);
110+
J json = objectMapper.map(jsonType, jpa);
111111
json = extensions.runPostGetSingle(ctx, makeAsyncExtensionContextFor(ctx), transaction.getManager(),
112112
jpa.getId(), jpa, json, executorService);
113113

@@ -146,7 +146,7 @@ private void getList(final Context ctx) {
146146
interceptorResult.getOrderByClause(), hu.getReadTenantIdsFrom(ctx));
147147
ListJson<J> jList = new ListJson<>();
148148
for (P entry : bList.getEntries())
149-
jList.getEntries().add(orikaMapper.map(entry, jsonType));
149+
jList.getEntries().add(objectMapper.map(jsonType, entry));
150150

151151
hu.setPaginationParamsFor(jList, offset, size, bList.getCount(), interceptorResult.getPartOfQueryString(), ctx);
152152

@@ -161,13 +161,13 @@ private void create(final Context ctx) throws IOException {
161161
String b = ctx.attribute(Attribute.REQUEST_BODY);
162162
try {
163163
J json = jsonMapper.fromStringTo(jsonType, b);
164-
P mappedJpa = orikaMapper.map(json, jpaType);
164+
P mappedJpa = objectMapper.map(jpaType, json);
165165
DaoTransaction<E> transaction = dao.getTransactionManager().beginTransaction(ctx);
166166

167167
mappedJpa = extensions.runPreInsert(ctx, makeAsyncExtensionContextFor(ctx), transaction.getManager(), json,
168168
mappedJpa, executorService);
169169
P createdJpa = dao.create(transaction.getManager(), mappedJpa, hu.getWriteTenantIdsFrom(ctx));
170-
J r = orikaMapper.map(createdJpa, jsonType);
170+
J r = objectMapper.map(jsonType, createdJpa);
171171

172172
r = extensions.runPostInsert(ctx, makeAsyncExtensionContextFor(ctx), transaction.getManager(), json,
173173
mappedJpa, createdJpa, r, executorService);
@@ -184,9 +184,9 @@ private void fullUpdate(final Context ctx) throws IOException {
184184
DaoTransaction<E> transaction = dao.getTransactionManager().beginTransaction(ctx);
185185
P jpa = hu.getJpaById(ctx, transaction.getManager(), dao);
186186
try {
187-
P detachedJpa = orikaMapper.map(jpa, jpaType);
187+
P detachedJpa = objectMapper.map(jpaType, jpaType, jpa);
188188
J json = jsonMapper.fromStringTo(jsonType, ctx.attribute(Attribute.REQUEST_BODY));
189-
P mappedJpa = orikaMapper.map(json, jpaType);
189+
P mappedJpa = objectMapper.map(jpaType, json);
190190
mappedJpa.setId(jpa.getId());
191191
mappedJpa.setCreatedOn(jpa.getCreatedOn());
192192
mappedJpa.setEditedOn(jpa.getEditedOn());
@@ -196,7 +196,7 @@ private void fullUpdate(final Context ctx) throws IOException {
196196

197197
P persistedJpa = dao.update(transaction.getManager(), mappedJpa, hu.getReadTenantIdsFrom(ctx));
198198

199-
J r = orikaMapper.map(persistedJpa, jsonType);
199+
J r = objectMapper.map(jsonType, persistedJpa);
200200
r = extensions.runPostModify(ctx, makeAsyncExtensionContextFor(ctx), transaction.getManager(), jpa.getId(),
201201
json, detachedJpa, mappedJpa, persistedJpa, r, executorService);
202202

src/main/java/info/unterrainer/commons/httpserver/GenericHandlerGroupBuilder.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,12 @@
1616
import info.unterrainer.commons.httpserver.rql.RqlData;
1717
import info.unterrainer.commons.httpserver.rql.RqlUtils;
1818
import info.unterrainer.commons.rdbutils.entities.BasicJpa;
19-
import info.unterrainer.commons.serialization.JsonMapper;
19+
import info.unterrainer.commons.serialization.jsonmapper.JsonMapper;
2020
import info.unterrainer.commons.serialization.jsons.BasicJson;
21+
import info.unterrainer.commons.serialization.objectmapper.ObjectMapper;
2122
import io.javalin.core.security.Role;
2223
import lombok.AccessLevel;
2324
import lombok.RequiredArgsConstructor;
24-
import ma.glasnost.orika.MapperFactory;
25-
import ma.glasnost.orika.impl.DefaultMapperFactory;
2625

2726
@RequiredArgsConstructor(access = AccessLevel.PACKAGE)
2827
public class GenericHandlerGroupBuilder<P extends BasicJpa, J extends BasicJson, E> {
@@ -32,7 +31,7 @@ public class GenericHandlerGroupBuilder<P extends BasicJpa, J extends BasicJson,
3231
private final Class<J> jsonType;
3332
private final CoreDao<P, E> dao;
3433
private JsonMapper jsonMapper;
35-
private MapperFactory orikaFactory;
34+
private ObjectMapper objectMapper;
3635
private String path;
3736
private List<Endpoint> endpoints = new ArrayList<>();
3837
private List<GetListInterceptor> getListInterceptors = new ArrayList<>();
@@ -45,12 +44,12 @@ public class GenericHandlerGroupBuilder<P extends BasicJpa, J extends BasicJson,
4544
public HttpServer add() {
4645
if (jsonMapper == null)
4746
jsonMapper = JsonMapper.create();
48-
if (orikaFactory == null)
49-
orikaFactory = new DefaultMapperFactory.Builder().build();
47+
if (objectMapper == null)
48+
objectMapper = new ObjectMapper();
5049
if (executorService == null)
5150
executorService = server.executorService;
5251
GenericHandlerGroup<P, J, E> handlerGroupInstance = new GenericHandlerGroup<>(dao, jpaType, jsonType,
53-
jsonMapper, orikaFactory.getMapperFacade(), path, endpoints, getListInterceptors, extensions,
52+
jsonMapper, objectMapper, path, endpoints, getListInterceptors, extensions,
5453
asyncExtensionContextMappers, accessRoles, executorService);
5554
server.addHandlerGroup(handlerGroupInstance);
5655
return server;
@@ -70,8 +69,8 @@ public GenericHandlerGroupBuilder<P, J, E> jsonMapper(final JsonMapper jsonMappe
7069
return this;
7170
}
7271

73-
public GenericHandlerGroupBuilder<P, J, E> orikaFactory(final MapperFactory orikaFactory) {
74-
this.orikaFactory = orikaFactory;
72+
public GenericHandlerGroupBuilder<P, J, E> objectMapper(final ObjectMapper objectMapper) {
73+
this.objectMapper = objectMapper;
7574
return this;
7675
}
7776

src/main/java/info/unterrainer/commons/httpserver/HttpServer.java

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,9 @@
3030
import info.unterrainer.commons.httpserver.jsons.MessageJson;
3131
import info.unterrainer.commons.jreutils.ShutdownHook;
3232
import info.unterrainer.commons.rdbutils.entities.BasicJpa;
33-
import info.unterrainer.commons.serialization.JsonMapper;
33+
import info.unterrainer.commons.serialization.jsonmapper.JsonMapper;
3434
import info.unterrainer.commons.serialization.jsons.BasicJson;
35+
import info.unterrainer.commons.serialization.objectmapper.ObjectMapper;
3536
import io.javalin.Javalin;
3637
import io.javalin.core.security.Role;
3738
import io.javalin.http.Context;
@@ -41,8 +42,6 @@
4142
import lombok.Getter;
4243
import lombok.Setter;
4344
import lombok.extern.slf4j.Slf4j;
44-
import ma.glasnost.orika.MapperFactory;
45-
import ma.glasnost.orika.impl.DefaultMapperFactory;
4645
import okio.BufferedSource;
4746
import okio.GzipSource;
4847
import okio.Okio;
@@ -55,7 +54,7 @@ public class HttpServer {
5554
private HttpServerConfiguration config;
5655
private String applicationName;
5756
private JsonMapper jsonMapper;
58-
private MapperFactory orikaFactory;
57+
private ObjectMapper objectMapper;
5958
private final List<HandlerGroup> handlerGroups = new ArrayList<>();
6059
private List<HandlerInstance> handlerInstances = new ArrayList<>();
6160
ExecutorService executorService;
@@ -71,7 +70,7 @@ private HttpServer() {
7170
}
7271

7372
@Builder
74-
private HttpServer(final String configPrefix, final String applicationName, final MapperFactory orikaFactory,
73+
private HttpServer(final String configPrefix, final String applicationName, final ObjectMapper objectMapper,
7574
final JsonMapper jsonMapper, final ExecutorService executorService, final String... appVersionFqns) {
7675
config = HttpServerConfiguration.read(configPrefix);
7776
this.applicationName = applicationName;
@@ -89,9 +88,9 @@ private HttpServer(final String configPrefix, final String applicationName, fina
8988
this.jsonMapper = jsonMapper;
9089
if (this.jsonMapper == null)
9190
this.jsonMapper = JsonMapper.create();
92-
this.orikaFactory = orikaFactory;
93-
if (this.orikaFactory == null)
94-
this.orikaFactory = new DefaultMapperFactory.Builder().build();
91+
this.objectMapper = objectMapper;
92+
if (this.objectMapper == null)
93+
this.objectMapper = new ObjectMapper();
9594

9695
create();
9796
}
@@ -254,11 +253,11 @@ private void render(final Context ctx) throws IOException {
254253
Object dto = ctx.attribute(Attribute.RESPONSE_OBJECT);
255254
if (dto != null)
256255
switch ((ResponseType) ctx.attribute(Attribute.RESPONSE_TYPE)) {
257-
case JSON:
258-
ctx.result(jsonMapper.toStringFrom(dto));
259-
break;
260-
default:
261-
ctx.result((String) dto);
256+
case JSON:
257+
ctx.result(jsonMapper.toStringFrom(dto));
258+
break;
259+
default:
260+
ctx.result((String) dto);
262261
}
263262

264263
Integer status = ctx.attribute(Attribute.RESPONSE_STATUS);

src/main/java/info/unterrainer/commons/httpserver/daos/AsyncJpaListQueryBuilder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
import java.util.HashSet;
55
import java.util.Set;
66

7-
import javax.persistence.EntityManager;
8-
import javax.persistence.EntityManagerFactory;
9-
import javax.persistence.TypedQuery;
7+
import jakarta.persistence.EntityManager;
8+
import jakarta.persistence.EntityManagerFactory;
9+
import jakarta.persistence.TypedQuery;
1010

1111
import info.unterrainer.commons.rdbutils.entities.BasicAsyncJpa;
1212
import info.unterrainer.commons.rdbutils.enums.AsyncState;
@@ -27,7 +27,7 @@ public TypedQuery<P> getTypedQuery(final EntityManager em) {
2727
}
2828

2929
@Override
30-
public javax.persistence.Query getCountQuery(final EntityManager em) {
30+
public jakarta.persistence.Query getCountQuery(final EntityManager em) {
3131
return dao.coreDao.getCountQuery(em, selectClause, joinClause, whereClause, parameters, asyncStates,
3232
readTenantIds);
3333
}

src/main/java/info/unterrainer/commons/httpserver/daos/AsyncJpqlDao.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package info.unterrainer.commons.httpserver.daos;
22

3-
import javax.persistence.EntityManagerFactory;
3+
import jakarta.persistence.EntityManagerFactory;
44

55
import info.unterrainer.commons.httpserver.jpas.BasicPermissionJpa;
66
import info.unterrainer.commons.rdbutils.entities.BasicAsyncJpa;

src/main/java/info/unterrainer/commons/httpserver/daos/AsyncListQueryBuilder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
import java.util.HashSet;
55
import java.util.Set;
66

7-
import javax.persistence.EntityManager;
8-
import javax.persistence.EntityManagerFactory;
9-
import javax.persistence.TypedQuery;
7+
import jakarta.persistence.EntityManager;
8+
import jakarta.persistence.EntityManagerFactory;
9+
import jakarta.persistence.TypedQuery;
1010

1111
import info.unterrainer.commons.rdbutils.entities.BasicAsyncJpa;
1212
import info.unterrainer.commons.rdbutils.enums.AsyncState;
@@ -27,7 +27,7 @@ public TypedQuery<T> getTypedQuery(final EntityManager em) {
2727
}
2828

2929
@Override
30-
public javax.persistence.Query getCountQuery(final EntityManager em) {
30+
public jakarta.persistence.Query getCountQuery(final EntityManager em) {
3131
return dao.coreDao.getCountQuery(em, selectClause, joinClause, whereClause, parameters, asyncStates,
3232
readTenantIds);
3333
}

src/main/java/info/unterrainer/commons/httpserver/daos/BasicJpqlDao.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
import java.util.Set;
55
import java.util.function.Function;
66

7-
import javax.persistence.EntityManager;
8-
import javax.persistence.EntityManagerFactory;
9-
import javax.persistence.TypedQuery;
7+
import jakarta.persistence.EntityManager;
8+
import jakarta.persistence.EntityManagerFactory;
9+
import jakarta.persistence.TypedQuery;
1010

1111
import info.unterrainer.commons.rdbutils.entities.BasicJpa;
1212
import io.javalin.http.Context;

src/main/java/info/unterrainer/commons/httpserver/daos/BasicListQueryBuilder.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import java.util.HashMap;
44

5-
import javax.persistence.EntityManager;
6-
import javax.persistence.EntityManagerFactory;
7-
import javax.persistence.TypedQuery;
5+
import jakarta.persistence.EntityManager;
6+
import jakarta.persistence.EntityManagerFactory;
7+
import jakarta.persistence.TypedQuery;
88

99
import info.unterrainer.commons.rdbutils.entities.BasicJpa;
1010
import lombok.AccessLevel;
@@ -35,7 +35,7 @@ public TypedQuery<X> getTypedQuery(final EntityManager em) {
3535
lockPessimistic, null, readTenantIds);
3636
}
3737

38-
public javax.persistence.Query getCountQuery(final EntityManager em) {
38+
public jakarta.persistence.Query getCountQuery(final EntityManager em) {
3939
return dao.coreDao.getCountQuery(em, selectClause, joinClause, whereClause, parameters, null, readTenantIds);
4040
}
4141

0 commit comments

Comments
 (0)