From 1bde0ffd8e14afce634a9be4b292dbf4861e2c81 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Fortune Date: Wed, 18 Jun 2025 16:27:41 +0200 Subject: [PATCH] ci: migrate pipeline from Jenkins to GitHub Actions --- .github/workflows/build-and-test.yml | 9 + .github/workflows/publish-release.yml | 10 + .github/workflows/publish-snapshot.yml | 10 + .github/workflows/publish-to-keypop-doc.yml | 70 ------ .gitignore | 1 - CHANGELOG.md | 2 + Jenkinsfile | 83 ------- LICENSE_HEADER | 11 + PUBLISHERS.yml | 18 -- README.md | 5 + build.gradle.kts | 209 ++++++++++++++---- gradle.properties | 37 +++- scripts/check_version.sh | 12 - scripts/prepare_javadoc.sh | 74 ------- settings.gradle.kts | 17 +- .../reader/CardCommunicationException.java | 12 +- .../org/eclipse/keypop/reader/CardReader.java | 12 +- .../keypop/reader/CardReaderEvent.java | 12 +- .../keypop/reader/ConfigurableCardReader.java | 12 +- .../keypop/reader/ObservableCardReader.java | 12 +- .../keypop/reader/ReaderApiFactory.java | 12 +- .../keypop/reader/ReaderApiProperties.java | 12 +- .../reader/ReaderCommunicationException.java | 12 +- .../ReaderProtocolNotSupportedException.java | 12 +- .../reader/selection/BasicCardSelector.java | 12 +- .../selection/CardSelectionManager.java | 12 +- .../reader/selection/CardSelectionResult.java | 12 +- .../keypop/reader/selection/CardSelector.java | 12 +- .../selection/CommonIsoCardSelector.java | 12 +- .../InvalidCardResponseException.java | 12 +- .../reader/selection/IsoCardSelector.java | 12 +- .../ScheduledCardSelectionsResponse.java | 12 +- .../selection/spi/CardSelectionExtension.java | 12 +- .../reader/selection/spi/IsoSmartCard.java | 12 +- .../reader/selection/spi/SmartCard.java | 12 +- ...dReaderObservationExceptionHandlerSpi.java | 12 +- .../reader/spi/CardReaderObserverSpi.java | 12 +- .../reader/ReaderApiPropertiesTest.java | 12 +- 38 files changed, 427 insertions(+), 417 deletions(-) create mode 100644 .github/workflows/build-and-test.yml create mode 100644 .github/workflows/publish-release.yml create mode 100644 .github/workflows/publish-snapshot.yml delete mode 100644 .github/workflows/publish-to-keypop-doc.yml delete mode 100644 Jenkinsfile create mode 100644 LICENSE_HEADER delete mode 100644 PUBLISHERS.yml delete mode 100644 scripts/check_version.sh delete mode 100644 scripts/prepare_javadoc.sh diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml new file mode 100644 index 0000000..c52d6b2 --- /dev/null +++ b/.github/workflows/build-and-test.yml @@ -0,0 +1,9 @@ +name: Build and Test + +on: + pull_request: + branches: [main] + +jobs: + build-and-test: + uses: eclipse-keypop/keypop-actions/.github/workflows/reusable-build-and-test.yml@build-and-test-v1 diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 0000000..fb41cc3 --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -0,0 +1,10 @@ +name: Publish Release package + +on: + release: + types: [published] + +jobs: + publish-release: + uses: eclipse-keypop/keypop-actions/.github/workflows/reusable-publish-release.yml@publish-release-v1 + secrets: inherit diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml new file mode 100644 index 0000000..b55eca4 --- /dev/null +++ b/.github/workflows/publish-snapshot.yml @@ -0,0 +1,10 @@ +name: Publish Snapshot package + +on: + push: + branches: [main] + +jobs: + publish-snapshot: + uses: eclipse-keypop/keypop-actions/.github/workflows/reusable-publish-snapshot.yml@publish-snapshot-v1 + secrets: inherit diff --git a/.github/workflows/publish-to-keypop-doc.yml b/.github/workflows/publish-to-keypop-doc.yml deleted file mode 100644 index 98bd506..0000000 --- a/.github/workflows/publish-to-keypop-doc.yml +++ /dev/null @@ -1,70 +0,0 @@ -name: Check Doc Updates and Trigger Documentation Update - -on: - schedule: - - cron: '0 * * * *' # Every hour - workflow_dispatch: - -permissions: - checks: write - -jobs: - check-secret: - runs-on: ubuntu-latest - outputs: - has-token: ${{ steps.check.outputs.has-token }} - steps: - - id: check - run: | - if [ "${{ secrets.ORG_GITHUB_BOT_TOKEN }}" != "" ]; then - echo "has-token=true" >> "$GITHUB_OUTPUT" - else - echo "has-token=false" >> "$GITHUB_OUTPUT" - fi - - check-and-notify: - needs: check-secret - if: needs.check-secret.outputs.has-token == 'true' - runs-on: ubuntu-latest - steps: - - name: Check commits dates - id: check-updates - run: | - # Get last commit date from current repo's doc branch - DOC_RESPONSE=$(curl -s \ - -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ - -H "Accept: application/vnd.github.v3+json" \ - "https://api.github.com/repos/${{ github.repository }}/commits/doc") - - DOC_COMMIT_DATE=$(echo $DOC_RESPONSE | jq -r '.commit.author.date') - DOC_COMMIT_TIME=$(date -d "$DOC_COMMIT_DATE" +%s) - - # Get last commit date from keypop-api-docs gh-pages branch - DOCS_RESPONSE=$(curl -s \ - -H "Authorization: token ${{ secrets.ORG_GITHUB_BOT_TOKEN }}" \ - -H "Accept: application/vnd.github.v3+json" \ - "https://api.github.com/repos/eclipse-keypop/keypop-api-docs/commits/gh-pages") - - DOCS_COMMIT_DATE=$(echo $DOCS_RESPONSE | jq -r '.commit.author.date') - DOCS_COMMIT_TIME=$(date -d "$DOCS_COMMIT_DATE" +%s) - - # Compare dates - if [ $DOC_COMMIT_TIME -gt $DOCS_COMMIT_TIME ]; then - echo "Doc branch has newer changes" - echo "Doc commit time: $(date -d @$DOC_COMMIT_TIME)" - echo "Docs commit time: $(date -d @$DOCS_COMMIT_TIME)" - echo "should-update=true" >> "$GITHUB_OUTPUT" - else - echo "No new changes to publish" - echo "Doc commit time: $(date -d @$DOC_COMMIT_TIME)" - echo "Docs commit time: $(date -d @$DOCS_COMMIT_TIME)" - echo "should-update=false" >> "$GITHUB_OUTPUT" - fi - - - name: Repository Dispatch Event - if: steps.check-updates.outputs.should-update == 'true' - uses: peter-evans/repository-dispatch@v3 - with: - token: ${{ secrets.ORG_GITHUB_BOT_TOKEN }} - repository: eclipse-keypop/keypop-api-docs - event-type: update-submodules \ No newline at end of file diff --git a/.gitignore b/.gitignore index 01ddf38..fc74077 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 6afa0a3..2a7b80f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Fixed - Fixed JUnit configuration. +### Changed +- Migrated the CI pipeline from Jenkins to GitHub Actions. ## [2.0.1] - 2024-04-12 ### Changed diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index fff6847..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,83 +0,0 @@ -#!groovy -pipeline { - environment { - PROJECT_NAME = "keypop-reader-java-api" - PROJECT_BOT_NAME = "Eclipse Keypop Bot" - } - agent { kubernetes { yaml javaBuilder('1.0') } } - stages { - stage('Import keyring') { - when { expression { env.GIT_URL.startsWith('https://github.com/eclipse-keypop/keypop-') && env.CHANGE_ID == null } } - steps { container('java-builder') { - withCredentials([file(credentialsId: 'secret-subkeys.asc', variable: 'KEYRING')]) { sh 'import_gpg "${KEYRING}"' } - } } - } - stage('Prepare settings') { steps { container('java-builder') { - script { - env.KEYPOP_VERSION = sh(script: 'grep version gradle.properties | cut -d= -f2 | tr -d "[:space:]"', returnStdout: true).trim() - env.GIT_COMMIT_MESSAGE = sh(script: 'git log --format=%B -1 | head -1 | tr -d "\n"', returnStdout: true) - echo "Building version ${env.KEYPOP_VERSION} in branch ${env.GIT_BRANCH}" - deployRelease = env.GIT_URL == "https://github.com/eclipse-keypop/${env.PROJECT_NAME}.git" && (env.GIT_BRANCH == "main" || env.GIT_BRANCH == "release-${env.KEYPOP_VERSION}") && env.CHANGE_ID == null && env.GIT_COMMIT_MESSAGE.startsWith("Release ${env.KEYPOP_VERSION}") - deploySnapshot = !deployRelease && env.GIT_URL == "https://github.com/eclipse-keypop/${env.PROJECT_NAME}.git" && (env.GIT_BRANCH == "main" || env.GIT_BRANCH == "release-${env.KEYPOP_VERSION}") && env.CHANGE_ID == null - } - sh "chmod +x ./gradlew ./scripts/*.sh" - } } } - stage('Check version') { - steps { container('java-builder') { - sh "./scripts/check_version.sh ${env.KEYPOP_VERSION}" - } } - } - stage('Build and Test') { - when { expression { !deploySnapshot && !deployRelease } } - steps { container('java-builder') { - sh './gradlew clean build test --no-build-cache --info --stacktrace' - junit testResults: 'build/test-results/test/*.xml', allowEmptyResults: true - } } - } - stage('Build and Publish Snapshot') { - when { expression { deploySnapshot } } - steps { container('java-builder') { - configFileProvider([configFile(fileId: 'gradle.properties', targetLocation: '/home/jenkins/agent/gradle.properties')]) { - sh './gradlew clean build test publish --info --stacktrace' - } - junit testResults: 'build/test-results/test/*.xml', allowEmptyResults: true - } } - } - stage('Build and Publish Release') { - when { expression { deployRelease } } - steps { container('java-builder') { - configFileProvider([configFile(fileId: 'gradle.properties', targetLocation: '/home/jenkins/agent/gradle.properties')]) { - sh './gradlew clean build test release --info --stacktrace' - } - junit testResults: 'build/test-results/test/*.xml', allowEmptyResults: true - } } - } - stage('Update GitHub Pages') { - when { expression { deploySnapshot || deployRelease } } - steps { container('java-builder') { - sh "./scripts/prepare_javadoc.sh ${env.PROJECT_NAME} ${env.KEYPOP_VERSION} ${deploySnapshot}" - dir("${env.PROJECT_NAME}") { - withCredentials([usernamePassword(credentialsId: 'github-bot', passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USERNAME')]) { - sh ''' - git add -A - git config user.email "${PROJECT_NAME}-bot@eclipse.org" - git config user.name "${PROJECT_BOT_NAME}" - git commit --allow-empty -m "docs: update documentation ${JOB_NAME}-${BUILD_NUMBER}" - git log --graph --abbrev-commit --date=relative -n 5 - git push "https://${GIT_USERNAME}:${GIT_PASSWORD}@github.com/eclipse-keypop/${PROJECT_NAME}.git" HEAD:doc - ''' - } - } - } } - } - stage('Publish packaging to Eclipse') { - when { expression { deploySnapshot || deployRelease } } - steps { container('java-builder') { sshagent(['projects-storage.eclipse.org-bot-ssh']) { sh 'publish_packaging' } } } - } - } - post { always { container('java-builder') { - archiveArtifacts artifacts: 'build*/libs/**', allowEmptyArchive: true - archiveArtifacts artifacts: 'build*/reports/tests/**', allowEmptyArchive: true - archiveArtifacts artifacts: 'build*/reports/jacoco/test/html/**', allowEmptyArchive: true - } } } -} diff --git a/LICENSE_HEADER b/LICENSE_HEADER new file mode 100644 index 0000000..efc0ba1 --- /dev/null +++ b/LICENSE_HEADER @@ -0,0 +1,11 @@ +/* ************************************************************************************** + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT + * + * SPDX-License-Identifier: MIT + ************************************************************************************** */ \ No newline at end of file diff --git a/PUBLISHERS.yml b/PUBLISHERS.yml deleted file mode 100644 index 4fb2df2..0000000 --- a/PUBLISHERS.yml +++ /dev/null @@ -1,18 +0,0 @@ -url: https://github.com/eclipse-keypop/keypop-reader-java-api -organization: - name: Eclipse Keypop - url: https://keypop.org/ -licenses: - - name: MIT license - url: https://opensource.org/license/mit/ - distribution: repo -developers: - - name: Keypop Contributors - email: keypop-dev@eclipse.org -scm: - connection: scm:git:git://github.com/eclipse-keypop/keypop-reader-java-api.git - developerConnection: scm:git:https://github.com/eclipse-keypop/keypop-reader-java-api.git - url: https://github.com/eclipse-keypop/keypop-reader-java-api -ciManagement: - system: Jenkins - url: https://ci.eclipse.org/keypop/job/Keypop/job/keypop-reader-java-api/ diff --git a/README.md b/README.md index a63b3ec..f683cc0 100644 --- a/README.md +++ b/README.md @@ -22,3 +22,8 @@ API documentation and class diagram is available ## 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. + +## 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. diff --git a/build.gradle.kts b/build.gradle.kts index 359459c..29814c0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,62 +1,193 @@ /////////////////////////////////////////////////////////////////////////////// // GRADLE CONFIGURATION /////////////////////////////////////////////////////////////////////////////// + plugins { - java - id("com.diffplug.spotless") version "6.25.0" -} -buildscript { - repositories { - mavenLocal() - mavenCentral() - } - dependencies { - classpath("org.eclipse.keypop:keypop-gradle:0.1.+") { isChanging = true } - } + java + `maven-publish` + signing + id("com.diffplug.spotless") version "6.25.0" } -apply(plugin = "org.eclipse.keypop") /////////////////////////////////////////////////////////////////////////////// // APP CONFIGURATION /////////////////////////////////////////////////////////////////////////////// -repositories { - mavenLocal() - mavenCentral() -} + dependencies { - testImplementation(platform("org.junit:junit-bom:5.12.2")) - testImplementation("org.junit.jupiter:junit-jupiter") - testRuntimeOnly("org.junit.platform:junit-platform-launcher") - testImplementation("org.assertj:assertj-core:3.25.3") + testImplementation(platform("org.junit:junit-bom:5.12.2")) + testImplementation("org.junit.jupiter:junit-jupiter") + testRuntimeOnly("org.junit.platform:junit-platform-launcher") + testImplementation("org.assertj:assertj-core:3.25.3") +} + +/////////////////////////////////////////////////////////////////////////////// +// 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.") - withJavadocJar() - withSourcesJar() + 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 { - useJUnitPlatform() - 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 2104d87..f079109 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,12 +1,41 @@ +# Project Configuration group = org.eclipse.keypop title = Keypop Reader API description = API to manage readers and process card selections -version = 2.0.2 +version = 2.0.2-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" +# UTF-8 required by javadoc for special characters (ex. copyright) with Java 11+ +org.gradle.jvmargs = "-Dfile.encoding=UTF-8" -javadoc.logo = +# Documentation Configuration +javadoc.logo = +javadoc.copyright = Copyright © Eclipse Foundation, Inc. All Rights Reserved. + +# Project URLs +project.url = https://github.com/eclipse-keypop/keypop-reader-java-api + +# Organization +organization.name = Eclipse Keypop +organization.url = https://keypop.org/ + +# License +license.name = MIT license +license.url = https://opensource.org/license/mit/ +license.distribution = repo + +# Developers +developer.name = Keypop Contributors +developer.email = keypop-dev@eclipse.org + +# Source Control Management +scm.connection = scm:git:git://github.com/eclipse-keypop/keypop-reader-java-api.git +scm.developerConnection = scm:git:https://github.com/eclipse-keypop/keypop-reader-java-api.git +scm.url = https://github.com/eclipse-keypop/keypop-reader-java-api + +# Continuous Integration +ci.system = GitHub Actions +ci.url = https://github.com/eclipse-keypop/keypop-reader-java-api/actions diff --git a/scripts/check_version.sh b/scripts/check_version.sh deleted file mode 100644 index 4417fc0..0000000 --- a/scripts/check_version.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -version=$1 -echo "Input version : '$version'" - -echo "Fetch tags..." -git fetch --tags - -if [ $(git tag -l "$version") ]; then - echo "ERROR: version '$version' has already been released" - exit 1 -fi diff --git a/scripts/prepare_javadoc.sh b/scripts/prepare_javadoc.sh deleted file mode 100644 index a96ab45..0000000 --- a/scripts/prepare_javadoc.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/bin/sh - -echo "Compute the current API version..." - -repository_name=$1 -version=$2 -is_snapshot=$3 - -if [ "$is_snapshot" = true ] -then - version="$version-SNAPSHOT" -fi - -echo "Computed current API version: $version" - -echo "Clone $repository_name..." -git clone https://github.com/eclipse-keypop/$repository_name.git - -cd $repository_name - -echo "Checkout doc branch..." -git checkout -f doc - -echo "Delete existing SNAPSHOT directory..." -rm -rf *-SNAPSHOT - -echo "Create target directory $version..." -mkdir $version - -echo "Copy javadoc files..." -cp -rf ../build/docs/javadoc/* $version/ - -# Find the latest stable version (first non-SNAPSHOT) -latest_stable=$(ls -d [0-9]*/ | grep -v SNAPSHOT | cut -f1 -d'/' | sort -Vr | head -n1) - -# Create latest-stable copy if we have a stable version -if [ ! -z "$latest_stable" ]; then - echo "Creating latest-stable directory pointing to $latest_stable..." - rm -rf latest-stable - mkdir latest-stable - cp -rf "$latest_stable"/* latest-stable/ - - echo "Creating robots.txt..." - cat > robots.txt << EOF -User-agent: * -Allow: / -Allow: /latest-stable/ -Disallow: /*/[0-9]*/ -EOF -fi - -echo "Update versions list..." -echo "| Version | Documents |" > list_versions.md -echo "|:---:|---|" >> list_versions.md - -# Get the list of directories sorted by version number -sorted_dirs=$(ls -d [0-9]*/ | cut -f1 -d'/' | sort -Vr) - -# Loop through each sorted directory -for directory in $sorted_dirs -do - # If this is the stable version, write latest-stable entry first - if [ "$directory" = "$latest_stable" ]; then - echo "| **$directory (latest stable)** | [API documentation](latest-stable) |" >> list_versions.md - else - echo "| $directory | [API documentation]($directory) |" >> list_versions.md - fi - -done - -echo "Computed all versions:" -cat list_versions.md -cd .. -echo "Local docs update finished." \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 0b1c3c2..382d3d4 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1 +1,16 @@ -rootProject.name = "keypop-reader-java-api" \ No newline at end of file +rootProject.name = "keypop-reader-java-api" + +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } +} + +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + mavenLocal() + mavenCentral() + } +} diff --git a/src/main/java/org/eclipse/keypop/reader/CardCommunicationException.java b/src/main/java/org/eclipse/keypop/reader/CardCommunicationException.java index 93418e6..2a992bb 100644 --- a/src/main/java/org/eclipse/keypop/reader/CardCommunicationException.java +++ b/src/main/java/org/eclipse/keypop/reader/CardCommunicationException.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader; /** diff --git a/src/main/java/org/eclipse/keypop/reader/CardReader.java b/src/main/java/org/eclipse/keypop/reader/CardReader.java index 1060d76..a77ca76 100644 --- a/src/main/java/org/eclipse/keypop/reader/CardReader.java +++ b/src/main/java/org/eclipse/keypop/reader/CardReader.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader; /** diff --git a/src/main/java/org/eclipse/keypop/reader/CardReaderEvent.java b/src/main/java/org/eclipse/keypop/reader/CardReaderEvent.java index 1ba235a..baaafc0 100644 --- a/src/main/java/org/eclipse/keypop/reader/CardReaderEvent.java +++ b/src/main/java/org/eclipse/keypop/reader/CardReaderEvent.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader; import org.eclipse.keypop.reader.selection.CardSelectionManager; diff --git a/src/main/java/org/eclipse/keypop/reader/ConfigurableCardReader.java b/src/main/java/org/eclipse/keypop/reader/ConfigurableCardReader.java index 75d6152..9f0904d 100644 --- a/src/main/java/org/eclipse/keypop/reader/ConfigurableCardReader.java +++ b/src/main/java/org/eclipse/keypop/reader/ConfigurableCardReader.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader; /** diff --git a/src/main/java/org/eclipse/keypop/reader/ObservableCardReader.java b/src/main/java/org/eclipse/keypop/reader/ObservableCardReader.java index cbdb8f4..b40b004 100644 --- a/src/main/java/org/eclipse/keypop/reader/ObservableCardReader.java +++ b/src/main/java/org/eclipse/keypop/reader/ObservableCardReader.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader; import org.eclipse.keypop.reader.spi.CardReaderObservationExceptionHandlerSpi; diff --git a/src/main/java/org/eclipse/keypop/reader/ReaderApiFactory.java b/src/main/java/org/eclipse/keypop/reader/ReaderApiFactory.java index ecb7a13..0f32302 100644 --- a/src/main/java/org/eclipse/keypop/reader/ReaderApiFactory.java +++ b/src/main/java/org/eclipse/keypop/reader/ReaderApiFactory.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader; import org.eclipse.keypop.reader.selection.BasicCardSelector; diff --git a/src/main/java/org/eclipse/keypop/reader/ReaderApiProperties.java b/src/main/java/org/eclipse/keypop/reader/ReaderApiProperties.java index 9a15609..176f636 100644 --- a/src/main/java/org/eclipse/keypop/reader/ReaderApiProperties.java +++ b/src/main/java/org/eclipse/keypop/reader/ReaderApiProperties.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader; /** diff --git a/src/main/java/org/eclipse/keypop/reader/ReaderCommunicationException.java b/src/main/java/org/eclipse/keypop/reader/ReaderCommunicationException.java index 0135f68..2ce1d17 100644 --- a/src/main/java/org/eclipse/keypop/reader/ReaderCommunicationException.java +++ b/src/main/java/org/eclipse/keypop/reader/ReaderCommunicationException.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader; /** diff --git a/src/main/java/org/eclipse/keypop/reader/ReaderProtocolNotSupportedException.java b/src/main/java/org/eclipse/keypop/reader/ReaderProtocolNotSupportedException.java index ef0777d..1eeca00 100644 --- a/src/main/java/org/eclipse/keypop/reader/ReaderProtocolNotSupportedException.java +++ b/src/main/java/org/eclipse/keypop/reader/ReaderProtocolNotSupportedException.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader; /** diff --git a/src/main/java/org/eclipse/keypop/reader/selection/BasicCardSelector.java b/src/main/java/org/eclipse/keypop/reader/selection/BasicCardSelector.java index 21a0f69..cd480f4 100644 --- a/src/main/java/org/eclipse/keypop/reader/selection/BasicCardSelector.java +++ b/src/main/java/org/eclipse/keypop/reader/selection/BasicCardSelector.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.selection; import org.eclipse.keypop.reader.ReaderApiFactory; diff --git a/src/main/java/org/eclipse/keypop/reader/selection/CardSelectionManager.java b/src/main/java/org/eclipse/keypop/reader/selection/CardSelectionManager.java index 44b9b9d..9e7f9ae 100644 --- a/src/main/java/org/eclipse/keypop/reader/selection/CardSelectionManager.java +++ b/src/main/java/org/eclipse/keypop/reader/selection/CardSelectionManager.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.selection; import org.eclipse.keypop.reader.CardCommunicationException; diff --git a/src/main/java/org/eclipse/keypop/reader/selection/CardSelectionResult.java b/src/main/java/org/eclipse/keypop/reader/selection/CardSelectionResult.java index f0de68f..105ac3b 100644 --- a/src/main/java/org/eclipse/keypop/reader/selection/CardSelectionResult.java +++ b/src/main/java/org/eclipse/keypop/reader/selection/CardSelectionResult.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.selection; import java.util.Map; diff --git a/src/main/java/org/eclipse/keypop/reader/selection/CardSelector.java b/src/main/java/org/eclipse/keypop/reader/selection/CardSelector.java index 0d4d0b9..5554e3a 100644 --- a/src/main/java/org/eclipse/keypop/reader/selection/CardSelector.java +++ b/src/main/java/org/eclipse/keypop/reader/selection/CardSelector.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.selection; /** diff --git a/src/main/java/org/eclipse/keypop/reader/selection/CommonIsoCardSelector.java b/src/main/java/org/eclipse/keypop/reader/selection/CommonIsoCardSelector.java index d078358..598911b 100644 --- a/src/main/java/org/eclipse/keypop/reader/selection/CommonIsoCardSelector.java +++ b/src/main/java/org/eclipse/keypop/reader/selection/CommonIsoCardSelector.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.selection; /** diff --git a/src/main/java/org/eclipse/keypop/reader/selection/InvalidCardResponseException.java b/src/main/java/org/eclipse/keypop/reader/selection/InvalidCardResponseException.java index c897a84..099311e 100644 --- a/src/main/java/org/eclipse/keypop/reader/selection/InvalidCardResponseException.java +++ b/src/main/java/org/eclipse/keypop/reader/selection/InvalidCardResponseException.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.selection; /** diff --git a/src/main/java/org/eclipse/keypop/reader/selection/IsoCardSelector.java b/src/main/java/org/eclipse/keypop/reader/selection/IsoCardSelector.java index 9107023..8fa596a 100644 --- a/src/main/java/org/eclipse/keypop/reader/selection/IsoCardSelector.java +++ b/src/main/java/org/eclipse/keypop/reader/selection/IsoCardSelector.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.selection; import org.eclipse.keypop.reader.ReaderApiFactory; diff --git a/src/main/java/org/eclipse/keypop/reader/selection/ScheduledCardSelectionsResponse.java b/src/main/java/org/eclipse/keypop/reader/selection/ScheduledCardSelectionsResponse.java index cf52fe3..44a5d74 100644 --- a/src/main/java/org/eclipse/keypop/reader/selection/ScheduledCardSelectionsResponse.java +++ b/src/main/java/org/eclipse/keypop/reader/selection/ScheduledCardSelectionsResponse.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.selection; import org.eclipse.keypop.reader.CardReaderEvent; diff --git a/src/main/java/org/eclipse/keypop/reader/selection/spi/CardSelectionExtension.java b/src/main/java/org/eclipse/keypop/reader/selection/spi/CardSelectionExtension.java index 7670361..a744828 100644 --- a/src/main/java/org/eclipse/keypop/reader/selection/spi/CardSelectionExtension.java +++ b/src/main/java/org/eclipse/keypop/reader/selection/spi/CardSelectionExtension.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.selection.spi; /** diff --git a/src/main/java/org/eclipse/keypop/reader/selection/spi/IsoSmartCard.java b/src/main/java/org/eclipse/keypop/reader/selection/spi/IsoSmartCard.java index f0cf72c..7755011 100644 --- a/src/main/java/org/eclipse/keypop/reader/selection/spi/IsoSmartCard.java +++ b/src/main/java/org/eclipse/keypop/reader/selection/spi/IsoSmartCard.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.selection.spi; /** diff --git a/src/main/java/org/eclipse/keypop/reader/selection/spi/SmartCard.java b/src/main/java/org/eclipse/keypop/reader/selection/spi/SmartCard.java index d3e9880..454bcd9 100644 --- a/src/main/java/org/eclipse/keypop/reader/selection/spi/SmartCard.java +++ b/src/main/java/org/eclipse/keypop/reader/selection/spi/SmartCard.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.selection.spi; /** diff --git a/src/main/java/org/eclipse/keypop/reader/spi/CardReaderObservationExceptionHandlerSpi.java b/src/main/java/org/eclipse/keypop/reader/spi/CardReaderObservationExceptionHandlerSpi.java index ad54473..2e421ae 100644 --- a/src/main/java/org/eclipse/keypop/reader/spi/CardReaderObservationExceptionHandlerSpi.java +++ b/src/main/java/org/eclipse/keypop/reader/spi/CardReaderObservationExceptionHandlerSpi.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.spi; /** diff --git a/src/main/java/org/eclipse/keypop/reader/spi/CardReaderObserverSpi.java b/src/main/java/org/eclipse/keypop/reader/spi/CardReaderObserverSpi.java index 06a68a2..571c84b 100644 --- a/src/main/java/org/eclipse/keypop/reader/spi/CardReaderObserverSpi.java +++ b/src/main/java/org/eclipse/keypop/reader/spi/CardReaderObserverSpi.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader.spi; import org.eclipse.keypop.reader.CardReaderEvent; diff --git a/src/test/java/org/eclipse/keypop/reader/ReaderApiPropertiesTest.java b/src/test/java/org/eclipse/keypop/reader/ReaderApiPropertiesTest.java index 3fae569..36c1da7 100644 --- a/src/test/java/org/eclipse/keypop/reader/ReaderApiPropertiesTest.java +++ b/src/test/java/org/eclipse/keypop/reader/ReaderApiPropertiesTest.java @@ -1,12 +1,14 @@ -/* ****************************************************************************** +/* ************************************************************************************** * Copyright (c) 2023 Calypso Networks Association https://calypsonet.org/ * - * This program and the accompanying materials are made available under the - * terms of the MIT License which is available at - * https://opensource.org/licenses/MIT. + * 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 + * MIT License which is available at https://opensource.org/licenses/MIT * * SPDX-License-Identifier: MIT - ****************************************************************************** */ + ************************************************************************************** */ package org.eclipse.keypop.reader; import static org.assertj.core.api.Assertions.assertThat;