From 4ba84cff86649e066c266a93ac3ca5874727c650 Mon Sep 17 00:00:00 2001 From: tcheeric Date: Tue, 24 Feb 2026 21:55:10 +0000 Subject: [PATCH 1/4] build: upgrade nostr-java dependencies from 1.2.0 to 2.0.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Migrate artifact names to match nostr-java 2.0 module structure: - nostr-java-api → nostr-java-core - nostr-java-crypto → nostr-java-core - nostr-java-id → nostr-java-identity - nostr-java-encryption → nostr-java-identity - Remove nostr-java-base (merged into core) Co-Authored-By: Claude Opus 4.6 --- nsecbunker-admin/pom.xml | 4 ++-- nsecbunker-client/pom.xml | 8 ++++++-- nsecbunker-connection/pom.xml | 2 +- nsecbunker-core/pom.xml | 4 ---- nsecbunker-protocol/pom.xml | 8 ++------ nsecbunker-tests/nsecbunker-e2e/pom.xml | 8 ++------ nsecbunker-tests/nsecbunker-perf/pom.xml | 8 ++------ pom.xml | 23 ++++------------------- 8 files changed, 19 insertions(+), 46 deletions(-) diff --git a/nsecbunker-admin/pom.xml b/nsecbunker-admin/pom.xml index 26ce241..62e8efa 100644 --- a/nsecbunker-admin/pom.xml +++ b/nsecbunker-admin/pom.xml @@ -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-client/pom.xml b/nsecbunker-client/pom.xml index 2e98e8c..772df54 100644 --- a/nsecbunker-client/pom.xml +++ b/nsecbunker-client/pom.xml @@ -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..62d997e 100644 --- a/nsecbunker-connection/pom.xml +++ b/nsecbunker-connection/pom.xml @@ -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..bd38d12 100644 --- a/nsecbunker-core/pom.xml +++ b/nsecbunker-core/pom.xml @@ -19,10 +19,6 @@ - - xyz.tcheeric - nostr-java-api - xyz.tcheeric nostr-java-event diff --git a/nsecbunker-protocol/pom.xml b/nsecbunker-protocol/pom.xml index 5570120..9684590 100644 --- a/nsecbunker-protocol/pom.xml +++ b/nsecbunker-protocol/pom.xml @@ -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-tests/nsecbunker-e2e/pom.xml b/nsecbunker-tests/nsecbunker-e2e/pom.xml index d922128..c406942 100644 --- a/nsecbunker-tests/nsecbunker-e2e/pom.xml +++ b/nsecbunker-tests/nsecbunker-e2e/pom.xml @@ -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-perf/pom.xml b/nsecbunker-tests/nsecbunker-perf/pom.xml index d279be8..1956f57 100644 --- a/nsecbunker-tests/nsecbunker-perf/pom.xml +++ b/nsecbunker-tests/nsecbunker-perf/pom.xml @@ -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/pom.xml b/pom.xml index 8fb1850..1a5480f 100644 --- a/pom.xml +++ b/pom.xml @@ -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} - From bac6622a30496f92fdb84d5a70e1a56a982a1e7b Mon Sep 17 00:00:00 2001 From: tcheeric Date: Tue, 24 Feb 2026 21:55:17 +0000 Subject: [PATCH 2/4] refactor: adapt code to nostr-java 2.0 API changes Replace PubKeyTag with GenericTag for tag handling in NsecBunkerAdminClient and RelayContainerIntegrationTest, aligning with the simplified tag API in nostr-java 2.0. Co-Authored-By: Claude Opus 4.6 --- .../nsecbunker/admin/NsecBunkerAdminClient.java | 11 +++++------ .../nsecbunker/it/RelayContainerIntegrationTest.java | 8 +++++--- 2 files changed, 10 insertions(+), 9 deletions(-) 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-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("]"); } From 38f8612c98c71b1ee625403374f28188464a661e Mon Sep 17 00:00:00 2001 From: tcheeric Date: Tue, 24 Feb 2026 22:00:47 +0000 Subject: [PATCH 3/4] chore(release): bump version to 0.2.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Projects updated: - nsecbunker-java (parent): 0.1.1 → 0.2.0 (minor) - All 14 submodules: 0.1.1 → 0.2.0 (minor) Changes include: - Upgraded nostr-java from 1.2.0 to 2.0.0 - Migrated to new nostr-java 2.0 module structure - Adapted code to nostr-java 2.0 API (GenericTag) - Created CHANGELOG.md Co-Authored-By: Claude Opus 4.6 --- CHANGELOG.md | 37 ++++++++++++++++++++ nsecbunker-account/pom.xml | 2 +- nsecbunker-admin/pom.xml | 2 +- nsecbunker-client/pom.xml | 2 +- nsecbunker-connection/pom.xml | 2 +- nsecbunker-core/pom.xml | 2 +- nsecbunker-monitoring/pom.xml | 2 +- nsecbunker-protocol/pom.xml | 2 +- nsecbunker-spring-boot-starter/pom.xml | 2 +- nsecbunker-tests/nsecbunker-chaos/pom.xml | 2 +- nsecbunker-tests/nsecbunker-e2e/pom.xml | 2 +- nsecbunker-tests/nsecbunker-it/pom.xml | 2 +- nsecbunker-tests/nsecbunker-perf/pom.xml | 2 +- nsecbunker-tests/nsecbunker-security/pom.xml | 2 +- nsecbunker-tests/pom.xml | 2 +- pom.xml | 2 +- 16 files changed, 52 insertions(+), 15 deletions(-) create mode 100644 CHANGELOG.md 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 62e8efa..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 diff --git a/nsecbunker-client/pom.xml b/nsecbunker-client/pom.xml index 772df54..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 diff --git a/nsecbunker-connection/pom.xml b/nsecbunker-connection/pom.xml index 62d997e..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 diff --git a/nsecbunker-core/pom.xml b/nsecbunker-core/pom.xml index bd38d12..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 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 9684590..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 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 c406942..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 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-perf/pom.xml b/nsecbunker-tests/nsecbunker-perf/pom.xml index 1956f57..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 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 1a5480f..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 From 72058b5d26a7fde5604ae978fe6d7153b0ef81eb Mon Sep 17 00:00:00 2001 From: tcheeric Date: Tue, 24 Feb 2026 22:13:42 +0000 Subject: [PATCH 4/4] chore: remove pull request template and release workflow Deleted unused `.github/pull_request_template.md` and `.github/workflows/release.yml` files to clean up the repository. --- .github/pull_request_template.md | 45 ------------------ .github/workflows/release.yml | 79 -------------------------------- 2 files changed, 124 deletions(-) delete mode 100644 .github/pull_request_template.md delete mode 100644 .github/workflows/release.yml 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 }}