Compare commits

..
4 Commits
Author SHA1 Message Date
zxq9 8443e9a321 WIP 2026-09-01 15:44:48 +09:00
zxq9 381c8f1b9a Cleanup 2026-08-30 17:45:26 +09:00
zxq9 6714353f8c WIP 2026-08-26 19:13:49 +09:00
zxq9 45c6f9c730 WIP: Default to 0 amounts 2026-08-26 18:51:58 +09:00
27 changed files with 83 additions and 94 deletions
+3 -3
View File
@@ -30,7 +30,7 @@ does not have floats, and they do not exist at all in the Sophia language.
## Terms
Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
Project: Gajumaru Core Java Libraries
This program is dual-licensed:
@@ -38,10 +38,10 @@ This program is dual-licensed:
Software Foundation, either version 3 of the License, or (at your option)
any later version (AGPL-3.0-or-later). (See LICENSE file.)
2) Under a commercial/proprietary license available directly from QPQ AG.
2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
If you wish to use this software outside the strict constraints of the
AGPLv3 (e.g. within a closed-source or proprietary product), you must
purchase a commercial license from QPQ AG.
purchase a commercial license from QPQ IaaS AG.
Authors:
- Craig Everett <craigeverett@qpq.swiss>
+1 -1
View File
@@ -1,6 +1,6 @@
#! /usr/bin/env bash
# Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
# Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
# SPDX-License-Identifier: AGPL-3.0-or-later OR LicenseRef-QPQ-Commercial
set -e
+1 -1
View File
@@ -1,6 +1,6 @@
#! /usr/bin/env bash
# Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
# Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
# SPDX-License-Identifier: AGPL-3.0-or-later OR LicenseRef-QPQ-Commercial
set -e
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -21,7 +21,6 @@
package swiss.qpq.gajumaru.core.crypto;
import java.util.Arrays;
import swiss.qpq.gajumaru.core.tools.CryptoUtils;
// Pure Java implementation of BLAKE2b.
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -29,7 +29,6 @@ import swiss.qpq.gajumaru.core.tools.CryptoUtils;
public final class Keccak256 {
private static final int LANE_SIZE = 64;
private static final int STATE_SIZE = 25;
private static final int CAPACITY = 512;
private static final int BITRATE = 1600 - CAPACITY; // 1088 bits = 136 bytes
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -40,18 +40,7 @@ public final class Vault {
/**
* Holds the results of an encryption operation.
*/
public static final class Ciphertext {
private final byte[] iv;
private final byte[] data;
public Ciphertext(byte[] iv, byte[] data) {
this.iv = iv;
this.data = data;
}
public byte[] getIv() { return iv; }
public byte[] getData() { return data; }
}
public record Ciphertext(byte[] iv, byte[] data) {}
/**
* Encrypts plaintext using AES/GCM.
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -29,7 +29,7 @@ import java.util.Map;
// GRIDS URL handling, ported from hz_grids.erl.
public final class Grids {
public final class Grids {
private Grids() {}
@@ -93,13 +93,15 @@ public final class Grids {
if (path.startsWith("/1/s/")) {
String recipient = path.substring(5);
Map<String, String> qargs = parseQuery(query);
BigInteger amount = new BigInteger(qargs.getOrDefault("a", "0"));
String a = qargs.get("a");
BigInteger amount = (a == null || a.isEmpty()) ? BigInteger.ZERO : new BigInteger(a);
byte[] payload = decodePayload(qargs.getOrDefault("p", ""));
return ParseResult.spend(Context.CHAIN, host, recipient, amount, payload);
} else if (path.startsWith("/1/t/")) {
String recipient = path.substring(5);
Map<String, String> qargs = parseQuery(query);
BigInteger amount = new BigInteger(qargs.getOrDefault("a", "0"));
String a = qargs.get("a");
BigInteger amount = (a == null || a.isEmpty()) ? BigInteger.ZERO : new BigInteger(a);
byte[] payload = decodePayload(qargs.getOrDefault("p", ""));
String location = host + (uri.getPort() != -1 ? ":" + uri.getPort() : "");
return ParseResult.transfer(Context.NODE, location, recipient, amount, payload);
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2026 QPQ AG <info@qpq.swiss>. All rights reserved.
* Copyright (c) 2026 QPQ IaaS AG <info@qpq.swiss>. All rights reserved.
* Project: Gajumaru Core Java Libraries <gajumaru.io>
*
* This program is dual-licensed:
@@ -7,10 +7,10 @@
* Software Foundation, either version 3 of the License, or (at your option)
* any later version (AGPL-3.0-or-later).
*
* 2) Under a commercial/proprietary license available directly from QPQ AG.
* 2) Under a commercial/proprietary license available directly from QPQ IaaS AG.
* If you wish to use this software outside the strict constraints of the
* AGPLv3 (e.g. within a closed-source or proprietary product), you must
* purchase a commercial license from QPQ AG.
* purchase a commercial license from QPQ IaaS AG.
*
* Authors:
* - Craig Everett <craigeverett@qpq.swiss>