Skip to content

Commit

Permalink
Merge pull request #1146 from folio-org/RMB-990-quesnalia-deps
Browse files Browse the repository at this point in the history
RMB-990: Quesnalia dependencies: Vert.x 4.5.4, jakarta.validation, ...
  • Loading branch information
julianladisch authored Feb 28, 2024
2 parents 92ac4cb + 38a7cc2 commit f2b1a94
Show file tree
Hide file tree
Showing 26 changed files with 185 additions and 136 deletions.
2 changes: 1 addition & 1 deletion cql2pgjson/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,6 @@
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.5.2</version>
<scope>test</scope>
</dependency>

Expand All @@ -114,6 +113,7 @@
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>postgresql</artifactId>
Expand Down
23 changes: 23 additions & 0 deletions doc/upgrading.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ These are notes to assist upgrading to newer versions.
See the [NEWS](../NEWS.md) summary of changes for each version.

<!-- ../../okapi/doc/md2toc -l 2 -h 3 upgrading.md -->
* [Version 36.0](#version-360)
* [Version 35.1](#version-351)
* [Version 35.0](#version-350)
* [Version 34.0](#version-340)
Expand All @@ -24,6 +25,28 @@ See the [NEWS](../NEWS.md) summary of changes for each version.
* [Version 25](#version-25)
* [Version 20](#version-20)

## Version 36.0

36.0.\* is the Quesnelia (R1 2024) version.

RMB requires Vert.x 4.5.\*.

In Java files replace `javax.validation` with `jakarta.validation`
and in pom.xml files replace
```
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
```
with
```
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
```
because the
[package name](https://github.com/jakartaee/validation/commit/a5e6c1829b110bc10cde0d30756073b28ffc2a29)
and [artifact name](https://github.com/jakartaee/validation/commit/80f3223c3aa7696e3a732ae802baac8fc529f785)
have changed.

## Version 35.1

35.1.\* is the Poppy (R2 2023) version.
Expand Down
4 changes: 0 additions & 4 deletions domain-models-api-aspects/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,6 @@
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import javax.validation.Constraint;
import javax.validation.Payload;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;

import org.folio.rest.validators.ElementsNotNullValidator;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import javax.validation.Constraint;
import javax.validation.Payload;
import jakarta.validation.Constraint;
import jakarta.validation.Payload;

import org.folio.rest.validators.ElementsPatternValidator;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ import io.vertx.core.logging.LoggerFactory;
import java.util.Arrays;
import java.util.Set;

import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.ValidationException;
import javax.validation.ValidatorFactory;
import javax.validation.executable.ExecutableValidator;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validation;
import jakarta.validation.ValidationException;
import jakarta.validation.ValidatorFactory;
import jakarta.validation.executable.ExecutableValidator;

import org.aspectj.lang.reflect.MethodSignature;
import org.aspectj.lang.annotation.SuppressAjWarnings;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import java.util.Collection;
import java.util.Iterator;

import javax.validation.ConstraintValidatorContext;
import jakarta.validation.ConstraintValidatorContext;

public abstract class AbstractCollectionValidator<A extends Annotation, E, C extends Collection<E>>
implements CollectionValidator<A, E, C> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import java.lang.annotation.Annotation;
import java.util.Collection;

import javax.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidator;

public interface CollectionValidator<A extends Annotation, E, C extends Collection<E>>
extends ConstraintValidator<A, C> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import java.util.Collection;
import java.util.Iterator;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;

import org.folio.rest.annotations.ElementsNotNull;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,15 @@
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.FileSystems;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.PathMatcher;
import java.nio.file.Paths;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
Expand All @@ -20,6 +24,7 @@
import java.util.stream.Collectors;
import java.util.stream.Stream;

import org.apache.commons.lang3.exception.UncheckedException;
import org.folio.rest.tools.plugins.CustomTypeAnnotator;
import org.folio.rest.tools.utils.RamlDirCopier;
import org.jsonschema2pojo.AnnotationStyle;
Expand Down Expand Up @@ -179,9 +184,30 @@ public void generate(String inputDirectory) throws IOException {
log.info(ramls[j] + " has a .raml suffix but does not start with #%RAML");
}
}
migrateToJakarta();
log.info("processed: " + numMatches + " raml files");
}

private void migrateToJakarta() {
try {
Files.walkFileTree(Path.of(outputDirectory), new JakartaMigrator());
} catch (IOException e) {
throw new UncheckedException(e);
}
}

private static class JakartaMigrator extends SimpleFileVisitor<Path> {
@SuppressWarnings("java:S6212") // suppress 'Declare this local variable with "var" instead.'
// because aspectj AJC doesn't support "var"
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
String java = new String(Files.readAllBytes(file), StandardCharsets.UTF_8);
java = java.replace("import javax.validation.", "import jakarta.validation.");
Files.write(file, java.getBytes(StandardCharsets.UTF_8));
return FileVisitResult.CONTINUE;
}
}

/**
* Creates list of files in directory and writes it to file
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,20 +110,20 @@ private ParameterSpec annotateNew(GParameter get, ParameterSpec orgParam) {
if (typeDeclaration instanceof StringTypeDeclaration) {
StringTypeDeclaration n = (StringTypeDeclaration) typeDeclaration;
if (n.pattern() != null) {
AnnotationSpec.Builder annoBuilder = AnnotationSpec.builder(javax.validation.constraints.Pattern.class);
AnnotationSpec.Builder annoBuilder = AnnotationSpec.builder(jakarta.validation.constraints.Pattern.class);
annoBuilder.addMember("regexp", "$S", n.pattern());
newAnnotations.add(annoBuilder.build());
}
}
if (typeDeclaration instanceof NumberTypeDeclaration) {
NumberTypeDeclaration n = (NumberTypeDeclaration) typeDeclaration;
if (n.minimum() != null) {
AnnotationSpec.Builder annoBuilder = AnnotationSpec.builder(javax.validation.constraints.Min.class);
AnnotationSpec.Builder annoBuilder = AnnotationSpec.builder(jakarta.validation.constraints.Min.class);
annoBuilder.addMember(ANNOTATION_VALUE, "$L", (Long) n.minimum().longValue());
newAnnotations.add(annoBuilder.build());
}
if (n.maximum() != null) {
AnnotationSpec.Builder annoBuilder = AnnotationSpec.builder(javax.validation.constraints.Max.class);
AnnotationSpec.Builder annoBuilder = AnnotationSpec.builder(jakarta.validation.constraints.Max.class);
annoBuilder.addMember(ANNOTATION_VALUE, "$L", (Long) n.maximum().longValue());
newAnnotations.add(annoBuilder.build());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,17 @@ public static String getAnnotation(String anno){

switch(anno.toUpperCase()){
case "PATTERN":
return "javax.validation.constraints.Pattern";
return "jakarta.validation.constraints.Pattern";
case "MIN":
return "javax.validation.constraints.Min";
return "jakarta.validation.constraints.Min";
case "MAX":
return "javax.validation.constraints.Max";
return "jakarta.validation.constraints.Max";
case "REQUIRED":
return "javax.validation.constraints.NotNull";
return "jakarta.validation.constraints.NotNull";
case "DEFAULTVALUE":
return "javax.ws.rs.DefaultValue";
case "SIZE":
return "javax.validation.constraints.Size";
return "jakarta.validation.constraints.Size";
default:
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,13 @@ class Enum2AnnotationTest implements WithAssertions {

@ParameterizedTest
@CsvSource({
"PATTERN, javax.validation.constraints.Pattern",
"pattern, javax.validation.constraints.Pattern",
"MIN, javax.validation.constraints.Min",
"MAX, javax.validation.constraints.Max",
"REQUIRED, javax.validation.constraints.NotNull",
"PATTERN, jakarta.validation.constraints.Pattern",
"pattern, jakarta.validation.constraints.Pattern",
"MIN, jakarta.validation.constraints.Min",
"MAX, jakarta.validation.constraints.Max",
"REQUIRED, jakarta.validation.constraints.NotNull",
"DEFAULTVALUE, javax.ws.rs.DefaultValue",
"SIZE, javax.validation.constraints.Size",
"SIZE, jakarta.validation.constraints.Size",
"MINNI, ",
})
void getAnnotation(String anno, String clazz) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ void minimum() {
when().post("/bees/bees").
then().
statusCode(422).
body("errors[0].code", is("javax.validation.constraints.DecimalMin.message"));
body("errors[0].code", is("jakarta.validation.constraints.DecimalMin.message"));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@
import org.folio.rest.tools.utils.ValidationHelper;
import org.folio.util.StringUtil;

import javax.validation.ConstraintViolation;
import javax.validation.Path.Node;
import javax.validation.Validation;
import javax.validation.ValidatorFactory;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.Path.Node;
import jakarta.validation.Validation;
import jakarta.validation.ValidatorFactory;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
import java.io.ByteArrayInputStream;
Expand Down Expand Up @@ -142,7 +142,7 @@ static Object[] isValidRequest(RoutingContext rc, Object content, Errors errorRe
}
boolean ret = true;
for (ConstraintViolation<?> cv : validationErrors) {
if ("{javax.validation.constraints.Null.message}".equals(cv.getMessageTemplate())) {
if ("{jakarta.validation.constraints.Null.message}".equals(cv.getMessageTemplate())) {
/**
* read only fields are marked with a 'must be null' annotation @null
* so the client should not pass them in, if they were passed in, remove them here
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import javax.validation.constraints.NotNull;
import jakarta.validation.constraints.NotNull;

/**
* Subset of {@link org.folio.rest.jaxrs.model.Book}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@
import org.junit.jupiter.api.extension.ExtendWith;
import io.vertx.core.AsyncResult;
import io.vertx.core.Future;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Null;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import java.nio.charset.StandardCharsets;
Expand Down Expand Up @@ -88,7 +88,7 @@ public Baz(String readme) {
void isValidRequestFail() {
Errors errors = new Errors();
RestRouting.isValidRequest(null, new Foo(null, null), errors, List.of(), null);
assertThat(errors.getErrors().get(0).getCode(), is("javax.validation.constraints.NotNull.message"));
assertThat(errors.getErrors().get(0).getCode(), is("jakarta.validation.constraints.NotNull.message"));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

package org.folio.rest.jaxrs.model;

import javax.validation.constraints.NotNull;
import jakarta.validation.constraints.NotNull;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
Expand Down Expand Up @@ -57,7 +57,7 @@ public class User {
*/
@JsonProperty("metadata")
@JsonPropertyDescription("Metadata about creation and changes to records, provided by the server (client should not provide)")
@javax.validation.constraints.Null
@jakarta.validation.constraints.Null
private Metadata metadata;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Null;

import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
import io.vertx.core.Handler;
import java.util.List;
import java.util.Map;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Pattern;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.Pattern;
import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE;
import javax.ws.rs.DefaultValue;
Expand Down
Loading

0 comments on commit f2b1a94

Please sign in to comment.