diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index a2e42f4..0000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,45 +0,0 @@ -## Description - - - -## Related Issue - - -Fixes # - -## Type of Change - - - -- [ ] Bug fix (non-breaking change which fixes an issue) -- [ ] New feature (non-breaking change which adds functionality) -- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) -- [ ] Documentation update -- [ ] Refactoring (no functional changes) -- [ ] Performance improvement -- [ ] Test coverage improvement - -## Checklist - - - -- [ ] My code follows the project's code style -- [ ] I have performed a self-review of my code -- [ ] I have commented my code, particularly in hard-to-understand areas -- [ ] I have made corresponding changes to the documentation -- [ ] My changes generate no new warnings -- [ ] I have added tests that prove my fix is effective or that my feature works -- [ ] New and existing unit tests pass locally with my changes -- [ ] Any dependent changes have been merged and published - -## Testing - - - -## Screenshots (if applicable) - - - -## Additional Notes - - diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 638cada..0000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,79 +0,0 @@ -name: Release - -on: - push: - tags: - - 'v*' - -jobs: - release: - name: Release to Maven Central - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up JDK 21 - uses: actions/setup-java@v4 - with: - java-version: '21' - distribution: 'temurin' - cache: maven - server-id: ossrh - server-username: MAVEN_USERNAME - server-password: MAVEN_PASSWORD - gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} - gpg-passphrase: GPG_PASSPHRASE - - - name: Extract version from tag - id: version - run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT - - - name: Set version - run: mvn -B versions:set -DnewVersion=${{ steps.version.outputs.VERSION }} - - - name: Build and test - run: mvn -B verify - - - name: Deploy to Maven Central - run: mvn -B deploy -Prelease -DskipTests - env: - MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} - MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} - GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - - - name: Create GitHub Release - uses: softprops/action-gh-release@v1 - with: - generate_release_notes: true - files: | - **/target/*.jar - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - publish-docs: - name: Publish Documentation - runs-on: ubuntu-latest - needs: release - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - name: Set up JDK 21 - uses: actions/setup-java@v4 - with: - java-version: '21' - distribution: 'temurin' - cache: maven - - - name: Generate Javadoc - run: mvn -B javadoc:aggregate - - - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v3 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./target/site/apidocs - destination_dir: api/${{ github.ref_name }} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..d1a4531 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,37 @@ +# Changelog + +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.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.2.0] - 2026-02-24 + +### Changed + +- Upgraded nostr-java from 1.2.0 to 2.0.0 +- Migrated dependency artifacts to nostr-java 2.0 module structure: + - `nostr-java-api` replaced by `nostr-java-core` + - `nostr-java-crypto` replaced by `nostr-java-core` + - `nostr-java-id` replaced by `nostr-java-identity` + - `nostr-java-encryption` replaced by `nostr-java-identity` + - Removed `nostr-java-base` (merged into core) +- Replaced `PubKeyTag` with `GenericTag` for NIP-46 event tag handling + +## [0.1.1] - 2025-01-01 + +### Fixed + +- Handle null passphrase in key management methods +- Address Qodana and SpotBugs static analysis issues +- Update Bottin repository link in README.md + +### Changed + +- Update Java version requirement to 21 + +## [0.1.0] - 2025-01-01 + +- Initial release diff --git a/nsecbunker-account/pom.xml b/nsecbunker-account/pom.xml index 3793d1f..72fef9b 100644 --- a/nsecbunker-account/pom.xml +++ b/nsecbunker-account/pom.xml @@ -8,7 +8,7 @@ xyz.tcheeric nsecbunker-java - 0.1.1 + 0.2.0 nsecbunker-account diff --git a/nsecbunker-admin/pom.xml b/nsecbunker-admin/pom.xml index 26ce241..cda82c0 100644 --- a/nsecbunker-admin/pom.xml +++ b/nsecbunker-admin/pom.xml @@ -8,7 +8,7 @@ xyz.tcheeric nsecbunker-java - 0.1.1 + 0.2.0 nsecbunker-admin @@ -35,11 +35,11 @@ xyz.tcheeric - nostr-java-id + nostr-java-identity xyz.tcheeric - nostr-java-crypto + nostr-java-core xyz.tcheeric diff --git a/nsecbunker-admin/src/main/java/xyz/tcheeric/nsecbunker/admin/NsecBunkerAdminClient.java b/nsecbunker-admin/src/main/java/xyz/tcheeric/nsecbunker/admin/NsecBunkerAdminClient.java index 0e58b4a..6535e5e 100644 --- a/nsecbunker-admin/src/main/java/xyz/tcheeric/nsecbunker/admin/NsecBunkerAdminClient.java +++ b/nsecbunker-admin/src/main/java/xyz/tcheeric/nsecbunker/admin/NsecBunkerAdminClient.java @@ -511,9 +511,7 @@ private String createAdminEventJson(String encryptedContent) { event.setCreatedAt(createdAt); // Add p tag for recipient - nostr.event.tag.PubKeyTag pTag = new nostr.event.tag.PubKeyTag( - new nostr.base.PublicKey(bunkerPubkeyHex)); - event.addTag(pTag); + event.addTag(nostr.event.tag.GenericTag.of("p", bunkerPubkeyHex)); // Update and sign event.update(); @@ -540,9 +538,10 @@ private String serializeEvent(nostr.event.impl.GenericEvent event) { if (i > 0) sb.append(","); nostr.event.BaseTag tag = tags.get(i); sb.append("[\"").append(tag.getCode()).append("\""); - // Handle p tag - if (tag instanceof nostr.event.tag.PubKeyTag pt) { - sb.append(",\"").append(pt.getPublicKey().toString()).append("\""); + if (tag instanceof nostr.event.tag.GenericTag gt) { + for (String param : gt.getParams()) { + sb.append(",\"").append(param).append("\""); + } } sb.append("]"); } diff --git a/nsecbunker-client/pom.xml b/nsecbunker-client/pom.xml index 2e98e8c..f5dad81 100644 --- a/nsecbunker-client/pom.xml +++ b/nsecbunker-client/pom.xml @@ -8,7 +8,7 @@ xyz.tcheeric nsecbunker-java - 0.1.1 + 0.2.0 nsecbunker-client @@ -35,11 +35,15 @@ xyz.tcheeric - nostr-java-api + nostr-java-event xyz.tcheeric - nostr-java-crypto + nostr-java-identity + + + xyz.tcheeric + nostr-java-core diff --git a/nsecbunker-connection/pom.xml b/nsecbunker-connection/pom.xml index 4ea604e..90b2422 100644 --- a/nsecbunker-connection/pom.xml +++ b/nsecbunker-connection/pom.xml @@ -8,7 +8,7 @@ xyz.tcheeric nsecbunker-java - 0.1.1 + 0.2.0 nsecbunker-connection @@ -27,7 +27,7 @@ xyz.tcheeric - nostr-java-api + nostr-java-event diff --git a/nsecbunker-core/pom.xml b/nsecbunker-core/pom.xml index c58de7b..50022f8 100644 --- a/nsecbunker-core/pom.xml +++ b/nsecbunker-core/pom.xml @@ -8,7 +8,7 @@ xyz.tcheeric nsecbunker-java - 0.1.1 + 0.2.0 nsecbunker-core @@ -19,10 +19,6 @@ - - xyz.tcheeric - nostr-java-api - xyz.tcheeric nostr-java-event diff --git a/nsecbunker-monitoring/pom.xml b/nsecbunker-monitoring/pom.xml index 587a720..8cc45c8 100644 --- a/nsecbunker-monitoring/pom.xml +++ b/nsecbunker-monitoring/pom.xml @@ -8,7 +8,7 @@ xyz.tcheeric nsecbunker-java - 0.1.1 + 0.2.0 nsecbunker-monitoring diff --git a/nsecbunker-protocol/pom.xml b/nsecbunker-protocol/pom.xml index 5570120..5fe2f6c 100644 --- a/nsecbunker-protocol/pom.xml +++ b/nsecbunker-protocol/pom.xml @@ -8,7 +8,7 @@ xyz.tcheeric nsecbunker-java - 0.1.1 + 0.2.0 nsecbunker-protocol @@ -31,15 +31,11 @@ xyz.tcheeric - nostr-java-api + nostr-java-core xyz.tcheeric - nostr-java-crypto - - - xyz.tcheeric - nostr-java-encryption + nostr-java-identity diff --git a/nsecbunker-spring-boot-starter/pom.xml b/nsecbunker-spring-boot-starter/pom.xml index 6115842..672ae5c 100644 --- a/nsecbunker-spring-boot-starter/pom.xml +++ b/nsecbunker-spring-boot-starter/pom.xml @@ -8,7 +8,7 @@ xyz.tcheeric nsecbunker-java - 0.1.1 + 0.2.0 nsecbunker-spring-boot-starter diff --git a/nsecbunker-tests/nsecbunker-chaos/pom.xml b/nsecbunker-tests/nsecbunker-chaos/pom.xml index 4a62193..d7b7897 100644 --- a/nsecbunker-tests/nsecbunker-chaos/pom.xml +++ b/nsecbunker-tests/nsecbunker-chaos/pom.xml @@ -7,7 +7,7 @@ xyz.tcheeric nsecbunker-tests - 0.1.1 + 0.2.0 nsecbunker-chaos diff --git a/nsecbunker-tests/nsecbunker-e2e/pom.xml b/nsecbunker-tests/nsecbunker-e2e/pom.xml index d922128..9d75f67 100644 --- a/nsecbunker-tests/nsecbunker-e2e/pom.xml +++ b/nsecbunker-tests/nsecbunker-e2e/pom.xml @@ -7,7 +7,7 @@ xyz.tcheeric nsecbunker-tests - 0.1.1 + 0.2.0 nsecbunker-e2e @@ -51,21 +51,17 @@ - - xyz.tcheeric - nostr-java-api - xyz.tcheeric nostr-java-event xyz.tcheeric - nostr-java-id + nostr-java-identity xyz.tcheeric - nostr-java-crypto + nostr-java-core diff --git a/nsecbunker-tests/nsecbunker-it/pom.xml b/nsecbunker-tests/nsecbunker-it/pom.xml index e826aa0..67f5d01 100644 --- a/nsecbunker-tests/nsecbunker-it/pom.xml +++ b/nsecbunker-tests/nsecbunker-it/pom.xml @@ -7,7 +7,7 @@ xyz.tcheeric nsecbunker-tests - 0.1.1 + 0.2.0 nsecbunker-it diff --git a/nsecbunker-tests/nsecbunker-it/src/test/java/xyz/tcheeric/nsecbunker/it/RelayContainerIntegrationTest.java b/nsecbunker-tests/nsecbunker-it/src/test/java/xyz/tcheeric/nsecbunker/it/RelayContainerIntegrationTest.java index 2dd8e91..5934e68 100644 --- a/nsecbunker-tests/nsecbunker-it/src/test/java/xyz/tcheeric/nsecbunker/it/RelayContainerIntegrationTest.java +++ b/nsecbunker-tests/nsecbunker-it/src/test/java/xyz/tcheeric/nsecbunker/it/RelayContainerIntegrationTest.java @@ -2,7 +2,7 @@ import nostr.event.BaseTag; import nostr.event.impl.GenericEvent; -import nostr.event.tag.PubKeyTag; +import nostr.event.tag.GenericTag; import nostr.id.Identity; import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; @@ -111,8 +111,10 @@ private String serializeEvent(GenericEvent event) { } BaseTag tag = tags.get(i); sb.append("[\"").append(tag.getCode()).append("\""); - if (tag instanceof PubKeyTag pubKeyTag) { - sb.append(",\"").append(pubKeyTag.getPublicKey().toString()).append("\""); + if (tag instanceof GenericTag gt) { + for (String param : gt.getParams()) { + sb.append(",\"").append(param).append("\""); + } } sb.append("]"); } diff --git a/nsecbunker-tests/nsecbunker-perf/pom.xml b/nsecbunker-tests/nsecbunker-perf/pom.xml index d279be8..350f2b5 100644 --- a/nsecbunker-tests/nsecbunker-perf/pom.xml +++ b/nsecbunker-tests/nsecbunker-perf/pom.xml @@ -7,7 +7,7 @@ xyz.tcheeric nsecbunker-tests - 0.1.1 + 0.2.0 nsecbunker-perf @@ -46,21 +46,17 @@ - - xyz.tcheeric - nostr-java-api - xyz.tcheeric nostr-java-event xyz.tcheeric - nostr-java-id + nostr-java-identity xyz.tcheeric - nostr-java-crypto + nostr-java-core diff --git a/nsecbunker-tests/nsecbunker-security/pom.xml b/nsecbunker-tests/nsecbunker-security/pom.xml index d8536bc..566b762 100644 --- a/nsecbunker-tests/nsecbunker-security/pom.xml +++ b/nsecbunker-tests/nsecbunker-security/pom.xml @@ -7,7 +7,7 @@ xyz.tcheeric nsecbunker-tests - 0.1.1 + 0.2.0 nsecbunker-security diff --git a/nsecbunker-tests/pom.xml b/nsecbunker-tests/pom.xml index f4c2c17..b547f19 100644 --- a/nsecbunker-tests/pom.xml +++ b/nsecbunker-tests/pom.xml @@ -7,7 +7,7 @@ xyz.tcheeric nsecbunker-java - 0.1.1 + 0.2.0 nsecbunker-tests diff --git a/pom.xml b/pom.xml index 8fb1850..c271908 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ xyz.tcheeric nsecbunker-java - 0.1.1 + 0.2.0 pom nsecBunker Java Library @@ -54,7 +54,7 @@ 21 - 1.2.0 + 2.0.0 2.17.0 4.12.0 2.0.12 @@ -129,10 +129,10 @@ ${project.version} - + xyz.tcheeric - nostr-java-api + nostr-java-core ${nostr-java.version} @@ -142,17 +142,7 @@ xyz.tcheeric - nostr-java-crypto - ${nostr-java.version} - - - xyz.tcheeric - nostr-java-id - ${nostr-java.version} - - - xyz.tcheeric - nostr-java-encryption + nostr-java-identity ${nostr-java.version} @@ -160,11 +150,6 @@ nostr-java-client ${nostr-java.version} - - xyz.tcheeric - nostr-java-base - ${nostr-java.version} -