Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions documentation/src/docs/asciidoc/user-guide/api-evolution.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,15 @@ value of lower stability.
[[api-evolution-experimental-apis]]
=== Experimental APIs

The following table lists which APIs are currently designated as _experimental_ via
The following tables list which APIs are currently designated as _experimental_ via
`@API(status = EXPERIMENTAL)`. Caution should be taken when relying on such APIs.

include::{experimentalApisTableFile}[]

[[api-evolution-deprecated-apis]]
=== Deprecated APIs

The following table lists which APIs are currently designated as _deprecated_ via
The following tables list which APIs are currently designated as _deprecated_ via
`@API(status = DEPRECATED)`. You should avoid using deprecated APIs whenever possible,
since such APIs will likely be removed in an upcoming release.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import java.io.PrintWriter;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

Expand Down Expand Up @@ -52,22 +53,27 @@ public void printDeclarationInfo(PrintWriter out, Set<Status> statuses) {
protected void printDeclarationSection(Set<Status> statuses, Status status, List<Declaration> declarations,
PrintWriter out) {
printDeclarationSectionHeader(statuses, status, declarations, out);
declarations.stream() //
.collect(groupingBy(Declaration::moduleName, TreeMap::new, toList())) //
.forEach((moduleName, moduleDeclarations) -> {
out.println(h4("Module " + moduleName));
out.println();
moduleDeclarations.stream() //
.collect(groupingBy(Declaration::packageName, TreeMap::new, toList())) //
.forEach((packageName, packageDeclarations) -> {
out.println(h5("Package " + packageName));
out.println();
printDeclarationTableHeader(out);
packageDeclarations.forEach(it -> printDeclarationTableRow(it, out));
printDeclarationTableFooter(out);
out.println();
});
});
Map<String, List<Declaration>> declarationsByModule = declarations.stream() //
.collect(groupingBy(Declaration::moduleName, TreeMap::new, toList()));
if (declarationsByModule.isEmpty()) {
out.println(paragraph("NOTE: There are currently no APIs annotated with %s.".formatted(
code("@API(status = %s)".formatted(status.name())))));
return;
}
declarationsByModule.forEach((moduleName, moduleDeclarations) -> {
out.println(h4("Module " + moduleName));
out.println();
moduleDeclarations.stream() //
.collect(groupingBy(Declaration::packageName, TreeMap::new, toList())) //
.forEach((packageName, packageDeclarations) -> {
out.println(h5("Package " + packageName));
out.println();
printDeclarationTableHeader(out);
packageDeclarations.forEach(it -> printDeclarationTableRow(it, out));
printDeclarationTableFooter(out);
out.println();
});
});
}

protected void printDeclarationSectionHeader(Set<Status> statuses, Status status, List<Declaration> declarations,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

package org.junit.jupiter.api;

import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.MAINTAINED;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
Expand Down Expand Up @@ -78,7 +78,7 @@
@Target({ ElementType.ANNOTATION_TYPE, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@API(status = EXPERIMENTAL, since = "5.11")
@API(status = MAINTAINED, since = "5.13.3")
public @interface AutoClose {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

package org.junit.jupiter.api;

import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.MAINTAINED;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
Expand Down Expand Up @@ -66,7 +66,7 @@
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@API(status = EXPERIMENTAL, since = "5.13")
@API(status = MAINTAINED, since = "5.13.3")
@Testable
public @interface ClassTemplate {
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@

import static java.util.Collections.emptyList;
import static org.apiguardian.api.API.Status.DEPRECATED;
import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.INTERNAL;
import static org.apiguardian.api.API.Status.MAINTAINED;
import static org.apiguardian.api.API.Status.STABLE;
import static org.junit.platform.commons.support.AnnotationSupport.findAnnotation;
import static org.junit.platform.commons.support.ModifierSupport.isStatic;
Expand Down Expand Up @@ -128,7 +128,7 @@ default String generateDisplayNameForNestedClass(Class<?> nestedClass) {
* @return the display name for the nested class; never blank
* @since 5.12
*/
@API(status = EXPERIMENTAL, since = "5.12")
@API(status = MAINTAINED, since = "5.13.3")
default String generateDisplayNameForNestedClass(List<Class<?>> enclosingInstanceTypes, Class<?> nestedClass) {
return generateDisplayNameForNestedClass(nestedClass);
}
Expand Down Expand Up @@ -177,7 +177,7 @@ default String generateDisplayNameForMethod(Class<?> testClass, Method testMetho
* @return the display name for the test; never blank
* @since 5.12
*/
@API(status = EXPERIMENTAL, since = "5.12")
@API(status = MAINTAINED, since = "5.13.3")
default String generateDisplayNameForMethod(List<Class<?>> enclosingInstanceTypes, Class<?> testClass,
Method testMethod) {
return generateDisplayNameForMethod(testClass, testMethod);
Expand Down Expand Up @@ -332,7 +332,7 @@ class IndicativeSentences implements DisplayNameGenerator {
*/
@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@API(status = EXPERIMENTAL, since = "5.13")
@API(status = MAINTAINED, since = "5.13.3")
public @interface SentenceFragment {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@

import static java.util.Spliterator.ORDERED;
import static java.util.Spliterators.spliteratorUnknownSize;
import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.MAINTAINED;

import java.net.URI;
Expand Down Expand Up @@ -249,7 +248,7 @@ public static <T> Stream<DynamicTest> stream(Stream<? extends Named<T>> inputStr
* @see #stream(Stream)
* @see NamedExecutable
*/
@API(status = EXPERIMENTAL, since = "5.11")
@API(status = MAINTAINED, since = "5.13.3")
public static <T extends Named<E>, E extends Executable> Stream<DynamicTest> stream(
Iterator<? extends T> iterator) {
Preconditions.notNull(iterator, "iterator must not be null");
Expand Down Expand Up @@ -279,7 +278,7 @@ public static <T extends Named<E>, E extends Executable> Stream<DynamicTest> str
* @see #stream(Iterator)
* @see NamedExecutable
*/
@API(status = EXPERIMENTAL, since = "5.11")
@API(status = MAINTAINED, since = "5.13.3")
public static <T extends Named<E>, E extends Executable> Stream<DynamicTest> stream(
Stream<? extends T> inputStream) {
Preconditions.notNull(inputStream, "inputStream must not be null");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

package org.junit.jupiter.api;

import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.MAINTAINED;

import java.util.Iterator;
import java.util.stream.Stream;
Expand All @@ -34,7 +34,7 @@
* @see DynamicTest#stream(Iterator)
*/
@FunctionalInterface
@API(status = EXPERIMENTAL, since = "5.11")
@API(status = MAINTAINED, since = "5.13.3")
public interface NamedExecutable extends Named<Executable>, Executable {
@Override
default String getName() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

package org.junit.jupiter.api;

import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.MAINTAINED;
import static org.apiguardian.api.API.Status.STABLE;

import java.lang.annotation.Documented;
Expand Down Expand Up @@ -191,7 +191,7 @@
* @return the failure threshold; must be greater than zero and less than the
* total number of repetitions
*/
@API(status = EXPERIMENTAL, since = "5.10")
@API(status = MAINTAINED, since = "5.13.3")
int failureThreshold() default Integer.MAX_VALUE;

}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

package org.junit.jupiter.api;

import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.MAINTAINED;
import static org.apiguardian.api.API.Status.STABLE;

import org.apiguardian.api.API;
Expand Down Expand Up @@ -58,7 +58,7 @@ public interface RepetitionInfo {
* @since 5.10
* @see #getFailureThreshold()
*/
@API(status = EXPERIMENTAL, since = "5.10")
@API(status = MAINTAINED, since = "5.13.3")
int getFailureCount();

/**
Expand All @@ -68,7 +68,7 @@ public interface RepetitionInfo {
* @since 5.10
* @see RepeatedTest#failureThreshold()
*/
@API(status = EXPERIMENTAL, since = "5.10")
@API(status = MAINTAINED, since = "5.13.3")
int getFailureThreshold();

}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
package org.junit.jupiter.api;

import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.MAINTAINED;
import static org.apiguardian.api.API.Status.STABLE;

import java.io.IOException;
Expand Down Expand Up @@ -98,7 +98,7 @@ default void publishEntry(String value) {
* {@link MediaType#APPLICATION_OCTET_STREAM} if unknown
* @since 5.12
*/
@API(status = EXPERIMENTAL, since = "5.12")
@API(status = MAINTAINED, since = "5.13.3")
default void publishFile(Path file, MediaType mediaType) {
Preconditions.condition(Files.exists(file), () -> "file must exist: " + file);
Preconditions.condition(Files.isRegularFile(file), () -> "file must be a regular file: " + file);
Expand All @@ -115,7 +115,7 @@ default void publishFile(Path file, MediaType mediaType) {
* @param directory the file to be attached; never {@code null} or blank
* @since 5.12
*/
@API(status = EXPERIMENTAL, since = "5.12")
@API(status = MAINTAINED, since = "5.13.3")
default void publishDirectory(Path directory) {
Preconditions.condition(Files.exists(directory), () -> "directory must exist: " + directory);
Preconditions.condition(Files.isDirectory(directory), () -> "directory must be a directory: " + directory);
Expand Down Expand Up @@ -153,7 +153,7 @@ default void publishDirectory(Path directory) {
* @param action the action to be executed to write the file; never {@code null}
* @since 5.12
*/
@API(status = EXPERIMENTAL, since = "5.12")
@API(status = MAINTAINED, since = "5.13.3")
default void publishFile(String name, MediaType mediaType, ThrowingConsumer<Path> action) {
throw new UnsupportedOperationException();
}
Expand All @@ -171,7 +171,7 @@ default void publishFile(String name, MediaType mediaType, ThrowingConsumer<Path
* @param action the action to be executed to write the file; never {@code null}
* @since 5.12
*/
@API(status = EXPERIMENTAL, since = "5.12")
@API(status = MAINTAINED, since = "5.13.3")
default void publishDirectory(String name, ThrowingConsumer<Path> action) {
throw new UnsupportedOperationException();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

package org.junit.jupiter.api;

import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.MAINTAINED;
import static org.apiguardian.api.API.Status.STABLE;

import java.lang.annotation.Documented;
Expand Down Expand Up @@ -329,7 +329,7 @@
*
* @since 5.9
*/
@API(status = EXPERIMENTAL, since = "5.9")
@API(status = MAINTAINED, since = "5.13.3")
String DEFAULT_TIMEOUT_THREAD_MODE_PROPERTY_NAME = "junit.jupiter.execution.timeout.thread.mode.default";

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

package org.junit.jupiter.api.condition;

import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.MAINTAINED;
import static org.apiguardian.api.API.Status.STABLE;

import java.lang.annotation.Documented;
Expand Down Expand Up @@ -138,7 +138,7 @@
* @see JRE#version()
* @see Runtime.Version#feature()
*/
@API(status = EXPERIMENTAL, since = "5.12")
@API(status = MAINTAINED, since = "5.13.3")
int minVersion() default -1;

/**
Expand All @@ -157,7 +157,7 @@
* @see JRE#version()
* @see Runtime.Version#feature()
*/
@API(status = EXPERIMENTAL, since = "5.12")
@API(status = MAINTAINED, since = "5.13.3")
int maxVersion() default -1;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

package org.junit.jupiter.api.condition;

import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.MAINTAINED;
import static org.apiguardian.api.API.Status.STABLE;

import java.lang.annotation.Documented;
Expand Down Expand Up @@ -110,7 +110,7 @@
* @see JRE#version()
* @see Runtime.Version#feature()
*/
@API(status = EXPERIMENTAL, since = "5.12")
@API(status = MAINTAINED, since = "5.13.3")
int[] versions() default {};

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

package org.junit.jupiter.api.condition;

import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.MAINTAINED;
import static org.apiguardian.api.API.Status.STABLE;

import java.lang.annotation.Documented;
Expand Down Expand Up @@ -138,7 +138,7 @@
* @see JRE#version()
* @see Runtime.Version#feature()
*/
@API(status = EXPERIMENTAL, since = "5.12")
@API(status = MAINTAINED, since = "5.13.3")
int minVersion() default -1;

/**
Expand All @@ -157,7 +157,7 @@
* @see JRE#version()
* @see Runtime.Version#feature()
*/
@API(status = EXPERIMENTAL, since = "5.12")
@API(status = MAINTAINED, since = "5.13.3")
int maxVersion() default -1;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

package org.junit.jupiter.api.condition;

import static org.apiguardian.api.API.Status.EXPERIMENTAL;
import static org.apiguardian.api.API.Status.MAINTAINED;
import static org.apiguardian.api.API.Status.STABLE;

import java.lang.annotation.Documented;
Expand Down Expand Up @@ -110,7 +110,7 @@
* @see JRE#version()
* @see Runtime.Version#feature()
*/
@API(status = EXPERIMENTAL, since = "5.12")
@API(status = MAINTAINED, since = "5.13.3")
int[] versions() default {};

/**
Expand Down
Loading