diff --git a/.classpath b/.classpath
index 7cc9ec0..c10152e 100644
--- a/.classpath
+++ b/.classpath
@@ -27,7 +27,6 @@
-
diff --git a/README.md b/README.md
index d7c94e6..5932d54 100644
--- a/README.md
+++ b/README.md
@@ -14,12 +14,28 @@ mvn clean compile assembly:single
generic interface for all KAR web application
+
+Somes tools:
+============
+
+Auto-update dependency:
+-----------------------
+
auto-update to the last version dependency:
```bash
mvn versions:use-latest-versions
```
+Format the code
+---------------
+
+Simply run the cmd-line:
+
+```bash
+mvn formatter:format
+```
+
Add Gitea in the dependency for the registry:
=============================================
diff --git a/pom.xml b/pom.xml
index ab71c6b..7459521 100644
--- a/pom.xml
+++ b/pom.xml
@@ -223,6 +223,46 @@
true
+
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+ 3.1.0
+
+ CheckStyle.xml
+ true
+ true
+ true
+ true
+
+
+
+ net.revelc.code.formatter
+ formatter-maven-plugin
+ 2.12.2
+
+ UTF-8
+ LF
+ Formatter.xml
+
+ src/
+ test/src
+
+
+ **/*.java
+
+
+ module-info.java
+
+
+
+
+
+ validate
+
+
+
+
diff --git a/src/org/kar/archidata/GlobalConfiguration.java b/src/org/kar/archidata/GlobalConfiguration.java
index 44024cc..3a52983 100644
--- a/src/org/kar/archidata/GlobalConfiguration.java
+++ b/src/org/kar/archidata/GlobalConfiguration.java
@@ -6,14 +6,8 @@ import org.kar.archidata.util.ConfigBaseVariable;
public class GlobalConfiguration {
public static DBConfig dbConfig = null;
- static {
- dbConfig = new DBConfig(ConfigBaseVariable.getDBType(),
- ConfigBaseVariable.getDBHost(),
- Integer.parseInt(ConfigBaseVariable.getDBPort()),
- ConfigBaseVariable.getDBLogin(),
- ConfigBaseVariable.getDBPassword(),
- ConfigBaseVariable.getDBName(),
- ConfigBaseVariable.getDBKeepConnected());
- }
+ static {
+ dbConfig = new DBConfig(ConfigBaseVariable.getDBType(), ConfigBaseVariable.getDBHost(), Integer.parseInt(ConfigBaseVariable.getDBPort()), ConfigBaseVariable.getDBLogin(),
+ ConfigBaseVariable.getDBPassword(), ConfigBaseVariable.getDBName(), ConfigBaseVariable.getDBKeepConnected());
+ }
}
-
\ No newline at end of file
diff --git a/src/org/kar/archidata/UpdateJwtPublicKey.java b/src/org/kar/archidata/UpdateJwtPublicKey.java
index d77dee3..bd93ee1 100644
--- a/src/org/kar/archidata/UpdateJwtPublicKey.java
+++ b/src/org/kar/archidata/UpdateJwtPublicKey.java
@@ -5,18 +5,19 @@ import org.kar.archidata.util.JWTWrapper;
public class UpdateJwtPublicKey extends Thread {
boolean kill = false;
-
+
+ @Override
public void run() {
if (ConfigBaseVariable.getSSOAddress() == null) {
System.out.println("SSO INTERFACE is not provided ==> work alone.");
// No SO provided, kill the thread.
return;
}
- while (this.kill == false) {
+ while (!this.kill) {
// need to upgrade when server call us...
try {
JWTWrapper.initLocalTokenRemote(ConfigBaseVariable.getSSOAddress(), "archidata");
- } catch (Exception e1) {
+ } catch (final Exception e1) {
e1.printStackTrace();
System.out.println("Can not retreive the basic tocken");
return;
@@ -24,13 +25,13 @@ public class UpdateJwtPublicKey extends Thread {
try {
// update every 5 minutes the master token
Thread.sleep(1000 * 60 * 5, 0);
- } catch (InterruptedException e) {
+ } catch (final InterruptedException e) {
e.printStackTrace();
}
}
}
-
+
public void kill() {
this.kill = true;
}
-}
\ No newline at end of file
+}
diff --git a/src/org/kar/archidata/UserDB.java b/src/org/kar/archidata/UserDB.java
index 92c1468..47ab52e 100755
--- a/src/org/kar/archidata/UserDB.java
+++ b/src/org/kar/archidata/UserDB.java
@@ -11,13 +11,13 @@ import org.kar.archidata.model.User;
public class UserDB {
public UserDB() {}
-
- public static User getUsers(long userId) throws Exception {
+
+ public static User getUsers(final long userId) throws Exception {
return DataAccess.get(User.class, userId);
}
-
- public static User getUserOrCreate(long userId, String userLogin) throws Exception {
- User user = getUsers(userId);
+
+ public static User getUserOrCreate(final long userId, final String userLogin) throws Exception {
+ final User user = getUsers(userId);
if (user != null) {
return user;
}
@@ -25,19 +25,18 @@ public class UserDB {
return getUsers(userId);
}
- private static void createUsersInfoFromOAuth(long userId, String login) throws IOException {
- DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
- String query = "INSERT INTO `user` (`id`, `login`, `lastConnection`, `admin`, `blocked`, `removed`) VALUE (?,?,now(3),'0','0','0')";
+ private static void createUsersInfoFromOAuth(final long userId, final String login) throws IOException {
+ final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
+ final String query = "INSERT INTO `user` (`id`, `login`, `lastConnection`, `admin`, `blocked`, `removed`) VALUE (?,?,now(3),'0','0','0')";
try {
- PreparedStatement ps = entry.connection.prepareStatement(query);
+ final PreparedStatement ps = entry.connection.prepareStatement(query);
ps.setLong(1, userId);
ps.setString(2, login);
ps.executeUpdate();
- } catch (SQLException throwables) {
+ } catch (final SQLException throwables) {
throwables.printStackTrace();
} finally {
entry.close();
}
}
-
}
diff --git a/src/org/kar/archidata/annotation/AnnotationTools.java b/src/org/kar/archidata/annotation/AnnotationTools.java
index d711a17..f757db3 100644
--- a/src/org/kar/archidata/annotation/AnnotationTools.java
+++ b/src/org/kar/archidata/annotation/AnnotationTools.java
@@ -29,7 +29,7 @@ public class AnnotationTools {
}
return AnnotationTools.getTableName(clazz);
}
-
+
public static String getTableName(final Class> element) throws Exception {
final Annotation[] annotation = element.getDeclaredAnnotationsByType(Table.class);
if (annotation.length == 0) {
@@ -153,11 +153,11 @@ public class AnnotationTools {
public static boolean isDeletedField(final Field element) throws Exception {
return element.getDeclaredAnnotationsByType(DataDeleted.class).length != 0;
}
-
+
public static boolean isCreatedAtField(final Field element) throws Exception {
return element.getDeclaredAnnotationsByType(CreationTimestamp.class).length != 0;
}
-
+
public static boolean isUpdateAtField(final Field element) throws Exception {
return element.getDeclaredAnnotationsByType(UpdateTimestamp.class).length != 0;
}
@@ -220,15 +220,15 @@ public class AnnotationTools {
}
return null;
}
-
+
public static List getFieldsNames(final Class> clazz) throws Exception {
return getFieldsNamesFilter(clazz, false);
}
-
+
public static List getAllFieldsNames(final Class> clazz) throws Exception {
return getFieldsNamesFilter(clazz, true);
}
-
+
private static List getFieldsNamesFilter(final Class> clazz, final boolean full) throws Exception {
final List out = new ArrayList<>();
for (final Field field : clazz.getFields()) {
diff --git a/src/org/kar/archidata/annotation/CreationTimestamp.java b/src/org/kar/archidata/annotation/CreationTimestamp.java
index ac04d4f..d8cda81 100644
--- a/src/org/kar/archidata/annotation/CreationTimestamp.java
+++ b/src/org/kar/archidata/annotation/CreationTimestamp.java
@@ -8,5 +8,5 @@ import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface CreationTimestamp {
-
+
}
diff --git a/src/org/kar/archidata/annotation/DataComment.java b/src/org/kar/archidata/annotation/DataComment.java
index 218f914..1df85a6 100644
--- a/src/org/kar/archidata/annotation/DataComment.java
+++ b/src/org/kar/archidata/annotation/DataComment.java
@@ -8,7 +8,7 @@ import java.lang.annotation.Target;
@Target({ ElementType.TYPE, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface DataComment {
-
+
String value();
-
+
}
diff --git a/src/org/kar/archidata/annotation/DataDefault.java b/src/org/kar/archidata/annotation/DataDefault.java
index 178049d..3073a9e 100644
--- a/src/org/kar/archidata/annotation/DataDefault.java
+++ b/src/org/kar/archidata/annotation/DataDefault.java
@@ -8,7 +8,7 @@ import java.lang.annotation.Target;
@Target({ ElementType.TYPE, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface DataDefault {
-
+
String value();
-
+
}
diff --git a/src/org/kar/archidata/annotation/DataDeleted.java b/src/org/kar/archidata/annotation/DataDeleted.java
index 9d12175..bacde04 100644
--- a/src/org/kar/archidata/annotation/DataDeleted.java
+++ b/src/org/kar/archidata/annotation/DataDeleted.java
@@ -8,5 +8,5 @@ import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DataDeleted {
-
+
}
diff --git a/src/org/kar/archidata/annotation/DataIfNotExists.java b/src/org/kar/archidata/annotation/DataIfNotExists.java
index 7cb6ac6..6095b58 100644
--- a/src/org/kar/archidata/annotation/DataIfNotExists.java
+++ b/src/org/kar/archidata/annotation/DataIfNotExists.java
@@ -8,5 +8,5 @@ import java.lang.annotation.Target;
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface DataIfNotExists {
-
+
}
diff --git a/src/org/kar/archidata/annotation/DataNotRead.java b/src/org/kar/archidata/annotation/DataNotRead.java
index e70dbc7..9b27b81 100644
--- a/src/org/kar/archidata/annotation/DataNotRead.java
+++ b/src/org/kar/archidata/annotation/DataNotRead.java
@@ -8,5 +8,5 @@ import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DataNotRead {
-
+
}
diff --git a/src/org/kar/archidata/annotation/UpdateTimestamp.java b/src/org/kar/archidata/annotation/UpdateTimestamp.java
index ec980a5..92d9b25 100644
--- a/src/org/kar/archidata/annotation/UpdateTimestamp.java
+++ b/src/org/kar/archidata/annotation/UpdateTimestamp.java
@@ -8,5 +8,5 @@ import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface UpdateTimestamp {
-
+
}
diff --git a/src/org/kar/archidata/api/DataResource.java b/src/org/kar/archidata/api/DataResource.java
index ba6f228..3e124f4 100644
--- a/src/org/kar/archidata/api/DataResource.java
+++ b/src/org/kar/archidata/api/DataResource.java
@@ -57,14 +57,12 @@ public class DataResource {
private static final Logger LOGGER = LoggerFactory.getLogger(MediaType.class);
private final static int CHUNK_SIZE = 1024 * 1024; // 1MB chunks
private final static int CHUNK_SIZE_IN = 50 * 1024 * 1024; // 1MB chunks
- /**
- * Upload some datas
- */
+ /** Upload some datas */
private static long tmpFolderId = 1;
private static void createFolder(final String path) throws IOException {
if (!Files.exists(java.nio.file.Path.of(path))) {
- //Log.print("Create folder: " + path);
+ // Log.print("Create folder: " + path);
Files.createDirectories(java.nio.file.Path.of(path));
}
}
@@ -114,20 +112,20 @@ public class DataResource {
}
return null;
}
-
+
public static Data createNewData(final long tmpUID, final String originalFileName, final String sha512) throws IOException {
// determine mime type:
Data injectedData = new Data();
String mimeType = "";
final String extension = originalFileName.substring(originalFileName.lastIndexOf('.') + 1);
mimeType = switch (extension.toLowerCase()) {
- case "jpg", "jpeg" -> "image/jpeg";
- case "png" -> "image/png";
- case "webp" -> "image/webp";
- case "mka" -> "audio/x-matroska";
- case "mkv" -> "video/x-matroska";
- case "webm" -> "video/webm";
- default -> throw new IOException("Can not find the mime type of data input: '" + extension + "'");
+ case "jpg", "jpeg" -> "image/jpeg";
+ case "png" -> "image/png";
+ case "webp" -> "image/webp";
+ case "mka" -> "audio/x-matroska";
+ case "mkv" -> "video/x-matroska";
+ case "webm" -> "video/webm";
+ default -> throw new IOException("Can not find the mime type of data input: '" + extension + "'");
};
injectedData.mimeType = mimeType;
injectedData.sha512 = sha512;
@@ -176,7 +174,7 @@ public class DataResource {
outpuStream = new FileOutputStream(new File(serverLocation));
while ((read = uploadedInputStream.read(bytes)) != -1) {
- //logger.info("write {}", read);
+ // logger.info("write {}", read);
md.update(bytes, 0, read);
outpuStream.write(bytes, 0, read);
}
@@ -226,7 +224,7 @@ public class DataResource {
LOGGER.info("===================================================");
LOGGER.info("== DATA uploadFile {}", (gc == null ? "null" : gc.userByToken));
LOGGER.info("===================================================");
- //public NodeSmall uploadFile(final FormDataMultiPart form) {
+ // public NodeSmall uploadFile(final FormDataMultiPart form) {
LOGGER.info("Upload file: ");
final String filePath = ConfigBaseVariable.getTmpDataFolder() + File.separator + tmpFolderId++;
try {
@@ -236,7 +234,7 @@ public class DataResource {
}
saveFile(fileInputStream, filePath);
return Response.ok("Data uploaded successfully !!").build();
- //return null;
+ // return null;
}
@GET
@@ -247,9 +245,9 @@ public class DataResource {
public Response retriveDataId(@Context final SecurityContext sc, @QueryParam(HttpHeaders.AUTHORIZATION) final String token, @HeaderParam("Range") final String range,
@PathParam("id") final Long id) throws Exception {
final GenericContext gc = (GenericContext) sc.getUserPrincipal();
- //logger.info("===================================================");
+ // logger.info("===================================================");
LOGGER.info("== DATA retriveDataId ? id={} user={}", id, (gc == null ? "null" : gc.userByToken));
- //logger.info("===================================================");
+ // logger.info("===================================================");
final Data value = getSmall(id);
if (value == null) {
Response.status(404).entity("media NOT FOUND: " + id).type("text/plain").build();
@@ -262,13 +260,13 @@ public class DataResource {
@RolesAllowed("USER")
@PermitTokenInURI
@Produces(MediaType.APPLICATION_OCTET_STREAM)
- //@CacheMaxAge(time = 10, unit = TimeUnit.DAYS)
+ // @CacheMaxAge(time = 10, unit = TimeUnit.DAYS)
public Response retriveDataThumbnailId(@Context final SecurityContext sc, @QueryParam(HttpHeaders.AUTHORIZATION) final String token, @HeaderParam("Range") final String range,
@PathParam("id") final Long id) throws Exception {
- //GenericContext gc = (GenericContext) sc.getUserPrincipal();
- //logger.info("===================================================");
- //logger.info("== DATA retriveDataThumbnailId ? {}", (gc==null?"null":gc.user));
- //logger.info("===================================================");
+ // GenericContext gc = (GenericContext) sc.getUserPrincipal();
+ // logger.info("===================================================");
+ // logger.info("== DATA retriveDataThumbnailId ? {}", (gc==null?"null":gc.user));
+ // logger.info("===================================================");
final Data value = getSmall(id);
if (value == null) {
return Response.status(404).entity("media NOT FOUND: " + id).type("text/plain").build();
@@ -279,7 +277,7 @@ public class DataResource {
return Response.status(404).entity("{\"error\":\"media Does not exist: " + id + "\"}").type("application/json").build();
}
if (value.mimeType.contentEquals("image/jpeg") || value.mimeType.contentEquals("image/png")
- // || value.mimeType.contentEquals("image/webp")
+ // || value.mimeType.contentEquals("image/webp")
) {
// reads input image
final BufferedImage inputImage = ImageIO.read(inputFile);
@@ -302,7 +300,7 @@ public class DataResource {
return Response.status(500).entity("Internal Error: resize fail: " + e.getMessage()).type("text/plain").build();
}
final byte[] imageData = baos.toByteArray();
- //Response.ok(new ByteArrayInputStream(imageData)).build();
+ // Response.ok(new ByteArrayInputStream(imageData)).build();
final Response.ResponseBuilder out = Response.ok(imageData).header(HttpHeaders.CONTENT_LENGTH, imageData.length);
out.type("image/jpeg");
// TODO: move this in a decorator !!!
@@ -315,7 +313,7 @@ public class DataResource {
return buildStream(filePathName, range, value.mimeType);
}
- //@Secured
+ // @Secured
@GET
@Path("{id}/{name}")
@PermitTokenInURI
@@ -324,9 +322,9 @@ public class DataResource {
public Response retriveDataFull(@Context final SecurityContext sc, @QueryParam(HttpHeaders.AUTHORIZATION) final String token, @HeaderParam("Range") final String range,
@PathParam("id") final Long id, @PathParam("name") final String name) throws Exception {
final GenericContext gc = (GenericContext) sc.getUserPrincipal();
- //logger.info("===================================================");
+ // logger.info("===================================================");
LOGGER.info("== DATA retriveDataFull ? id={} user={}", id, (gc == null ? "null" : gc.userByToken));
- //logger.info("===================================================");
+ // logger.info("===================================================");
final Data value = getSmall(id);
if (value == null) {
Response.status(404).entity("media NOT FOUND: " + id).type("text/plain").build();
@@ -334,16 +332,14 @@ public class DataResource {
return buildStream(ConfigBaseVariable.getMediaDataFolder() + File.separator + id + File.separator + "data", range, value.mimeType);
}
- /**
- * Adapted from http://stackoverflow.com/questions/12768812/video-streaming-to-ipad-does-not-work-with-tapestry5/12829541#12829541
+ /** Adapted from http://stackoverflow.com/questions/12768812/video-streaming-to-ipad-does-not-work-with-tapestry5/12829541#12829541
*
* @param range range header
* @return Streaming output
- * @throws Exception IOException if an error occurs in streaming.
- */
+ * @throws Exception IOException if an error occurs in streaming. */
private Response buildStream(final String filename, final String range, final String mimeType) throws Exception {
final File file = new File(filename);
- //logger.info("request range : {}", range);
+ // logger.info("request range : {}", range);
// range not requested : Firefox does not send range headers
if (range == null) {
final StreamingOutput output = new StreamingOutput() {
@@ -356,7 +352,7 @@ public class DataResource {
try {
out.write(buf, 0, len);
out.flush();
- //logger.info("---- wrote {} bytes file ----", len);
+ // logger.info("---- wrote {} bytes file ----", len);
} catch (final IOException ex) {
LOGGER.info("remote close connection");
break;
@@ -378,8 +374,8 @@ public class DataResource {
final String[] ranges = range.split("=")[1].split("-");
final long from = Long.parseLong(ranges[0]);
- //logger.info("request range : {}", ranges.length);
- //Chunk media if the range upper bound is unspecified. Chrome, Opera sends "bytes=0-"
+ // logger.info("request range : {}", ranges.length);
+ // Chunk media if the range upper bound is unspecified. Chrome, Opera sends "bytes=0-"
long to = CHUNK_SIZE + from;
if (ranges.length == 1) {
to = file.length() - 1;
@@ -387,7 +383,7 @@ public class DataResource {
to = file.length() - 1;
}
final String responseRange = String.format("bytes %d-%d/%d", from, to, file.length());
- //logger.info("responseRange: {}", responseRange);
+ // logger.info("responseRange: {}", responseRange);
final RandomAccessFile raf = new RandomAccessFile(file, "r");
raf.seek(from);
diff --git a/src/org/kar/archidata/api/FrontGeneric.java b/src/org/kar/archidata/api/FrontGeneric.java
index 3e32eb7..e32d3af 100644
--- a/src/org/kar/archidata/api/FrontGeneric.java
+++ b/src/org/kar/archidata/api/FrontGeneric.java
@@ -28,7 +28,7 @@ public class FrontGeneric {
}
return "";
}
-
+
private Response retrive(final String fileName) throws Exception {
String filePathName = this.baseFrontFolder + File.separator + fileName;
final String extention = getExtension(filePathName);
@@ -76,7 +76,7 @@ public class FrontGeneric {
}
final ResponseBuilder response = Response.ok(download);
// use this if I want to download the file:
- //response.header("Content-Disposition", "attachment; filename=" + fileName);
+ // response.header("Content-Disposition", "attachment; filename=" + fileName);
final CacheControl cc = new CacheControl();
cc.setMaxAge(60);
cc.setNoCache(false);
@@ -88,8 +88,8 @@ public class FrontGeneric {
@GET
@PermitAll()
- //@Produces(MediaType.APPLICATION_OCTET_STREAM)
- //@CacheMaxAge(time = 1, unit = TimeUnit.DAYS)
+ // @Produces(MediaType.APPLICATION_OCTET_STREAM)
+ // @CacheMaxAge(time = 1, unit = TimeUnit.DAYS)
public Response retrive0() throws Exception {
return retrive("index.html");
}
@@ -97,8 +97,8 @@ public class FrontGeneric {
@GET
@Path("{any: .*}")
@PermitAll()
- //@Produces(MediaType.APPLICATION_OCTET_STREAM)
- //@CacheMaxAge(time = 10, unit = TimeUnit.DAYS)
+ // @Produces(MediaType.APPLICATION_OCTET_STREAM)
+ // @CacheMaxAge(time = 10, unit = TimeUnit.DAYS)
public Response retrive1(@PathParam("any") final List segments) throws Exception {
String filename = "";
for (final PathSegment elem : segments) {
diff --git a/src/org/kar/archidata/api/MediaStreamer.java b/src/org/kar/archidata/api/MediaStreamer.java
index ce67a4c..879fa45 100644
--- a/src/org/kar/archidata/api/MediaStreamer.java
+++ b/src/org/kar/archidata/api/MediaStreamer.java
@@ -19,14 +19,14 @@ public class MediaStreamer implements StreamingOutput {
private final RandomAccessFile raf;
public MediaStreamer(final long length, final RandomAccessFile raf) throws IOException {
- //logger.info("request stream of {} data", length / 1024);
+ // logger.info("request stream of {} data", length / 1024);
if (length < 0) {
throw new IOException("Wrong size of the file to stream: " + length);
}
this.length = length;
this.raf = raf;
}
-
+
@Override
public void write(final OutputStream outputStream) {
try {
diff --git a/src/org/kar/archidata/backup/BackupEngine.java b/src/org/kar/archidata/backup/BackupEngine.java
index 131ddbb..bc9f49f 100644
--- a/src/org/kar/archidata/backup/BackupEngine.java
+++ b/src/org/kar/archidata/backup/BackupEngine.java
@@ -4,26 +4,26 @@ import java.util.ArrayList;
import java.util.List;
public class BackupEngine {
-
+
public enum StoreMode {
JSON, SQL
}
-
+
private final String pathStore;
private final StoreMode mode;
- private List> classes = new ArrayList<>();
-
- public BackupEngine(String pathToStoreDB, StoreMode mode) {
+ private final List> classes = new ArrayList<>();
+
+ public BackupEngine(final String pathToStoreDB, final StoreMode mode) {
this.pathStore = pathToStoreDB;
this.mode = mode;
}
-
- public void addClass(Class> clazz) {
- classes.add(clazz);
+
+ public void addClass(final Class> clazz) {
+ this.classes.add(clazz);
}
-
+
public void store() {
// TODO ...
-
+
}
}
diff --git a/src/org/kar/archidata/catcher/ExceptionCatcher.java b/src/org/kar/archidata/catcher/ExceptionCatcher.java
index b61671d..f1137d3 100644
--- a/src/org/kar/archidata/catcher/ExceptionCatcher.java
+++ b/src/org/kar/archidata/catcher/ExceptionCatcher.java
@@ -9,18 +9,18 @@ import jakarta.ws.rs.ext.ExceptionMapper;
public class ExceptionCatcher implements ExceptionMapper {
private static final Logger LOGGER = LoggerFactory.getLogger(ExceptionCatcher.class);
-
+
@Override
- public Response toResponse(Exception exception) {
+ public Response toResponse(final Exception exception) {
LOGGER.warn("Catch exception (not managed...):");
- RestErrorResponse ret = build(exception);
+ final RestErrorResponse ret = build(exception);
LOGGER.error("Error UUID={}", ret.uuid);
exception.printStackTrace();
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(ret).type(MediaType.APPLICATION_JSON).build();
}
-
- private RestErrorResponse build(Exception exception) {
+
+ private RestErrorResponse build(final Exception exception) {
return new RestErrorResponse(Response.Status.INTERNAL_SERVER_ERROR, "Catch Unknown Exception", exception.getMessage());
}
-
+
}
diff --git a/src/org/kar/archidata/catcher/FailExceptionCatcher.java b/src/org/kar/archidata/catcher/FailExceptionCatcher.java
index efa7b9e..b983301 100644
--- a/src/org/kar/archidata/catcher/FailExceptionCatcher.java
+++ b/src/org/kar/archidata/catcher/FailExceptionCatcher.java
@@ -10,18 +10,18 @@ import jakarta.ws.rs.ext.ExceptionMapper;
public class FailExceptionCatcher implements ExceptionMapper {
private static final Logger LOGGER = LoggerFactory.getLogger(FailExceptionCatcher.class);
-
+
@Override
- public Response toResponse(FailException exception) {
- RestErrorResponse ret = build(exception);
+ public Response toResponse(final FailException exception) {
+ final RestErrorResponse ret = build(exception);
LOGGER.error("Error UUID={}", ret.uuid);
// Not display backtrace ==> this may be a normal case ...
- //exception.printStackTrace();
+ // exception.printStackTrace();
return Response.status(exception.status).entity(ret).type(MediaType.APPLICATION_JSON).build();
}
-
- private RestErrorResponse build(FailException exception) {
+
+ private RestErrorResponse build(final FailException exception) {
return new RestErrorResponse(exception.status, "Request Fail", exception.getMessage());
}
-
+
}
diff --git a/src/org/kar/archidata/catcher/InputExceptionCatcher.java b/src/org/kar/archidata/catcher/InputExceptionCatcher.java
index 7029176..4fbefe4 100644
--- a/src/org/kar/archidata/catcher/InputExceptionCatcher.java
+++ b/src/org/kar/archidata/catcher/InputExceptionCatcher.java
@@ -10,17 +10,17 @@ import jakarta.ws.rs.ext.ExceptionMapper;
public class InputExceptionCatcher implements ExceptionMapper {
private static final Logger LOGGER = LoggerFactory.getLogger(InputExceptionCatcher.class);
-
+
@Override
- public Response toResponse(InputException exception) {
- RestErrorResponse ret = build(exception);
+ public Response toResponse(final InputException exception) {
+ final RestErrorResponse ret = build(exception);
LOGGER.error("Error UUID={}", ret.uuid);
exception.printStackTrace();
return Response.status(exception.status).entity(ret).type(MediaType.APPLICATION_JSON).build();
}
-
- private RestErrorResponse build(InputException exception) {
+
+ private RestErrorResponse build(final InputException exception) {
return new RestErrorResponse(exception.status, "Error on input='" + exception.missingVariable + "'", exception.getMessage());
}
-
+
}
diff --git a/src/org/kar/archidata/catcher/RestErrorResponse.java b/src/org/kar/archidata/catcher/RestErrorResponse.java
index 63a2a46..5d424a0 100644
--- a/src/org/kar/archidata/catcher/RestErrorResponse.java
+++ b/src/org/kar/archidata/catcher/RestErrorResponse.java
@@ -12,27 +12,27 @@ public class RestErrorResponse {
public String message;
final public int status;
final public String statusMessage;
-
- public RestErrorResponse(Response.Status status, String time, String error, String message) {
+
+ public RestErrorResponse(final Response.Status status, final String time, final String error, final String message) {
this.time = time;
this.error = error;
this.message = message;
this.status = status.getStatusCode();
this.statusMessage = status.getReasonPhrase();
}
-
- public RestErrorResponse(Response.Status status, String error, String message) {
+
+ public RestErrorResponse(final Response.Status status, final String error, final String message) {
this.time = Instant.now().toString();
this.error = error;
this.message = message;
this.status = status.getStatusCode();
this.statusMessage = status.getReasonPhrase();
}
-
- public RestErrorResponse(Response.Status status) {
+
+ public RestErrorResponse(final Response.Status status) {
this.time = Instant.now().toString();
this.status = status.getStatusCode();
this.statusMessage = status.getReasonPhrase();
}
-
+
}
diff --git a/src/org/kar/archidata/catcher/SystemExceptionCatcher.java b/src/org/kar/archidata/catcher/SystemExceptionCatcher.java
index 1421683..82f1785 100644
--- a/src/org/kar/archidata/catcher/SystemExceptionCatcher.java
+++ b/src/org/kar/archidata/catcher/SystemExceptionCatcher.java
@@ -10,17 +10,17 @@ import jakarta.ws.rs.ext.ExceptionMapper;
public class SystemExceptionCatcher implements ExceptionMapper {
private static final Logger LOGGER = LoggerFactory.getLogger(SystemExceptionCatcher.class);
-
+
@Override
- public Response toResponse(SystemException exception) {
- RestErrorResponse ret = build(exception);
+ public Response toResponse(final SystemException exception) {
+ final RestErrorResponse ret = build(exception);
LOGGER.error("Error UUID={}", ret.uuid);
exception.printStackTrace();
return Response.status(exception.status).entity(ret).type(MediaType.APPLICATION_JSON).build();
}
-
- private RestErrorResponse build(SystemException exception) {
+
+ private RestErrorResponse build(final SystemException exception) {
return new RestErrorResponse(exception.status, "System error", exception.getMessage());
}
-
+
}
diff --git a/src/org/kar/archidata/dataAccess/CountInOut.java b/src/org/kar/archidata/dataAccess/CountInOut.java
index 37fb8a8..6ddd5e4 100644
--- a/src/org/kar/archidata/dataAccess/CountInOut.java
+++ b/src/org/kar/archidata/dataAccess/CountInOut.java
@@ -10,7 +10,7 @@ public class CountInOut {
public CountInOut(final int i) {
this.value = i;
}
-
+
public void inc() {
this.value++;
}
diff --git a/src/org/kar/archidata/dataAccess/DataAccess.java b/src/org/kar/archidata/dataAccess/DataAccess.java
index 6f48795..3b65368 100644
--- a/src/org/kar/archidata/dataAccess/DataAccess.java
+++ b/src/org/kar/archidata/dataAccess/DataAccess.java
@@ -84,10 +84,10 @@ public class DataAccess {
// TODO : Maybe connect with a temporary not specified connection interface to a db ...
final PreparedStatement ps = entry.connection.prepareStatement("show databases");
final ResultSet rs = ps.executeQuery();
- //LOGGER.info("List all tables: equals? '{}'", name);
+ // LOGGER.info("List all tables: equals? '{}'", name);
while (rs.next()) {
final String data = rs.getString(1);
- //LOGGER.info(" - '{}'", data);
+ // LOGGER.info(" - '{}'", data);
if (name.equals(data)) {
return true;
}
@@ -132,7 +132,7 @@ public class DataAccess {
WHERE type = 'table'
AND name = ?;
""";
- // PreparedStatement ps = entry.connection.prepareStatement("show tables");
+ // PreparedStatement ps = entry.connection.prepareStatement("show tables");
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
final PreparedStatement ps = entry.connection.prepareStatement(request);
ps.setString(1, name);
@@ -144,10 +144,10 @@ public class DataAccess {
// TODO : Maybe connect with a temporary not specified connection interface to a db ...
final PreparedStatement ps = entry.connection.prepareStatement("show tables");
final ResultSet rs = ps.executeQuery();
- //LOGGER.info("List all tables: equals? '{}'", name);
+ // LOGGER.info("List all tables: equals? '{}'", name);
while (rs.next()) {
final String data = rs.getString(1);
- //LOGGER.info(" - '{}'", data);
+ // LOGGER.info(" - '{}'", data);
if (name.equals(data)) {
return true;
}
@@ -162,13 +162,11 @@ public class DataAccess {
throw new InternalServerErrorException("Can Not manage the DB-access");
}
- /**
- * extract a list of "-" separated element from a SQL input data.
+ /** extract a list of "-" separated element from a SQL input data.
* @param rs Result Set of the BDD
* @param iii Id in the result set
- * @return The list of Long value
- * @throws SQLException if an error is generated in the sql request.
- */
+ * @return The list of Long value
+ * @throws SQLException if an error is generated in the sql request. */
public static List getListOfIds(final ResultSet rs, final int iii, final String separator) throws SQLException {
final String trackString = rs.getString(iii);
if (rs.wasNull()) {
@@ -279,7 +277,7 @@ public class DataAccess {
}
iii.inc();
}
-
+
// TODO: maybe wrap this if the use of sqlite ==> maybe some problems came with sqlite ...
protected static void setValueFromDb(final Class> type, final Object data, final CountInOut count, final Field field, final ResultSet rs, final CountInOut countNotNull) throws Exception {
if (type == Long.class) {
@@ -287,14 +285,14 @@ public class DataAccess {
if (rs.wasNull()) {
field.set(data, null);
} else {
- //logger.debug(" ==> {}", tmp);
+ // logger.debug(" ==> {}", tmp);
field.set(data, tmp);
countNotNull.inc();
}
} else if (type == long.class) {
final Long tmp = rs.getLong(count.value);
if (rs.wasNull()) {
- //field.set(data, null);
+ // field.set(data, null);
} else {
field.setLong(data, tmp);
countNotNull.inc();
@@ -310,7 +308,7 @@ public class DataAccess {
} else if (type == int.class) {
final Integer tmp = rs.getInt(count.value);
if (rs.wasNull()) {
- //field.set(data, null);
+ // field.set(data, null);
} else {
field.setInt(data, tmp);
countNotNull.inc();
@@ -326,7 +324,7 @@ public class DataAccess {
} else if (type == float.class) {
final Float tmp = rs.getFloat(count.value);
if (rs.wasNull()) {
- //field.set(data, null);
+ // field.set(data, null);
} else {
field.setFloat(data, tmp);
countNotNull.inc();
@@ -342,7 +340,7 @@ public class DataAccess {
} else if (type == double.class) {
final Double tmp = rs.getDouble(count.value);
if (rs.wasNull()) {
- //field.set(data, null);
+ // field.set(data, null);
} else {
field.setDouble(data, tmp);
countNotNull.inc();
@@ -358,7 +356,7 @@ public class DataAccess {
} else if (type == boolean.class) {
final Boolean tmp = rs.getBoolean(count.value);
if (rs.wasNull()) {
- //field.set(data, null);
+ // field.set(data, null);
} else {
field.setBoolean(data, tmp);
countNotNull.inc();
@@ -448,7 +446,7 @@ public class DataAccess {
}
return null;
}
-
+
public static List insertMultiple(final List data, final QueryOptions options) throws Exception {
final List out = new ArrayList<>();
for (final T elem : data) {
@@ -461,15 +459,15 @@ public class DataAccess {
public static T insert(final T data) throws Exception {
return insert(data, null);
}
-
+
public static T insert(final T data, final QueryOptions options) throws Exception {
final Class> clazz = data.getClass();
-
+
DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
// real add in the BDD:
try {
final String tableName = AnnotationTools.getTableName(clazz, options);
- //boolean createIfNotExist = clazz.getDeclaredAnnotationsByType(SQLIfNotExists.class).length != 0;
+ // boolean createIfNotExist = clazz.getDeclaredAnnotationsByType(SQLIfNotExists.class).length != 0;
final StringBuilder query = new StringBuilder();
query.append("INSERT INTO `");
query.append(tableName);
@@ -594,7 +592,7 @@ public class DataAccess {
LOGGER.error("Can not manage the primary filed !!!");
}
}
- //ps.execute();
+ // ps.execute();
} catch (final SQLException ex) {
ex.printStackTrace();
} finally {
@@ -627,17 +625,15 @@ public class DataAccess {
return new QueryCondition(AnnotationTools.getFieldName(idField), "=", idKey);
}
- /**
- * Update an object with the inserted json data
+ /** Update an object with the inserted json data
*
* @param Type of the object to insert
* @param Master key on the object manage with @Id
* @param clazz Class reference of the insertion model
* @param id Key to insert data
- * @param jsonData Json data (partial) values to update
+ * @param jsonData Json data (partial) values to update
* @return the number of object updated
- * @throws Exception
- */
+ * @throws Exception */
public static int updateWithJson(final Class clazz, final ID_TYPE id, final String jsonData) throws Exception {
return updateWhereWithJson(clazz, getTableIdCondition(clazz, id), jsonData);
}
@@ -661,29 +657,26 @@ public class DataAccess {
public static int updateWhere(final T data, final QueryItem condition) throws Exception {
return updateWhere(data, condition, null, null);
}
-
- /**
- *
- * @param
+
+ /** @param
* @param data
* @param id
* @param filterValue
* @return the affected rows.
- * @throws Exception
- */
+ * @throws Exception */
public static int update(final T data, final ID_TYPE id, final List filterValue) throws Exception {
return updateWhere(data, getTableIdCondition(data.getClass(), id), null, filterValue);
}
public static int updateWhere(final T data, final QueryItem condition, final QueryOptions options, final List filterValue) throws Exception {
final Class> clazz = data.getClass();
- //public static NodeSmall createNode(String typeInNode, String name, String description, Long parentId) {
+ // public static NodeSmall createNode(String typeInNode, String name, String description, Long parentId) {
DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
// real add in the BDD:
try {
final String tableName = AnnotationTools.getTableName(clazz, options);
- //boolean createIfNotExist = clazz.getDeclaredAnnotationsByType(SQLIfNotExists.class).length != 0;
+ // boolean createIfNotExist = clazz.getDeclaredAnnotationsByType(SQLIfNotExists.class).length != 0;
final StringBuilder query = new StringBuilder();
query.append("UPDATE `");
query.append(tableName);
@@ -761,7 +754,7 @@ public class DataAccess {
}
}
whereInjectValue(ps, condition, iii);
-
+
return ps.executeUpdate();
} catch (final SQLException ex) {
ex.printStackTrace();
@@ -830,7 +823,7 @@ public class DataAccess {
}
query.append(" WHERE (");
condition.generateQuerry(query, tableName);
-
+
query.append(") ");
if (exclude_deleted && deletedFieldName != null) {
query.append("AND ");
@@ -896,7 +889,7 @@ public class DataAccess {
final boolean readAllfields = QueryOptions.readAllFields(options);
final String tableName = AnnotationTools.getTableName(clazz, options);
boolean firstField = true;
-
+
for (final Field elem : clazz.getFields()) {
// static field is only for internal global declaration ==> remove it ..
if (java.lang.reflect.Modifier.isStatic(elem.getModifiers())) {
@@ -1015,7 +1008,7 @@ public class DataAccess {
}
return data;
}
-
+
// TODO : detect the @Id
public static T get(final Class clazz, final ID_TYPE id) throws Exception {
return get(clazz, id, null);
@@ -1068,7 +1061,7 @@ public class DataAccess {
final String tableName = AnnotationTools.getTableName(clazz, options);
final String deletedFieldName = AnnotationTools.getDeletedFieldName(clazz);
// find the deleted field
-
+
DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
final StringBuilder query = new StringBuilder();
query.append("DELETE FROM `");
@@ -1101,12 +1094,7 @@ public class DataAccess {
public static int deleteSoftWhere(final Class> clazz, final QueryItem condition, final QueryOptions options) throws Exception {
final String tableName = AnnotationTools.getTableName(clazz, options);
final String deletedFieldName = AnnotationTools.getDeletedFieldName(clazz);
- /*
- String updateFieldName = null;
- if ("sqlite".equalsIgnoreCase(ConfigBaseVariable.getDBType())) {
- updateFieldName = AnnotationTools.getUpdatedFieldName(clazz);
- }
- */
+ /* String updateFieldName = null; if ("sqlite".equalsIgnoreCase(ConfigBaseVariable.getDBType())) { updateFieldName = AnnotationTools.getUpdatedFieldName(clazz); } */
// find the deleted field
DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
@@ -1116,15 +1104,8 @@ public class DataAccess {
query.append("` SET `");
query.append(deletedFieldName);
query.append("`=true ");
- /*
- * The trigger work well, but the timestamp is store @ seconds...
- if (updateFieldName != null) {
- // done only in SQLite (the trigger does not work...
- query.append(", `");
- query.append(updateFieldName);
- query.append("`=DATE()");
- }
- */
+ /* The trigger work well, but the timestamp is store @ seconds... if (updateFieldName != null) { // done only in SQLite (the trigger does not work... query.append(", `");
+ * query.append(updateFieldName); query.append("`=DATE()"); } */
whereAppendQuery(query, tableName, condition, null, deletedFieldName);
try {
LOGGER.debug("APPLY UPDATE: {}", query.toString());
@@ -1137,11 +1118,11 @@ public class DataAccess {
entry = null;
}
}
-
+
public static int unsetDelete(final Class> clazz, final ID_TYPE id) throws Exception {
return unsetDeleteWhere(clazz, getTableIdCondition(clazz, id), null);
}
-
+
public static int unsetDelete(final Class> clazz, final ID_TYPE id, final QueryOptions options) throws Exception {
return unsetDeleteWhere(clazz, getTableIdCondition(clazz, id), options);
}
@@ -1159,12 +1140,7 @@ public class DataAccess {
query.append("` SET `");
query.append(deletedFieldName);
query.append("`=false ");
- /*
- * is is needed only for SQLite ???
- query.append("`modify_date`=");
- query.append(getDBNow());
- query.append(", ");
- */
+ /* is is needed only for SQLite ??? query.append("`modify_date`="); query.append(getDBNow()); query.append(", "); */
// need to disable the deleted false because the model must be unselected to be updated.
options.put(QueryOptions.SQL_DELETED_DISABLE, true);
whereAppendQuery(query, tableName, condition, options, deletedFieldName);
@@ -1178,5 +1154,5 @@ public class DataAccess {
entry = null;
}
}
-
+
}
\ No newline at end of file
diff --git a/src/org/kar/archidata/dataAccess/DataAccessAddOn.java b/src/org/kar/archidata/dataAccess/DataAccessAddOn.java
index 1619a5d..903cfa3 100644
--- a/src/org/kar/archidata/dataAccess/DataAccessAddOn.java
+++ b/src/org/kar/archidata/dataAccess/DataAccessAddOn.java
@@ -9,39 +9,31 @@ import java.util.List;
import jakarta.validation.constraints.NotNull;
public interface DataAccessAddOn {
- /**
- * Get the Class of the declaration annotation
- * @return The annotation class
- */
+ /** Get the Class of the declaration annotation
+ * @return The annotation class */
Class> getAnnotationClass();
- /**
- * Get the SQL type that is needed to declare for the specific Field Type.
+ /** Get the SQL type that is needed to declare for the specific Field Type.
* @param elem Field to declare.
- * @return SQL type to create.
- */
+ * @return SQL type to create. */
String getSQLFieldType(Field elem) throws Exception;
- /**
- * Check if the field is manage by the local add-on
+ /** Check if the field is manage by the local add-on
* @param elem Field to inspect.
- * @return True of the field is manage by the current Add-on.
- */
+ * @return True of the field is manage by the current Add-on. */
boolean isCompatibleField(Field elem);
- /**
- * Insert data in the specific field (the field must be in the current db, otherwiise it does not work at all.
+ /** Insert data in the specific field (the field must be in the current db, otherwiise it does not work at all.
* @param ps DB statement interface.
* @param data The date to inject.
* @param iii The index of injection
* @return the new index of injection in case of multiple value management
- * @throws SQLException
- */
+ * @throws SQLException */
void insertData(PreparedStatement ps, final Field field, Object data, CountInOut iii) throws Exception, SQLException, IllegalArgumentException, IllegalAccessException;
// Element can insert in the single request
boolean canInsert(final Field field);
-
+
// Element can be retrieve with the specific mode
boolean canRetrieve(final Field field);
@@ -52,8 +44,7 @@ public interface DataAccessAddOn {
void fillFromQuerry(ResultSet rs, Field field, Object data, CountInOut count, QueryOptions options, final List lazyCall)
throws Exception, SQLException, IllegalArgumentException, IllegalAccessException;
- /**
- * Create associated table of the specific element.
+ /** Create associated table of the specific element.
* @param tableName
* @param elem
* @param mainTableBuilder
@@ -61,8 +52,7 @@ public interface DataAccessAddOn {
* @param createIfNotExist
* @param createDrop
* @param fieldId
- * @throws Exception
- */
+ * @throws Exception */
void createTables(String tableName, Field field, StringBuilder mainTableBuilder, List preActionList, List postActionList, boolean createIfNotExist, boolean createDrop, int fieldId)
throws Exception;
diff --git a/src/org/kar/archidata/dataAccess/DataFactory.java b/src/org/kar/archidata/dataAccess/DataFactory.java
index 0c52eaf..3339b04 100644
--- a/src/org/kar/archidata/dataAccess/DataFactory.java
+++ b/src/org/kar/archidata/dataAccess/DataFactory.java
@@ -126,21 +126,21 @@ public class DataFactory {
}
throw new DataAccessException("Imcompatible type of element in object for: " + type.getCanonicalName());
}
-
+
public static void createTablesSpecificType(final String tableName, final Field elem, final StringBuilder mainTableBuilder, final List preOtherTables, final List postOtherTables,
final boolean createIfNotExist, final boolean createDrop, final int fieldId, final Class> classModel) throws Exception {
final String name = AnnotationTools.getFieldName(elem);
final Integer limitSize = AnnotationTools.getLimitSize(elem);
final boolean notNull = AnnotationTools.getNotNull(elem);
-
+
final boolean primaryKey = AnnotationTools.isPrimaryKey(elem);
final GenerationType strategy = AnnotationTools.getStrategy(elem);
-
+
final boolean createTime = elem.getDeclaredAnnotationsByType(CreationTimestamp.class).length != 0;
final boolean updateTime = elem.getDeclaredAnnotationsByType(UpdateTimestamp.class).length != 0;
final String comment = AnnotationTools.getComment(elem);
final String defaultValue = AnnotationTools.getDefault(elem);
-
+
if (fieldId == 0) {
mainTableBuilder.append("\n\t\t`");
} else {
@@ -183,12 +183,7 @@ public class DataFactory {
mainTableBuilder.append("(3)");
} else {
// TODO: add trigger:
- /*
- CREATE TRIGGER your_table_trig AFTER UPDATE ON your_table
- BEGIN
- update your_table SET updated_on = datetime('now') WHERE user_id = NEW.user_id;
- END;
- */
+ /* CREATE TRIGGER your_table_trig AFTER UPDATE ON your_table BEGIN update your_table SET updated_on = datetime('now') WHERE user_id = NEW.user_id; END; */
final StringBuilder triggerBuilder = new StringBuilder();
triggerBuilder.append("CREATE TRIGGER ");
triggerBuilder.append(tableName);
@@ -200,10 +195,10 @@ public class DataFactory {
triggerBuilder.append(name);
triggerBuilder.append(" = datetime('now') WHERE id = NEW.id; \n");
triggerBuilder.append("END;");
-
+
postOtherTables.add(triggerBuilder.toString());
}
-
+
mainTableBuilder.append(" ");
}
} else {
@@ -238,11 +233,11 @@ public class DataFactory {
mainTableBuilder.append("DEFAULT ");
mainTableBuilder.append(defaultValue);
mainTableBuilder.append(" ");
-
+
}
if (primaryKey && "sqlite".equals(ConfigBaseVariable.getDBType())) {
mainTableBuilder.append("PRIMARY KEY ");
-
+
}
if (strategy == GenerationType.IDENTITY) {
if (!"sqlite".equals(ConfigBaseVariable.getDBType())) {
@@ -253,14 +248,14 @@ public class DataFactory {
} else if (strategy != null) {
throw new DataAccessException("Can not generate a stategy different of IDENTITY");
}
-
+
if (comment != null && !"sqlite".equals(ConfigBaseVariable.getDBType())) {
mainTableBuilder.append("COMMENT '");
mainTableBuilder.append(comment.replace('\'', '\''));
mainTableBuilder.append("' ");
}
}
-
+
private static boolean isFieldFromSuperClass(final Class> model, final String filedName) {
final Class> superClass = model.getSuperclass();
if (superClass == null) {
@@ -280,14 +275,14 @@ public class DataFactory {
}
return false;
}
-
+
public static List createTable(final Class> clazz) throws Exception {
return createTable(clazz, null);
}
-
+
public static List createTable(final Class> clazz, final QueryOptions options) throws Exception {
final String tableName = AnnotationTools.getTableName(clazz, options);
-
+
boolean createDrop = false;
if (options != null) {
final Object data = options.get(QueryOptions.CREATE_DROP_TABLE);
@@ -297,7 +292,7 @@ public class DataFactory {
LOGGER.error("'{}' ==> has not a Boolean value: {}", QueryOptions.CREATE_DROP_TABLE, data);
}
}
-
+
final boolean createIfNotExist = clazz.getDeclaredAnnotationsByType(DataIfNotExists.class).length != 0;
final List preActionList = new ArrayList<>();
final List postActionList = new ArrayList<>();
@@ -317,7 +312,7 @@ public class DataFactory {
int fieldId = 0;
LOGGER.debug("===> TABLE `{}`", tableName);
final List primaryKeys = new ArrayList<>();
-
+
for (final Field elem : clazz.getFields()) {
// DEtect the primary key (support only one primary key right now...
if (AnnotationTools.isPrimaryKey(elem)) {
@@ -398,5 +393,5 @@ public class DataFactory {
preActionList.addAll(postActionList);
return preActionList;
}
-
+
}
\ No newline at end of file
diff --git a/src/org/kar/archidata/dataAccess/Foreign.java b/src/org/kar/archidata/dataAccess/Foreign.java
index 4d3cfb2..ed99cf3 100644
--- a/src/org/kar/archidata/dataAccess/Foreign.java
+++ b/src/org/kar/archidata/dataAccess/Foreign.java
@@ -5,12 +5,12 @@ package org.kar.archidata.dataAccess;
public class Foreign {
public final Long id;
public final T data;
-
+
public Foreign(final Long id) {
this.id = id;
this.data = null;
}
-
+
public Foreign(final T data) {
this.id = null;
this.data = data;
diff --git a/src/org/kar/archidata/dataAccess/QueryOptions.java b/src/org/kar/archidata/dataAccess/QueryOptions.java
index a871f06..6b51569 100644
--- a/src/org/kar/archidata/dataAccess/QueryOptions.java
+++ b/src/org/kar/archidata/dataAccess/QueryOptions.java
@@ -12,32 +12,32 @@ public class QueryOptions {
public static final String SQL_DELETED_DISABLE = "SQLDeleted_disable";
public static final String OVERRIDE_TABLE_NAME = "SQL_OVERRIDE_TABLE_NAME";
public static final String CREATE_DROP_TABLE = "CREATE_DROP_TABLE";
-
+
private final Map options = new HashMap<>();
-
+
public QueryOptions() {
-
+
}
-
+
public QueryOptions(final String key, final Object value) {
this.options.put(key, value);
}
-
+
public QueryOptions(final String key, final Object value, final String key2, final Object value2) {
this.options.put(key, value);
this.options.put(key2, value2);
}
-
+
public QueryOptions(final String key, final Object value, final String key2, final Object value2, final String key3, final Object value3) {
this.options.put(key, value);
this.options.put(key2, value2);
this.options.put(key3, value3);
}
-
+
public void put(final String key, final Object value) {
this.options.put(key, value);
}
-
+
public Object get(final String value) {
return this.options.get(value);
}
@@ -53,5 +53,5 @@ public class QueryOptions {
}
return false;
}
-
+
}
diff --git a/src/org/kar/archidata/dataAccess/QueryOr.java b/src/org/kar/archidata/dataAccess/QueryOr.java
index 43c827f..334fbda 100644
--- a/src/org/kar/archidata/dataAccess/QueryOr.java
+++ b/src/org/kar/archidata/dataAccess/QueryOr.java
@@ -5,11 +5,11 @@ import java.util.List;
public class QueryOr implements QueryItem {
protected final List childs;
-
+
public QueryOr(final List childs) {
this.childs = childs;
}
-
+
@Override
public void generateQuerry(final StringBuilder querry, final String tableName) {
if (this.childs.size() >= 1) {
@@ -28,7 +28,7 @@ public class QueryOr implements QueryItem {
querry.append(")");
}
}
-
+
@Override
public void injectQuerry(final PreparedStatement ps, final CountInOut iii) throws Exception {
for (final QueryItem elem : this.childs) {
diff --git a/src/org/kar/archidata/dataAccess/addOn/AddOnDataJson.java b/src/org/kar/archidata/dataAccess/addOn/AddOnDataJson.java
index 5c44a90..5be3d68 100644
--- a/src/org/kar/archidata/dataAccess/addOn/AddOnDataJson.java
+++ b/src/org/kar/archidata/dataAccess/addOn/AddOnDataJson.java
@@ -23,24 +23,24 @@ import jakarta.validation.constraints.NotNull;
public class AddOnDataJson implements DataAccessAddOn {
static final Logger LOGGER = LoggerFactory.getLogger(AddOnDataJson.class);
-
+
@Override
public Class> getAnnotationClass() {
return DataJson.class;
}
-
+
@Override
public String getSQLFieldType(final Field elem) throws Exception {
final String fieldName = AnnotationTools.getFieldName(elem);
return DataFactory.convertTypeInSQL(String.class, fieldName);
}
-
+
@Override
public boolean isCompatibleField(final Field elem) {
final DataJson decorators = elem.getDeclaredAnnotation(DataJson.class);
return decorators != null;
}
-
+
@Override
public void insertData(final PreparedStatement ps, final Field field, final Object rootObject, final CountInOut iii) throws Exception {
final Object data = field.get(rootObject);
@@ -52,17 +52,17 @@ public class AddOnDataJson implements DataAccessAddOn {
ps.setString(iii.value, dataString);
iii.inc();
}
-
+
@Override
public boolean canInsert(final Field field) {
return true;
}
-
+
@Override
public boolean canRetrieve(final Field field) {
return true;
}
-
+
@Override
public void generateQuerry(@NotNull final String tableName, @NotNull final Field field, @NotNull final StringBuilder querrySelect, @NotNull final StringBuilder querry, @NotNull final String name,
@NotNull final CountInOut elemCount, final QueryOptions options) throws Exception {
@@ -73,7 +73,7 @@ public class AddOnDataJson implements DataAccessAddOn {
elemCount.inc();
return;
}
-
+
@Override
public void fillFromQuerry(final ResultSet rs, final Field field, final Object data, final CountInOut count, final QueryOptions options, final List lazyCall) throws Exception {
final String jsonData = rs.getString(count.value);
@@ -84,7 +84,7 @@ public class AddOnDataJson implements DataAccessAddOn {
field.set(data, dataParsed);
}
}
-
+
@Override
public void createTables(final String tableName, final Field field, final StringBuilder mainTableBuilder, final List preActionList, final List postActionList,
final boolean createIfNotExist, final boolean createDrop, final int fieldId) throws Exception {
diff --git a/src/org/kar/archidata/dataAccess/addOn/AddOnManyToMany.java b/src/org/kar/archidata/dataAccess/addOn/AddOnManyToMany.java
index 922d1e5..8277c71 100644
--- a/src/org/kar/archidata/dataAccess/addOn/AddOnManyToMany.java
+++ b/src/org/kar/archidata/dataAccess/addOn/AddOnManyToMany.java
@@ -32,43 +32,43 @@ import jakarta.validation.constraints.NotNull;
public class AddOnManyToMany implements DataAccessAddOn {
static final Logger LOGGER = LoggerFactory.getLogger(AddOnManyToMany.class);
static final String SEPARATOR = "-";
-
+
@Override
public Class> getAnnotationClass() {
return ManyToMany.class;
}
-
+
@Override
public String getSQLFieldType(final Field elem) {
return null;
}
-
+
@Override
public boolean isCompatibleField(final Field elem) {
final ManyToMany decorators = elem.getDeclaredAnnotation(ManyToMany.class);
return decorators != null;
}
-
+
@Override
public void insertData(final PreparedStatement ps, final Field field, final Object rootObject, final CountInOut iii) throws SQLException, IllegalArgumentException, IllegalAccessException {
-
+
}
-
+
@Override
public boolean canInsert(final Field field) {
return false;
}
-
+
@Override
public boolean canRetrieve(final Field field) {
return true;
}
-
+
public static String generateLinkTableNameField(final String tableName, final Field field) throws Exception {
final String name = AnnotationTools.getFieldName(field);
return generateLinkTableName(tableName, name);
}
-
+
public static String generateLinkTableName(final String tableName, final String name) {
String localName = name;
if (name.endsWith("s")) {
@@ -76,7 +76,7 @@ public class AddOnManyToMany implements DataAccessAddOn {
}
return tableName + "_link_" + localName;
}
-
+
public void generateConcatQuerry(@NotNull final String tableName, @NotNull final Field field, @NotNull final StringBuilder querrySelect, @NotNull final StringBuilder querry,
@NotNull final String name, @NotNull final CountInOut elemCount, final QueryOptions options) {
@@ -112,16 +112,11 @@ public class AddOnManyToMany implements DataAccessAddOn {
querrySelect.append(") AS ");
querrySelect.append(name);
querrySelect.append(" ");
- /*
- " (SELECT GROUP_CONCAT(tmp.data_id SEPARATOR '-')" +
- " FROM cover_link_node tmp" +
- " WHERE tmp.deleted = false" +
- " AND node.id = tmp.node_id" +
- " GROUP BY tmp.node_id) AS covers" +
- */
+ /* " (SELECT GROUP_CONCAT(tmp.data_id SEPARATOR '-')" + " FROM cover_link_node tmp" + " WHERE tmp.deleted = false" +
+ * " AND node.id = tmp.node_id" + " GROUP BY tmp.node_id) AS covers" + */
elemCount.inc();
}
-
+
@Override
public void generateQuerry(@NotNull final String tableName, @NotNull final Field field, @NotNull final StringBuilder querrySelect, @NotNull final StringBuilder querry, @NotNull final String name,
@NotNull final CountInOut elemCount, final QueryOptions options) throws Exception {
@@ -144,7 +139,7 @@ public class AddOnManyToMany implements DataAccessAddOn {
}
}
}
-
+
@Override
public void fillFromQuerry(final ResultSet rs, final Field field, final Object data, final CountInOut count, final QueryOptions options, final List lazyCall) throws Exception {
if (field.getType() != List.class) {
@@ -165,7 +160,7 @@ public class AddOnManyToMany implements DataAccessAddOn {
throw new DataAccessException("EAGER is not supported for list of element...");
} else {
final List idList = DataAccess.getListOfIds(rs, count.value, SEPARATOR);
- //field.set(data, idList);
+ // field.set(data, idList);
count.inc();
if (idList != null && idList.size() > 0) {
final String idField = AnnotationTools.getFieldName(AnnotationTools.getIdField(objectClass));
@@ -187,16 +182,16 @@ public class AddOnManyToMany implements DataAccessAddOn {
}
}
}
-
+
public static void addLink(final Class> clazz, final long localKey, final String column, final long remoteKey) throws Exception {
final String tableName = AnnotationTools.getTableName(clazz);
final String linkTableName = generateLinkTableName(tableName, column);
final LinkTable insertElement = new LinkTable(localKey, remoteKey);
final QueryOptions options = new QueryOptions(QueryOptions.OVERRIDE_TABLE_NAME, linkTableName);
DataAccess.insert(insertElement, options);
-
+
}
-
+
public static int removeLink(final Class> clazz, final long localKey, final String column, final long remoteKey) throws Exception {
final String tableName = AnnotationTools.getTableName(clazz);
final String linkTableName = generateLinkTableName(tableName, column);
@@ -204,7 +199,7 @@ public class AddOnManyToMany implements DataAccessAddOn {
final QueryAnd condition = new QueryAnd(new QueryCondition("object1Id", "=", localKey), new QueryCondition("object2Id", "=", remoteKey));
return DataAccess.deleteWhere(LinkTable.class, condition, options);
}
-
+
@Override
public void createTables(final String tableName, final Field field, final StringBuilder mainTableBuilder, final List preActionList, final List postActionList,
final boolean createIfNotExist, final boolean createDrop, final int fieldId) throws Exception {
diff --git a/src/org/kar/archidata/dataAccess/addOn/AddOnManyToOne.java b/src/org/kar/archidata/dataAccess/addOn/AddOnManyToOne.java
index d5c3550..28c77ed 100644
--- a/src/org/kar/archidata/dataAccess/addOn/AddOnManyToOne.java
+++ b/src/org/kar/archidata/dataAccess/addOn/AddOnManyToOne.java
@@ -132,11 +132,7 @@ public class AddOnManyToOne implements DataAccessAddOn {
}
}
- /*
- SELECT k.id, r.id
- FROM `right` k
- LEFT OUTER JOIN `rightDescription` r ON k.rightDescriptionId=r.id
- */
+ /* SELECT k.id, r.id FROM `right` k LEFT OUTER JOIN `rightDescription` r ON k.rightDescriptionId=r.id */
}
@Override
diff --git a/src/org/kar/archidata/dataAccess/addOn/AddOnOneToMany.java b/src/org/kar/archidata/dataAccess/addOn/AddOnOneToMany.java
index 892aee5..77d70ac 100644
--- a/src/org/kar/archidata/dataAccess/addOn/AddOnOneToMany.java
+++ b/src/org/kar/archidata/dataAccess/addOn/AddOnOneToMany.java
@@ -24,23 +24,19 @@ import jakarta.validation.constraints.NotNull;
public class AddOnOneToMany implements DataAccessAddOn {
static final Logger LOGGER = LoggerFactory.getLogger(AddOnManyToMany.class);
- /**
- * Convert the list if external id in a string '-' separated
+ /** Convert the list if external id in a string '-' separated
* @param ids List of value (null are removed)
- * @return '-' string separated
- */
+ * @return '-' string separated */
protected static String getStringOfIds(final List ids) {
final List tmp = new ArrayList<>(ids);
return tmp.stream().map(String::valueOf).collect(Collectors.joining("-"));
}
- /**
- * extract a list of "-" separated element from a SQL input data.
+ /** extract a list of "-" separated element from a SQL input data.
* @param rs Result Set of the BDD
* @param iii Id in the result set
- * @return The list of Long value
- * @throws SQLException if an error is generated in the sql request.
- */
+ * @return The list of Long value
+ * @throws SQLException if an error is generated in the sql request. */
protected static List getListOfIds(final ResultSet rs, final int iii) throws SQLException {
final String trackString = rs.getString(iii);
if (rs.wasNull()) {
@@ -95,7 +91,7 @@ public class AddOnOneToMany implements DataAccessAddOn {
public boolean canInsert(final Field field) {
return false;
}
-
+
@Override
public boolean canRetrieve(final Field field) {
return false;
@@ -117,7 +113,7 @@ public class AddOnOneToMany implements DataAccessAddOn {
final Long foreignKey = rs.getLong(count.value);
count.inc();
if (!rs.wasNull()) {
-
+
field.set(data, foreignKey);
}
}
diff --git a/src/org/kar/archidata/dataAccess/addOn/AddOnSQLTableExternalForeinKeyAsList.java b/src/org/kar/archidata/dataAccess/addOn/AddOnSQLTableExternalForeinKeyAsList.java
index 86d9039..cfaef9a 100644
--- a/src/org/kar/archidata/dataAccess/addOn/AddOnSQLTableExternalForeinKeyAsList.java
+++ b/src/org/kar/archidata/dataAccess/addOn/AddOnSQLTableExternalForeinKeyAsList.java
@@ -25,22 +25,20 @@ import jakarta.validation.constraints.NotNull;
public class AddOnSQLTableExternalForeinKeyAsList implements DataAccessAddOn {
static final Logger LOGGER = LoggerFactory.getLogger(AddOnManyToMany.class);
static final String SEPARATOR = "-";
-
- /**
- * Convert the list if external id in a string '-' separated
+
+ /** Convert the list if external id in a string '-' separated
* @param ids List of value (null are removed)
- * @return '-' string separated
- */
+ * @return '-' string separated */
protected static String getStringOfIds(final List ids) {
final List tmp = new ArrayList<>(ids);
return tmp.stream().map(String::valueOf).collect(Collectors.joining(SEPARATOR));
}
-
+
@Override
public Class> getAnnotationClass() {
return SQLTableExternalForeinKeyAsList.class;
}
-
+
@Override
public String getSQLFieldType(final Field field) throws Exception {
final String fieldName = AnnotationTools.getFieldName(field);
@@ -52,13 +50,13 @@ public class AddOnSQLTableExternalForeinKeyAsList implements DataAccessAddOn {
}
return null;
}
-
+
@Override
public boolean isCompatibleField(final Field field) {
final SQLTableExternalForeinKeyAsList decorators = field.getDeclaredAnnotation(SQLTableExternalForeinKeyAsList.class);
return decorators != null;
}
-
+
@Override
public void insertData(final PreparedStatement ps, final Field field, final Object rootObject, final CountInOut iii) throws SQLException, IllegalArgumentException, IllegalAccessException {
final Object data = field.get(rootObject);
@@ -71,17 +69,17 @@ public class AddOnSQLTableExternalForeinKeyAsList implements DataAccessAddOn {
ps.setString(iii.value, dataTmp);
}
}
-
+
@Override
public boolean canInsert(final Field field) {
return false;
}
-
+
@Override
public boolean canRetrieve(final Field field) {
return false;
}
-
+
@Override
public void generateQuerry(@NotNull final String tableName, @NotNull final Field field, @NotNull final StringBuilder querrySelect, @NotNull final StringBuilder querry, @NotNull final String name,
@NotNull final CountInOut elemCount, final QueryOptions options) {
@@ -91,7 +89,7 @@ public class AddOnSQLTableExternalForeinKeyAsList implements DataAccessAddOn {
querrySelect.append(".");
querrySelect.append(name);
}
-
+
@Override
public void fillFromQuerry(final ResultSet rs, final Field field, final Object data, final CountInOut count, final QueryOptions options, final List lazyCall)
throws SQLException, IllegalArgumentException, IllegalAccessException {
@@ -99,12 +97,12 @@ public class AddOnSQLTableExternalForeinKeyAsList implements DataAccessAddOn {
field.set(data, idList);
count.inc();
}
-
+
@Override
public void createTables(final String tableName, final Field field, final StringBuilder mainTableBuilder, final List preActionList, final List postActionList,
final boolean createIfNotExist, final boolean createDrop, final int fieldId) throws Exception {
// TODO Auto-generated method stub
-
+
DataFactory.createTablesSpecificType(tableName, field, mainTableBuilder, preActionList, postActionList, createIfNotExist, createDrop, fieldId, String.class);
}
}
diff --git a/src/org/kar/archidata/dataAccess/addOn/model/LinkTable.java b/src/org/kar/archidata/dataAccess/addOn/model/LinkTable.java
index 828fe60..5257cd2 100644
--- a/src/org/kar/archidata/dataAccess/addOn/model/LinkTable.java
+++ b/src/org/kar/archidata/dataAccess/addOn/model/LinkTable.java
@@ -9,12 +9,12 @@ public class LinkTable extends GenericDataSoftDelete {
public LinkTable() {
// nothing to do...
}
-
+
public LinkTable(final long object1Id, final long object2Id) {
this.object1Id = object1Id;
this.object2Id = object2Id;
}
-
+
@DataComment("Object reference 1")
@Column(nullable = false)
public Long object1Id;
diff --git a/src/org/kar/archidata/db/DBConfig.java b/src/org/kar/archidata/db/DBConfig.java
index a43167e..fa8ad52 100644
--- a/src/org/kar/archidata/db/DBConfig.java
+++ b/src/org/kar/archidata/db/DBConfig.java
@@ -13,8 +13,8 @@ public class DBConfig {
private final String password;
private final String dbName;
private final boolean keepConnected;
-
- public DBConfig(String type, String hostname, Integer port, String login, String password, String dbName, boolean keepConnected) {
+
+ public DBConfig(final String type, final String hostname, final Integer port, final String login, final String password, final String dbName, final boolean keepConnected) {
if (type == null) {
this.type = "mysql";
} else {
@@ -35,43 +35,44 @@ public class DBConfig {
this.dbName = dbName;
this.keepConnected = keepConnected;
}
-
+
@Override
public String toString() {
- return "DBConfig{type='" + type + '\'' + ", hostname='" + hostname + '\'' + ", port=" + port + ", login='" + login + '\'' + ", password='" + password + '\'' + ", dbName='" + dbName + "' }";
+ return "DBConfig{type='" + this.type + '\'' + ", hostname='" + this.hostname + '\'' + ", port=" + this.port + ", login='" + this.login + '\'' + ", password='" + this.password + '\''
+ + ", dbName='" + this.dbName + "' }";
}
-
+
public String getHostname() {
- return hostname;
+ return this.hostname;
}
-
+
public int getPort() {
- return port;
+ return this.port;
}
-
+
public String getLogin() {
- return login;
+ return this.login;
}
-
+
public String getPassword() {
- return password;
+ return this.password;
}
-
+
public String getDbName() {
- return dbName;
+ return this.dbName;
}
-
+
public boolean getKeepConnected() {
- return keepConnected;
+ return this.keepConnected;
}
-
+
public String getUrl() {
return getUrl(false);
}
-
- public String getUrl(boolean isRoot) {
- if (type.equals("sqlite")) {
- if (isRoot == true) {
+
+ public String getUrl(final boolean isRoot) {
+ if (this.type.equals("sqlite")) {
+ if (isRoot) {
LOGGER.error("Can not manage root connection on SQLite...");
}
if (this.hostname.equals("memory")) {
diff --git a/src/org/kar/archidata/db/DBEntry.java b/src/org/kar/archidata/db/DBEntry.java
index 878bfb2..af7fe00 100644
--- a/src/org/kar/archidata/db/DBEntry.java
+++ b/src/org/kar/archidata/db/DBEntry.java
@@ -16,7 +16,7 @@ public class DBEntry implements Closeable {
public DBConfig config;
public Connection connection;
private static List stored = new ArrayList<>();
-
+
private DBEntry(final DBConfig config, final boolean root) throws IOException {
this.config = config;
if (root) {
@@ -25,11 +25,11 @@ public class DBEntry implements Closeable {
connect();
}
}
-
+
public static DBEntry createInterface(final DBConfig config) throws IOException {
return createInterface(config, false);
}
-
+
public static DBEntry createInterface(final DBConfig config, final boolean root) throws IOException {
if (config.getKeepConnected()) {
for (final DBEntry elem : stored) {
@@ -47,25 +47,25 @@ public class DBEntry implements Closeable {
return new DBEntry(config, root);
}
}
-
+
public void connectRoot() throws IOException {
try {
this.connection = DriverManager.getConnection(this.config.getUrl(true), this.config.getLogin(), this.config.getPassword());
} catch (final SQLException ex) {
throw new IOException("Connection db fail: " + ex.getMessage());
}
-
+
}
-
+
public void connect() throws IOException {
try {
this.connection = DriverManager.getConnection(this.config.getUrl(), this.config.getLogin(), this.config.getPassword());
} catch (final SQLException ex) {
throw new IOException("Connection db fail: " + ex.getMessage());
}
-
+
}
-
+
@Override
public void close() throws IOException {
if (this.config.getKeepConnected()) {
@@ -73,16 +73,16 @@ public class DBEntry implements Closeable {
}
closeForce();
}
-
+
public void closeForce() throws IOException {
try {
- //connection.commit();
+ // connection.commit();
this.connection.close();
} catch (final SQLException ex) {
throw new IOException("Dis-connection db fail: " + ex.getMessage());
}
}
-
+
public static void closeAllForceMode() throws IOException {
for (final DBEntry entry : stored) {
entry.closeForce();
diff --git a/src/org/kar/archidata/exception/FailException.java b/src/org/kar/archidata/exception/FailException.java
index 7b58416..deaf86a 100644
--- a/src/org/kar/archidata/exception/FailException.java
+++ b/src/org/kar/archidata/exception/FailException.java
@@ -5,15 +5,15 @@ import jakarta.ws.rs.core.Response;
public class FailException extends Exception {
private static final long serialVersionUID = 1L;
public final Response.Status status;
-
- public FailException(Response.Status status, String message) {
+
+ public FailException(final Response.Status status, final String message) {
super(message);
this.status = status;
}
-
- public FailException(String message) {
+
+ public FailException(final String message) {
super(message);
this.status = Response.Status.BAD_REQUEST;
-
+
}
}
diff --git a/src/org/kar/archidata/exception/InputException.java b/src/org/kar/archidata/exception/InputException.java
index 1a3a610..94768b5 100644
--- a/src/org/kar/archidata/exception/InputException.java
+++ b/src/org/kar/archidata/exception/InputException.java
@@ -6,14 +6,14 @@ public class InputException extends Exception {
private static final long serialVersionUID = 1L;
public final String missingVariable;
public final Response.Status status;
-
- public InputException(Response.Status status, String variable, String message) {
+
+ public InputException(final Response.Status status, final String variable, final String message) {
super(message);
this.missingVariable = variable;
this.status = status;
}
-
- public InputException(String variable, String message) {
+
+ public InputException(final String variable, final String message) {
super(message);
this.missingVariable = variable;
this.status = Response.Status.NOT_ACCEPTABLE;
diff --git a/src/org/kar/archidata/exception/NotFoundException.java b/src/org/kar/archidata/exception/NotFoundException.java
index d2e5fdb..c2fb400 100644
--- a/src/org/kar/archidata/exception/NotFoundException.java
+++ b/src/org/kar/archidata/exception/NotFoundException.java
@@ -4,8 +4,8 @@ import jakarta.ws.rs.core.Response;
public class NotFoundException extends FailException {
private static final long serialVersionUID = 1L;
-
- public NotFoundException(String message) {
+
+ public NotFoundException(final String message) {
super(Response.Status.NOT_FOUND, message);
}
}
diff --git a/src/org/kar/archidata/exception/RESTErrorResponseExeption.java b/src/org/kar/archidata/exception/RESTErrorResponseExeption.java
index fb52729..03b0717 100644
--- a/src/org/kar/archidata/exception/RESTErrorResponseExeption.java
+++ b/src/org/kar/archidata/exception/RESTErrorResponseExeption.java
@@ -9,9 +9,8 @@ public class RESTErrorResponseExeption extends Exception {
public String message;
public int status;
public String statusMessage;
-
+
public RESTErrorResponseExeption() {
- super();
this.uuid = null;
this.time = null;
this.error = null;
@@ -19,9 +18,8 @@ public class RESTErrorResponseExeption extends Exception {
this.status = 0;
this.statusMessage = null;
}
-
- public RESTErrorResponseExeption(UUID uuid, String time, String error, String message, int status, String statusMessage) {
- super();
+
+ public RESTErrorResponseExeption(final UUID uuid, final String time, final String error, final String message, final int status, final String statusMessage) {
this.uuid = uuid;
this.time = time;
this.error = error;
@@ -29,10 +27,11 @@ public class RESTErrorResponseExeption extends Exception {
this.status = status;
this.statusMessage = statusMessage;
}
-
+
@Override
public String toString() {
- return "RESTErrorResponseExeption [uuid=" + uuid + ", time=" + time + ", error=" + error + ", message=" + message + ", status=" + status + ", statusMessage=" + statusMessage + "]";
+ return "RESTErrorResponseExeption [uuid=" + this.uuid + ", time=" + this.time + ", error=" + this.error + ", message=" + this.message + ", status=" + this.status + ", statusMessage="
+ + this.statusMessage + "]";
}
-
+
}
diff --git a/src/org/kar/archidata/exception/SystemException.java b/src/org/kar/archidata/exception/SystemException.java
index 70e91bb..22d49e9 100644
--- a/src/org/kar/archidata/exception/SystemException.java
+++ b/src/org/kar/archidata/exception/SystemException.java
@@ -5,13 +5,13 @@ import jakarta.ws.rs.core.Response;
public class SystemException extends Exception {
private static final long serialVersionUID = 1L;
public final Response.Status status;
-
- public SystemException(Response.Status status, String message) {
+
+ public SystemException(final Response.Status status, final String message) {
super(message);
this.status = status;
}
-
- public SystemException(String message) {
+
+ public SystemException(final String message) {
super(message);
this.status = Response.Status.INTERNAL_SERVER_ERROR;
}
diff --git a/src/org/kar/archidata/exception/UnAuthorizedException.java b/src/org/kar/archidata/exception/UnAuthorizedException.java
index 54085b9..afcb4c8 100644
--- a/src/org/kar/archidata/exception/UnAuthorizedException.java
+++ b/src/org/kar/archidata/exception/UnAuthorizedException.java
@@ -4,8 +4,8 @@ import jakarta.ws.rs.core.Response;
public class UnAuthorizedException extends FailException {
private static final long serialVersionUID = 1L;
-
- public UnAuthorizedException(String message) {
+
+ public UnAuthorizedException(final String message) {
super(Response.Status.UNAUTHORIZED, message);
}
}
diff --git a/src/org/kar/archidata/filter/AuthenticationFilter.java b/src/org/kar/archidata/filter/AuthenticationFilter.java
index 4f782f1..29227b2 100644
--- a/src/org/kar/archidata/filter/AuthenticationFilter.java
+++ b/src/org/kar/archidata/filter/AuthenticationFilter.java
@@ -49,15 +49,11 @@ public class AuthenticationFilter implements ContainerRequestFilter {
public AuthenticationFilter(final String applicationName) {
this.applicationName = applicationName;
}
-
+
@Override
public void filter(final ContainerRequestContext requestContext) throws IOException {
- /*
- logger.debug("-----------------------------------------------------");
- logger.debug("---- Check if have authorization ----");
- logger.debug("-----------------------------------------------------");
- logger.debug(" for:{}", requestContext.getUriInfo().getPath());
- */
+ /* logger.debug("-----------------------------------------------------"); logger.debug("---- Check if have authorization ----");
+ * logger.debug("-----------------------------------------------------"); logger.debug(" for:{}", requestContext.getUriInfo().getPath()); */
final Method method = this.resourceInfo.getResourceMethod();
// Access denied for all
if (method.isAnnotationPresent(DenyAll.class)) {
@@ -66,9 +62,9 @@ public class AuthenticationFilter implements ContainerRequestFilter {
return;
}
- //Access allowed for all
+ // Access allowed for all
if (method.isAnnotationPresent(PermitAll.class)) {
- //logger.debug(" ==> permit all " + requestContext.getUriInfo().getPath());
+ // logger.debug(" ==> permit all " + requestContext.getUriInfo().getPath());
// no control ...
return;
}
@@ -81,7 +77,7 @@ public class AuthenticationFilter implements ContainerRequestFilter {
// Get the Authorization header from the request
String authorizationHeader = requestContext.getHeaderString(HttpHeaders.AUTHORIZATION);
- //logger.debug("authorizationHeader: {}", authorizationHeader);
+ // logger.debug("authorizationHeader: {}", authorizationHeader);
if (authorizationHeader == null && method.isAnnotationPresent(PermitTokenInURI.class)) {
final MultivaluedMap quaryparam = requestContext.getUriInfo().getQueryParameters();
for (final Entry> item : quaryparam.entrySet()) {
@@ -106,7 +102,7 @@ public class AuthenticationFilter implements ContainerRequestFilter {
if (isJwtToken) {
// Extract the token from the Authorization header (Remove "Yota ")
final String token = authorizationHeader.substring(AUTHENTICATION_SCHEME.length()).trim();
- //logger.debug("token: {}", token);
+ // logger.debug("token: {}", token);
try {
userByToken = validateJwtToken(token);
} catch (final Exception e) {
@@ -122,7 +118,7 @@ public class AuthenticationFilter implements ContainerRequestFilter {
} else {
// Extract the token from the Authorization header (Remove "Zota ")
final String token = authorizationHeader.substring(AUTHENTICATION_TOKEN_SCHEME.length()).trim();
- //logger.debug("token: {}", token);
+ // logger.debug("token: {}", token);
try {
userByToken = validateToken(token);
} catch (final Exception e) {
@@ -151,7 +147,7 @@ public class AuthenticationFilter implements ContainerRequestFilter {
break;
}
}
- //Is user valid?
+ // Is user valid?
if (!haveRight) {
this.logger.error("REJECTED not enought right : {} require: {}", requestContext.getUriInfo().getPath(), roles);
requestContext.abortWith(Response.status(Response.Status.UNAUTHORIZED).entity("Not enought RIGHT !!!").build());
@@ -193,7 +189,7 @@ public class AuthenticationFilter implements ContainerRequestFilter {
// must be override to be good implementation
protected UserByToken validateJwtToken(final String authorization) throws Exception {
- //logger.debug(" validate token : " + authorization);
+ // logger.debug(" validate token : " + authorization);
final JWTClaimsSet ret = JWTWrapper.validateToken(authorization, "KarAuth", null);
// check the token is valid !!! (signed and coherent issuer...
if (ret == null) {
@@ -216,8 +212,8 @@ public class AuthenticationFilter implements ContainerRequestFilter {
this.logger.error("Connect with no right for this application='{}' full Right='{}'", this.applicationName, rights);
}
}
- //logger.debug("request user: '{}' right: '{}' row='{}'", userUID, user.right, rowRight);
+ // logger.debug("request user: '{}' right: '{}' row='{}'", userUID, user.right, rowRight);
return user;
- //return UserDB.getUserOrCreate(id, (String)ret.getClaim("login") );
+ // return UserDB.getUserOrCreate(id, (String)ret.getClaim("login") );
}
}
diff --git a/src/org/kar/archidata/filter/CORSFilter.java b/src/org/kar/archidata/filter/CORSFilter.java
index 6675bc9..c197dcb 100644
--- a/src/org/kar/archidata/filter/CORSFilter.java
+++ b/src/org/kar/archidata/filter/CORSFilter.java
@@ -9,14 +9,14 @@ import jakarta.ws.rs.ext.Provider;
@Provider
public class CORSFilter implements ContainerResponseFilter {
-
+
@Override
- public void filter(ContainerRequestContext request, ContainerResponseContext response) throws IOException {
- //System.err.println("filter cors ..." + request.toString());
-
+ public void filter(final ContainerRequestContext request, final ContainerResponseContext response) throws IOException {
+ // System.err.println("filter cors ..." + request.toString());
+
response.getHeaders().add("Access-Control-Allow-Origin", "*");
response.getHeaders().add("Access-Control-Allow-Headers", "*");
- // "Origin, content-type, Content-type, Accept, authorization, mime-type, filename");
+ // "Origin, content-type, Content-type, Accept, authorization, mime-type, filename");
response.getHeaders().add("Access-Control-Allow-Credentials", "true");
response.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");
}
diff --git a/src/org/kar/archidata/filter/GenericContext.java b/src/org/kar/archidata/filter/GenericContext.java
index 4fbaa2e..4938741 100644
--- a/src/org/kar/archidata/filter/GenericContext.java
+++ b/src/org/kar/archidata/filter/GenericContext.java
@@ -5,13 +5,13 @@ import java.security.Principal;
import org.kar.archidata.model.UserByToken;
public class GenericContext implements Principal {
-
+
public UserByToken userByToken;
-
- public GenericContext(UserByToken userByToken) {
+
+ public GenericContext(final UserByToken userByToken) {
this.userByToken = userByToken;
}
-
+
@Override
public String getName() {
if (this.userByToken == null) {
diff --git a/src/org/kar/archidata/filter/MySecurityContext.java b/src/org/kar/archidata/filter/MySecurityContext.java
index a66453c..b1b9614 100644
--- a/src/org/kar/archidata/filter/MySecurityContext.java
+++ b/src/org/kar/archidata/filter/MySecurityContext.java
@@ -8,42 +8,42 @@ import jakarta.ws.rs.core.SecurityContext;
// https://simplapi.wordpress.com/2015/09/19/jersey-jax-rs-securitycontext-in-action/
class MySecurityContext implements SecurityContext {
-
+
private final GenericContext contextPrincipale;
private final String sheme;
-
- public MySecurityContext(UserByToken userByToken, String sheme) {
+
+ public MySecurityContext(final UserByToken userByToken, final String sheme) {
this.contextPrincipale = new GenericContext(userByToken);
this.sheme = sheme;
}
-
+
@Override
public Principal getUserPrincipal() {
- return contextPrincipale;
+ return this.contextPrincipale;
}
-
+
@Override
- public boolean isUserInRole(String role) {
- if (contextPrincipale.userByToken != null) {
- Object value = this.contextPrincipale.userByToken.right.get(role);
- if (value instanceof Boolean ret) {
+ public boolean isUserInRole(final String role) {
+ if (this.contextPrincipale.userByToken != null) {
+ final Object value = this.contextPrincipale.userByToken.right.get(role);
+ if (value instanceof final Boolean ret) {
return ret;
}
}
return false;
}
-
+
@Override
public boolean isSecure() {
- return sheme.equalsIgnoreCase("https");
+ return this.sheme.equalsIgnoreCase("https");
}
-
+
@Override
public String getAuthenticationScheme() {
- if (contextPrincipale.userByToken != null) {
+ if (this.contextPrincipale.userByToken != null) {
return "Zota";
}
return null;
}
-
+
}
\ No newline at end of file
diff --git a/src/org/kar/archidata/filter/OptionFilter.java b/src/org/kar/archidata/filter/OptionFilter.java
index cff309a..5a9991c 100644
--- a/src/org/kar/archidata/filter/OptionFilter.java
+++ b/src/org/kar/archidata/filter/OptionFilter.java
@@ -12,7 +12,7 @@ import jakarta.ws.rs.ext.Provider;
@PreMatching
public class OptionFilter implements ContainerRequestFilter {
@Override
- public void filter(ContainerRequestContext requestContext) throws IOException {
+ public void filter(final ContainerRequestContext requestContext) throws IOException {
if (requestContext.getMethod().contentEquals("OPTIONS")) {
requestContext.abortWith(Response.status(Response.Status.NO_CONTENT).build());
}
diff --git a/src/org/kar/archidata/migration/MigrationEngine.java b/src/org/kar/archidata/migration/MigrationEngine.java
index 0c60b81..29861da 100644
--- a/src/org/kar/archidata/migration/MigrationEngine.java
+++ b/src/org/kar/archidata/migration/MigrationEngine.java
@@ -16,49 +16,39 @@ import org.slf4j.LoggerFactory;
public class MigrationEngine {
final static Logger LOGGER = LoggerFactory.getLogger(MigrationEngine.class);
-
+
// List of order migrations
private final List datas;
// initialization of the migration if the DB is not present...
private MigrationInterface init;
-
- /**
- * Migration engine constructor (empty).
- */
+
+ /** Migration engine constructor (empty). */
public MigrationEngine() {
this(new ArrayList<>(), null);
}
-
- /**
- * Migration engine constructor (specific mode).
+
+ /** Migration engine constructor (specific mode).
* @param datas All the migration ordered.
- * @param init Initialization migration model.
- */
+ * @param init Initialization migration model. */
public MigrationEngine(final List datas, final MigrationInterface init) {
this.datas = datas;
this.init = init;
}
-
- /**
- * Add a Migration in the list
- * @param migration Migration to add.
- */
+
+ /** Add a Migration in the list
+ * @param migration Migration to add. */
public void add(final MigrationInterface migration) {
this.datas.add(migration);
}
-
- /**
- * Set first initialization class
- * @param migration migration class for first init.
- */
+
+ /** Set first initialization class
+ * @param migration migration class for first init. */
public void setInit(final MigrationInterface migration) {
this.init = migration;
}
-
- /**
- * Get the current version/migration name
- * @return Model represent the last migration. If null then no migration has been done.
- */
+
+ /** Get the current version/migration name
+ * @return Model represent the last migration. If null then no migration has been done. */
public Migration getCurrentVersion() {
if (!DataAccess.isTableExist("KAR_migration")) {
return null;
@@ -84,16 +74,14 @@ public class MigrationEngine {
}
return null;
}
-
- /**
- * Process the automatic migration of the system
+
+ /** Process the automatic migration of the system
* @param config SQL connection for the migration
* @throws InterruptedException user interrupt the migration
- * @throws IOException Error if access on the DB
- */
+ * @throws IOException Error if access on the DB */
public void migrate(final DBConfig config) throws InterruptedException, IOException {
LOGGER.info("Execute migration ... [BEGIN]");
-
+
// STEP 1: Check the DB exist:
LOGGER.info("Verify existance of '{}'", config.getDbName());
boolean exist = DataAccess.isDBExist(config.getDbName());
@@ -140,7 +128,7 @@ public class MigrationEngine {
final Migration currentVersion = getCurrentVersion();
List toApply = new ArrayList<>();
if (currentVersion == null) {
- //This is a first migration
+ // This is a first migration
LOGGER.info("First installation of the system ==> Create the DB");
if (this.init == null) {
toApply = this.datas;
@@ -197,7 +185,7 @@ public class MigrationEngine {
}
LOGGER.info("Execute migration ... [ END ]");
}
-
+
public void migrateSingle(final DBEntry entry, final MigrationInterface elem, final int id, final int count) {
LOGGER.info("---------------------------------------------------------");
LOGGER.info("-- Migrate: [{}/{}] {} [BEGIN]", id, count, elem.getName());
@@ -216,7 +204,7 @@ public class MigrationEngine {
// TODO Auto-generated catch block
e.printStackTrace();
}
-
+
if (elem.applyMigration(entry, log, migrationResult)) {
migrationResult.terminated = true;
try {
@@ -245,7 +233,7 @@ public class MigrationEngine {
}
LOGGER.info("Migrate: [{}/{}] {} [ END ]", id, count, elem.getName());
}
-
+
public void revertTo(final DBEntry entry, final String migrationName) {
final Migration currentVersion = getCurrentVersion();
final List toApply = new ArrayList<>();
@@ -268,10 +256,10 @@ public class MigrationEngine {
revertSingle(entry, elem, id, count);
}
}
-
+
public void revertSingle(final DBEntry entry, final MigrationInterface elem, final int id, final int count) {
LOGGER.info("Revert migration: {} [BEGIN]", elem.getName());
-
+
LOGGER.info("Revert migration: {} [ END ]", elem.getName());
}
}
diff --git a/src/org/kar/archidata/migration/MigrationException.java b/src/org/kar/archidata/migration/MigrationException.java
index 55c24a3..c1f140d 100644
--- a/src/org/kar/archidata/migration/MigrationException.java
+++ b/src/org/kar/archidata/migration/MigrationException.java
@@ -1,7 +1,7 @@
package org.kar.archidata.migration;
public class MigrationException extends Exception {
-
+
private static final long serialVersionUID = 20230502L;
-
+
}
diff --git a/src/org/kar/archidata/migration/MigrationInterface.java b/src/org/kar/archidata/migration/MigrationInterface.java
index c76a0f5..697f8e3 100644
--- a/src/org/kar/archidata/migration/MigrationInterface.java
+++ b/src/org/kar/archidata/migration/MigrationInterface.java
@@ -4,32 +4,24 @@ import org.kar.archidata.db.DBEntry;
import org.kar.archidata.migration.model.Migration;
public interface MigrationInterface {
- /**
- * Get Name of the migration
- * @return Migration name
- */
+ /** Get Name of the migration
+ * @return Migration name */
String getName();
-
- /**
- * Migrate the system to a new version.
+
+ /** Migrate the system to a new version.
* @param entry DB interface for the migration.
* @param log Stored data in the BDD for the migration progression.
* @param migration Migration post data on each step...
- * @return true if migration is finished.
- */
+ * @return true if migration is finished. */
boolean applyMigration(DBEntry entry, StringBuilder log, Migration model);
-
- /**
- * Remove a migration the system to the previous version.
+
+ /** Remove a migration the system to the previous version.
* @param entry DB interface for the migration.
* @param log Stored data in the BDD for the migration progression.
- * @return true if migration is finished.
- */
+ * @return true if migration is finished. */
boolean revertMigration(DBEntry entry, StringBuilder log);
-
- /**
- * Get the number of step in the migration process.
- * @return count of SQL access.
- */
+
+ /** Get the number of step in the migration process.
+ * @return count of SQL access. */
int getNumberOfStep();
}
diff --git a/src/org/kar/archidata/migration/MigrationSqlStep.java b/src/org/kar/archidata/migration/MigrationSqlStep.java
index 6e57fa3..d0a5c05 100644
--- a/src/org/kar/archidata/migration/MigrationSqlStep.java
+++ b/src/org/kar/archidata/migration/MigrationSqlStep.java
@@ -13,13 +13,11 @@ import org.kar.archidata.util.ConfigBaseVariable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-record Action(
- String action,
- List filterDB) {
+record Action(String action, List filterDB) {
public Action(final String action) {
this(action, List.of());
}
-
+
public Action(final String action, final String filterDB) {
this(action, List.of(filterDB));
}
@@ -28,26 +26,26 @@ record Action(
public class MigrationSqlStep implements MigrationInterface {
final static Logger LOGGER = LoggerFactory.getLogger(MigrationSqlStep.class);
private final List actions = new ArrayList<>();
-
+
@Override
public String getName() {
return getClass().getCanonicalName();
}
-
+
public void display() {
for (int iii = 0; iii < this.actions.size(); iii++) {
final Action action = this.actions.get(iii);
LOGGER.info(" >>>> SQL ACTION : {}/{} ==> filter='{}'\n{}", iii, this.actions.size(), action.filterDB(), action.action());
}
}
-
+
@Override
public boolean applyMigration(final DBEntry entry, final StringBuilder log, final Migration model) {
for (int iii = 0; iii < this.actions.size(); iii++) {
log.append("action [" + (iii + 1) + "/" + this.actions.size() + "]\n");
LOGGER.info(" >>>> SQL ACTION : {}/{}", iii + 1, this.actions.size());
final Action action = this.actions.get(iii);
-
+
LOGGER.info("SQL request: ```{}``` on '{}' current={}", action.action(), action.filterDB(), ConfigBaseVariable.getDBType());
log.append("SQL: " + action.action() + " on " + action.filterDB() + "\n");
boolean isValid = true;
@@ -98,30 +96,30 @@ public class MigrationSqlStep implements MigrationInterface {
}
return true;
}
-
+
@Override
public boolean revertMigration(final DBEntry entry, final StringBuilder log) {
return false;
}
-
+
public void addAction(final String action) {
this.actions.add(new Action(action));
}
-
+
public void addAction(final String action, final String filterdBType) {
this.actions.add(new Action(action, filterdBType));
}
-
+
public void addClass(final Class> clazz) throws Exception {
final List tmp = DataFactory.createTable(clazz);
for (final String elem : tmp) {
this.actions.add(new Action(elem));
}
}
-
+
@Override
public int getNumberOfStep() {
return this.actions.size();
}
-
+
}
diff --git a/src/org/kar/archidata/model/Data.java b/src/org/kar/archidata/model/Data.java
index 10c4272..953e737 100644
--- a/src/org/kar/archidata/model/Data.java
+++ b/src/org/kar/archidata/model/Data.java
@@ -12,7 +12,7 @@ import jakarta.persistence.Table;
@DataIfNotExists
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Data extends GenericDataSoftDelete {
-
+
@Column(length = 128, nullable = false)
@DataComment("Sha512 of the data")
public String sha512;
diff --git a/src/org/kar/archidata/model/GetToken.java b/src/org/kar/archidata/model/GetToken.java
index 5191d26..6e356b3 100644
--- a/src/org/kar/archidata/model/GetToken.java
+++ b/src/org/kar/archidata/model/GetToken.java
@@ -3,5 +3,5 @@ package org.kar.archidata.model;
import com.fasterxml.jackson.annotation.JsonInclude;
@JsonInclude(JsonInclude.Include.NON_NULL)
-public record GetToken(
- String jwt) {}
+public record GetToken(String jwt) {
+}
diff --git a/src/org/kar/archidata/model/Migration.java b/src/org/kar/archidata/model/Migration.java
index d0724ea..23580e8 100644
--- a/src/org/kar/archidata/model/Migration.java
+++ b/src/org/kar/archidata/model/Migration.java
@@ -2,5 +2,5 @@ package org.kar.archidata.model;
public class Migration extends GenericDataSoftDelete {
public String migrationId;
-
+
}
diff --git a/src/org/kar/archidata/model/Token.java b/src/org/kar/archidata/model/Token.java
index 28da800..926ed11 100644
--- a/src/org/kar/archidata/model/Token.java
+++ b/src/org/kar/archidata/model/Token.java
@@ -9,18 +9,18 @@ public class Token {
public String token;
public String createTime;
public String endValidityTime;
-
+
public Token() {}
-
- public Token(long id, long userId, String token, String createTime, String endValidityTime) {
+
+ public Token(final long id, final long userId, final String token, final String createTime, final String endValidityTime) {
this.id = id;
this.userId = userId;
this.token = token;
this.createTime = createTime;
this.endValidityTime = endValidityTime;
}
-
- public Token(ResultSet rs) {
+
+ public Token(final ResultSet rs) {
int iii = 1;
try {
this.id = rs.getLong(iii++);
@@ -28,13 +28,13 @@ public class Token {
this.token = rs.getString(iii++);
this.createTime = rs.getString(iii++);
this.endValidityTime = rs.getString(iii++);
- } catch (SQLException ex) {
+ } catch (final SQLException ex) {
ex.printStackTrace();
}
}
-
+
@Override
public String toString() {
- return "Token{" + "id=" + id + ", userId=" + userId + ", token='" + token + '\'' + ", createTime=" + createTime + ", endValidityTime=" + endValidityTime + '}';
+ return "Token{" + "id=" + this.id + ", userId=" + this.userId + ", token='" + this.token + '\'' + ", createTime=" + this.createTime + ", endValidityTime=" + this.endValidityTime + '}';
}
}
diff --git a/src/org/kar/archidata/model/User.java b/src/org/kar/archidata/model/User.java
index dbe7b57..d4a3cbc 100644
--- a/src/org/kar/archidata/model/User.java
+++ b/src/org/kar/archidata/model/User.java
@@ -33,7 +33,7 @@ import jakarta.persistence.Table;
public class User extends GenericDataSoftDelete {
@Column(length = 128)
public String login = null;
-
+
public Timestamp lastConnection = null;
@DataDefault("'0'")
@Column(nullable = false)
@@ -44,13 +44,13 @@ public class User extends GenericDataSoftDelete {
@DataDefault("'0'")
@Column(nullable = false)
public boolean removed = false;
-
+
@ManyToMany(fetch = FetchType.LAZY, targetEntity = Data.class)
public List covers;
-
+
@Override
public String toString() {
- return "User [login=" + login + ", last=" + lastConnection + ", admin=" + admin + "]";
+ return "User [login=" + this.login + ", last=" + this.lastConnection + ", admin=" + this.admin + "]";
}
-
+
}
diff --git a/src/org/kar/archidata/model/UserByToken.java b/src/org/kar/archidata/model/UserByToken.java
index bf274bb..d22c355 100644
--- a/src/org/kar/archidata/model/UserByToken.java
+++ b/src/org/kar/archidata/model/UserByToken.java
@@ -8,44 +8,44 @@ public class UserByToken {
public static final int TYPE_APPLICATION = -2;
// application internal management type: an application generic Id
public Integer type = null;
-
+
public Long id = null;
public Long parentId = null; // FOr application, this is the id of the application, and of user token, this is the USERID
public String name = null;
// Right map
public Map right = new HashMap<>();
-
- public boolean hasRight(String key, Object value) {
+
+ public boolean hasRight(final String key, final Object value) {
if (!this.right.containsKey(key)) {
return false;
}
- Object data = this.right.get(key);
- if (data instanceof Boolean elem) {
- if (value instanceof Boolean castVal) {
+ final Object data = this.right.get(key);
+ if (data instanceof final Boolean elem) {
+ if (value instanceof final Boolean castVal) {
if (elem == castVal) {
return true;
}
}
return false;
}
- if (data instanceof String elem) {
- if (value instanceof String castVal) {
+ if (data instanceof final String elem) {
+ if (value instanceof final String castVal) {
if (elem.equals(castVal)) {
return true;
}
}
return false;
}
- if (data instanceof Long elem) {
- if (value instanceof Long castVal) {
+ if (data instanceof final Long elem) {
+ if (value instanceof final Long castVal) {
if (elem == castVal) {
return true;
}
}
return false;
}
- if (data instanceof Double elem) {
- if (value instanceof Double castVal) {
+ if (data instanceof final Double elem) {
+ if (value instanceof final Double castVal) {
if (elem == castVal) {
return true;
}
@@ -54,5 +54,5 @@ public class UserByToken {
}
return false;
}
-
+
}
diff --git a/src/org/kar/archidata/util/ConfigBaseVariable.java b/src/org/kar/archidata/util/ConfigBaseVariable.java
index 92f693e..3d29992 100644
--- a/src/org/kar/archidata/util/ConfigBaseVariable.java
+++ b/src/org/kar/archidata/util/ConfigBaseVariable.java
@@ -31,11 +31,11 @@ public class ConfigBaseVariable {
ssoToken = System.getenv("SSO_TOKEN");
testMode = System.getenv("TEST_MODE");
}
-
+
static {
clearAllValue();
}
-
+
public static String getTmpDataFolder() {
if (tmpDataFolder == null) {
return "/application/data/tmp";
@@ -109,11 +109,11 @@ public class ConfigBaseVariable {
public static String getSSOAddress() {
return ssoAdress;
}
-
+
public static String ssoToken() {
return ssoToken;
}
-
+
public static boolean getTestMode() {
if (testMode == null) {
return false;
diff --git a/src/org/kar/archidata/util/DataTools.java b/src/org/kar/archidata/util/DataTools.java
index 8970945..db751e9 100644
--- a/src/org/kar/archidata/util/DataTools.java
+++ b/src/org/kar/archidata/util/DataTools.java
@@ -14,9 +14,9 @@ import java.sql.SQLException;
import java.util.List;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
+import org.kar.archidata.dataAccess.DataAccess;
import org.kar.archidata.dataAccess.QueryAnd;
import org.kar.archidata.dataAccess.QueryCondition;
-import org.kar.archidata.dataAccess.DataAccess;
import org.kar.archidata.dataAccess.addOn.AddOnManyToMany;
import org.kar.archidata.model.Data;
import org.slf4j.Logger;
@@ -26,104 +26,88 @@ import jakarta.ws.rs.core.Response;
public class DataTools {
private final static Logger LOGGER = LoggerFactory.getLogger(DataTools.class);
-
+
public final static int CHUNK_SIZE = 1024 * 1024; // 1MB chunks
public final static int CHUNK_SIZE_IN = 50 * 1024 * 1024; // 1MB chunks
- /**
- * Upload some data
- */
+ /** Upload some data */
private static long tmpFolderId = 1;
-
- public static void createFolder(String path) throws IOException {
+
+ public static void createFolder(final String path) throws IOException {
if (!Files.exists(java.nio.file.Path.of(path))) {
LOGGER.info("Create folder: " + path);
Files.createDirectories(java.nio.file.Path.of(path));
}
}
-
+
public static long getTmpDataId() {
return tmpFolderId++;
}
-
- public static String getTmpFileInData(long tmpFolderId) {
- String filePath = ConfigBaseVariable.getTmpDataFolder() + File.separator + tmpFolderId;
+
+ public static String getTmpFileInData(final long tmpFolderId) {
+ final String filePath = ConfigBaseVariable.getTmpDataFolder() + File.separator + tmpFolderId;
try {
createFolder(ConfigBaseVariable.getTmpDataFolder() + File.separator);
- } catch (IOException e) {
+ } catch (final IOException e) {
e.printStackTrace();
}
return filePath;
}
-
+
public static String getTmpFolder() {
- String filePath = ConfigBaseVariable.getTmpDataFolder() + File.separator + tmpFolderId++;
+ final String filePath = ConfigBaseVariable.getTmpDataFolder() + File.separator + tmpFolderId++;
try {
createFolder(ConfigBaseVariable.getTmpDataFolder() + File.separator);
- } catch (IOException e) {
+ } catch (final IOException e) {
e.printStackTrace();
}
return filePath;
}
-
- public static String getFileData(long tmpFolderId) {
- String filePath = ConfigBaseVariable.getMediaDataFolder() + File.separator + tmpFolderId + File.separator + "data";
+
+ public static String getFileData(final long tmpFolderId) {
+ final String filePath = ConfigBaseVariable.getMediaDataFolder() + File.separator + tmpFolderId + File.separator + "data";
try {
createFolder(ConfigBaseVariable.getMediaDataFolder() + File.separator + tmpFolderId + File.separator);
- } catch (IOException e) {
+ } catch (final IOException e) {
e.printStackTrace();
}
return filePath;
}
-
- public static Data getWithSha512(String sha512) {
+
+ public static Data getWithSha512(final String sha512) {
try {
return DataAccess.getWhere(Data.class, new QueryCondition("sha512", "=", sha512));
- } catch (Exception e) {
+ } catch (final Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
-
- public static Data getWithId(long id) {
+
+ public static Data getWithId(final long id) {
try {
return DataAccess.getWhere(Data.class, new QueryAnd(List.of(new QueryCondition("deleted", "=", false), new QueryCondition("id", "=", id))));
- } catch (Exception e) {
+ } catch (final Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
-
- public static Data createNewData(long tmpUID, String originalFileName, String sha512) throws IOException, SQLException {
+
+ public static Data createNewData(final long tmpUID, final String originalFileName, final String sha512) throws IOException, SQLException {
// determine mime type:
String mimeType = "";
- String extension = originalFileName.substring(originalFileName.lastIndexOf('.') + 1);
- switch (extension.toLowerCase()) {
- case "jpg":
- case "jpeg":
- mimeType = "image/jpeg";
- break;
- case "png":
- mimeType = "image/png";
- break;
- case "webp":
- mimeType = "image/webp";
- break;
- case "mka":
- mimeType = "audio/x-matroska";
- break;
- case "mkv":
- mimeType = "video/x-matroska";
- break;
- case "webm":
- mimeType = "video/webm";
- break;
- default:
- throw new IOException("Can not find the mime type of data input: '" + extension + "'");
- }
- String tmpPath = getTmpFileInData(tmpUID);
- long fileSize = Files.size(Paths.get(tmpPath));
+ final String extension = originalFileName.substring(originalFileName.lastIndexOf('.') + 1);
+ mimeType = switch (extension.toLowerCase()) {
+ case "jpg", "jpeg" -> "image/jpeg";
+ case "png" -> "image/png";
+ case "webp" -> "image/webp";
+ case "mka" -> "audio/x-matroska";
+ case "mkv" -> "video/x-matroska";
+ case "webm" -> "video/webm";
+ default -> throw new IOException("Can not find the mime type of data input: '" + extension + "'");
+ };
+ final String tmpPath = getTmpFileInData(tmpUID);
+ final long fileSize = Files.size(Paths.get(tmpPath));
Data out = new Data();
;
try {
@@ -131,62 +115,62 @@ public class DataTools {
out.mimeType = mimeType;
out.size = fileSize;
out = DataAccess.insert(out);
- } catch (SQLException ex) {
+ } catch (final SQLException ex) {
ex.printStackTrace();
return null;
- } catch (Exception e) {
+ } catch (final Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
-
- String mediaPath = getFileData(out.id);
+
+ final String mediaPath = getFileData(out.id);
LOGGER.info("src = {}", tmpPath);
LOGGER.info("dst = {}", mediaPath);
Files.move(Paths.get(tmpPath), Paths.get(mediaPath), StandardCopyOption.ATOMIC_MOVE);
-
+
LOGGER.info("Move done");
// all is done the file is correctly installed...
return out;
}
-
- public static void undelete(Long id) {
+
+ public static void undelete(final Long id) {
try {
DataAccess.unsetDelete(Data.class, id);
- } catch (Exception e) {
+ } catch (final Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
-
- public static String saveTemporaryFile(InputStream uploadedInputStream, long idData) {
+
+ public static String saveTemporaryFile(final InputStream uploadedInputStream, final long idData) {
return saveFile(uploadedInputStream, getTmpFileInData(idData));
}
-
- public static void removeTemporaryFile(long idData) {
- String filepath = getTmpFileInData(idData);
+
+ public static void removeTemporaryFile(final long idData) {
+ final String filepath = getTmpFileInData(idData);
if (Files.exists(Paths.get(filepath))) {
try {
Files.delete(Paths.get(filepath));
- } catch (IOException e) {
+ } catch (final IOException e) {
LOGGER.info("can not delete temporary file : {}", Paths.get(filepath));
e.printStackTrace();
}
}
}
-
+
// save uploaded file to a defined location on the server
- public static String saveFile(InputStream uploadedInputStream, String serverLocation) {
+ public static String saveFile(final InputStream uploadedInputStream, final String serverLocation) {
String out = "";
try {
OutputStream outpuStream = new FileOutputStream(new File(serverLocation));
int read = 0;
- byte[] bytes = new byte[CHUNK_SIZE_IN];
- MessageDigest md = MessageDigest.getInstance("SHA-512");
-
+ final byte[] bytes = new byte[CHUNK_SIZE_IN];
+ final MessageDigest md = MessageDigest.getInstance("SHA-512");
+
outpuStream = new FileOutputStream(new File(serverLocation));
while ((read = uploadedInputStream.read(bytes)) != -1) {
- //logger.debug("write {}", read);
+ // logger.debug("write {}", read);
md.update(bytes, 0, read);
outpuStream.write(bytes, 0, read);
}
@@ -194,41 +178,36 @@ public class DataTools {
outpuStream.flush();
outpuStream.close();
// create the end of sha512
- byte[] sha512Digest = md.digest();
+ final byte[] sha512Digest = md.digest();
// convert in hexadecimal
out = bytesToHex(sha512Digest);
uploadedInputStream.close();
- } catch (IOException ex) {
+ } catch (final IOException ex) {
LOGGER.error("Can not write in temporary file ... ");
ex.printStackTrace();
- } catch (NoSuchAlgorithmException ex) {
+ } catch (final NoSuchAlgorithmException ex) {
LOGGER.error("Can not find sha512 algorithms");
ex.printStackTrace();
}
return out;
}
-
+
// curl http://localhost:9993/api/users/3
- //@Secured
- /*
- @GET
- @Path("{id}")
- //@RolesAllowed("GUEST")
- @Produces(MediaType.APPLICATION_OCTET_STREAM)
- public Response retriveData(@HeaderParam("Range") String range, @PathParam("id") Long id) throws Exception {
- return retriveDataFull(range, id, "no-name");
- }
- */
-
- public static String bytesToHex(byte[] bytes) {
- StringBuilder sb = new StringBuilder();
- for (byte b : bytes) {
+ // @Secured
+ /* @GET
+ * @Path("{id}") //@RolesAllowed("GUEST")
+ * @Produces(MediaType.APPLICATION_OCTET_STREAM) public Response retriveData(@HeaderParam("Range") String range, @PathParam("id") Long id) throws Exception { return retriveDataFull(range, id,
+ * "no-name"); } */
+
+ public static String bytesToHex(final byte[] bytes) {
+ final StringBuilder sb = new StringBuilder();
+ for (final byte b : bytes) {
sb.append(String.format("%02x", b));
}
return sb.toString();
}
-
- public static String multipartCorrection(String data) {
+
+ public static String multipartCorrection(final String data) {
if (data == null) {
return null;
}
@@ -240,40 +219,40 @@ public class DataTools {
}
return data;
}
-
- public static Response uploadCover(Class clazz, Long id, String fileName, InputStream fileInputStream, FormDataContentDisposition fileMetaData) {
+
+ public static Response uploadCover(final Class clazz, final Long id, String fileName, final InputStream fileInputStream, final FormDataContentDisposition fileMetaData) {
try {
// correct input string stream :
fileName = multipartCorrection(fileName);
-
- //public NodeSmall uploadFile(final FormDataMultiPart form) {
+
+ // public NodeSmall uploadFile(final FormDataMultiPart form) {
LOGGER.info("Upload media file: {}", fileMetaData);
LOGGER.info(" - id: {}", id);
LOGGER.info(" - file_name: ", fileName);
LOGGER.info(" - fileInputStream: {}", fileInputStream);
LOGGER.info(" - fileMetaData: {}", fileMetaData);
- T media = DataAccess.get(clazz, id);
+ final T media = DataAccess.get(clazz, id);
if (media == null) {
return Response.notModified("Media Id does not exist or removed...").build();
}
-
- long tmpUID = getTmpDataId();
- String sha512 = saveTemporaryFile(fileInputStream, tmpUID);
+
+ final long tmpUID = getTmpDataId();
+ final String sha512 = saveTemporaryFile(fileInputStream, tmpUID);
Data data = getWithSha512(sha512);
if (data == null) {
LOGGER.info("Need to add the data in the BDD ... ");
try {
data = createNewData(tmpUID, fileName, sha512);
- } catch (IOException ex) {
+ } catch (final IOException ex) {
removeTemporaryFile(tmpUID);
ex.printStackTrace();
return Response.notModified("can not create input media").build();
- } catch (SQLException ex) {
+ } catch (final SQLException ex) {
ex.printStackTrace();
removeTemporaryFile(tmpUID);
return Response.notModified("Error in SQL insertion ...").build();
}
- } else if (data.deleted == true) {
+ } else if (data.deleted) {
LOGGER.error("Data already exist but deleted");
undelete(data.id);
data.deleted = false;
@@ -284,7 +263,7 @@ public class DataTools {
LOGGER.info("Find typeNode");
AddOnManyToMany.addLink(clazz, id, "cover", data.id);
return Response.ok(DataAccess.get(clazz, id)).build();
- } catch (Exception ex) {
+ } catch (final Exception ex) {
System.out.println("Cat ann unexpected error ... ");
ex.printStackTrace();
}
diff --git a/src/org/kar/archidata/util/JWTWrapper.java b/src/org/kar/archidata/util/JWTWrapper.java
index 230fc92..11a9c0e 100644
--- a/src/org/kar/archidata/util/JWTWrapper.java
+++ b/src/org/kar/archidata/util/JWTWrapper.java
@@ -33,23 +33,16 @@ import com.nimbusds.jwt.SignedJWT;
class TestSigner implements JWSSigner {
public static String test_signature = "TEST_SIGNATURE_FOR_LOCAL_TEST_AND_TEST_E2E";
-
- /**
- * Signs the specified {@link JWSObject#getSigningInput input} of a
- * {@link JWSObject JWS object}.
+
+ /** Signs the specified {@link JWSObject#getSigningInput input} of a {@link JWSObject JWS object}.
*
- * @param header The JSON Web Signature (JWS) header. Must
- * specify a supported JWS algorithm and must not
- * be {@code null}.
+ * @param header The JSON Web Signature (JWS) header. Must specify a supported JWS algorithm and must not be {@code null}.
* @param signingInput The input to sign. Must not be {@code null}.
*
* @return The resulting signature part (third part) of the JWS object.
*
- * @throws JOSEException If the JWS algorithm is not supported, if a
- * critical header parameter is not supported or
- * marked for deferral to the application, or if
- * signing failed for some other internal reason.
- */
+ * @throws JOSEException If the JWS algorithm is not supported, if a critical header parameter is not supported or marked for deferral to the application, or if signing failed for some other
+ * internal reason. */
@Override
public Base64URL sign(final JWSHeader header, final byte[] signingInput) throws JOSEException {
return new Base64URL(test_signature);
@@ -87,7 +80,7 @@ public class JWTWrapper {
public static void initLocalTokenRemote(final String ssoUri, final String application) throws IOException, ParseException {
// check Token:
final URL obj = new URL(ssoUri + "public_key");
- //LOGGER.debug("Request token from: {}", obj);
+ // LOGGER.debug("Request token from: {}", obj);
final HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
con.setRequestProperty("User-Agent", application);
@@ -100,7 +93,7 @@ public class JWTWrapper {
}
final int responseCode = con.getResponseCode();
- //LOGGER.debug("GET Response Code :: {}", responseCode);
+ // LOGGER.debug("GET Response Code :: {}", responseCode);
if (responseCode == HttpURLConnection.HTTP_OK) { // success
final BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
@@ -111,7 +104,7 @@ public class JWTWrapper {
}
in.close();
// print result
- //LOGGER.debug(response.toString());
+ // LOGGER.debug(response.toString());
final ObjectMapper mapper = new ObjectMapper();
final PublicKey values = mapper.readValue(response.toString(), PublicKey.class);
rsaPublicJWK = RSAKey.parse(values.key);
@@ -169,25 +162,19 @@ public class JWTWrapper {
return rsaPublicJWK.toRSAPublicKey();
}
- /**
- * Create a token with the provided elements
+ /** Create a token with the provided elements
* @param userID UniqueId of the USER (global unique ID)
* @param userLogin Login of the user (never change)
* @param isuer The one who provide the Token
* @param timeOutInMunites Expiration of the token.
- * @return the encoded token
- */
+ * @return the encoded token */
public static String generateJWToken(final long userID, final String userLogin, final String isuer, final String application, final Map rights, final int timeOutInMunites) {
if (rsaJWK == null) {
LOGGER.warn("JWT private key is not present !!!");
return null;
}
- /*
- LOGGER.debug(" ===> expire in : " + timeOutInMunites);
- LOGGER.debug(" ===>" + new Date().getTime());
- LOGGER.debug(" ===>" + new Date(new Date().getTime()));
- LOGGER.debug(" ===>" + new Date(new Date().getTime() - 60 * timeOutInMunites * 1000));
- */
+ /* LOGGER.debug(" ===> expire in : " + timeOutInMunites); LOGGER.debug(" ===>" + new Date().getTime()); LOGGER.debug(" ===>" + new Date(new Date().getTime())); LOGGER.debug(" ===>" + new
+ * Date(new Date().getTime() - 60 * timeOutInMunites * 1000)); */
try {
// Create RSA-signer with the private key
final JWSSigner signer = new RSASSASigner(rsaJWK);
@@ -206,7 +193,7 @@ public class JWTWrapper {
}
// Prepare JWT with claims set
final JWTClaimsSet claimsSet = builder.build();
- final SignedJWT signedJWT = new SignedJWT(new JWSHeader.Builder(JWSAlgorithm.RS256).type(JOSEObjectType.JWT)/*.keyID(rsaJWK.getKeyID())*/.build(), claimsSet);
+ final SignedJWT signedJWT = new SignedJWT(new JWSHeader.Builder(JWSAlgorithm.RS256).type(JOSEObjectType.JWT)/* .keyID(rsaJWK.getKeyID()) */.build(), claimsSet);
// Compute the RSA signature
signedJWT.sign(signer);
@@ -222,7 +209,7 @@ public class JWTWrapper {
try {
// On the consumer side, parse the JWS and verify its RSA signature
final SignedJWT signedJWT = SignedJWT.parse(signedToken);
-
+
if (rsaPublicJWK == null) {
LOGGER.warn("JWT public key is not present !!!");
if (!ConfigBaseVariable.getTestMode()) {
@@ -253,8 +240,8 @@ public class JWTWrapper {
// TODO: verify the token is used for the correct application.
}
// the element must be validated outside ...
- //LOGGER.debug("JWT token is verified 'alice' =?= '" + signedJWT.getJWTClaimsSet().getSubject() + "'");
- //LOGGER.debug("JWT token isuer 'https://c2id.com' =?= '" + signedJWT.getJWTClaimsSet().getIssuer() + "'");
+ // LOGGER.debug("JWT token is verified 'alice' =?= '" + signedJWT.getJWTClaimsSet().getSubject() + "'");
+ // LOGGER.debug("JWT token isuer 'https://c2id.com' =?= '" + signedJWT.getJWTClaimsSet().getIssuer() + "'");
return signedJWT.getJWTClaimsSet();
} catch (final JOSEException ex) {
ex.printStackTrace();
@@ -271,10 +258,10 @@ public class JWTWrapper {
}
try {
final int timeOutInMunites = 3600 * 24 * 31;
-
+
final Date now = new Date();
final Date expiration = new Date(new Date().getTime() - 60 * timeOutInMunites * 1000 /* millisecond */);
-
+
final JWTClaimsSet.Builder builder = new JWTClaimsSet.Builder().subject(Long.toString(userID)).claim("login", userLogin).claim("application", application).issuer(isuer).issueTime(now)
.expirationTime(expiration); // Do not ask why we need a "-" here ... this have no meaning
// add right if needed:
@@ -283,11 +270,11 @@ public class JWTWrapper {
}
// Prepare JWT with claims set
final JWTClaimsSet claimsSet = builder.build();
- final SignedJWT signedJWT = new SignedJWT(new JWSHeader.Builder(JWSAlgorithm.RS256).type(JOSEObjectType.JWT)/*.keyID(rsaJWK.getKeyID())*/.build(), claimsSet);
-
+ final SignedJWT signedJWT = new SignedJWT(new JWSHeader.Builder(JWSAlgorithm.RS256).type(JOSEObjectType.JWT)/* .keyID(rsaJWK.getKeyID()) */.build(), claimsSet);
+
// Compute the RSA signature
signedJWT.sign(new TestSigner());
-
+
// serialize the output...
return signedJWT.serialize();
} catch (final Exception ex) {
diff --git a/src/org/kar/archidata/util/PublicKey.java b/src/org/kar/archidata/util/PublicKey.java
index 440d3eb..6d66a21 100644
--- a/src/org/kar/archidata/util/PublicKey.java
+++ b/src/org/kar/archidata/util/PublicKey.java
@@ -2,8 +2,8 @@ package org.kar.archidata.util;
public class PublicKey {
public String key;
-
- public PublicKey(String key) {
+
+ public PublicKey(final String key) {
this.key = key;
}
-}
\ No newline at end of file
+}
diff --git a/src/org/kar/archidata/util/RESTApi.java b/src/org/kar/archidata/util/RESTApi.java
index f826fa5..e8b5e11 100644
--- a/src/org/kar/archidata/util/RESTApi.java
+++ b/src/org/kar/archidata/util/RESTApi.java
@@ -23,162 +23,162 @@ public class RESTApi {
final static Logger LOGGER = LoggerFactory.getLogger(RESTApi.class);
final String baseUrl;
private String token = null;
-
- public RESTApi(String baseUrl) {
+
+ public RESTApi(final String baseUrl) {
this.baseUrl = baseUrl;
}
-
- public void setToken(String token) {
+
+ public void setToken(final String token) {
this.token = token;
}
-
- public List gets(Class clazz, String urlOffset) throws RESTErrorResponseExeption, IOException, InterruptedException {
- ObjectMapper mapper = new ObjectMapper();
- HttpClient client = HttpClient.newHttpClient();
+
+ public List gets(final Class clazz, final String urlOffset) throws RESTErrorResponseExeption, IOException, InterruptedException {
+ final ObjectMapper mapper = new ObjectMapper();
+ final HttpClient client = HttpClient.newHttpClient();
Builder requestBuilding = HttpRequest.newBuilder().uri(URI.create(this.baseUrl + urlOffset));
- if (token != null) {
- requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + token);
+ if (this.token != null) {
+ requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + this.token);
}
- HttpRequest request = requestBuilding.GET().build();
- HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
+ final HttpRequest request = requestBuilding.GET().build();
+ final HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
if (httpResponse.statusCode() < 200 || httpResponse.statusCode() >= 300) {
- RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
+ final RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
throw out;
}
- List out = mapper.readValue(httpResponse.body(), new TypeReference>() {});
+ final List out = mapper.readValue(httpResponse.body(), new TypeReference>() {});
return out;
}
-
- public T get(Class clazz, String urlOffset) throws RESTErrorResponseExeption, IOException, InterruptedException {
- ObjectMapper mapper = new ObjectMapper();
- HttpClient client = HttpClient.newHttpClient();
+
+ public T get(final Class clazz, final String urlOffset) throws RESTErrorResponseExeption, IOException, InterruptedException {
+ final ObjectMapper mapper = new ObjectMapper();
+ final HttpClient client = HttpClient.newHttpClient();
Builder requestBuilding = HttpRequest.newBuilder().uri(URI.create(this.baseUrl + urlOffset));
- if (token != null) {
- requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + token);
+ if (this.token != null) {
+ requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + this.token);
}
- HttpRequest request = requestBuilding.GET().build();
- HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
+ final HttpRequest request = requestBuilding.GET().build();
+ final HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
if (httpResponse.statusCode() < 200 || httpResponse.statusCode() >= 300) {
- //LOGGER.error("catch error from REST API: {}", httpResponse.body());
- RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
+ // LOGGER.error("catch error from REST API: {}", httpResponse.body());
+ final RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
throw new RESTErrorResponseExeption(out.uuid, out.time, out.error, out.message, out.status, out.statusMessage);
}
- //LOGGER.error("status code: {}", httpResponse.statusCode());
- //LOGGER.error("data: {}", httpResponse.body());
+ // LOGGER.error("status code: {}", httpResponse.statusCode());
+ // LOGGER.error("data: {}", httpResponse.body());
if (clazz.equals(String.class)) {
return (T) httpResponse.body();
}
- T out = mapper.readValue(httpResponse.body(), clazz);
+ final T out = mapper.readValue(httpResponse.body(), clazz);
return out;
}
-
- public T post(Class clazz, String urlOffset, U data) throws RESTErrorResponseExeption, IOException, InterruptedException {
- ObjectMapper mapper = new ObjectMapper();
- HttpClient client = HttpClient.newHttpClient();
- String body = mapper.writeValueAsString(data);
+
+ public T post(final Class clazz, final String urlOffset, final U data) throws RESTErrorResponseExeption, IOException, InterruptedException {
+ final ObjectMapper mapper = new ObjectMapper();
+ final HttpClient client = HttpClient.newHttpClient();
+ final String body = mapper.writeValueAsString(data);
Builder requestBuilding = HttpRequest.newBuilder().uri(URI.create(this.baseUrl + urlOffset));
- if (token != null) {
- requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + token);
+ if (this.token != null) {
+ requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + this.token);
}
requestBuilding = requestBuilding.header("Content-Type", "application/json");
- HttpRequest request = requestBuilding.POST(BodyPublishers.ofString(body)).build();
- HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
+ final HttpRequest request = requestBuilding.POST(BodyPublishers.ofString(body)).build();
+ final HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
if (httpResponse.statusCode() < 200 || httpResponse.statusCode() >= 300) {
LOGGER.error("status code: {}", httpResponse.statusCode());
LOGGER.error("data: {}", httpResponse.body());
- RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
+ final RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
throw out;
}
if (clazz.equals(String.class)) {
return (T) httpResponse.body();
}
- T out = mapper.readValue(httpResponse.body(), clazz);
+ final T out = mapper.readValue(httpResponse.body(), clazz);
return out;
}
-
- public T postMap(Class clazz, String urlOffset, Map data) throws RESTErrorResponseExeption, IOException, InterruptedException {
- ObjectMapper mapper = new ObjectMapper();
- HttpClient client = HttpClient.newHttpClient();
- String body = mapper.writeValueAsString(data);
+
+ public T postMap(final Class clazz, final String urlOffset, final Map data) throws RESTErrorResponseExeption, IOException, InterruptedException {
+ final ObjectMapper mapper = new ObjectMapper();
+ final HttpClient client = HttpClient.newHttpClient();
+ final String body = mapper.writeValueAsString(data);
Builder requestBuilding = HttpRequest.newBuilder().uri(URI.create(this.baseUrl + urlOffset));
- if (token != null) {
- requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + token);
+ if (this.token != null) {
+ requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + this.token);
}
requestBuilding = requestBuilding.header("Content-Type", "application/json");
- HttpRequest request = requestBuilding.POST(BodyPublishers.ofString(body)).build();
- HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
+ final HttpRequest request = requestBuilding.POST(BodyPublishers.ofString(body)).build();
+ final HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
if (httpResponse.statusCode() < 200 || httpResponse.statusCode() >= 300) {
- RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
+ final RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
throw out;
}
if (clazz.equals(String.class)) {
return (T) httpResponse.body();
}
- T out = mapper.readValue(httpResponse.body(), clazz);
+ final T out = mapper.readValue(httpResponse.body(), clazz);
return out;
}
-
- public T put(Class clazz, String urlOffset, U data) throws RESTErrorResponseExeption, IOException, InterruptedException {
- ObjectMapper mapper = new ObjectMapper();
- HttpClient client = HttpClient.newHttpClient();
- String body = mapper.writeValueAsString(data);
+
+ public T put(final Class clazz, final String urlOffset, final U data) throws RESTErrorResponseExeption, IOException, InterruptedException {
+ final ObjectMapper mapper = new ObjectMapper();
+ final HttpClient client = HttpClient.newHttpClient();
+ final String body = mapper.writeValueAsString(data);
Builder requestBuilding = HttpRequest.newBuilder().uri(URI.create(this.baseUrl + urlOffset));
- if (token != null) {
- requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + token);
+ if (this.token != null) {
+ requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + this.token);
}
requestBuilding = requestBuilding.header("Content-Type", "application/json");
- HttpRequest request = requestBuilding.PUT(BodyPublishers.ofString(body)).build();
- HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
+ final HttpRequest request = requestBuilding.PUT(BodyPublishers.ofString(body)).build();
+ final HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
if (httpResponse.statusCode() < 200 || httpResponse.statusCode() >= 300) {
- RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
+ final RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
throw out;
}
if (clazz.equals(String.class)) {
return (T) httpResponse.body();
}
- T out = mapper.readValue(httpResponse.body(), clazz);
+ final T out = mapper.readValue(httpResponse.body(), clazz);
return out;
}
-
- public T putMap(Class clazz, String urlOffset, Map data) throws RESTErrorResponseExeption, IOException, InterruptedException {
- ObjectMapper mapper = new ObjectMapper();
- HttpClient client = HttpClient.newHttpClient();
- String body = mapper.writeValueAsString(data);
+
+ public T putMap(final Class clazz, final String urlOffset, final Map data) throws RESTErrorResponseExeption, IOException, InterruptedException {
+ final ObjectMapper mapper = new ObjectMapper();
+ final HttpClient client = HttpClient.newHttpClient();
+ final String body = mapper.writeValueAsString(data);
Builder requestBuilding = HttpRequest.newBuilder().uri(URI.create(this.baseUrl + urlOffset));
- if (token != null) {
- requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + token);
+ if (this.token != null) {
+ requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + this.token);
}
requestBuilding = requestBuilding.header("Content-Type", "application/json");
- HttpRequest request = requestBuilding.PUT(BodyPublishers.ofString(body)).build();
- HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
+ final HttpRequest request = requestBuilding.PUT(BodyPublishers.ofString(body)).build();
+ final HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
if (httpResponse.statusCode() < 200 || httpResponse.statusCode() >= 300) {
- RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
+ final RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
throw out;
}
if (clazz.equals(String.class)) {
return (T) httpResponse.body();
}
- T out = mapper.readValue(httpResponse.body(), clazz);
+ final T out = mapper.readValue(httpResponse.body(), clazz);
return out;
}
-
- public T delete(Class clazz, String urlOffset) throws RESTErrorResponseExeption, IOException, InterruptedException {
- ObjectMapper mapper = new ObjectMapper();
- HttpClient client = HttpClient.newHttpClient();
+
+ public T delete(final Class clazz, final String urlOffset) throws RESTErrorResponseExeption, IOException, InterruptedException {
+ final ObjectMapper mapper = new ObjectMapper();
+ final HttpClient client = HttpClient.newHttpClient();
Builder requestBuilding = HttpRequest.newBuilder().uri(URI.create(this.baseUrl + urlOffset));
- if (token != null) {
- requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + token);
+ if (this.token != null) {
+ requestBuilding = requestBuilding.header(HttpHeaders.AUTHORIZATION, "Yota " + this.token);
}
- HttpRequest request = requestBuilding.DELETE().build();
- HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
+ final HttpRequest request = requestBuilding.DELETE().build();
+ final HttpResponse httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
if (httpResponse.statusCode() < 200 || httpResponse.statusCode() >= 300) {
- RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
+ final RESTErrorResponseExeption out = mapper.readValue(httpResponse.body(), RESTErrorResponseExeption.class);
throw out;
}
if (clazz.equals(String.class)) {
return (T) httpResponse.body();
}
- T out = mapper.readValue(httpResponse.body(), clazz);
+ final T out = mapper.readValue(httpResponse.body(), clazz);
return out;
}
}
diff --git a/test/src/test/kar/archidata/TestJson.java b/test/src/test/kar/archidata/TestJson.java
index e3e1ed3..a33a0cc 100644
--- a/test/src/test/kar/archidata/TestJson.java
+++ b/test/src/test/kar/archidata/TestJson.java
@@ -26,26 +26,26 @@ import test.kar.archidata.model.SimpleTable;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class TestJson {
final static private Logger LOGGER = LoggerFactory.getLogger(TestJson.class);
-
+
@BeforeAll
public static void configureWebServer() throws Exception {
ConfigBaseVariable.dbType = "sqlite";
ConfigBaseVariable.dbHost = "memory";
// for test we need to connect all time the DB
ConfigBaseVariable.dbKeepConnected = "true";
-
+
// Connect the dataBase...
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
entry.connect();
}
-
+
@AfterAll
public static void removeDataBase() throws IOException {
LOGGER.info("Remove the test db");
DBEntry.closeAllForceMode();
ConfigBaseVariable.clearAllValue();
}
-
+
@Order(1)
@Test
public void testTableInsertAndRetrieve() throws Exception {
@@ -64,17 +64,17 @@ public class TestJson {
test.data.data = "plopppopql";
final SerializeAsJson insertedData = DataAccess.insert(test);
-
+
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
Assertions.assertNotNull(insertedData.data);
Assertions.assertNotNull(insertedData.data.data);
Assertions.assertEquals(test.data.data, insertedData.data.data);
-
+
// Try to retrieve all the data:
final SerializeAsJson retrieve = DataAccess.get(SerializeAsJson.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertTrue(retrieve.id >= 0);
@@ -82,5 +82,5 @@ public class TestJson {
Assertions.assertNotNull(retrieve.data.data);
Assertions.assertEquals(test.data.data, retrieve.data.data);
}
-
+
}
diff --git a/test/src/test/kar/archidata/TestManyToMany.java b/test/src/test/kar/archidata/TestManyToMany.java
index 60c7ad9..6046914 100644
--- a/test/src/test/kar/archidata/TestManyToMany.java
+++ b/test/src/test/kar/archidata/TestManyToMany.java
@@ -59,7 +59,7 @@ public class TestManyToMany {
DataAccess.executeSimpleQuerry(elem, false);
}
}
-
+
@Order(2)
@Test
public void testSimpleInsertAndRetieve() throws Exception {
@@ -80,7 +80,7 @@ public class TestManyToMany {
Assertions.assertNotNull(retrieve.otherData);
Assertions.assertEquals(insertedData.otherData, retrieve.otherData);
Assertions.assertNull(retrieve.remote);
-
+
DataAccess.delete(TypeManyToManyRoot.class, insertedData.id);
}
@@ -92,7 +92,7 @@ public class TestManyToMany {
remote.data = "remote1";
final TypeManyToManyRemote insertedRemote1 = DataAccess.insert(remote);
Assertions.assertEquals(insertedRemote1.data, remote.data);
-
+
remote = new TypeManyToManyRemote();
remote.data = "remote2";
final TypeManyToManyRemote insertedRemote2 = DataAccess.insert(remote);
@@ -105,7 +105,7 @@ public class TestManyToMany {
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
Assertions.assertNull(insertedData.remote);
-
+
// Try to retrieve all the data:
TypeManyToManyRoot retrieve = DataAccess.get(TypeManyToManyRoot.class, insertedData.id);
@@ -119,9 +119,9 @@ public class TestManyToMany {
// Add remote elements
AddOnManyToMany.addLink(TypeManyToManyRoot.class, retrieve.id, "remote", insertedRemote1.id);
AddOnManyToMany.addLink(TypeManyToManyRoot.class, retrieve.id, "remote", insertedRemote2.id);
-
+
retrieve = DataAccess.get(TypeManyToManyRoot.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -131,9 +131,9 @@ public class TestManyToMany {
Assertions.assertEquals(retrieve.remote.size(), 2);
Assertions.assertEquals(retrieve.remote.get(0), insertedRemote1.id);
Assertions.assertEquals(retrieve.remote.get(1), insertedRemote2.id);
-
+
final TypeManyToManyRootExpand retrieveExpand = DataAccess.get(TypeManyToManyRootExpand.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieveExpand);
Assertions.assertNotNull(retrieveExpand.id);
Assertions.assertEquals(insertedData.id, retrieveExpand.id);
@@ -143,7 +143,7 @@ public class TestManyToMany {
Assertions.assertEquals(retrieveExpand.remote.size(), 2);
Assertions.assertEquals(retrieveExpand.remote.get(0).id, insertedRemote1.id);
Assertions.assertEquals(retrieveExpand.remote.get(1).id, insertedRemote2.id);
-
+
// Remove an element
int count = AddOnManyToMany.removeLink(TypeManyToManyRoot.class, retrieve.id, "remote", insertedRemote1.id);
Assertions.assertEquals(1, count);
@@ -158,28 +158,23 @@ public class TestManyToMany {
Assertions.assertNotNull(retrieve.remote);
Assertions.assertEquals(retrieve.remote.size(), 1);
Assertions.assertEquals(retrieve.remote.get(0), insertedRemote2.id);
-
+
// Remove the second element
count = AddOnManyToMany.removeLink(TypeManyToManyRoot.class, retrieve.id, "remote", insertedRemote2.id);
Assertions.assertEquals(1, count);
retrieve = DataAccess.get(TypeManyToManyRoot.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
Assertions.assertNotNull(retrieve.otherData);
Assertions.assertEquals(insertedData.otherData, retrieve.otherData);
Assertions.assertNull(retrieve.remote);
-
+
DataAccess.delete(TypeManyToManyRoot.class, insertedData.id);
}
- /*
- API TODO:
- - Replace list (permet de les ordonnées)
- - remove all links
- - delete en cascade .... (compliqué...)
- */
-
+ /* API TODO: - Replace list (permet de les ordonnées) - remove all links - delete en cascade .... (compliqué...) */
+
}
\ No newline at end of file
diff --git a/test/src/test/kar/archidata/TestManyToOne.java b/test/src/test/kar/archidata/TestManyToOne.java
index 96086b2..13a3dd9 100644
--- a/test/src/test/kar/archidata/TestManyToOne.java
+++ b/test/src/test/kar/archidata/TestManyToOne.java
@@ -58,7 +58,7 @@ public class TestManyToOne {
DataAccess.executeSimpleQuerry(elem, false);
}
}
-
+
@Order(2)
@Test
public void testAddAlements() throws Exception {
@@ -71,7 +71,7 @@ public class TestManyToOne {
remote.data = "remote2";
final TypeManyToOneRemote insertedRemote2 = DataAccess.insert(remote);
Assertions.assertEquals(insertedRemote2.data, remote.data);
-
+
final TypeManyToOneRoot test = new TypeManyToOneRoot();
test.otherData = "kjhlkjlkj";
test.remoteId = insertedRemote2.id;
@@ -101,9 +101,9 @@ public class TestManyToOne {
// remove values:
final int count = DataAccess.delete(TypeManyToOneRemote.class, remote.id);
Assertions.assertEquals(1, count);
-
+
// check fail:
-
+
retrieve = DataAccess.get(TypeManyToOneRoot.class, insertedData.id);
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
diff --git a/test/src/test/kar/archidata/TestOneToMany.java b/test/src/test/kar/archidata/TestOneToMany.java
index 3fc458b..a50aef7 100644
--- a/test/src/test/kar/archidata/TestOneToMany.java
+++ b/test/src/test/kar/archidata/TestOneToMany.java
@@ -53,10 +53,10 @@ public class TestOneToMany {
DataAccess.executeSimpleQuerry(elem, false);
}
}
-
+
@Order(2)
@Test
public void testPlop() throws Exception {
-
+
}
}
\ No newline at end of file
diff --git a/test/src/test/kar/archidata/TestSimpleTable.java b/test/src/test/kar/archidata/TestSimpleTable.java
index 0650752..ed29875 100644
--- a/test/src/test/kar/archidata/TestSimpleTable.java
+++ b/test/src/test/kar/archidata/TestSimpleTable.java
@@ -33,30 +33,30 @@ public class TestSimpleTable {
private static final String DATA_INJECTED_2 = "dsqfsdfqsdfsqdf";
private static Long idOfTheObject = null;
private static Timestamp startAction = null;
-
+
@BeforeAll
public static void configureWebServer() throws Exception {
ConfigBaseVariable.dbType = "sqlite";
ConfigBaseVariable.dbHost = "memory";
// for test we need to connect all time the DB
ConfigBaseVariable.dbKeepConnected = "true";
-
+
// Clear the static test:
idOfTheObject = null;
startAction = null;
-
+
// Connect the dataBase...
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
entry.connect();
}
-
+
@AfterAll
public static void removeDataBase() throws IOException {
LOGGER.info("Remove the test db");
DBEntry.closeAllForceMode();
ConfigBaseVariable.clearAllValue();
}
-
+
@Order(1)
@Test
public void testTableInsertAndRetrieve() throws Exception {
@@ -69,14 +69,14 @@ public class TestSimpleTable {
final SimpleTable test = new SimpleTable();
test.data = TestSimpleTable.DATA_INJECTED;
final SimpleTable insertedData = DataAccess.insert(test);
-
+
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final SimpleTable retrieve = DataAccess.get(SimpleTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -85,13 +85,13 @@ public class TestSimpleTable {
Assertions.assertNull(retrieve.updatedAt);
TestSimpleTable.idOfTheObject = retrieve.id;
}
-
+
@Order(2)
@Test
public void testReadAllValuesUnreadable() throws Exception {
// check the full values
final SimpleTable retrieve = DataAccess.get(SimpleTable.class, TestSimpleTable.idOfTheObject, new QueryOptions(QueryOptions.SQL_NOT_READ_DISABLE, true));
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(TestSimpleTable.idOfTheObject, retrieve.id);
@@ -104,7 +104,7 @@ public class TestSimpleTable {
// Assertions.assertTrue(retrieve.updatedAt.after(this.startAction));
Assertions.assertEquals(retrieve.createdAt, retrieve.updatedAt);
}
-
+
@Order(3)
@Test
public void testUpdateData() throws Exception {
@@ -113,7 +113,7 @@ public class TestSimpleTable {
} else {
Thread.sleep(Duration.ofMillis(15));
}
-
+
// Delete the entry:
final SimpleTable test = new SimpleTable();
test.data = TestSimpleTable.DATA_INJECTED_2;
@@ -128,7 +128,7 @@ public class TestSimpleTable {
LOGGER.info("created @ {} updated @ {}", retrieve.createdAt, retrieve.updatedAt);
Assertions.assertTrue(retrieve.updatedAt.after(retrieve.createdAt));
}
-
+
@Order(4)
@Test
public void testDeleteTheObject() throws Exception {
@@ -137,17 +137,17 @@ public class TestSimpleTable {
final SimpleTable retrieve = DataAccess.get(SimpleTable.class, TestSimpleTable.idOfTheObject);
Assertions.assertNull(retrieve);
}
-
+
@Order(5)
@Test
public void testReadDeletedObject() throws Exception {
-
+
// check if we set get deleted element
final SimpleTable retrieve = DataAccess.get(SimpleTable.class, TestSimpleTable.idOfTheObject, new QueryOptions(QueryOptions.SQL_DELETED_DISABLE, true));
Assertions.assertNull(retrieve);
-
+
}
-
+
@Order(6)
@Test
public void testReadAllValuesUnreadableOfDeletedObject() throws Exception {
@@ -155,6 +155,6 @@ public class TestSimpleTable {
final SimpleTable retrieve = DataAccess.get(SimpleTable.class, TestSimpleTable.idOfTheObject,
new QueryOptions(QueryOptions.SQL_DELETED_DISABLE, true, QueryOptions.SQL_NOT_READ_DISABLE, true));
Assertions.assertNull(retrieve);
-
+
}
}
diff --git a/test/src/test/kar/archidata/TestSimpleTableSoftDelete.java b/test/src/test/kar/archidata/TestSimpleTableSoftDelete.java
index 58c126c..37a0184 100644
--- a/test/src/test/kar/archidata/TestSimpleTableSoftDelete.java
+++ b/test/src/test/kar/archidata/TestSimpleTableSoftDelete.java
@@ -33,30 +33,30 @@ public class TestSimpleTableSoftDelete {
private static final String DATA_INJECTED_2 = "qsdfqsdfqsdfsqdf";
private static Long idOfTheObject = null;
private static Timestamp startAction = null;
-
+
@BeforeAll
public static void configureWebServer() throws Exception {
ConfigBaseVariable.dbType = "sqlite";
ConfigBaseVariable.dbHost = "memory";
// for test we need to connect all time the DB
ConfigBaseVariable.dbKeepConnected = "true";
-
+
// Clear the static test:
idOfTheObject = null;
startAction = null;
-
+
// Connect the dataBase...
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
entry.connect();
}
-
+
@AfterAll
public static void removeDataBase() throws IOException {
LOGGER.info("Remove the test db");
DBEntry.closeAllForceMode();
ConfigBaseVariable.clearAllValue();
}
-
+
@Order(1)
@Test
public void testTableInsertAndRetrieve() throws Exception {
@@ -69,14 +69,14 @@ public class TestSimpleTableSoftDelete {
final SimpleTableSoftDelete test = new SimpleTableSoftDelete();
test.data = TestSimpleTableSoftDelete.DATA_INJECTED;
final SimpleTableSoftDelete insertedData = DataAccess.insert(test);
-
+
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final SimpleTableSoftDelete retrieve = DataAccess.get(SimpleTableSoftDelete.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -86,13 +86,13 @@ public class TestSimpleTableSoftDelete {
Assertions.assertNull(retrieve.deleted);
TestSimpleTableSoftDelete.idOfTheObject = retrieve.id;
}
-
+
@Order(2)
@Test
public void testReadAllValuesUnreadable() throws Exception {
// check the full values
final SimpleTableSoftDelete retrieve = DataAccess.get(SimpleTableSoftDelete.class, TestSimpleTableSoftDelete.idOfTheObject, new QueryOptions(QueryOptions.SQL_NOT_READ_DISABLE, true));
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(TestSimpleTableSoftDelete.idOfTheObject, retrieve.id);
@@ -107,7 +107,7 @@ public class TestSimpleTableSoftDelete {
Assertions.assertNotNull(retrieve.deleted);
Assertions.assertEquals(false, retrieve.deleted);
}
-
+
@Order(3)
@Test
public void testUpdateData() throws Exception {
@@ -116,7 +116,7 @@ public class TestSimpleTableSoftDelete {
} else {
Thread.sleep(Duration.ofMillis(15));
}
-
+
// Delete the entry:
final SimpleTableSoftDelete test = new SimpleTableSoftDelete();
test.data = TestSimpleTableSoftDelete.DATA_INJECTED_2;
@@ -134,7 +134,7 @@ public class TestSimpleTableSoftDelete {
Assertions.assertNotNull(retrieve.deleted);
Assertions.assertEquals(false, retrieve.deleted);
}
-
+
@Order(4)
@Test
public void testSoftDeleteTheObject() throws Exception {
@@ -148,11 +148,11 @@ public class TestSimpleTableSoftDelete {
final SimpleTableSoftDelete retrieve = DataAccess.get(SimpleTableSoftDelete.class, TestSimpleTableSoftDelete.idOfTheObject);
Assertions.assertNull(retrieve);
}
-
+
@Order(5)
@Test
public void testReadDeletedObject() throws Exception {
-
+
// check if we set get deleted element
final SimpleTableSoftDelete retrieve = DataAccess.get(SimpleTableSoftDelete.class, TestSimpleTableSoftDelete.idOfTheObject, new QueryOptions(QueryOptions.SQL_DELETED_DISABLE, true));
Assertions.assertNotNull(retrieve);
@@ -162,9 +162,9 @@ public class TestSimpleTableSoftDelete {
Assertions.assertNull(retrieve.createdAt);
Assertions.assertNull(retrieve.updatedAt);
Assertions.assertNull(retrieve.deleted);
-
+
}
-
+
@Order(6)
@Test
public void testReadAllValuesUnreadableOfDeletedObject() throws Exception {
@@ -181,6 +181,6 @@ public class TestSimpleTableSoftDelete {
Assertions.assertTrue(retrieve.updatedAt.after(retrieve.createdAt));
Assertions.assertNotNull(retrieve.deleted);
Assertions.assertEquals(true, retrieve.deleted);
-
+
}
}
diff --git a/test/src/test/kar/archidata/TestTypeEnum1.java b/test/src/test/kar/archidata/TestTypeEnum1.java
index 2b574ca..0ed3fef 100644
--- a/test/src/test/kar/archidata/TestTypeEnum1.java
+++ b/test/src/test/kar/archidata/TestTypeEnum1.java
@@ -26,26 +26,26 @@ import test.kar.archidata.model.TypesEnum1;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class TestTypeEnum1 {
final static private Logger LOGGER = LoggerFactory.getLogger(TestTypeEnum1.class);
-
+
@BeforeAll
public static void configureWebServer() throws Exception {
ConfigBaseVariable.dbType = "sqlite";
ConfigBaseVariable.dbHost = "memory";
// for test we need to connect all time the DB
ConfigBaseVariable.dbKeepConnected = "true";
-
+
// Connect the dataBase...
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
entry.connect();
}
-
+
@AfterAll
public static void removeDataBase() throws IOException {
LOGGER.info("Remove the test db");
DBEntry.closeAllForceMode();
ConfigBaseVariable.clearAllValue();
}
-
+
@Order(1)
@Test
public void testCreateTable() throws Exception {
@@ -66,10 +66,10 @@ public class TestTypeEnum1 {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesEnum1 retrieve = DataAccess.get(TypesEnum1.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
diff --git a/test/src/test/kar/archidata/TestTypeEnum2.java b/test/src/test/kar/archidata/TestTypeEnum2.java
index f09ba99..f42a69d 100644
--- a/test/src/test/kar/archidata/TestTypeEnum2.java
+++ b/test/src/test/kar/archidata/TestTypeEnum2.java
@@ -26,26 +26,26 @@ import test.kar.archidata.model.TypesEnum2;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class TestTypeEnum2 {
final static private Logger LOGGER = LoggerFactory.getLogger(TestTypeEnum2.class);
-
+
@BeforeAll
public static void configureWebServer() throws Exception {
ConfigBaseVariable.dbType = "sqlite";
ConfigBaseVariable.dbHost = "memory";
// for test we need to connect all time the DB
ConfigBaseVariable.dbKeepConnected = "true";
-
+
// Connect the dataBase...
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
entry.connect();
}
-
+
@AfterAll
public static void removeDataBase() throws IOException {
LOGGER.info("Remove the test db");
DBEntry.closeAllForceMode();
ConfigBaseVariable.clearAllValue();
}
-
+
@Order(1)
@Test
public void testCreateTable() throws Exception {
@@ -66,7 +66,7 @@ public class TestTypeEnum2 {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
TypesEnum2 retrieve = DataAccess.get(TypesEnum2.class, insertedData.id);
Assertions.assertNotNull(retrieve);
@@ -79,18 +79,18 @@ public class TestTypeEnum2 {
retrieve.data = null;
int ret = DataAccess.update(retrieve, retrieve.id);
Assertions.assertEquals(1, ret);
-
+
// get new data
retrieve = DataAccess.get(TypesEnum2.class, insertedData.id);
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
Assertions.assertNull(retrieve.data);
-
+
// Remove the data
ret = DataAccess.delete(TypesEnum2.class, insertedData.id);
Assertions.assertEquals(1, ret);
-
+
// Get the removed data:
retrieve = DataAccess.get(TypesEnum2.class, insertedData.id);
Assertions.assertNull(retrieve);
@@ -106,10 +106,10 @@ public class TestTypeEnum2 {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesEnum2 retrieve = DataAccess.get(TypesEnum2.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
diff --git a/test/src/test/kar/archidata/TestTypes.java b/test/src/test/kar/archidata/TestTypes.java
index 84190c5..cc1f2c9 100644
--- a/test/src/test/kar/archidata/TestTypes.java
+++ b/test/src/test/kar/archidata/TestTypes.java
@@ -30,26 +30,26 @@ import test.kar.archidata.model.TypesTable;
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class TestTypes {
final static private Logger LOGGER = LoggerFactory.getLogger(TestTypes.class);
-
+
@BeforeAll
public static void configureWebServer() throws Exception {
ConfigBaseVariable.dbType = "sqlite";
ConfigBaseVariable.dbHost = "memory";
// for test we need to connect all time the DB
ConfigBaseVariable.dbKeepConnected = "true";
-
+
// Connect the dataBase...
final DBEntry entry = DBEntry.createInterface(GlobalConfiguration.dbConfig);
entry.connect();
}
-
+
@AfterAll
public static void removeDataBase() throws IOException {
LOGGER.info("Remove the test db");
DBEntry.closeAllForceMode();
ConfigBaseVariable.clearAllValue();
}
-
+
@Order(1)
@Test
public void testCreateTable() throws Exception {
@@ -70,10 +70,10 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -82,7 +82,7 @@ public class TestTypes {
DataAccess.delete(TypesTable.class, insertedData.id);
}
-
+
@Order(3)
@Test
public void testLong() throws Exception {
@@ -93,10 +93,10 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -105,7 +105,7 @@ public class TestTypes {
DataAccess.delete(TypesTable.class, insertedData.id);
}
-
+
@Order(4)
@Test
public void testfloat() throws Exception {
@@ -116,10 +116,10 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -139,16 +139,16 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
Assertions.assertNotNull(retrieve.doubleData);
Assertions.assertEquals(insertedData.doubleData, retrieve.doubleData);
-
+
DataAccess.delete(TypesTable.class, insertedData.id);
}
@@ -162,10 +162,10 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -185,10 +185,10 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -208,10 +208,10 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -231,10 +231,10 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -243,7 +243,7 @@ public class TestTypes {
DataAccess.delete(TypesTable.class, insertedData.id);
}
-
+
@Order(10)
@Test
public void testTimeStamp() throws Exception {
@@ -255,22 +255,22 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
LOGGER.debug("Retreive Timestamp = {}", retrieve.timeStampData);
Assertions.assertNotNull(retrieve.timeStampData);
// Can not compare the exact timestamp due to aproximation and model of storing data :
- //Assertions.assertEquals(insertedData.timeStampData, retrieve.timeStampData);
+ // Assertions.assertEquals(insertedData.timeStampData, retrieve.timeStampData);
Assertions.assertEquals(insertedData.timeStampData.toInstant().toEpochMilli(), retrieve.timeStampData.toInstant().toEpochMilli());
DataAccess.delete(TypesTable.class, insertedData.id);
}
-
+
@Order(11)
@Test
public void testDate() throws Exception {
@@ -282,10 +282,10 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -295,7 +295,7 @@ public class TestTypes {
DataAccess.delete(TypesTable.class, insertedData.id);
}
-
+
@Order(12)
@Test
public void testLocalDate() throws Exception {
@@ -307,10 +307,10 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -320,7 +320,7 @@ public class TestTypes {
DataAccess.delete(TypesTable.class, insertedData.id);
}
-
+
@Order(13)
@Test
public void testLocalTime() throws Exception {
@@ -332,10 +332,10 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -360,10 +360,10 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -382,7 +382,7 @@ public class TestTypes {
// Get new data
final TypesTable retrieve2 = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve2);
Assertions.assertNotNull(retrieve2.id);
Assertions.assertEquals(insertedData.id, retrieve2.id);
@@ -401,7 +401,7 @@ public class TestTypes {
// Get new data
final TypesTable retrieve3 = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve3);
Assertions.assertNotNull(retrieve3.id);
Assertions.assertEquals(insertedData.id, retrieve3.id);
@@ -411,10 +411,10 @@ public class TestTypes {
// note: retreive2
Assertions.assertEquals(retrieve2.booleanData, retrieve3.booleanData);
Assertions.assertNull(retrieve3.varcharData);
-
+
DataAccess.delete(TypesTable.class, insertedData.id);
}
-
+
@Order(15)
@Test
public void testTextUpdateJson() throws Exception {
@@ -427,10 +427,10 @@ public class TestTypes {
Assertions.assertNotNull(insertedData);
Assertions.assertNotNull(insertedData.id);
Assertions.assertTrue(insertedData.id >= 0);
-
+
// Try to retrieve all the data:
final TypesTable retrieve = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve);
Assertions.assertNotNull(retrieve.id);
Assertions.assertEquals(insertedData.id, retrieve.id);
@@ -453,7 +453,7 @@ public class TestTypes {
// Get new data
final TypesTable retrieve2 = DataAccess.get(TypesTable.class, insertedData.id);
-
+
Assertions.assertNotNull(retrieve2);
Assertions.assertNotNull(retrieve2.id);
Assertions.assertEquals(insertedData.id, retrieve2.id);
@@ -462,7 +462,7 @@ public class TestTypes {
Assertions.assertNotNull(retrieve2.booleanData);
Assertions.assertEquals(retrieve.booleanData, retrieve2.booleanData);
Assertions.assertNull(retrieve2.varcharData);
-
+
DataAccess.delete(TypesTable.class, insertedData.id);
}
diff --git a/test/src/test/kar/archidata/model/Enum2ForTest.java b/test/src/test/kar/archidata/model/Enum2ForTest.java
index 8c4b6f2..03b05af 100644
--- a/test/src/test/kar/archidata/model/Enum2ForTest.java
+++ b/test/src/test/kar/archidata/model/Enum2ForTest.java
@@ -2,9 +2,9 @@ package test.kar.archidata.model;
public enum Enum2ForTest {
ENUM_VALUE_1(5), ENUM_VALUE_2(6), ENUM_VALUE_3(55), ENUM_VALUE_4(84241), ENUM_VALUE_5(54546);
-
+
private final int value;
-
+
private Enum2ForTest(final int value) {
this.value = value;
}
diff --git a/test/src/test/kar/archidata/model/SerializeAsJson.java b/test/src/test/kar/archidata/model/SerializeAsJson.java
index 389229f..ba5f8e9 100644
--- a/test/src/test/kar/archidata/model/SerializeAsJson.java
+++ b/test/src/test/kar/archidata/model/SerializeAsJson.java
@@ -4,8 +4,8 @@ import org.kar.archidata.annotation.DataJson;
import org.kar.archidata.model.GenericData;
public class SerializeAsJson extends GenericData {
-
+
@DataJson
public SimpleTable data;
-
+
}
\ No newline at end of file
diff --git a/test/src/test/kar/archidata/model/SimpleTable.java b/test/src/test/kar/archidata/model/SimpleTable.java
index 94d3783..2a9c642 100644
--- a/test/src/test/kar/archidata/model/SimpleTable.java
+++ b/test/src/test/kar/archidata/model/SimpleTable.java
@@ -4,5 +4,5 @@ import org.kar.archidata.model.GenericData;
public class SimpleTable extends GenericData {
public String data;
-
+
}
\ No newline at end of file
diff --git a/test/src/test/kar/archidata/model/TypeManyToManyRemote.java b/test/src/test/kar/archidata/model/TypeManyToManyRemote.java
index 8546c94..9b10ee0 100644
--- a/test/src/test/kar/archidata/model/TypeManyToManyRemote.java
+++ b/test/src/test/kar/archidata/model/TypeManyToManyRemote.java
@@ -10,6 +10,6 @@ public class TypeManyToManyRemote {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false, unique = true)
public Long id = null;
-
+
public String data;
}
\ No newline at end of file
diff --git a/test/src/test/kar/archidata/model/TypeManyToManyRoot.java b/test/src/test/kar/archidata/model/TypeManyToManyRoot.java
index 2d1a5bb..c2f07e9 100644
--- a/test/src/test/kar/archidata/model/TypeManyToManyRoot.java
+++ b/test/src/test/kar/archidata/model/TypeManyToManyRoot.java
@@ -16,7 +16,7 @@ public class TypeManyToManyRoot {
public Long id = null;
public String otherData;
-
+
@ManyToMany(fetch = FetchType.LAZY, targetEntity = TypeManyToManyRemote.class)
public List remote;
}
diff --git a/test/src/test/kar/archidata/model/TypeManyToManyRootExpand.java b/test/src/test/kar/archidata/model/TypeManyToManyRootExpand.java
index 00f5db8..d3a1376 100644
--- a/test/src/test/kar/archidata/model/TypeManyToManyRootExpand.java
+++ b/test/src/test/kar/archidata/model/TypeManyToManyRootExpand.java
@@ -16,7 +16,7 @@ public class TypeManyToManyRootExpand {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false, unique = true)
public Long id = null;
-
+
public String otherData;
@ManyToMany(fetch = FetchType.LAZY, targetEntity = TypeManyToManyRemote.class)
diff --git a/test/src/test/kar/archidata/model/TypeManyToOneRemote.java b/test/src/test/kar/archidata/model/TypeManyToOneRemote.java
index a933bb0..7491785 100644
--- a/test/src/test/kar/archidata/model/TypeManyToOneRemote.java
+++ b/test/src/test/kar/archidata/model/TypeManyToOneRemote.java
@@ -10,7 +10,7 @@ public class TypeManyToOneRemote {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false, unique = true)
public Long id = null;
-
+
public String data;
-
+
}
\ No newline at end of file
diff --git a/test/src/test/kar/archidata/model/TypeManyToOneRoot.java b/test/src/test/kar/archidata/model/TypeManyToOneRoot.java
index 1203cbc..d01cbd1 100644
--- a/test/src/test/kar/archidata/model/TypeManyToOneRoot.java
+++ b/test/src/test/kar/archidata/model/TypeManyToOneRoot.java
@@ -11,9 +11,9 @@ public class TypeManyToOneRoot {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false, unique = true)
public Long id = null;
-
+
public String otherData;
-
+
@ManyToOne(targetEntity = TypeManyToOneRemote.class)
@Column(nullable = false)
public Long remoteId;
diff --git a/test/src/test/kar/archidata/model/TypeManyToOneRootExpand.java b/test/src/test/kar/archidata/model/TypeManyToOneRootExpand.java
index 12d42e6..8a1c20f 100644
--- a/test/src/test/kar/archidata/model/TypeManyToOneRootExpand.java
+++ b/test/src/test/kar/archidata/model/TypeManyToOneRootExpand.java
@@ -14,7 +14,7 @@ public class TypeManyToOneRootExpand {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false, unique = true)
public Long id = null;
-
+
public String otherData;
@ManyToOne(fetch = FetchType.LAZY, targetEntity = TypeManyToOneRemote.class)
diff --git a/test/src/test/kar/archidata/model/TypesEnum1.java b/test/src/test/kar/archidata/model/TypesEnum1.java
index e50dcd3..50770cd 100644
--- a/test/src/test/kar/archidata/model/TypesEnum1.java
+++ b/test/src/test/kar/archidata/model/TypesEnum1.java
@@ -10,6 +10,6 @@ public class TypesEnum1 {
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(nullable = false, unique = true)
public Long id = null;
-
+
public Enum1ForTest data;
}
\ No newline at end of file
diff --git a/tools/configure_precommit.bash b/tools/configure_precommit.bash
new file mode 100755
index 0000000..599a32a
--- /dev/null
+++ b/tools/configure_precommit.bash
@@ -0,0 +1,9 @@
+#!/bin/bash
+set +e
+ln -sf ../../tools/pre-commit-hook .git/hooks/pre-commit
+if [[ 0 != $? ]]; then
+ echo "pre-commit hooks: [ERROR] Cannot configure"
+ exit 1
+else
+ echo "pre-commit hooks: [OK]"
+fi
diff --git a/tools/pre-commit b/tools/pre-commit
new file mode 100755
index 0000000..fa9db81
--- /dev/null
+++ b/tools/pre-commit
@@ -0,0 +1,27 @@
+#!/usr/bin/env bash
+
+# get bash colors and styles here:
+# http://misc.flogisoft.com/bash/tip_colors_and_formatting
+C_RESET='\e[0m'
+C_RED='\e[31m'
+C_GREEN='\e[32m'
+C_YELLOW='\e[33m'
+
+function __run() #(step, name, cmd)
+{
+ local color output exitcode
+
+ printf "${C_YELLOW}[%s]${C_RESET} %-20s" "$1" "$2"
+ output=$(eval "$3" 2>&1)
+ exitcode=$?
+
+ if [[ 0 == $exitcode ]]; then
+ echo -e "${C_GREEN}OK!${C_RESET}"
+ else
+ echo -e "${C_RED}NOK! (${exitcode})${C_RESET}\n\n$output"
+ exit 1
+ fi
+}
+
+__run "1/1" "Check JAVA code format" "mvn formatter:verify"
+