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

Concurrency 3.0 release review #449

Merged
merged 7 commits into from
May 11, 2022
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
50 changes: 40 additions & 10 deletions concurrency/3.0/_index.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,61 @@
---
title: "Jakarta Concurrency 3.0 (Under Development)"
date: 2021-05-20
title: "Jakarta Concurrency 3.0"
date: 2022-04-27
summary: "Jakarta EE 10 Release"
---
Jakarta Concurrency provides a specification for using concurrency from application components without compromising container integrity while still preserving the Jakarta EE platform's fundamental benefits.


# Plan
Jakarta Concurrency 3.0 will target the Jakarta EE 10 platform release.

Jakarta Concurrency 3.0 will aim to contain.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than remove the plan I'd recommend either changing this to a list of accomplishments (and move it above the set of release pointers) or, you can refer readers to the Release Record link. If the latter, I would recommend you update the Release Record to state the list of accomplishments/changes. It might be helpful to summarize why this is a major release and provide references to any potential issues that would impact users who intend to upgrade. (Either here, or in the Release Record if you want to just refer readers to that.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry about that. I had removed the Plan section because it was absent in the 2.0 release review which I was using as a guide, but now I realize it was a bad idea to copy from that because 2.0 didn't actually have any new function and was just the jakarta package rename.

To correct this, I'm following your first option and restoring the Plan section with a list of new features included just prior to the release information.

Jakarta Concurrency 3.0 contains the following features:

* Asynchronous methods
* Context-aware completion stages and completable futures
* Context propagation to parallel streams operations
* Modernization of the Trigger mechanism and Cron support
* Propagation of third party context types
* Resource definition annotations

Features identified by the community on GitHub tagged with 3.0 see 3.0 Milestone (github.com)

Bug Fixes as they arise during the release cycle
# Release Information

