From 997a3eedd6f1fd897a314c15f29012cbdaeafc79 Mon Sep 17 00:00:00 2001 From: Andrei Cristea Date: Fri, 4 Jul 2025 10:35:01 +0200 Subject: [PATCH 1/2] chore: migrate CI from Jenkins to GitHub Actions --- .gitattributes | 2 + .github/workflows/build-and-test.yml | 11 + .gitignore | 1 - CHANGELOG.md | 3 + Jenkinsfile | 19 -- LICENSE | 293 ++---------------- LICENSE_HEADER | 12 + README.md | 7 +- build.gradle.kts | 253 +++++++++++---- gradle.properties | 36 ++- settings.gradle.kts | 18 +- .../integration/CardSelectionManagerTest.java | 5 +- .../readerclientside/AsyncScenarioITest.java | 5 +- .../readerclientside/BaseScenario.java | 5 +- .../readerclientside/SyncScenarioITest.java | 5 +- .../PluginObservationExceptionHandler.java | 5 +- .../app/RemotePluginServerObserver.java | 5 +- .../endpoint/StubAsyncEndpointClient.java | 5 +- .../endpoint/StubAsyncEndpointServer.java | 5 +- .../StubNetworkConnectionException.java | 5 +- .../endpoint/StubSyncEndpointClient.java | 5 +- .../readerclientside/model/InputDataDto.java | 5 +- .../readerclientside/model/OutputDataDto.java | 5 +- .../readerserverside/AsyncScenarioITest.java | 5 +- .../readerserverside/BaseScenario.java | 5 +- .../readerserverside/SyncScenarioITest.java | 5 +- .../endpoint/StubAsyncEndpointClient.java | 5 +- .../endpoint/StubAsyncEndpointServer.java | 5 +- .../endpoint/StubSyncEndpointClient.java | 5 +- .../integration/util/JacksonParser.java | 5 +- .../integration/util/NamedThreadFactory.java | 5 +- 31 files changed, 360 insertions(+), 395 deletions(-) create mode 100644 .github/workflows/build-and-test.yml delete mode 100644 Jenkinsfile create mode 100644 LICENSE_HEADER diff --git a/.gitattributes b/.gitattributes index 6225757..d03a971 100644 --- a/.gitattributes +++ b/.gitattributes @@ -18,6 +18,8 @@ *.css text eol=lf *.js text eol=lf *.sql text eol=lf +*.kts text eol=lf +*.gradle.kts text eol=lf ############################### # Git Large File System (LFS) # diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml new file mode 100644 index 0000000..419d6c6 --- /dev/null +++ b/.github/workflows/build-and-test.yml @@ -0,0 +1,11 @@ +name: Build and Test + +on: + pull_request: + branches: [main] + push: + branches: [main] + +jobs: + build-and-test: + uses: eclipse-keyple/keyple-actions/.github/workflows/reusable-build-and-test.yml@build-and-test-v1 diff --git a/.gitignore b/.gitignore index 931858b..9dfd420 100644 --- a/.gitignore +++ b/.gitignore @@ -9,7 +9,6 @@ release/ # Gradle .gradle/ build*/ -LICENSE_HEADER # Eclipse .classpath diff --git a/CHANGELOG.md b/CHANGELOG.md index efa597f..0568e8a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,9 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## [Unreleased] +### Changed +- Changed License from `EPL v1.0` to `EDL v1.0` +- Migrated the CI pipeline from Jenkins to GitHub Actions. ## [2025-03-21] ### Upgraded diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 32a53c0..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,19 +0,0 @@ -#!groovy -pipeline { - environment { - PROJECT_NAME = "keyple-integration-java-test" - PROJECT_BOT_NAME = "Eclipse Keyple Bot" - } - agent { kubernetes { yaml javaBuilder('2.0') } } - stages { - stage('Build and Test') { - steps { container('java-builder') { - sh './gradlew clean spotlessCheck test --no-build-cache --info --stacktrace' - junit testResults: 'build/test-results/test/*.xml', allowEmptyResults: true - } } - } - } - post { always { container('java-builder') { - archiveArtifacts artifacts: 'build*/reports/tests/**', allowEmptyArchive: true - } } } -} diff --git a/LICENSE b/LICENSE index d3087e4..aeba6ac 100644 --- a/LICENSE +++ b/LICENSE @@ -1,277 +1,30 @@ -Eclipse Public License - v 2.0 +Eclipse Distribution License - v 1.0 - THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE - PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION - OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. +Copyright (c) 2007, Eclipse Foundation, Inc. and its licensors. -1. DEFINITIONS +All rights reserved. -"Contribution" means: +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: - a) in the case of the initial Contributor, the initial content - Distributed under this Agreement, and +Redistributions of source code must retain the above copyright notice, this +list of conditions and the following disclaimer. Redistributions in binary +form must reproduce the above copyright notice, this list of conditions and +the following disclaimer in the documentation and/or other materials provided +with the distribution. - b) in the case of each subsequent Contributor: - i) changes to the Program, and - ii) additions to the Program; - where such changes and/or additions to the Program originate from - and are Distributed by that particular Contributor. A Contribution - "originates" from a Contributor if it was added to the Program by - such Contributor itself or anyone acting on such Contributor's behalf. - Contributions do not include changes or additions to the Program that - are not Modified Works. +Neither the name of the Eclipse Foundation, Inc. nor the names of its +contributors may be used to endorse or promote products derived from this +software without specific prior written permission. -"Contributor" means any person or entity that Distributes the Program. - -"Licensed Patents" mean patent claims licensable by a Contributor which -are necessarily infringed by the use or sale of its Contribution alone -or when combined with the Program. - -"Program" means the Contributions Distributed in accordance with this -Agreement. - -"Recipient" means anyone who receives the Program under this Agreement -or any Secondary License (as applicable), including Contributors. - -"Derivative Works" shall mean any work, whether in Source Code or other -form, that is based on (or derived from) the Program and for which the -editorial revisions, annotations, elaborations, or other modifications -represent, as a whole, an original work of authorship. - -"Modified Works" shall mean any work in Source Code or other form that -results from an addition to, deletion from, or modification of the -contents of the Program, including, for purposes of clarity any new file -in Source Code form that contains any contents of the Program. Modified -Works shall not include works that contain only declarations, -interfaces, types, classes, structures, or files of the Program solely -in each case in order to link to, bind by name, or subclass the Program -or Modified Works thereof. - -"Distribute" means the acts of a) distributing or b) making available -in any manner that enables the transfer of a copy. - -"Source Code" means the form of a Program preferred for making -modifications, including but not limited to software source code, -documentation source, and configuration files. - -"Secondary License" means either the GNU General Public License, -Version 2.0, or any later versions of that license, including any -exceptions or additional permissions as identified by the initial -Contributor. - -2. GRANT OF RIGHTS - - a) Subject to the terms of this Agreement, each Contributor hereby - grants Recipient a non-exclusive, worldwide, royalty-free copyright - license to reproduce, prepare Derivative Works of, publicly display, - publicly perform, Distribute and sublicense the Contribution of such - Contributor, if any, and such Derivative Works. - - b) Subject to the terms of this Agreement, each Contributor hereby - grants Recipient a non-exclusive, worldwide, royalty-free patent - license under Licensed Patents to make, use, sell, offer to sell, - import and otherwise transfer the Contribution of such Contributor, - if any, in Source Code or other form. This patent license shall - apply to the combination of the Contribution and the Program if, at - the time the Contribution is added by the Contributor, such addition - of the Contribution causes such combination to be covered by the - Licensed Patents. The patent license shall not apply to any other - combinations which include the Contribution. No hardware per se is - licensed hereunder. - - c) Recipient understands that although each Contributor grants the - licenses to its Contributions set forth herein, no assurances are - provided by any Contributor that the Program does not infringe the - patent or other intellectual property rights of any other entity. - Each Contributor disclaims any liability to Recipient for claims - brought by any other entity based on infringement of intellectual - property rights or otherwise. As a condition to exercising the - rights and licenses granted hereunder, each Recipient hereby - assumes sole responsibility to secure any other intellectual - property rights needed, if any. For example, if a third party - patent license is required to allow Recipient to Distribute the - Program, it is Recipient's responsibility to acquire that license - before distributing the Program. - - d) Each Contributor represents that to its knowledge it has - sufficient copyright rights in its Contribution, if any, to grant - the copyright license set forth in this Agreement. - - e) Notwithstanding the terms of any Secondary License, no - Contributor makes additional grants to any Recipient (other than - those set forth in this Agreement) as a result of such Recipient's - receipt of the Program under the terms of a Secondary License - (if permitted under the terms of Section 3). - -3. REQUIREMENTS - -3.1 If a Contributor Distributes the Program in any form, then: - - a) the Program must also be made available as Source Code, in - accordance with section 3.2, and the Contributor must accompany - the Program with a statement that the Source Code for the Program - is available under this Agreement, and informs Recipients how to - obtain it in a reasonable manner on or through a medium customarily - used for software exchange; and - - b) the Contributor may Distribute the Program under a license - different than this Agreement, provided that such license: - i) effectively disclaims on behalf of all other Contributors all - warranties and conditions, express and implied, including - warranties or conditions of title and non-infringement, and - implied warranties or conditions of merchantability and fitness - for a particular purpose; - - ii) effectively excludes on behalf of all other Contributors all - liability for damages, including direct, indirect, special, - incidental and consequential damages, such as lost profits; - - iii) does not attempt to limit or alter the recipients' rights - in the Source Code under section 3.2; and - - iv) requires any subsequent distribution of the Program by any - party to be under a license that satisfies the requirements - of this section 3. - -3.2 When the Program is Distributed as Source Code: - - a) it must be made available under this Agreement, or if the - Program (i) is combined with other material in a separate file or - files made available under a Secondary License, and (ii) the initial - Contributor attached to the Source Code the notice described in - Exhibit A of this Agreement, then the Program may be made available - under the terms of such Secondary Licenses, and - - b) a copy of this Agreement must be included with each copy of - the Program. - -3.3 Contributors may not remove or alter any copyright, patent, -trademark, attribution notices, disclaimers of warranty, or limitations -of liability ("notices") contained within the Program from any copy of -the Program which they Distribute, provided that Contributors may add -their own appropriate notices. - -4. COMMERCIAL DISTRIBUTION - -Commercial distributors of software may accept certain responsibilities -with respect to end users, business partners and the like. While this -license is intended to facilitate the commercial use of the Program, -the Contributor who includes the Program in a commercial product -offering should do so in a manner which does not create potential -liability for other Contributors. Therefore, if a Contributor includes -the Program in a commercial product offering, such Contributor -("Commercial Contributor") hereby agrees to defend and indemnify every -other Contributor ("Indemnified Contributor") against any losses, -damages and costs (collectively "Losses") arising from claims, lawsuits -and other legal actions brought by a third party against the Indemnified -Contributor to the extent caused by the acts or omissions of such -Commercial Contributor in connection with its distribution of the Program -in a commercial product offering. The obligations in this section do not -apply to any claims or Losses relating to any actual or alleged -intellectual property infringement. In order to qualify, an Indemnified -Contributor must: a) promptly notify the Commercial Contributor in -writing of such claim, and b) allow the Commercial Contributor to control, -and cooperate with the Commercial Contributor in, the defense and any -related settlement negotiations. The Indemnified Contributor may -participate in any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial -product offering, Product X. That Contributor is then a Commercial -Contributor. If that Commercial Contributor then makes performance -claims, or offers warranties related to Product X, those performance -claims and warranties are such Commercial Contributor's responsibility -alone. Under this section, the Commercial Contributor would have to -defend claims against the other Contributors related to those performance -claims and warranties, and if a court requires any other Contributor to -pay any damages as a result, the Commercial Contributor must pay -those damages. - -5. NO WARRANTY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT -PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" -BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR -IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF -TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR -PURPOSE. Each Recipient is solely responsible for determining the -appropriateness of using and distributing the Program and assumes all -risks associated with its exercise of rights under this Agreement, -including but not limited to the risks and costs of program errors, -compliance with applicable laws, damage to or loss of data, programs -or equipment, and unavailability or interruption of operations. - -6. DISCLAIMER OF LIABILITY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT -PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS -SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST -PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE -EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - -7. GENERAL - -If any provision of this Agreement is invalid or unenforceable under -applicable law, it shall not affect the validity or enforceability of -the remainder of the terms of this Agreement, and without further -action by the parties hereto, such provision shall be reformed to the -minimum extent necessary to make such provision valid and enforceable. - -If Recipient institutes patent litigation against any entity -(including a cross-claim or counterclaim in a lawsuit) alleging that the -Program itself (excluding combinations of the Program with other software -or hardware) infringes such Recipient's patent(s), then such Recipient's -rights granted under Section 2(b) shall terminate as of the date such -litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it -fails to comply with any of the material terms or conditions of this -Agreement and does not cure such failure in a reasonable period of -time after becoming aware of such noncompliance. If all Recipient's -rights under this Agreement terminate, Recipient agrees to cease use -and distribution of the Program as soon as reasonably practicable. -However, Recipient's obligations under this Agreement and any licenses -granted by Recipient relating to the Program shall continue and survive. - -Everyone is permitted to copy and distribute copies of this Agreement, -but in order to avoid inconsistency the Agreement is copyrighted and -may only be modified in the following manner. The Agreement Steward -reserves the right to publish new versions (including revisions) of -this Agreement from time to time. No one other than the Agreement -Steward has the right to modify this Agreement. The Eclipse Foundation -is the initial Agreement Steward. The Eclipse Foundation may assign the -responsibility to serve as the Agreement Steward to a suitable separate -entity. Each new version of the Agreement will be given a distinguishing -version number. The Program (including Contributions) may always be -Distributed subject to the version of the Agreement under which it was -received. In addition, after a new version of the Agreement is published, -Contributor may elect to Distribute the Program (including its -Contributions) under the new version. - -Except as expressly stated in Sections 2(a) and 2(b) above, Recipient -receives no rights or licenses to the intellectual property of any -Contributor under this Agreement, whether expressly, by implication, -estoppel or otherwise. All rights in the Program not expressly granted -under this Agreement are reserved. Nothing in this Agreement is intended -to be enforceable by any entity that is not a Contributor or Recipient. -No third-party beneficiary rights are created under this Agreement. - -Exhibit A - Form of Secondary Licenses Notice - -"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: {name license(s), -version(s), and exceptions or additional permissions here}." - - Simply including a copy of this Agreement, including this Exhibit A - is not sufficient to license the Source Code under Secondary Licenses. - - If it is not possible or desirable to put the notice in a particular - file, then You may include the notice in a location (such as a LICENSE - file in a relevant directory) where a recipient would be likely to - look for such a notice. - - You may add additional accurate notices of copyright ownership. +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. diff --git a/LICENSE_HEADER b/LICENSE_HEADER new file mode 100644 index 0000000..e0c7065 --- /dev/null +++ b/LICENSE_HEADER @@ -0,0 +1,12 @@ +/* ************************************************************************************** + * Copyright (c) $YEAR Calypso Networks Association https://calypsonet.org/ + * + * See the NOTICE file(s) distributed with this work for additional information + * regarding copyright ownership. + * + * This program and the accompanying materials are made available under the terms of the + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php + * + * SPDX-License-Identifier: BSD-3-Clause + ************************************************************************************** */ \ No newline at end of file diff --git a/README.md b/README.md index b13356a..0c9ecd2 100644 --- a/README.md +++ b/README.md @@ -10,4 +10,9 @@ The full documentation, including the **user guide**, **download information** a ## About the source code -The code is built with **Gradle** and is compliant with **Java 1.8** in order to address a wide range of applications. \ No newline at end of file +The code is built with **Gradle** and is compliant with **Java 1.8** in order to address a wide range of applications. + +## Continuous Integration + +This project uses **GitHub Actions** for continuous integration. Every push and pull request triggers automated builds +and checks to ensure code quality and maintain compatibility with the defined specifications. \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 02c9d83..3152b1f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,84 +1,217 @@ /////////////////////////////////////////////////////////////////////////////// // GRADLE CONFIGURATION /////////////////////////////////////////////////////////////////////////////// + plugins { - java - id("com.diffplug.spotless") version "6.25.0" -} -buildscript { - repositories { - mavenLocal() - mavenCentral() - } - dependencies { - classpath("org.eclipse.keyple:keyple-gradle:0.2.+") { isChanging = true } - } + java + `maven-publish` + signing + id("com.diffplug.spotless") version "6.25.0" } -apply(plugin = "org.eclipse.keyple") /////////////////////////////////////////////////////////////////////////////// // APP CONFIGURATION /////////////////////////////////////////////////////////////////////////////// -repositories { - mavenLocal() - mavenCentral() - maven(url = "https://oss.sonatype.org/content/repositories/snapshots") -} + dependencies { -// Begin Keyple configuration (generated by 'https://keyple.org/components/overview/configuration-wizard/') - testImplementation("org.eclipse.keypop:keypop-reader-java-api:2.0.1") - testImplementation("org.eclipse.keypop:keypop-calypso-card-java-api:2.1.2") - testImplementation("org.eclipse.keypop:keypop-calypso-crypto-legacysam-java-api:0.7.0") - testImplementation("org.eclipse.keyple:keyple-common-java-api:2.0.1") - testImplementation("org.eclipse.keyple:keyple-util-java-lib:2.4.0") - testImplementation("org.eclipse.keyple:keyple-service-java-lib:3.3.5") - testImplementation("org.eclipse.keyple:keyple-service-resource-java-lib:3.1.0") - testImplementation("org.eclipse.keyple:keyple-distributed-network-java-lib:2.5.1") - testImplementation("org.eclipse.keyple:keyple-distributed-local-java-lib:2.5.2") - testImplementation("org.eclipse.keyple:keyple-distributed-remote-java-lib:2.5.1") - testImplementation("org.eclipse.keyple:keyple-card-generic-java-lib:3.1.2") - testImplementation("org.eclipse.keyple:keyple-card-calypso-java-lib:3.1.7") - testImplementation("org.eclipse.keyple:keyple-card-calypso-crypto-legacysam-java-lib:0.9.0") - testImplementation("org.eclipse.keyple:keyple-plugin-cardresource-java-lib:2.0.1") - testImplementation("org.eclipse.keyple:keyple-plugin-stub-java-lib:2.2.1") -// End Keyple configuration + // Begin Keyple configuration (generated by + // 'https://keyple.org/components/overview/configuration-wizard/') + testImplementation("org.eclipse.keypop:keypop-reader-java-api:2.0.1") + testImplementation("org.eclipse.keypop:keypop-calypso-card-java-api:2.1.2") + testImplementation("org.eclipse.keypop:keypop-calypso-crypto-legacysam-java-api:0.7.0") + testImplementation("org.eclipse.keyple:keyple-common-java-api:2.0.1") + testImplementation("org.eclipse.keyple:keyple-util-java-lib:2.4.0") + testImplementation("org.eclipse.keyple:keyple-service-java-lib:3.3.5") + testImplementation("org.eclipse.keyple:keyple-service-resource-java-lib:3.1.0") + testImplementation("org.eclipse.keyple:keyple-distributed-network-java-lib:2.5.1") + testImplementation("org.eclipse.keyple:keyple-distributed-local-java-lib:2.5.2") + testImplementation("org.eclipse.keyple:keyple-distributed-remote-java-lib:2.5.1") + testImplementation("org.eclipse.keyple:keyple-card-generic-java-lib:3.1.2") + testImplementation("org.eclipse.keyple:keyple-card-calypso-java-lib:3.1.7") + testImplementation("org.eclipse.keyple:keyple-card-calypso-crypto-legacysam-java-lib:0.9.0") + testImplementation("org.eclipse.keyple:keyple-plugin-cardresource-java-lib:2.0.1") + testImplementation("org.eclipse.keyple:keyple-plugin-stub-java-lib:2.2.1") + // End Keyple configuration + testImplementation("com.google.code.gson:gson:2.10.1") + testImplementation("org.slf4j:slf4j-api:2.0.5") + testImplementation("org.slf4j:slf4j-simple:2.0.5") + testImplementation(platform("org.junit:junit-bom:5.10.2")) + testImplementation("org.junit.jupiter:junit-jupiter") + testImplementation("org.junit.vintage:junit-vintage-engine") + testImplementation("org.assertj:assertj-core:3.25.3") + testImplementation("org.mockito:mockito-core:5.11.0") + testImplementation("org.awaitility:awaitility:4.2.1") + testImplementation("com.fasterxml.jackson.core:jackson-databind:2.17.0") +} - testImplementation("com.google.code.gson:gson:2.10.1") - testImplementation("org.slf4j:slf4j-api:2.0.5") - testImplementation("org.slf4j:slf4j-simple:2.0.5") - testImplementation(platform("org.junit:junit-bom:5.10.2")) - testImplementation("org.junit.jupiter:junit-jupiter") - testImplementation("org.junit.vintage:junit-vintage-engine") - testImplementation("org.assertj:assertj-core:3.25.3") - testImplementation("org.mockito:mockito-core:5.11.0") - testImplementation("org.awaitility:awaitility:4.2.1") - testImplementation("com.fasterxml.jackson.core:jackson-databind:2.17.0") +/////////////////////////////////////////////////////////////////////////////// +// STANDARD CONFIGURATION FOR JAVA PROJECTS +/////////////////////////////////////////////////////////////////////////////// + +if (project.hasProperty("releaseTag")) { + project.version = project.property("releaseTag") as String + println("Release mode: version set to ${project.version}") +} else { + println("Development mode: version is ${project.version}") } val javaSourceLevel: String by project val javaTargetLevel: String by project + java { - sourceCompatibility = JavaVersion.toVersion(javaSourceLevel) - targetCompatibility = JavaVersion.toVersion(javaTargetLevel) - println("Compiling Java $sourceCompatibility to Java $targetCompatibility.") + sourceCompatibility = JavaVersion.toVersion(javaSourceLevel) + targetCompatibility = JavaVersion.toVersion(javaTargetLevel) + println("Compiling Java $sourceCompatibility to Java $targetCompatibility.") + withJavadocJar() + withSourcesJar() +} + +fun copyLicenseFiles() { + val metaInfDir = File(layout.buildDirectory.get().asFile, "resources/main/META-INF") + val licenseFile = File(project.rootDir, "LICENSE") + val noticeFile = File(project.rootDir, "NOTICE.md") + metaInfDir.mkdirs() + licenseFile.copyTo(File(metaInfDir, "LICENSE"), overwrite = true) + noticeFile.copyTo(File(metaInfDir, "NOTICE.md"), overwrite = true) } -/////////////////////////////////////////////////////////////////////////////// -// TASKS CONFIGURATION -/////////////////////////////////////////////////////////////////////////////// tasks { - spotless { - java { - target("src/**/*.java") - licenseHeaderFile("${project.rootDir}/LICENSE_HEADER") - importOrder("java", "javax", "org", "com", "") - removeUnusedImports() - googleJavaFormat() + spotless { + java { + target("src/**/*.java") + licenseHeaderFile("${project.rootDir}/LICENSE_HEADER") + importOrder("java", "javax", "org", "com", "") + removeUnusedImports() + googleJavaFormat() + } + kotlinGradle { + target("**/*.kts") + ktfmt() + } + } + test { + useJUnitPlatform() + testLogging { events("passed", "skipped", "failed") } + } + javadoc { + dependsOn(processResources) + val javadocLogo = project.findProperty("javadoc.logo") as String + val javadocCopyright = project.findProperty("javadoc.copyright") as String + val titleProperty = project.findProperty("title") as String + (options as StandardJavadocDocletOptions).apply { + overview = "src/main/javadoc/overview.html" + windowTitle = "$titleProperty - ${project.version}" + header( + "
$javadocLogo $titleProperty - ${project.version}
") + docTitle("$titleProperty - ${project.version}") + use(true) + bottom(javadocCopyright) + encoding = "UTF-8" + charSet = "UTF-8" + if (JavaVersion.current().isJava11Compatible) { + addBooleanOption("html5", true) + addStringOption("Xdoclint:none", "-quiet") + } + } + doFirst { println("Generating Javadoc for ${project.name} version ${project.version}") } + } + jar { + dependsOn(processResources) + doFirst { copyLicenseFiles() } + manifest { + attributes( + mapOf( + "Implementation-Title" to (project.findProperty("title") as String), + "Implementation-Version" to project.version, + "Implementation-Vendor" to (project.findProperty("organization.name") as String), + "Implementation-URL" to (project.findProperty("project.url") as String), + "Specification-Title" to (project.findProperty("title") as String), + "Specification-Version" to project.version, + "Specification-Vendor" to (project.findProperty("organization.name") as String), + "Created-By" to + "${System.getProperty("java.version")} (${System.getProperty("java.vendor")})", + "Build-Jdk" to System.getProperty("java.version"))) + } + } + named("sourcesJar") { + doFirst { copyLicenseFiles() } + manifest { + attributes( + mapOf( + "Implementation-Title" to "${project.findProperty("title") as String} Sources", + "Implementation-Version" to project.version)) + } + } + named("javadocJar") { + dependsOn(javadoc) + doFirst { copyLicenseFiles() } + manifest { + attributes( + mapOf( + "Implementation-Title" to "${project.findProperty("title") as String} Documentation", + "Implementation-Version" to project.version)) + } + } +} + +publishing { + publications { + create("mavenJava") { + from(components["java"]) + pom { + name.set(project.findProperty("title") as String) + description.set(project.findProperty("description") as String) + url.set(project.findProperty("project.url") as String) + licenses { + license { + name.set(project.findProperty("license.name") as String) + url.set(project.findProperty("license.url") as String) + distribution.set(project.findProperty("license.distribution") as String) + } + } + developers { + developer { + name.set(project.findProperty("developer.name") as String) + email.set(project.findProperty("developer.email") as String) + } + } + organization { + name.set(project.findProperty("organization.name") as String) + url.set(project.findProperty("organization.url") as String) + } + scm { + connection.set(project.findProperty("scm.connection") as String) + developerConnection.set(project.findProperty("scm.developerConnection") as String) + url.set(project.findProperty("scm.url") as String) } + ciManagement { + system.set(project.findProperty("ci.system") as String) + url.set(project.findProperty("ci.url") as String) + } + properties.set( + mapOf( + "project.build.sourceEncoding" to "UTF-8", + "maven.compiler.source" to javaSourceLevel, + "maven.compiler.target" to javaTargetLevel)) + } } - test { - testLogging { - events("passed", "skipped", "failed") + } + repositories { + maven { + if (project.hasProperty("sonatypeURL")) { + url = uri(project.property("sonatypeURL") as String) + credentials { + username = project.property("sonatypeUsername") as String + password = project.property("sonatypePassword") as String } + } } + } +} + +signing { + if (project.hasProperty("releaseTag")) { + useGpgCmd() + sign(publishing.publications["mavenJava"]) + } } diff --git a/gradle.properties b/gradle.properties index b2ce377..018910b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,41 @@ +# Project Configuration group = org.eclipse.keyple title = Keyple Integration Java Test description = Integration tests of Keyple components -version = 1.0.0 +version = 1.0.0-SNAPSHOT +# Java Configuration javaSourceLevel = 1.8 javaTargetLevel = 1.8 + +# UTF-8 required by javadoc for special characters (ex. copyright) with Java 11+ +org.gradle.jvmargs = "-Dfile.encoding=UTF-8" + +# Documentation Configuration +javadoc.logo = +javadoc.copyright = Copyright © Eclipse Foundation, Inc. All Rights Reserved. + +# Project URLs +project.url = https://github.com/eclipse-keyple/keyple-integration-java-test + +# Organization +organization.name = Eclipse keyple +organization.url = https://keyple.org/ + +# License +license.name = MIT license +license.url = https://opensource.org/license/mit/ +license.distribution = repo + +# Developers +developer.name = Keyple Contributors +developer.email = keyple-dev@eclipse.org + +# Source Control Management +scm.connection = scm:git:git://github.com/eclipse-keyple/keyple-integration-java-test.git +scm.developerConnection = scm:git:https://github.com/eclipse-keyple/keyple-integration-java-test.git +scm.url = https://github.com/eclipse-keyple/keyple-integration-java-test + +# Continuous Integration +ci.system = GitHub Actions +ci.url = https://github.com/eclipse-keyple/keyple-integration-java-test/actions diff --git a/settings.gradle.kts b/settings.gradle.kts index 5ba1dff..36c6022 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,17 @@ rootProject.name = "keyple-integration-java-test" -// Fix resolution of dependencies with dynamic version in order to use SNAPSHOT first when available. -// See explanation here : https://docs.gradle.org/6.8.3/userguide/single_versions.html -enableFeaturePreview("VERSION_ORDERING_V2") \ No newline at end of file +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } +} + +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + mavenLocal() + mavenCentral() + maven(url = "https://central.sonatype.com/repository/maven-snapshots") + } +} diff --git a/src/test/java/org/eclipse/keyple/core/service/integration/CardSelectionManagerTest.java b/src/test/java/org/eclipse/keyple/core/service/integration/CardSelectionManagerTest.java index 28acf2e..03b4a17 100644 --- a/src/test/java/org/eclipse/keyple/core/service/integration/CardSelectionManagerTest.java +++ b/src/test/java/org/eclipse/keyple/core/service/integration/CardSelectionManagerTest.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.core.service.integration; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/AsyncScenarioITest.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/AsyncScenarioITest.java index 103e4fe..5f172e5 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/AsyncScenarioITest.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/AsyncScenarioITest.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerclientside; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/BaseScenario.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/BaseScenario.java index 1a20e80..0d4d8eb 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/BaseScenario.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/BaseScenario.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerclientside; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/SyncScenarioITest.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/SyncScenarioITest.java index 3883e51..c4149e6 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/SyncScenarioITest.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/SyncScenarioITest.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerclientside; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/app/PluginObservationExceptionHandler.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/app/PluginObservationExceptionHandler.java index 744fb86..6bcbb85 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/app/PluginObservationExceptionHandler.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/app/PluginObservationExceptionHandler.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerclientside.app; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/app/RemotePluginServerObserver.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/app/RemotePluginServerObserver.java index cf357e4..cb796ca 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/app/RemotePluginServerObserver.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/app/RemotePluginServerObserver.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerclientside.app; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubAsyncEndpointClient.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubAsyncEndpointClient.java index c9c5ef3..dcd29c5 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubAsyncEndpointClient.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubAsyncEndpointClient.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerclientside.endpoint; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubAsyncEndpointServer.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubAsyncEndpointServer.java index e5c0e88..3da199c 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubAsyncEndpointServer.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubAsyncEndpointServer.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerclientside.endpoint; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubNetworkConnectionException.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubNetworkConnectionException.java index 24145f7..e481220 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubNetworkConnectionException.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubNetworkConnectionException.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerclientside.endpoint; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubSyncEndpointClient.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubSyncEndpointClient.java index f21edf1..5f61b02 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubSyncEndpointClient.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/endpoint/StubSyncEndpointClient.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerclientside.endpoint; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/model/InputDataDto.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/model/InputDataDto.java index f6ba93c..a8b1f95 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/model/InputDataDto.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/model/InputDataDto.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerclientside.model; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/model/OutputDataDto.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/model/OutputDataDto.java index 54bc165..a24e5d0 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/model/OutputDataDto.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerclientside/model/OutputDataDto.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerclientside.model; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/AsyncScenarioITest.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/AsyncScenarioITest.java index 44667e9..130cfbc 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/AsyncScenarioITest.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/AsyncScenarioITest.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerserverside; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/BaseScenario.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/BaseScenario.java index b768c1d..9c9d9dc 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/BaseScenario.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/BaseScenario.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerserverside; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/SyncScenarioITest.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/SyncScenarioITest.java index 84831e9..7f1c9c9 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/SyncScenarioITest.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/SyncScenarioITest.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerserverside; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/endpoint/StubAsyncEndpointClient.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/endpoint/StubAsyncEndpointClient.java index 29b1a8b..049b001 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/endpoint/StubAsyncEndpointClient.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/endpoint/StubAsyncEndpointClient.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerserverside.endpoint; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/endpoint/StubAsyncEndpointServer.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/endpoint/StubAsyncEndpointServer.java index 87d979f..8c4e2f1 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/endpoint/StubAsyncEndpointServer.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/endpoint/StubAsyncEndpointServer.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerserverside.endpoint; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/endpoint/StubSyncEndpointClient.java b/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/endpoint/StubSyncEndpointClient.java index 6cb7008..3705bbf 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/endpoint/StubSyncEndpointClient.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/readerserverside/endpoint/StubSyncEndpointClient.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.readerserverside.endpoint; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/util/JacksonParser.java b/src/test/java/org/eclipse/keyple/distributed/integration/util/JacksonParser.java index aba45bd..370fbdf 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/util/JacksonParser.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/util/JacksonParser.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.util; diff --git a/src/test/java/org/eclipse/keyple/distributed/integration/util/NamedThreadFactory.java b/src/test/java/org/eclipse/keyple/distributed/integration/util/NamedThreadFactory.java index 6a33614..2742ed6 100644 --- a/src/test/java/org/eclipse/keyple/distributed/integration/util/NamedThreadFactory.java +++ b/src/test/java/org/eclipse/keyple/distributed/integration/util/NamedThreadFactory.java @@ -5,9 +5,10 @@ * regarding copyright ownership. * * This program and the accompanying materials are made available under the terms of the - * Eclipse Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 + * Eclipse Distribution License 1.0 which is available at + * https://www.eclipse.org/org/documents/edl-v10.php * - * SPDX-License-Identifier: EPL-2.0 + * SPDX-License-Identifier: BSD-3-Clause ************************************************************************************** */ package org.eclipse.keyple.distributed.integration.util; From 9be7c5bfa6a9e80c02a0a605e1961a6d31f655e6 Mon Sep 17 00:00:00 2001 From: Andrei Cristea Date: Fri, 4 Jul 2025 10:54:27 +0200 Subject: [PATCH 2/2] chore: migrate CI from Jenkins to GitHub Actions --- CHANGELOG.md | 3 +++ build.gradle.kts | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0568e8a..8157277 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Changed - Changed License from `EPL v1.0` to `EDL v1.0` - Migrated the CI pipeline from Jenkins to GitHub Actions. +### Upgraded +- `keyple-common-java-api:2.0.2` +- `keyple-card-calypso-java-lib:3.1.8` ## [2025-03-21] ### Upgraded diff --git a/build.gradle.kts b/build.gradle.kts index 3152b1f..9a0771e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -19,7 +19,7 @@ dependencies { testImplementation("org.eclipse.keypop:keypop-reader-java-api:2.0.1") testImplementation("org.eclipse.keypop:keypop-calypso-card-java-api:2.1.2") testImplementation("org.eclipse.keypop:keypop-calypso-crypto-legacysam-java-api:0.7.0") - testImplementation("org.eclipse.keyple:keyple-common-java-api:2.0.1") + testImplementation("org.eclipse.keyple:keyple-common-java-api:2.0.2") testImplementation("org.eclipse.keyple:keyple-util-java-lib:2.4.0") testImplementation("org.eclipse.keyple:keyple-service-java-lib:3.3.5") testImplementation("org.eclipse.keyple:keyple-service-resource-java-lib:3.1.0") @@ -27,7 +27,7 @@ dependencies { testImplementation("org.eclipse.keyple:keyple-distributed-local-java-lib:2.5.2") testImplementation("org.eclipse.keyple:keyple-distributed-remote-java-lib:2.5.1") testImplementation("org.eclipse.keyple:keyple-card-generic-java-lib:3.1.2") - testImplementation("org.eclipse.keyple:keyple-card-calypso-java-lib:3.1.7") + testImplementation("org.eclipse.keyple:keyple-card-calypso-java-lib:3.1.8") testImplementation("org.eclipse.keyple:keyple-card-calypso-crypto-legacysam-java-lib:0.9.0") testImplementation("org.eclipse.keyple:keyple-plugin-cardresource-java-lib:2.0.1") testImplementation("org.eclipse.keyple:keyple-plugin-stub-java-lib:2.2.1")