Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Swap full > platform #504

Merged
merged 3 commits into from
Jun 7, 2024
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
55 changes: 27 additions & 28 deletions tck-dist/src/main/asciidoc/concurrency-tck-reference-guide.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,26 @@
:sectnums:

:APIShortName: Concurrency
:APIShortNameLC: concurrency
:APILongName: Jakarta Concurrency
:APIVersion: 3.1.0

:APISpecSite: https://jakarta.ee/specifications/concurrency/3.1/
:APIEclipseSite: https://projects.eclipse.org/projects/ee4j.cu
:APIGitSite: https://github.com/jakartaee/concurrency

:TCKTestPlatform: Junit5
:SigPluginGAV: org.netbeans.tools:sigtest-maven-plugin:1.6
:SigPluginVersion: 1.6
:SigPluginGAV: org.netbeans.tools:sigtest-maven-plugin:{SigPluginVersion}

:JavaVersion1: 17
:JavaVersion2: 21

:license: Eclipse Foundation Technology Compatibility Kit License
:licenseURL: https://www.eclipse.org/legal/tck.php

:TCKProcess: Jakarta EE TCK Process
:TCKProcessURL: https://jakarta.ee/committees/specification/tckprocess/

:last-update-label!:

== Preface
Expand All @@ -24,7 +36,7 @@ The specification describes the job specification language, Java programming mod

=== Licensing

The {APILongName} TCK is provided under the https://www.eclipse.org/legal/tck.php[*Eclipse Foundation Technology Compatibility Kit License*].
The {APILongName} TCK is provided under the {licenseURL}[*{license}*].

=== Who Should Use This Guide

Expand Down Expand Up @@ -76,17 +88,17 @@ The two types of tests are encapsulated in a single execution or configuration.

By "runtime" tests we simply mean tests simulating {APILongName} applications running against the {APIShortName} implementation attempting to certify compatibility. These tests verify that the {APIShortName} applications behave according to the details defined in the specification, as validated by the TCK test logic.

=== Java SE level - Java 11 or Java 17
=== Java SE level - Java {JavaVersion1} or Java {JavaVersion2}

The JDK used during test execution must be noted and listed as an important component of the certification request. In particular, the Java SE version is important to note, and this version must be used consistently throughout both the {TCKTestPlatform} runtime and Signature tests for a given certification request.

For the current TCK version, this can be done with either Java SE Version 11 or Version 17.
For the current TCK version, this can be done with either Java SE Version {JavaVersion1} or Version {JavaVersion2}.

== Prerequisites

=== Software To Install

1. **Java/JDK** - Install the JDK you intend to use for this certification request (Java SE Version 11 or Version 17).
1. **Java/JDK** - Install the JDK you intend to use for this certification request (Java SE Version {JavaVersion1} or Version {JavaVersion2}).
1. **Maven** - Install Apache Maven 3.6.0 or higher.
1. **Jakarta EE Platform** - Jakarta EE Application Server or Container [Glassfish, Open Liberty, JBoss, WebLogic, etc.]

Expand Down Expand Up @@ -142,22 +154,9 @@ The {APIShortName} TCK is a test library that includes four types of packages:
- `ee.jakarta.tck.concurrent.common.*` these are common packages shared between test packages.
- `ee.jakarta.tck.concurrent.framework` this package is an abstraction layer to make writing tests using {TCKTestPlatform}, Arquillian, SigTest, and java.util.logging easier.

===== {TCKTestPlatform} "suite" definition XML files

Here we use the term "suite" informally to describe groups of tests required to pass the TCK (and NOT specifically to refer to any particular "suite" construct defined by the {TCKTestPlatform} API).

There are two "suites" included in the TCK. There is a "suite" for the {APIShortName} API portion of the "Jakarta EE Platform" TCK and there is a second suite for the {APIShortName} SPI portion of the "Jakarta EE Platform".

These "suites" are both represented within the single `artifacts/suite.xml` file for the full profile and `artifacts/suite-web.xml` for the web profile, and are identified by their package names:

1. ee.jakarta.tck.concurrent.api.*
1. ee.jakarta.tck.concurrent.spec.*