Documentation clean up as identified during the release cycle
* [Jakarta Concurrency 3.0 Release Record](https://projects.eclipse.org/projects/ee4j.cu/releases/3.0.0)
* [Jakarta Concurrency 3.0 Release Plan](https://projects.eclipse.org/projects/ee4j.cu/releases/3.0/plan)
* [Jakarta EE Platform 10 Release Plan](https://eclipse-ee4j.github.io/jakartaee-platform/jakartaee10/JakartaEE10ReleasePlan)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be a pointer to the PMI plan (you are welcome to keep this link, but the PMI link is what is asked for in the checklist): https://projects.eclipse.org/projects/ee4j.cu/releases/3.0/plan

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding the link that you mentioned, but without removing either of the other links because it is unclear to me which was unnecessary and the 2.0 release review appears to have them both.

* [Jakarta Concurrency 3.0 Specification Document](./jakarta-concurrency-spec-3.0.pdf) (PDF)
* [Jakarta Concurrency 3.0 Specification Document](./jakarta-concurrency-spec-3.0.html) (HTML)
* [Jakarta Concurrency 3.0 Javadoc](./apidocs)

Any updates required to meet the Java version requirements of Jakarta EE 10

Any requirements identified by other specifications or the Jakarta EE 10 platform projects during the release cycle.
* [Jakarta Concurrency 3.0 TCK](https://download.eclipse.org/ee4j/cu/jakartaee10/promoted/eftl/concurrency-tck-3.0.0.zip), [sha](https://download.eclipse.org/ee4j/cu/jakartaee10/promoted/eftl/concurrency-tck-3.0.0.info) 2fe905b8adfab903a6c5954453e67fbc3ed583b0e313edef7f09d18b7eddd0ee, [pub](https://raw.githubusercontent.com/jakartaee/specification-committee/master/jakartaee-spec-committee.pub))
* Signature tests are included with the TCK and run automatically as part of it
* Maven coordinates
* [jakarta.enterprise.concurrent:jakarta.enterprise.concurrent-api:3.0.0](https://search.maven.org/artifact/jakarta.enterprise.concurrent/jakarta.enterprise.concurrent-api/3.0.0/jar) Currently located on [staging](https://jakarta.oss.sonatype.org/content/groups/staging/jakarta/enterprise/concurrent/jakarta.enterprise.concurrent-api/3.0.0/) until release is approved, and then we will push it to Maven.

* [Jakarta Concurrency 3.0 Release Record](https://projects.eclipse.org/projects/ee4j.cu/releases/3.0)

# Compatible Implementations

* [Open Liberty 22.0.0.5-beta](https://public.dhe.ibm.com/ibmdl/export/pub/software/openliberty/runtime/beta/22.0.0.5-beta/openliberty-22.0.0.5-beta.zip)

# Ballots

## Release Review

The Release Review Specification Committee Ballot needs to be started after the above is completely filled in. Results need to be reported below.

| | Yes | No | Abstain |
|-----------------------|---------|---------|----------|
|Fujitsu | | | |
|IBM | | | |
|Oracle | | | |
|Payara | | | |
|Red Hat | | | |
|Tomitribe | | | |
|EE4J PMC | | | |
|Participant Members | | | |
|Committer Members | | | |

## Plan Review

The Specification Committee Ballot concluded successfully on 2021-05-21 with the following results:
Expand Down
2 changes: 2 additions & 0 deletions concurrency/3.0/apidocs/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Manifest-Version: 1.0

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
artifactId=jakarta.enterprise.concurrent-api
groupId=jakarta.enterprise.concurrent
version=3.0.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,272 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--

Copyright (c) 2012, 2022 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
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

-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>jakarta.enterprise.concurrent</groupId>
<artifactId>jakarta.enterprise.concurrent.parent</artifactId>
<version>3.0.0</version>
</parent>

<artifactId>jakarta.enterprise.concurrent-api</artifactId>

<name>Jakarta Concurrency</name>
<description>Jakarta Concurrency API Module</description>

<properties>

<api_package>jakarta.enterprise.concurrent</api_package>
<non.final>false</non.final> <!-- switch back to true once release is completed -->
<last.spec_version>2.0</last.spec_version>
<next.spec_version>3.0</next.spec_version>
<spec.version>${next.spec_version}</spec.version>
<new.spec.version>3.1</new.spec.version>
<build_number />
<packages.export>jakarta.enterprise.concurrent.*; version=${spec.bundle.version}</packages.export>
</properties>

<build>
<plugins>
<!-- First sets properties for the maven-bundle-plugin and later checks if they are indeed used. -->
<plugin>
<groupId>org.glassfish.build</groupId>
<artifactId>spec-version-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<spec>
<specVersion>${spec.version}</specVersion>
<specImplVersion>3.0.0</specImplVersion>
<apiPackage>${api_package}</apiPackage>

<nonFinal>${non.final}</nonFinal>
<newSpecVersion>${new.spec.version}</newSpecVersion>
<specBuild>${build_number}</specBuild>
</spec>
</configuration>
<executions>
<execution>
<goals>
<goal>set-spec-properties</goal>
<goal>check-module</goal>
</goals>
</execution>
</executions>
</plugin>
<!--
This plugin is reponsible for packaging artifacts
as OSGi bundles. Please refer to
http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html
for more information about how to use this plugin.
-->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>3.0.1</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-Version>${spec.bundle.version}</Bundle-Version>
<Bundle-SymbolicName>${spec.bundle.symbolic-name}</Bundle-SymbolicName>
<Extension-Name>${spec.extension.name}</Extension-Name>
<Implementation-Version>${spec.implementation.version}</Implementation-Version>
<Specification-Version>${spec.specification.version}</Specification-Version>
<specversion>${spec.specification.version}</specversion>
<Export-Package>${packages.export}</Export-Package>
</instructions>
</configuration>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<useDefaultManifestFile>true</useDefaultManifestFile>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<configuration>
<format>{0,date,MM/dd/yyyy hh:mm aa}</format>
<items>
<item>timestamp</item>
</items>
</configuration>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.3.1</version>
<configuration>
<archive>
<manifest>
<addDefaultEntries>false</addDefaultEntries>
</manifest>
</archive>
<source>11</source>
<doclint>none</doclint>
<notimestamp>true</notimestamp>
<docfilessubdirs>true</docfilessubdirs>
<quiet>true</quiet>
<header><![CDATA[<br>Jakarta Concurrency API v${project.version}]]></header>
<bottom>
<![CDATA[Copyright (c) 2020, 2022 Eclipse Foundation.
Use is subject to
<a href="{@docRoot}/doc-files/speclicense.html" target="_top">license terms</a>.
]]>
</bottom>
<groups>
<group>
<title>Jakarta(tm) Concurrency API Documentation</title>
<packages>jakarta.enterprise.concurrent</packages>
</group>
</groups>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>add-resource</id>
<phase>generate-resources</phase>
<goals>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>..</directory>
<targetPath>META-INF</targetPath>
<includes>
<include>LICENSE.md</include>
<include>NOTICE.md</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>validate</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jxr</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<outputDirectory>${project.build.directory}/checkstyle</outputDirectory>
<outputFile>${project.build.directory}/checkstyle/checkstyle-result.xml</outputFile>
<configLocation>etc/config/checkstyle.xml</configLocation>
</configuration>
<executions>
<execution>
<goals>
<goal>checkstyle</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
<scope>test</scope>
</dependency>
</dependencies>

<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>