Skip to content

Commit

Permalink
Migrate to Jakarta and add TCK
Browse files Browse the repository at this point in the history
  • Loading branch information
dstepanov committed Mar 9, 2023
1 parent 990c252 commit e91c661
Show file tree
Hide file tree
Showing 140 changed files with 2,780 additions and 2,049 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
// If you don't need any common settings/dependencies/... for everything, remove this convention plugin and the reference to it in `io.micronaut.build.internal.project-template-module.gradle` file
repositories {
repositories {
mavenCentral()
maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" }
}
mavenCentral()
maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/" }
}

configurations.all {
resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
7 changes: 5 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,16 @@ kotlin = "1.7.20"
kotest = "5.5.5"
spotbugs = "4.7.3"

managed-validation = "2.0.1.Final"
managed-validation = "3.0.2"

# Gradle plugins

micronaut-gradle-plugin = "3.7.4"
kotlin-gradle-plugin = "1.8.10"
ksp-gradle-plugin = "1.8.10-1.0.9"

jakarta-validation-tck = "3.0.1"

[libraries]

# BOMS
Expand All @@ -41,7 +43,8 @@ spotbugs = { module = "com.github.spotbugs:spotbugs-annotations", version.ref =

# MANAGED DEPENDENCIES

managed-validation = { module = "javax.validation:validation-api", version.ref = "managed-validation" }
managed-validation = { module = "jakarta.validation:jakarta.validation-api", version.ref = "managed-validation" }
jakarta-validation-tck-tests = { module = 'jakarta.validation:beanvalidation-tck-tests', version.ref = "jakarta-validation-tck" }

# GRADLE PLUGINS

Expand Down
4 changes: 4 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ plugins {
id 'io.micronaut.build.shared.settings' version '6.3.1'
}

enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")

dependencyResolutionManagement {
repositories {
mavenCentral()
Expand All @@ -25,6 +27,8 @@ include 'test-suite'
include 'test-suite-groovy'
include 'test-suite-kotlin'

include 'tests:jakarta-validation-tck'

micronautBuild {
importMicronautCatalog()
importMicronautCatalog("micronaut-reactor")
Expand Down
2 changes: 1 addition & 1 deletion src/main/docs/guide/additionalConstraints.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ To define additional constraints, create a new annotation, for example:
.Example Constraint Annotation
snippet::io.micronaut.docs.validation.custom.DurationPattern[tags="imports,class", indent="0"]

<1> The annotation should be annotated with `javax.validation.Constraint`
<1> The annotation should be annotated with `jakarta.validation.Constraint`
<2> A `message` template can be provided in a hard-coded manner as above. If none is specified, Micronaut tries to find a message using `ClassName.message` using the api:context.MessageSource[] interface (optional)
<3> To support repeated annotations you can define an inner annotation (optional)

Expand Down
2 changes: 1 addition & 1 deletion src/main/docs/guide/compileTimeValidation.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Micronaut Validation validates annotation elements at compile time with `microna

dependency:micronaut-validation-processor[groupId="io.micronaut.validation",scope="annotationProcessor"]

Micronaut Validation will, at compile time, validate annotation values that are themselves annotated with `javax.validation`.
Micronaut Validation will, at compile time, validate annotation values that are themselves annotated with `jakarta.validation`.
For example consider the following annotation:

.Annotation Validation
Expand Down
2 changes: 1 addition & 1 deletion src/main/docs/guide/dataClassesValidation.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ snippet::io.micronaut.docs.validation.pojo.PersonServiceSpec[tags="validator", i
<1> The validator validates the person
<2> The constraint violations are verified

Alternatively on Bean methods you can use `javax.validation.Valid` to trigger cascading validation:
Alternatively on Bean methods you can use `jakarta.validation.Valid` to trigger cascading validation:

.ConstraintViolationException Example
snippet::io.micronaut.docs.validation.pojo.PersonService[tags="class",indent="0"]
Expand Down
4 changes: 2 additions & 2 deletions src/main/docs/guide/methodsValidation.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
You can validate methods of any class declared as a Micronaut bean by applying `javax.validation` annotations to arguments:
You can validate methods of any class declared as a Micronaut bean by applying `jakarta.validation` annotations to arguments:

.Validating Methods
snippet::io.micronaut.docs.validation.PersonService[tags="imports,class",indent=0]
Expand All @@ -7,7 +7,7 @@ The above example declares that the `@NotBlank` annotation will be validated whe

WARNING: If you use Kotlin, the class and method must be declared `open` so Micronaut can create a compile-time subclass. Alternatively you can annotate the class with ann:validation.Validated[] and configure the Kotlin `all-open` plugin to open classes annotated with this type. See the https://kotlinlang.org/docs/reference/compiler-plugins.html[Compiler plugins] section.

A `javax.validation.ConstraintViolationException` is thrown if a validation error occurs. For example:
A `jakarta.validation.ConstraintViolationException` is thrown if a validation error occurs. For example:

.ConstraintViolationException Example
snippet::io.micronaut.docs.validation.PersonServiceSpec[tags="imports,test",indent=0]
Expand Down
6 changes: 3 additions & 3 deletions src/main/docs/guide/quickStart.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ dependency:micronaut-validation-processor[scope="annotationProcessor",groupId="i

dependency:micronaut-validation[groupId="io.micronaut.validation"]

You can validate types, fields and parameters by applying `javax.validation` annotations to arguments. Include the following dependency for annotations:
You can validate types, fields and parameters by applying `jakarta.validation` annotations to arguments. Include the following dependency for annotations:

dependency:javax.validation:validation-api[]
dependency:jakarta.validation:validation-api[]

== Supported Features

Expand All @@ -16,7 +16,7 @@ The following features are unsupported at this time:

* Any interaction with the https://beanvalidation.org/2.0/spec/#constraintmetadata[constraint metadata API], since Micronaut uses compile-time generated metadata.
* XML-based configuration
* Instead of using `javax.validation.ConstraintValidator`, use api:validation.validator.constraints.ConstraintValidator[] (io.micronaut.validation.validator.constraints.ConstraintValidator) to define custom constraints, which supports validating annotations at compile time.
* Instead of using `jakarta.validation.ConstraintValidator`, use api:validation.validator.constraints.ConstraintValidator[] (io.micronaut.validation.validator.constraints.ConstraintValidator) to define custom constraints, which supports validating annotations at compile time.

Micronaut's implementation includes the following benefits:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ package io.micronaut.docs.validation
// tag::class[]
import io.micronaut.core.annotation.Introspected

import javax.validation.constraints.Min
import javax.validation.constraints.NotBlank
import jakarta.validation.constraints.Min
import jakarta.validation.constraints.NotBlank

@Introspected
class Person {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ package io.micronaut.docs.validation

// tag::imports[]
import jakarta.inject.Singleton
import javax.validation.constraints.NotBlank
import jakarta.validation.constraints.NotBlank
// end::imports[]

// tag::class[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import io.micronaut.test.extensions.spock.annotation.MicronautTest
import spock.lang.Specification

import jakarta.inject.Inject
import javax.validation.ConstraintViolationException
import jakarta.validation.ConstraintViolationException
// end::imports[]

// tag::test[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
package io.micronaut.docs.validation.custom

// tag::imports[]
import javax.validation.Constraint
import jakarta.validation.Constraint
import java.lang.annotation.Retention

import static java.lang.annotation.RetentionPolicy.RUNTIME
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import io.micronaut.test.extensions.spock.annotation.MicronautTest
import spock.lang.Specification

import jakarta.inject.Inject
import javax.validation.ConstraintViolationException
import jakarta.validation.ConstraintViolationException

@MicronautTest
class DurationPatternValidatorSpec extends Specification {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
package io.micronaut.docs.validation.custom

import jakarta.inject.Singleton
import javax.validation.constraints.NotBlank
import jakarta.validation.constraints.NotBlank
import java.time.Duration

// tag::class[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ package io.micronaut.docs.validation.pojo
import io.micronaut.docs.validation.Person

import jakarta.inject.Singleton
import javax.validation.Valid
import jakarta.validation.Valid
// end::imports[]

// tag::class[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import io.micronaut.validation.validator.Validator
import spock.lang.Specification

import jakarta.inject.Inject
import javax.validation.ConstraintViolationException
import jakarta.validation.ConstraintViolationException
// end::imports[]

// tag::test[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ package io.micronaut.docs.ioc.validation

// tag::class[]
import io.micronaut.core.annotation.Introspected
import javax.validation.constraints.Min
import javax.validation.constraints.NotBlank
import jakarta.validation.constraints.Min
import jakarta.validation.constraints.NotBlank

@Introspected
data class Person(
@field:NotBlank var name: String,
@field:Min(18) var age: Int
)
// end::class[]
// end::class[]
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ package io.micronaut.docs.ioc.validation

// tag::imports[]
import jakarta.inject.Singleton
import javax.validation.constraints.NotBlank
import jakarta.validation.constraints.NotBlank
// end::imports[]

// tag::class[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertThrows
import org.junit.jupiter.api.Test
import jakarta.inject.Inject
import javax.validation.ConstraintViolationException
import jakarta.validation.ConstraintViolationException
// end::imports[]

// tag::test[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
package io.micronaut.docs.ioc.validation.custom

// tag::imports[]
import javax.validation.Constraint
import jakarta.validation.Constraint
import kotlin.annotation.AnnotationRetention.RUNTIME
// end::imports[]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertThrows
import org.junit.jupiter.api.Test
import jakarta.inject.Inject
import javax.validation.ConstraintViolationException
import jakarta.validation.ConstraintViolationException

@MicronautTest
internal class DurationPatternValidatorSpec {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ package io.micronaut.docs.ioc.validation.custom

import java.time.Duration
import jakarta.inject.Singleton
import javax.validation.constraints.NotBlank
import jakarta.validation.constraints.NotBlank

// tag::class[]
@Singleton
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ package io.micronaut.docs.ioc.validation.pojo
import io.micronaut.docs.ioc.validation.Person

import jakarta.inject.Singleton
import javax.validation.Valid
import jakarta.validation.Valid

// end::imports[]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertThrows
import org.junit.jupiter.api.Test
import jakarta.inject.Inject
import javax.validation.ConstraintViolationException
import jakarta.validation.ConstraintViolationException
// end::imports[]

// tag::test[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
// tag::class[]
import io.micronaut.core.annotation.Introspected;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;

@Introspected
public class Person {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import jakarta.inject.Singleton;

import javax.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotBlank;
// end::imports[]

// tag::class[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;

import javax.validation.ConstraintViolationException;
import jakarta.validation.ConstraintViolationException;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
package io.micronaut.docs.validation.custom;

// tag::imports[]
import javax.validation.Constraint;
import jakarta.validation.Constraint;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;

import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
import io.micronaut.context.annotation.Executable;
import jakarta.inject.Singleton;

import javax.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotBlank;
import java.time.Duration;

// tag::class[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@

// tag::object[]

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;

public class BookInfo {
private List<@NotBlank String> authors; // <1>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

import jakarta.inject.Singleton;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import java.util.List;
import java.util.Map;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;

import javax.validation.ConstraintViolationException;
import jakarta.validation.ConstraintViolationException;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import io.micronaut.docs.validation.Person;
import jakarta.inject.Singleton;

import javax.validation.Valid;
import jakarta.validation.Valid;
// end::imports[]

// tag::class[]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
import jakarta.inject.Inject;
import org.junit.jupiter.api.Test;

import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.ConstraintViolationException;
import java.util.Set;

import static org.junit.jupiter.api.Assertions.assertEquals;
Expand Down
Loading

0 comments on commit e91c661

Please sign in to comment.