Skip to content

Switch license from Apache 2.0 to the Axoniq Terms of Service - #191

Merged
CodeDrivenMitch merged 3 commits into
mainfrom
feature/terms-of-service-license
Oct 19, 2026
Merged

CodeDrivenMitch merged 3 commits into
mainfrom
feature/terms-of-service-license

Conversation

@CodeDrivenMitch

@CodeDrivenMitch CodeDrivenMitch commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

The Axoniq Platform Framework Client is part of Axoniq Framework. From 5.4.0 it is licensed under
the Axoniq Terms of Service, like the rest of the
framework. The Terms explicitly govern Axoniq Framework. Legal approved the wording of the license
file and the file header.

Changes

License switch

  • LICENSE.txt is now a copyright line and a pointer to the Terms, which govern all use. It names
    the client as part of Axoniq Framework and no longer summarises the Terms.
  • Every project file's Apache header is replaced by the short Terms of Service header
    (Copyright (c) 2022-2026. Axoniq B.V.).
  • The pom <licenses> block, which Maven Central publishes, now declares the Terms of Service.
  • copyright-template.xml (IntelliJ) produces the same header for new files.
  • The README has a License section, and the "Open-Source connectors" wording is gone.
  • Published pom metadata spells Axoniq consistently.

Third-party code

  • SlidingTimeWindowReservoir was adapted from Dropwizard Metrics (Apache 2.0) and couldn't be
    relicensed. It is replaced by a new SlidingWindowSum, which MeasuringExecutorServiceDecorator
    uses for busy-bus capacity.
  • Capacity still covers exactly 60 seconds. A task is counted once its one-second bucket closes, so
    the gauge lags by at most one second.
  • Memory is now fixed instead of growing with the number of tasks per minute.
  • This is a separate commit so it can be reviewed as a code change.
  • The Maven wrapper files are third-party Apache 2.0 code, so they're excluded from the switch.
  • mvnw and maven-wrapper.properties get back the original notices an earlier bulk header update
    had replaced: the Apache Software Foundation header in mvnw, and no header in the properties
    file.

Sonar removal

  • SonarCloud is no longer used. The Sonar analysis step and the coverage build are gone from the main
    and pull request workflows.
  • The Sonar properties and the JaCoCo coverage profile that fed it are removed from the pom.

SlidingTimeWindowReservoir was adapted from Dropwizard Metrics by way of
Axon Framework, both Apache 2.0. It cannot move to the Axoniq Terms of
Service with the rest of the client, so it is replaced by a new
implementation.

SlidingWindowSum keeps one running sum per one-second bucket. It holds
61 slots for a 60-second window, and sum() covers the 60 completed
buckets. The window is always exactly 60 seconds, so busy-bus capacity
reports are accurate. A task's duration is counted once its bucket
closes, so the gauge lags by at most one second.

Memory is now fixed. The old reservoir kept an entry for every task that
finished in the last minute, which grows large on a busy bus.
The client is part of Axoniq Framework. Starting with 5.4.0 it is
licensed under the Axoniq Terms of Service, like the rest of the
framework. The Terms at https://www.axoniq.io/legal/terms-of-service
govern all use, so the license texts in this repository point there
instead of summarising them. Legal approved the wording.

- Replace LICENSE.txt with a copyright line and a pointer to the Terms,
  naming the client as part of Axoniq Framework
- Replace the Apache header in all project files with the short Terms
  of Service header; the copyright holder is written as Axoniq B.V.
- Declare the Terms of Service in the pom <licenses> block published to
  Maven Central
- Update the IntelliJ copyright template so new files get the same
  header
- Add a License section to the README and drop the "Open-Source" wording
- Spell Axoniq consistently in published pom metadata
- Restore the original Apache Software Foundation notice in the Maven
  wrapper files. An earlier bulk header update had replaced it with an
  Axoniq copyright, but the wrapper is third-party code that cannot be
  relicensed.
@CodeDrivenMitch
CodeDrivenMitch requested review from a team, Andrew-deVillier and stefanmirkovic and removed request for a team October 19, 2026 06:48
@CodeDrivenMitch CodeDrivenMitch self-assigned this Oct 19, 2026
@CodeDrivenMitch
CodeDrivenMitch marked this pull request as ready for review October 19, 2026 06:48

@smcvb smcvb left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, although it seems you (accidentally) sneaked in another clean-up in this PR.

return busyTime.sum().toDouble() / WINDOW.toNanos().toDouble()
}

private companion object {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't look like a license change to me ;-)

* added. [sum] covers the last [bucketCount] completed buckets, which always span exactly the full window. A value
* therefore only shows up in [sum] once the bucket it was added to has elapsed.
*/
class SlidingWindowSum(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like a side track of the intent of this PR. Or something you had pending locally and accidentally committed with it.

SonarCloud is no longer used. Drop the analysis step and the coverage
build from the main and pull request workflows, and remove the Sonar
properties and the JaCoCo coverage profile that only existed to feed it.
@CodeDrivenMitch
CodeDrivenMitch merged commit eedff84 into main Oct 19, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants