Skip to content

Commit

Permalink
TOMEE-4159 - Concurrency TCK (#1084)
Browse files Browse the repository at this point in the history
* TOMEE-4164 JSON-B TCK

* TOMEE-4165 JSON-P TCK

* TOMEE-4165 Add pluggability tests

* Adding concurrency TCK

* Update API version

* Merge latest changes from main

* Cleanup from previous merges, only focus on concurrency tck

* Cleanup from previous merges, only focus on concurrency tck

* Fix artifact id's but much work is needed here

* Fix versions

* Align version with TCK

* Get some changes from 4931d63

* Some additional changes from the other branch

* License fixes for xml files

* Adds FIXME for impl

* Adds concurrency tck in a separate profile

---------

Co-authored-by: Jean-Louis Monteiro <jlmonteiro@tomitribe.com>
Co-authored-by: Jonathan Gallimore <jon@jrg.me.uk>
  • Loading branch information
3 people committed Jan 18, 2024
1 parent 1932390 commit 049e9ad
Show file tree
Hide file tree
Showing 10 changed files with 572 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ public void destroyResource() {
}
}

//FIXME TOMEE-4159 Requires implementation
@Override
public <U> CompletableFuture<U> completedFuture(U u) {
return null;
Expand Down
31 changes: 31 additions & 0 deletions tck/concurrency-signature-test/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<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/maven-v4_0_0.xsd">
<parent>
<artifactId>tck</artifactId>
<groupId>org.apache.tomee</groupId>
<version>10.0.0-M1-SNAPSHOT</version>
</parent>

<modelVersion>4.0.0</modelVersion>
<artifactId>concurrency-signature-test</artifactId>
<name>TomEE :: TCK :: Concurrency Signature Tests</name>

<!-- FIXME Impl -->

</project>
28 changes: 28 additions & 0 deletions tck/concurrency-standalone/dev.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >

<!--
This suite file is for testing Jakarta Concurrency against the Jakarta Full Profile.
-->
<suite name="jakarta-concurrency" verbose="2" configfailurepolicy="continue">
<test name="jakarta-concurrency.tck">
<classes>
<class name="ee.jakarta.tck.concurrent.spec.ContextService.contextPropagate.ContextPropagationTests" />
</classes>
</test>
</suite>
40 changes: 40 additions & 0 deletions tck/concurrency-standalone/logging.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Ensure that both your client and sever JVMs point to this file using the java.util.logging property
# -Djava.util.logging.config.file=/path/to/logging.properties

#Handlers we plan to use
handlers=java.util.logging.FileHandler,java.util.logging.ConsoleHandler

#Global logger - By default only log warnings
.level=WARNING

#Concurrency logger - By default log everything for concurrency loggers
ee.jakarta.tck.concurrent.level=ALL

#Formatting for the simple formatter
java.util.logging.SimpleFormatter.class.log=true
java.util.logging.SimpleFormatter.class.full=false
java.util.logging.SimpleFormatter.class.length=30

java.util.logging.SimpleFormatter.level.log=true

java.util.logging.SimpleFormatter.method.log=true
java.util.logging.SimpleFormatter.method.length=30

java.util.logging.SimpleFormatter.thread.log=true
java.util.logging.SimpleFormatter.thread.length=3

java.util.logging.SimpleFormatter.time.log=true
java.util.logging.SimpleFormatter.time.format=[MM/dd/yyyy HH:mm:ss:SSS z]

java.util.logging.SimpleFormatter.format=[%1$tF %1$tT] %4$.1s %3$s %5$s %n

#File logging
java.util.logging.FileHandler.pattern=ConcurrentTCK%g%u.log
java.util.logging.FileHandler.limit = 500000
java.util.logging.FileHandler.count = 5
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.FileHandler.level=CONFIG

# Console Logging
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.level=WARNING
234 changes: 234 additions & 0 deletions tck/concurrency-standalone/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<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/maven-v4_0_0.xsd">
<parent>
<artifactId>tck</artifactId>
<groupId>org.apache.tomee</groupId>
<version>10.0.0-M1-SNAPSHOT</version>
</parent>

<modelVersion>4.0.0</modelVersion>
<artifactId>concurrency-standalone</artifactId>
<name>TomEE :: TCK :: Concurrency Standalone</name>

<properties>
<!-- General properties -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>

<!-- Dependency and Plugin Versions -->
<jakarta.concurrent.version>3.0.3</jakarta.concurrent.version>
<jakarta.servlet.version>6.0.0</jakarta.servlet.version>
<testng.version>7.5</testng.version>
<sigtest.version>1.6</sigtest.version>
<maven.dep.plugin.version>3.3.0</maven.dep.plugin.version>
<maven.comp.plugin.version>3.10.1</maven.comp.plugin.version>
<maven.surefire.plugin.version>2.22.2</maven.surefire.plugin.version>

<!-- Location to put test application dependencies -->
<!-- <application.server.lib>[path/to/appserver/lib]</application.server.lib>-->

<!-- Pointer to suite.xml file that has the TestNG configuration.
Use suite.xml to test the full profile
Use suite-web.xml to test the web profile
-->
<suiteXmlFile>suite.xml</suiteXmlFile>

<!-- Pointer to logging.properties file that has the java.util.logging configuration -->
<logging.config>logging.properties</logging.config>

<!-- Output directory -->
<targetDirectory>${project.basedir}/target</targetDirectory>
</properties>

<!-- tag::testClientDep[] -->
<!-- The Arquillian test framework -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>${version.arquillian.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<!-- Client Dependencies -->
<dependencies>
<!-- The TCK -->
<dependency>
<groupId>jakarta.enterprise.concurrent</groupId>
<artifactId>jakarta.enterprise.concurrent-tck</artifactId>
<version>${jakarta.concurrent.version}</version>
</dependency>
<!-- The API -->
<dependency>
<groupId>jakarta.enterprise.concurrent</groupId>
<artifactId>jakarta.enterprise.concurrent-api</artifactId>
<version>${jakarta.concurrent.version}</version>
</dependency>
<!-- Arquillian Implementation for TestNG -->
<dependency>
<groupId>org.jboss.arquillian.testng</groupId>
<artifactId>arquillian-testng-container</artifactId>
<version>${version.arquillian}</version>
</dependency>
<!-- Arquillian Deps for Apache TomEE -->

<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>apache-tomee</artifactId>
<version>${project.version}</version>
<type>zip</type>
<classifier>plus</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>arquillian-tomee-remote</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
<!-- End of deps for Apache TomEE -->

<!-- Arquillian transitive dependency on Servlet -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>${jakarta.servlet.version}</version>
</dependency>
<!-- TestNG -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
</dependency>
<!-- Signature Test Plugin -->
<dependency>
<groupId>org.netbeans.tools</groupId>
<artifactId>sigtest-maven-plugin</artifactId>
<version>${sigtest.version}</version>
</dependency>
<!-- To ensure its available for the TomEE lib directory -->
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>${version.derby}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbytools</artifactId>
<version>${version.derby}</version>
<scope>provided</scope>
</dependency>

</dependencies>
<!-- end::testClientDep[] -->

<profiles>
<profile>
<id>tck-concurrency</id>
<build>
<directory>${targetDirectory}</directory>
<defaultGoal>clean test</defaultGoal>
<plugins>
<!-- tag::testServerDep[] -->
<!-- Test Server Dependencies -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven.dep.plugin.version}</version>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng.version}</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>${derby.version}</version>
</artifactItem>
<artifactItem>
<groupId>org.netbeans.tools</groupId>
<artifactId>sigtest-maven-plugin</artifactId>
<version>${sigtest.version}</version>
</artifactItem>
</artifactItems>
<!-- <outputDirectory>${application.server.lib}</outputDirectory>-->
</configuration>
</plugin>
<!-- end::testServerDep[] -->
<!-- Compile plugin for any supplemental class files -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.comp.plugin.version}</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<!-- tag::configTestNG[] -->
<!-- Surefire plugin - Entrypoint for TestNG -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.plugin.version}</version>
<configuration>
<!-- tag::logging[] -->
<systemProperties>
<property>
<name>java.util.logging.config.file</name>
<value>${logging.config}</value>
</property>
</systemProperties>
<!-- end::logging[] -->
<!-- tag::ignore[] -->
<systemPropertyVariables>
<!-- Properties shared with Arquillian -->
<!-- <tck_server>[TODO]</tck_server>-->
<!-- <tck_hostname>[TODO]</tck_hostname>-->
<!-- <tck_username>[TODO]</tck_username>-->
<!-- <tck_password>[TODO]</tck_password>-->
<!-- <tck_port>[TODO]</tck_port>-->
<!-- <tck_port>[TODO]</tck_port>-->
</systemPropertyVariables>
<!-- end::ignore[] -->
<suiteXmlFiles>
<suiteXmlFile>${suiteXmlFile}</suiteXmlFile>
</suiteXmlFiles>
<!-- Ensure surfire plugin looks under src/main/java instead of src/test/java -->
<testSourceDirectory>
${basedir}${file.separarator}src${file.separarator}main${file.separarator}java${file.separarator}
</testSourceDirectory>
</configuration>
</plugin>
<!-- end::configTestNG[] -->
<!-- TODO: you can include a plugin to start your application server here -->
</plugins>
</build>
</profile>
</profiles>
</project>
Loading

0 comments on commit 049e9ad

Please sign in to comment.