*Note:* An implementation **MUST** run against all tests provided in the suite XML file for the given profile [underline]#unmodified# for an implementation of such profile to pass the TCK.

===== API Signature Files

The one signature file exists for both Java 11 and 17:
The one signature file exists for both Java {JavaVersion1} and {JavaVersion2}:

1. `artifacts/jakarta.enterprise.concurrent.sig`

Expand Down Expand Up @@ -403,21 +402,21 @@ include::generated/expected-sig-output.adoc[]

== TCK Challenges/Appeals Process

The https://jakarta.ee/committees/specification/tckprocess/[Jakarta EE TCK Process 1.1] will govern all process details used for challenges to the {APILongName} TCK.
The {TCKProcessURL}[{TCKProcess}] will govern all process details used for challenges to the {APILongName} TCK.

Except from the *Jakarta EE TCK Process 1.1*:
Except from the *{TCKProcess}*:

> Specifications are the sole source of truth and considered overruling to the TCK in all senses. In the course of implementing a specification and attempting to pass the TCK, implementations may come to the conclusion that one or more tests or assertions do not conform to the specification, and therefore MUST be excluded from the certification requirements.

> Requests for tests to be excluded are referred to as Challenges. This section identifies who can make challenges to the TCK, what challenges to the TCK may be submitted, how these challenges are submitted, how and to whom challenges are addressed.

=== Filing a Challenge

The challenge process is defined within the [underline]#Challenges# section within the *Jakarta EE TCK Process 1.1*.
The challenge process is defined within the [underline]#Challenges# section within the *{TCKProcess}*.

Challenges will be tracked via the {APIGitSite}/issues[issues] of the {APILongName} Specification repository.

The challenge process mentioned in the *Jakarta EE TCK Process 1.1* can be started by clicking {APIGitSite}/issues/new?assignees=&labels=challenge&projects=&template=tck-challenge.yml&title=TCK+Challenge[here],
The challenge process mentioned in the *{TCKProcess}* can be started by clicking {APIGitSite}/issues/new?assignees=&labels=challenge&projects=&template=tck-challenge.yml&title=TCK+Challenge[here],
it is recommended that you read through the challenge process to understand it in detail.

=== Successful Challenges
Expand All @@ -428,20 +427,20 @@ include::generated/successful-challenges.adoc[]

== Certification of Compatibility

The https://jakarta.ee/committees/specification/tckprocess[Jakarta EE TCK Process 1.1] will define the core process details used to certify compatibility with the {APILongName} specification, through execution of the {APILongName} TCK.
The {TCKProcessURL}[{TCKProcess}] will define the core process details used to certify compatibility with the {APILongName} specification, through execution of the {APILongName} TCK.

Except from the *Jakarta EE TCK Process 1.1*:
Except from the *{TCKProcess}*:

> Jakarta EE is a self-certification ecosystem.
If you wish to have your implementation listed on the official https://jakarta.ee implementations page for the given specification, a certification request as defined in this section is required.

=== Filing a Certification Request

The certification of compatibility process is defined within the [underline]#Certification of Compatibility# section within the *Jakarta EE TCK Process 1.1*.
The certification of compatibility process is defined within the [underline]#Certification of Compatibility# section within the *{TCKProcess}*.

Certifications will be tracked via the {APIGitSite}/issues[issues] of the {APILongName} Specification repository.

The certification of compatibility process mentioned in the *Jakarta EE TCK Process 1.1* can be started by clicking {APIGitSite}/issues/new?assignees=&labels=certification&projects=&template=certification.yml&title=Certification[here],
The certification of compatibility process mentioned in the *{TCKProcess}* can be started by clicking {APIGitSite}/issues/new?assignees=&labels=certification&projects=&template=certification.yml&title=Certification[here],
it is recommended that you read through the certification process to understand it in detail.

== Rules for {APILongName} Products
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -303,9 +303,9 @@ private static void writeTestCounts(final List<TestMetaData> testMetaData, final
String output =
"""
|===
|standalone |core |web |full |skipped
|standalone |core |web |platform |skipped

|%d |%d |%d |%d |%d
|%d |%d |%d |%d |%d

|===""".formatted(getTestCounts(testMetaData));
try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputLocation))) {
Expand Down Expand Up @@ -471,7 +471,7 @@ boolean isWeb() {
}

boolean isFull() {
return tags.contains("full");
return tags.contains("platform");
}

boolean isRunnable() {
Expand Down
4 changes: 2 additions & 2 deletions tck-dist/src/main/starter/pom.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
* Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation
* Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -179,7 +179,7 @@
<java.util.logging.config.file>${logging.config}</java.util.logging.config.file>
<!-- end::logging[] -->
</systemPropertyVariables>
<groups>${test.included}</groups> <!-- Groups to include i.e. web/full -->
<groups>${test.included}</groups> <!-- Groups to include i.e. web/platform -->
<excludedGroups>${test.excluded.groups}</excludedGroups> <!-- Groups to ignore i.e. signature -->
<!-- Ensure surfire plugin looks under src/main/java instead of src/test/java -->
<testSourceDirectory>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,24 @@
/*
* Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the
* Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
* version 2 with the GNU Classpath Exception, which is available at
* https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
*/
package ee.jakarta.tck.concurrent.framework;

/**
* A service provider to pass along EJB JNDI names from test class to servlet,
* or tasks. This is a necessary provider since the same test packaged as an EAR
* for Full profile, and a WAR for Web Profile will have different JNDI names
* for full Platform, and a WAR for Web Profile will have different JNDI names
* for their EJBs.
*/
public interface EJBJNDIProvider {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023 Contributors to the Eclipse Foundation
* Copyright (c) 2023, 2024 Contributors to the Eclipse Foundation
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -40,7 +40,7 @@
@Retention(RetentionPolicy.RUNTIME)
@Tag("core")
@Tag("web")
@Tag("full")
@Tag("platform")
@ExtendWith({ ArquillianExtension.class, AssertionExtension.class })
public @interface Core {
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023 Contributors to the Eclipse Foundation
* Copyright (c) 2023, 2024 Contributors to the Eclipse Foundation
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -27,7 +27,7 @@
import ee.jakarta.tck.concurrent.framework.junit.extensions.AssertionExtension;

/**
* This is a tag annotation that works the same as Core/Web/Full.
* This is a tag annotation that works the same as Core/Web/Platform.
* Used only for TCK development to tag test classes you need to debug without running
* all of the other tests in that profile.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023 Contributors to the Eclipse Foundation
* Copyright (c) 2023, 2024 Contributors to the Eclipse Foundation
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -28,7 +28,7 @@

/**
* <p>
* These are test classes that REQUIRE full profile to be executed. For these
* These are test classes that REQUIRE the full platform to be executed. For these
* tests to run they must deploy an application to a Jakarta EE server using the
* Arquillian {@code @Deployment} annotation.
* </p>
Expand All @@ -40,7 +40,7 @@
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Tag("full")
@Tag("platform")
@ExtendWith({ ArquillianExtension.class, AssertionExtension.class })
public @interface Full {
public @interface Platform {
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023 Contributors to the Eclipse Foundation
* Copyright (c) 2023, 2024 Contributors to the Eclipse Foundation
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -36,7 +36,7 @@
@Tag("standalone")
@Tag("core")
@Tag("web")
@Tag("full")
@Tag("platform")
@ExtendWith({ ArquillianExtension.class, AssertionExtension.class })
public @interface Standalone {
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023 Contributors to the Eclipse Foundation
* Copyright (c) 2023, 2024 Contributors to the Eclipse Foundation
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -41,7 +41,7 @@
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Tag("web")
@Tag("full")
@Tag("platform")
@ExtendWith({ ArquillianExtension.class, AssertionExtension.class })
public @interface Web {
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2013, 2023 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -35,11 +35,11 @@
import ee.jakarta.tck.concurrent.framework.junit.anno.Assertion;
import ee.jakarta.tck.concurrent.framework.junit.anno.Challenge;
import ee.jakarta.tck.concurrent.framework.junit.anno.Common.PACKAGE;
import ee.jakarta.tck.concurrent.framework.junit.anno.Full;
import ee.jakarta.tck.concurrent.framework.junit.anno.Platform;
import ee.jakarta.tck.concurrent.framework.junit.anno.TestName;
import jakarta.enterprise.concurrent.spi.ThreadContextProvider;

@Full
@Platform
@RunAsClient // Requires client testing due to multiple servlets and annotation configuration
public class ContextPropagationFullTests extends TestClient {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation
* Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -32,14 +32,14 @@
import ee.jakarta.tck.concurrent.framework.junit.anno.Assertion;
import ee.jakarta.tck.concurrent.framework.junit.anno.Challenge;
import ee.jakarta.tck.concurrent.framework.junit.anno.Common.PACKAGE;
import ee.jakarta.tck.concurrent.framework.junit.anno.Full;
import ee.jakarta.tck.concurrent.framework.junit.anno.Platform;
import ee.jakarta.tck.concurrent.framework.junit.anno.TestName;
import ee.jakarta.tck.concurrent.spec.ContextService.contextPropagate.ContextServiceDefinitionBean;
import ee.jakarta.tck.concurrent.spec.ContextService.contextPropagate.ContextServiceDefinitionInterface;
import ee.jakarta.tck.concurrent.spec.ContextService.contextPropagate.ContextServiceDefinitionServlet;
import jakarta.enterprise.concurrent.spi.ThreadContextProvider;

@Full
@Platform
@RunAsClient // Requires client testing due to multiple servlets and annotation configuration
public class ManagedExecutorDefinitionFullTests extends TestClient {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2013, 2023 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -31,10 +31,10 @@
import ee.jakarta.tck.concurrent.framework.junit.anno.Assertion;
import ee.jakarta.tck.concurrent.framework.junit.anno.Challenge;
import ee.jakarta.tck.concurrent.framework.junit.anno.Common.PACKAGE;
import ee.jakarta.tck.concurrent.framework.junit.anno.Full;
import ee.jakarta.tck.concurrent.framework.junit.anno.Platform;
import ee.jakarta.tck.concurrent.framework.junit.anno.TestName;

@Full
@Platform
@RunAsClient // Requires client testing due to login request
public class SecurityFullTests extends TestClient {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2013, 2023 Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2013, 2024 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand All @@ -24,10 +24,10 @@
import ee.jakarta.tck.concurrent.framework.EJBJNDIProvider;
import ee.jakarta.tck.concurrent.framework.junit.anno.Assertion;
import ee.jakarta.tck.concurrent.framework.junit.anno.Common.PACKAGE;
import ee.jakarta.tck.concurrent.framework.junit.anno.Full;
import ee.jakarta.tck.concurrent.framework.junit.anno.Platform;
import jakarta.ejb.EJB;

@Full
@Platform
public class InheritedAPIFullTests {

@Deployment(name = "InheritedAPITests")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021, 2023 Contributors to the Eclipse Foundation
* Copyright (c) 2021, 2024 Contributors to the Eclipse Foundation
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0, which is available at
Expand Down Expand Up @@ -32,14 +32,14 @@
import ee.jakarta.tck.concurrent.framework.junit.anno.Assertion;
import ee.jakarta.tck.concurrent.framework.junit.anno.Challenge;
import ee.jakarta.tck.concurrent.framework.junit.anno.Common.PACKAGE;
import ee.jakarta.tck.concurrent.framework.junit.anno.Full;
import ee.jakarta.tck.concurrent.framework.junit.anno.Platform;
import ee.jakarta.tck.concurrent.framework.junit.anno.TestName;
import ee.jakarta.tck.concurrent.spec.ContextService.contextPropagate.ContextServiceDefinitionBean;
import ee.jakarta.tck.concurrent.spec.ContextService.contextPropagate.ContextServiceDefinitionInterface;
import ee.jakarta.tck.concurrent.spec.ContextService.contextPropagate.ContextServiceDefinitionServlet;
import jakarta.enterprise.concurrent.spi.ThreadContextProvider;

@Full
@Platform
@RunAsClient // Requires client testing due to annotation configuration
public class ManagedScheduledExecutorDefinitionFullTests extends TestClient {

Expand Down
Loading