diff --git a/LICENSE b/LICENSE
index 63c0841..2e12b61 100644
--- a/LICENSE
+++ b/LICENSE
@@ -33,50 +33,141 @@
Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
+ - Collections - Collection types and utilities to enhance the default collections.
+ [The Apache Software License, Version 2.0]
+ https://git.dorkbox.com/dorkbox/Collections
+ Copyright 2023
+ Dorkbox LLC
+
+ Extra license information
+ - Bias, BinarySearch -
+ [MIT License]
+ https://git.dorkbox.com/dorkbox/Collections
+ https://github.com/timboudreau/util
+ Copyright 2013
+ Tim Boudreau
+
+ - ConcurrentEntry -
+ [The Apache Software License, Version 2.0]
+ https://git.dorkbox.com/dorkbox/Collections
+ Copyright 2016
+ bennidi
+ dorkbox
+
+ - Collection Utilities (Array, ArrayMap, BooleanArray, ByteArray, CharArray, FloatArray, IdentityMap, IntArray, IntFloatMap, IntIntMap, IntMap, IntSet, LongArray, LongMap, ObjectFloatMap, ObjectIntMap, ObjectMap, ObjectSet, OrderedMap, OrderedSet) -
+ [The Apache Software License, Version 2.0]
+ https://git.dorkbox.com/dorkbox/Collections
+ https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/utils
+ Copyright 2011
+ LibGDX
+ Mario Zechner (badlogicgames@gmail.com)
+ Nathan Sweet (nathan.sweet@gmail.com)
+
+ - Predicate -
+ [The Apache Software License, Version 2.0]
+ https://git.dorkbox.com/dorkbox/Collections
+ https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/utils
+ Copyright 2011
+ LibGDX
+ Mario Zechner (badlogicgames@gmail.com)
+ Nathan Sweet (nathan.sweet@gmail.com)
+ xoppa
+
+ - Select, QuickSelect -
+ [The Apache Software License, Version 2.0]
+ https://git.dorkbox.com/dorkbox/Collections
+ https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/utils
+ Copyright 2011
+ LibGDX
+ Mario Zechner (badlogicgames@gmail.com)
+ Nathan Sweet (nathan.sweet@gmail.com)
+ Jon Renner
+
+ - Kotlin -
+ [The Apache Software License, Version 2.0]
+ https://github.com/JetBrains/kotlin
+ Copyright 2020
+ JetBrains s.r.o. and Kotlin Programming Language contributors
+ Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
+ See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
+
+ - Updates - Software Update Management
+ [The Apache Software License, Version 2.0]
+ https://git.dorkbox.com/dorkbox/Updates
+ Copyright 2021
+ Dorkbox LLC
+
+ Extra license information
+ - Kotlin -
+ [The Apache Software License, Version 2.0]
+ https://github.com/JetBrains/kotlin
+ Copyright 2020
+ JetBrains s.r.o. and Kotlin Programming Language contributors
+ Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
+ See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
+
- NetworkUtils - Utilities for managing network configurations, IP/MAC address conversion, and ping (via OS native commands)
[The Apache Software License, Version 2.0]
https://git.dorkbox.com/dorkbox/NetworkUtils
- Copyright 2022
+ Copyright 2023
Dorkbox LLC
Extra license information
- Netty -
[The Apache Software License, Version 2.0]
- https://netty.io/
+ https://netty.io
Copyright 2014
The Netty Project
This product contains a modified portion of Netty Network Utils
- Apache Harmony -
[The Apache Software License, Version 2.0]
- http://archive.apache.org/dist/harmony/
+ https://archive.apache.org/dist/harmony/
Copyright 2010
The Apache Software Foundation
This product contains a modified portion of 'Apache Harmony', an open source Java SE
+ - Mozilla Public Suffix List -
+ [Mozilla Public License 2.0]
+ https://publicsuffix.org/list/public_suffix_list.dat
+ Copyright 2010
+ The Apache Software Foundation
+
- Apache HTTP Utils -
[The Apache Software License, Version 2.0]
- http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/psl/
+ https://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/psl/
Copyright 2010
The Apache Software Foundation
This product contains a modified portion of 'PublicSuffixDomainFilter.java'
+ - UrlRewriteFilter - UrlRewriteFilter is a Java Web Filter for any J2EE compliant web application server
+ [BSD 3-Clause License]
+ https://github.com/paultuckey/urlrewritefilter
+ Copyright 2022
+ Paul Tuckey
+
+ - kotlinx.coroutines - Library support for Kotlin coroutines with multiplatform support
+ [The Apache Software License, Version 2.0]
+ https://github.com/Kotlin/kotlinx.coroutines
+ Copyright 2023
+ JetBrains s.r.o.
+
- SLF4J - Simple facade or abstraction for various logging frameworks
[MIT License]
- http://www.slf4j.org
- Copyright 2022
+ https://www.slf4j.org
+ Copyright 2023
QOS.ch
- JNA - Simplified native library access for Java.
[The Apache Software License, Version 2.0]
https://github.com/twall/jna
- Copyright 2022
+ Copyright 2023
Timothy Wall
- JNA-Platform - Mappings for a number of commonly used platform functions
[The Apache Software License, Version 2.0]
https://github.com/twall/jna
- Copyright 2022
+ Copyright 2023
Timothy Wall
- Kotlin -
@@ -90,7 +181,7 @@
- Executor - Shell, JVM, and SSH command execution on Linux, MacOS, or Windows for Java 8+
[The Apache Software License, Version 2.0]
https://git.dorkbox.com/dorkbox/Executor
- Copyright 2022
+ Copyright 2023
Dorkbox LLC
Extra license information
@@ -117,25 +208,25 @@
- kotlinx.coroutines - Library support for Kotlin coroutines with multiplatform support
[The Apache Software License, Version 2.0]
https://github.com/Kotlin/kotlinx.coroutines
- Copyright 2022
+ Copyright 2023
JetBrains s.r.o.
- SLF4J - Simple facade or abstraction for various logging frameworks
[MIT License]
- http://www.slf4j.org
- Copyright 2022
+ https://www.slf4j.org
+ Copyright 2023
QOS.ch
- Logback - Logback is a logging framework for Java applications
[The Apache Software License, Version 2.0]
- http://logback.qos.ch
- Copyright 2022
+ https://logback.qos.ch
+ Copyright 2023
QOS.ch
- SSHJ - SSHv2 library for Java
[The Apache Software License, Version 2.0]
https://github.com/hierynomus/sshj
- Copyright 2022
+ Copyright 2023
Jeroen van Erp
SSHJ Contributors
@@ -152,13 +243,13 @@
- JZlib -
[The Apache Software License, Version 2.0]
- http://www.jcraft.com/jzlib
+ https://github.com/ymnk/jzlib
Atsuhiko Yamanaka
JCraft, Inc.
- Bouncy Castle Crypto -
[The Apache Software License, Version 2.0]
- http://www.bouncycastle.org
+ https://www.bouncycastle.org
The Legion of the Bouncy Castle Inc
- ed25519-java -
@@ -226,540 +317,6 @@
Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
- - Utilities - Utilities for use within Java projects
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Utilities
- Copyright 2023
- Dorkbox LLC
-
- Extra license information
- - MersenneTwisterFast -
- [BSD 3-Clause License]
- https://git.dorkbox.com/dorkbox/Utilities
- Copyright 2003
- Sean Luke
- Michael Lecuyer (portions Copyright 1993
-
- - FileUtil (code from FilenameUtils.java for normalize + dependencies) -
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Utilities
- http://commons.apache.org/proper/commons-io/
- Copyright 2013
- The Apache Software Foundation
- Kevin A. Burton
- Scott Sanders
- Daniel Rall
- Christoph.Reck
- Peter Donald
- Jeff Turner
- Matthew Hawthorne
- Martin Cooper
- Jeremias Maerki
- Stephen Colebourne
-
- - FastThreadLocal -
- [BSD 3-Clause License]
- https://git.dorkbox.com/dorkbox/Utilities
- https://github.com/LWJGL/lwjgl3/blob/5819c9123222f6ce51f208e022cb907091dd8023/modules/core/src/main/java/org/lwjgl/system/FastThreadLocal.java
- https://github.com/riven8192/LibStruct/blob/master/src/net/indiespot/struct/runtime/FastThreadLocal.java
- Copyright 2014
- Lightweight Java Game Library Project
- Riven
-
- - Base64Fast -
- [BSD 3-Clause License]
- https://git.dorkbox.com/dorkbox/Utilities
- http://migbase64.sourceforge.net/
- Copyright 2004
- Mikael Grev, MiG InfoCom AB. (base64@miginfocom.com)
-
- - BCrypt -
- [BSD 2-Clause "Simplified" or "FreeBSD" license]
- https://git.dorkbox.com/dorkbox/Utilities
- http://www.mindrot.org/projects/jBCrypt
- Copyright 2006
- Damien Miller (djm@mindrot.org)
- GWT modified version
-
- - Modified hex conversion utility methods -
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Utilities
- https://netty.io
- Copyright 2014
- The Netty Project
-
- - Retrofit - A type-safe HTTP client for Android and Java
- [The Apache Software License, Version 2.0]
- https://github.com/square/retrofit
- Copyright 2020
- Square, Inc
-
- - Resource Listing - Listing the contents of a resource directory
- [The Apache Software License, Version 2.0]
- http://www.uofr.net/~greg/java/get-resource-listing.html
- Copyright 2017
- Greg Briggs
-
- - CommonUtils - Common utility extension functions for kotlin
- [The Apache Software License, Version 2.0]
- https://www.pronghorn.tech
- Copyright 2017
- Pronghorn Technology LLC
- Dorkbox LLC
-
- - UrlRewriteFilter - UrlRewriteFilter is a Java Web Filter for any J2EE compliant web application server
- [BSD 3-Clause License]
- https://github.com/paultuckey/urlrewritefilter
- Copyright 2022
- Paul Tuckey
-
- - kotlinx.coroutines - Library support for Kotlin coroutines with multiplatform support
- [The Apache Software License, Version 2.0]
- https://github.com/Kotlin/kotlinx.coroutines
- Copyright 2023
- JetBrains s.r.o.
-
- - Java Uuid Generator - A set of Java classes for working with UUIDs
- [The Apache Software License, Version 2.0]
- https://github.com/cowtowncoder/java-uuid-generator
- Copyright 2023
- Tatu Saloranta (tatu.saloranta@iki.fi)
- Contributors. See source release-notes/CREDITS
-
- - SLF4J - Simple facade or abstraction for various logging frameworks
- [MIT License]
- https://www.slf4j.org
- Copyright 2023
- QOS.ch
-
- - XZ for Java - Complete implementation of XZ data compression in pure Java
- [Public Domain, per Creative Commons CC0]
- https://tukaani.org/xz/java.html
- Copyright 2023
- Lasse Collin
- Igor Pavlov
-
- - Kotlin -
- [The Apache Software License, Version 2.0]
- https://github.com/JetBrains/kotlin
- Copyright 2020
- JetBrains s.r.o. and Kotlin Programming Language contributors
- Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
- See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
-
- - Netty - An event-driven asynchronous network application framework
- [The Apache Software License, Version 2.0]
- https://netty.io
- Copyright 2023
- The Netty Project
- Contributors. See source NOTICE
-
- - Bouncy Castle Crypto - Lightweight cryptography API and JCE Extension
- [The Apache Software License, Version 2.0]
- https://www.bouncycastle.org
- Copyright 2023
- The Legion of the Bouncy Castle Inc
-
- - Lightweight Java Game Library - Java library that enables cross-platform access to popular native APIs
- [BSD 3-Clause License]
- https://github.com/LWJGL/lwjgl3
- Copyright 2023
- Lightweight Java Game Library
-
- - TypeTools - A simple, zero-dependency library for working with types. Supports Java 1.6+ and Android.
- [The Apache Software License, Version 2.0]
- https://github.com/jhalterman/typetools
- Copyright 2023
- Jonathan Halterman and friends
-
- - Collections - Niche collections to augment what is already available.
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Collections
- Copyright 2023
- Dorkbox LLC
-
- Extra license information
- - Bias, BinarySearch -
- [MIT License]
- https://git.dorkbox.com/dorkbox/Collections
- https://github.com/timboudreau/util
- Copyright 2013
- Tim Boudreau
-
- - ConcurrentEntry -
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Collections
- Copyright 2016
- bennidi
- dorkbox
-
- - Collection Utilities (Array, ArrayMap, BooleanArray, ByteArray, CharArray, FloatArray, IdentityMap, IntArray, IntFloatMap, IntIntMap, IntMap, IntSet, LongArray, LongMap, ObjectFloatMap, ObjectIntMap, ObjectMap, ObjectSet, OrderedMap, OrderedSet) -
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Collections
- https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/utils
- Copyright 2011
- LibGDX
- Mario Zechner (badlogicgames@gmail.com)
- Nathan Sweet (nathan.sweet@gmail.com)
-
- - Predicate -
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Collections
- https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/utils
- Copyright 2011
- LibGDX
- Mario Zechner (badlogicgames@gmail.com)
- Nathan Sweet (nathan.sweet@gmail.com)
- xoppa
-
- - Select, QuickSelect -
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Collections
- https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/utils
- Copyright 2011
- LibGDX
- Mario Zechner (badlogicgames@gmail.com)
- Nathan Sweet (nathan.sweet@gmail.com)
- Jon Renner
-
- - TimSort, ComparableTimSort -
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Collections
- https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/utils
- Copyright 2008
- The Android Open Source Project
-
- - ConcurrentWeakIdentityHashMap - Concurrent WeakIdentity HashMap
- [The Apache Software License, Version 2.0]
- https://github.com/spring-projects/spring-loaded/blob/master/springloaded/src/main/java/org/springsource/loaded/support/ConcurrentWeakIdentityHashMap.java
- Copyright 2016
- zhanhb
-
- - Kotlin -
- [The Apache Software License, Version 2.0]
- https://github.com/JetBrains/kotlin
- Copyright 2020
- JetBrains s.r.o. and Kotlin Programming Language contributors
- Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
- See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
-
- - Updates - Software Update Management
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Updates
- Copyright 2021
- Dorkbox LLC
-
- Extra license information
- - Kotlin -
- [The Apache Software License, Version 2.0]
- https://github.com/JetBrains/kotlin
- Copyright 2020
- JetBrains s.r.o. and Kotlin Programming Language contributors
- Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
- See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
-
- - Executor - Shell, JVM, and SSH command execution on Linux, MacOS, or Windows for Java 8+
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Executor
- Copyright 2023
- Dorkbox LLC
-
- Extra license information
- - ZT Process Executor -
- [The Apache Software License, Version 2.0]
- https://github.com/zeroturnaround/zt-exec
- Copyright 2014
- ZeroTurnaround LLC
-
- - Apache Commons Exec -
- [The Apache Software License, Version 2.0]
- https://commons.apache.org/proper/commons-exec/
- Copyright 2014
- The Apache Software Foundation
-
- - Kotlin -
- [The Apache Software License, Version 2.0]
- https://github.com/JetBrains/kotlin
- Copyright 2020
- JetBrains s.r.o. and Kotlin Programming Language contributors
- Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
- See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
-
- - kotlinx.coroutines - Library support for Kotlin coroutines with multiplatform support
- [The Apache Software License, Version 2.0]
- https://github.com/Kotlin/kotlinx.coroutines
- Copyright 2023
- JetBrains s.r.o.
-
- - SLF4J - Simple facade or abstraction for various logging frameworks
- [MIT License]
- http://www.slf4j.org
- Copyright 2023
- QOS.ch
-
- - Logback - Logback is a logging framework for Java applications
- [The Apache Software License, Version 2.0]
- http://logback.qos.ch
- Copyright 2023
- QOS.ch
-
- - SSHJ - SSHv2 library for Java
- [The Apache Software License, Version 2.0]
- https://github.com/hierynomus/sshj
- Copyright 2023
- Jeroen van Erp
- SSHJ Contributors
-
- Extra license information
- - Apache MINA -
- [The Apache Software License, Version 2.0]
- https://mina.apache.org/sshd-project/
- The Apache Software Foundation
-
- - Apache Commons-Net -
- [The Apache Software License, Version 2.0]
- https://commons.apache.org/proper/commons-net/
- The Apache Software Foundation
-
- - JZlib -
- [The Apache Software License, Version 2.0]
- http://www.jcraft.com/jzlib
- Atsuhiko Yamanaka
- JCraft, Inc.
-
- - Bouncy Castle Crypto -
- [The Apache Software License, Version 2.0]
- http://www.bouncycastle.org
- The Legion of the Bouncy Castle Inc
-
- - ed25519-java -
- [Public Domain, per Creative Commons CC0]
- https://github.com/str4d/ed25519-java
- https://github.com/str4d
-
- - Updates - Software Update Management
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Updates
- Copyright 2021
- Dorkbox LLC
-
- Extra license information
- - Kotlin -
- [The Apache Software License, Version 2.0]
- https://github.com/JetBrains/kotlin
- Copyright 2020
- JetBrains s.r.o. and Kotlin Programming Language contributors
- Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
- See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
-
- - NetworkUtils - Utilities for managing network configurations, IP/MAC address conversion, and ping (via OS native commands)
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/NetworkUtils
- Copyright 2022
- Dorkbox LLC
-
- Extra license information
- - Netty -
- [The Apache Software License, Version 2.0]
- https://netty.io/
- Copyright 2014
- The Netty Project
- This product contains a modified portion of Netty Network Utils
-
- - Apache Harmony -
- [The Apache Software License, Version 2.0]
- http://archive.apache.org/dist/harmony/
- Copyright 2010
- The Apache Software Foundation
- This product contains a modified portion of 'Apache Harmony', an open source Java SE
-
- - Apache HTTP Utils -
- [The Apache Software License, Version 2.0]
- http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient5/src/main/java/org/apache/hc/client5/http/psl/
- Copyright 2010
- The Apache Software Foundation
- This product contains a modified portion of 'PublicSuffixDomainFilter.java'
-
- - SLF4J - Simple facade or abstraction for various logging frameworks
- [MIT License]
- http://www.slf4j.org
- Copyright 2022
- QOS.ch
-
- - JNA - Simplified native library access for Java.
- [The Apache Software License, Version 2.0]
- https://github.com/twall/jna
- Copyright 2022
- Timothy Wall
-
- - JNA-Platform - Mappings for a number of commonly used platform functions
- [The Apache Software License, Version 2.0]
- https://github.com/twall/jna
- Copyright 2022
- Timothy Wall
-
- - Kotlin -
- [The Apache Software License, Version 2.0]
- https://github.com/JetBrains/kotlin
- Copyright 2020
- JetBrains s.r.o. and Kotlin Programming Language contributors
- Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
- See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
-
- - Executor - Shell, JVM, and SSH command execution on Linux, MacOS, or Windows for Java 8+
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Executor
- Copyright 2022
- Dorkbox LLC
-
- Extra license information
- - ZT Process Executor -
- [The Apache Software License, Version 2.0]
- https://github.com/zeroturnaround/zt-exec
- Copyright 2014
- ZeroTurnaround LLC
-
- - Apache Commons Exec -
- [The Apache Software License, Version 2.0]
- https://commons.apache.org/proper/commons-exec/
- Copyright 2014
- The Apache Software Foundation
-
- - Kotlin -
- [The Apache Software License, Version 2.0]
- https://github.com/JetBrains/kotlin
- Copyright 2020
- JetBrains s.r.o. and Kotlin Programming Language contributors
- Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
- See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
-
- - kotlinx.coroutines - Library support for Kotlin coroutines with multiplatform support
- [The Apache Software License, Version 2.0]
- https://github.com/Kotlin/kotlinx.coroutines
- Copyright 2022
- JetBrains s.r.o.
-
- - SLF4J - Simple facade or abstraction for various logging frameworks
- [MIT License]
- http://www.slf4j.org
- Copyright 2022
- QOS.ch
-
- - Logback - Logback is a logging framework for Java applications
- [The Apache Software License, Version 2.0]
- http://logback.qos.ch
- Copyright 2022
- QOS.ch
-
- - SSHJ - SSHv2 library for Java
- [The Apache Software License, Version 2.0]
- https://github.com/hierynomus/sshj
- Copyright 2022
- Jeroen van Erp
- SSHJ Contributors
-
- Extra license information
- - Apache MINA -
- [The Apache Software License, Version 2.0]
- https://mina.apache.org/sshd-project/
- The Apache Software Foundation
-
- - Apache Commons-Net -
- [The Apache Software License, Version 2.0]
- https://commons.apache.org/proper/commons-net/
- The Apache Software Foundation
-
- - JZlib -
- [The Apache Software License, Version 2.0]
- http://www.jcraft.com/jzlib
- Atsuhiko Yamanaka
- JCraft, Inc.
-
- - Bouncy Castle Crypto -
- [The Apache Software License, Version 2.0]
- http://www.bouncycastle.org
- The Legion of the Bouncy Castle Inc
-
- - ed25519-java -
- [Public Domain, per Creative Commons CC0]
- https://github.com/str4d/ed25519-java
- https://github.com/str4d
-
- - Updates - Software Update Management
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Updates
- Copyright 2021
- Dorkbox LLC
-
- Extra license information
- - Kotlin -
- [The Apache Software License, Version 2.0]
- https://github.com/JetBrains/kotlin
- Copyright 2020
- JetBrains s.r.o. and Kotlin Programming Language contributors
- Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
- See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
-
- - Updates - Software Update Management
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Updates
- Copyright 2021
- Dorkbox LLC
-
- Extra license information
- - Kotlin -
- [The Apache Software License, Version 2.0]
- https://github.com/JetBrains/kotlin
- Copyright 2020
- JetBrains s.r.o. and Kotlin Programming Language contributors
- Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
- See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
-
- - OS - Information about the system, Java runtime, OS, Window Manager, and Desktop Environment.
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/OS
- Copyright 2023
- Dorkbox LLC
-
- Extra license information
- - Kotlin -
- [The Apache Software License, Version 2.0]
- https://github.com/JetBrains/kotlin
- Copyright 2020
- JetBrains s.r.o. and Kotlin Programming Language contributors
- Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
- See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
-
- - Updates - Software Update Management
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Updates
- Copyright 2021
- Dorkbox LLC
-
- Extra license information
- - Kotlin -
- [The Apache Software License, Version 2.0]
- https://github.com/JetBrains/kotlin
- Copyright 2020
- JetBrains s.r.o. and Kotlin Programming Language contributors
- Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
- See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
-
- - Updates - Software Update Management
- [The Apache Software License, Version 2.0]
- https://git.dorkbox.com/dorkbox/Updates
- Copyright 2021
- Dorkbox LLC
-
- Extra license information
- - Kotlin -
- [The Apache Software License, Version 2.0]
- https://github.com/JetBrains/kotlin
- Copyright 2020
- JetBrains s.r.o. and Kotlin Programming Language contributors
- Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply
- See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
-
- Updates - Software Update Management
[The Apache Software License, Version 2.0]
https://git.dorkbox.com/dorkbox/Updates
diff --git a/README.md b/README.md
index 25b6b19..b93a6de 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ Maven Info
com.dorkbox
NetworkDNS
- 2.9
+ 2.10
```
@@ -27,7 +27,7 @@ Gradle Info
```
dependencies {
...
- implementation("com.dorkbox:NetworkDNS:2.9")
+ implementation("com.dorkbox:NetworkDNS:2.10")
}
```
diff --git a/build.gradle.kts b/build.gradle.kts
index e29eb53..8aa8495 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,5 +1,5 @@
/*
- * Copyright 2020 dorkbox, llc
+ * Copyright 2023 dorkbox, llc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-import java.time.Instant
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
///////////////////////////////
////// PUBLISH TO SONATYPE / MAVEN CENTRAL
@@ -25,9 +25,9 @@ import java.time.Instant
gradle.startParameter.showStacktrace = ShowStacktrace.ALWAYS // always show the stacktrace!
plugins {
- id("com.dorkbox.GradleUtils") version "3.13"
- id("com.dorkbox.Licensing") version "2.22"
- id("com.dorkbox.VersionUpdate") version "2.7"
+ id("com.dorkbox.GradleUtils") version "3.17"
+ id("com.dorkbox.Licensing") version "2.25"
+ id("com.dorkbox.VersionUpdate") version "2.8"
id("com.dorkbox.GradlePublish") version "1.18"
kotlin("jvm") version "1.8.0"
@@ -37,7 +37,7 @@ object Extras {
// set for the project
const val description = "High-performance and event-driven/reactive DNS stack for Java 8+"
const val group = "com.dorkbox"
- const val version = "2.9"
+ const val version = "2.10"
// set as project.ext
const val name = "NetworkDNS"
@@ -45,8 +45,6 @@ object Extras {
const val vendor = "Dorkbox LLC"
const val vendorUrl = "https://dorkbox.com"
const val url = "https://git.dorkbox.com/dorkbox/NetworkDNS"
-
- val buildDate = Instant.now().toString()
}
///////////////////////////////
@@ -81,25 +79,25 @@ tasks.jar.get().apply {
attributes["Specification-Vendor"] = Extras.vendor
attributes["Implementation-Title"] = "${Extras.group}.${Extras.id}"
- attributes["Implementation-Version"] = Extras.buildDate
+ attributes["Implementation-Version"] = GradleUtils.now()
attributes["Implementation-Vendor"] = Extras.vendor
}
}
dependencies {
- api("com.dorkbox:NetworkUtils:2.19.1")
+ api("com.dorkbox:Collections:2.0")
+ api("com.dorkbox:NetworkUtils:2.22")
api("com.dorkbox:OS:1.6")
- api("com.dorkbox:Utilities:1.40")
api("com.dorkbox:Updates:1.1")
- val nettyVer = "4.1.89.Final"
+ val nettyVer = "4.1.96.Final"
api("io.netty:netty-buffer:$nettyVer")
api("io.netty:netty-transport:$nettyVer")
api("io.netty:netty-transport-native-epoll:$nettyVer")
api("io.netty:netty-transport-classes-kqueue:$nettyVer")
api("io.netty:netty-codec:$nettyVer")
- api("org.slf4j:slf4j-api:2.0.6")
+ api("org.slf4j:slf4j-api:2.0.7")
testImplementation("junit:junit:4.13.2")
testImplementation("ch.qos.logback:logback-classic:1.4.5")
@@ -128,3 +126,14 @@ publishToSonatype {
email = "email@dorkbox.com"
}
}
+repositories {
+ mavenCentral()
+}
+val compileKotlin: KotlinCompile by tasks
+compileKotlin.kotlinOptions {
+ jvmTarget = "1.8"
+}
+val compileTestKotlin: KotlinCompile by tasks
+compileTestKotlin.kotlinOptions {
+ jvmTarget = "1.8"
+}
diff --git a/src/dorkbox/dns/DnsClient.kt b/src/dorkbox/dns/DnsClient.kt
index 4f5482e..01c231a 100644
--- a/src/dorkbox/dns/DnsClient.kt
+++ b/src/dorkbox/dns/DnsClient.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2021 dorkbox, llc
+ * Copyright 2023 dorkbox, llc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -29,6 +29,7 @@ import dorkbox.dns.dns.resolver.addressProvider.DnsServerAddressStreamProvider
import dorkbox.dns.dns.resolver.addressProvider.SequentialDnsServerAddressStreamProvider
import dorkbox.dns.dns.resolver.cache.DefaultDnsCache
import dorkbox.dns.dns.resolver.cache.DnsCache
+import dorkbox.dns.dns.utils.NamedThreadFactory
import dorkbox.dns.util.NativeLibrary
import dorkbox.dns.util.Shutdownable
import dorkbox.netUtil.Dns.defaultNameServers
@@ -37,7 +38,6 @@ import dorkbox.os.OS.isAndroid
import dorkbox.os.OS.isLinux
import dorkbox.os.OS.isMacOsX
import dorkbox.updates.Updates.add
-import dorkbox.util.NamedThreadFactory
import io.netty.channel.EventLoopGroup
import io.netty.channel.ReflectiveChannelFactory
import io.netty.channel.epoll.EpollDatagramChannel
@@ -84,7 +84,7 @@ class DnsClient(nameServerAddresses: Collection? = defaultNa
/**
* Gets the version number.
*/
- const val version = "2.9"
+ const val version = "2.10"
init {
// Add this project to the updates system, which verifies this class + UUID + version information
diff --git a/src/dorkbox/dns/DnsServer.kt b/src/dorkbox/dns/DnsServer.kt
index 6db6dc3..8bb8e13 100644
--- a/src/dorkbox/dns/DnsServer.kt
+++ b/src/dorkbox/dns/DnsServer.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2021 dorkbox, llc
+ * Copyright 2023 dorkbox, llc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -19,20 +19,16 @@ import dorkbox.dns.dns.DnsQuestion
import dorkbox.dns.dns.constants.DnsRecordType
import dorkbox.dns.dns.records.ARecord
import dorkbox.dns.dns.serverHandlers.DnsServerHandler
+import dorkbox.dns.dns.utils.NamedThreadFactory
import dorkbox.dns.util.NativeLibrary
import dorkbox.dns.util.Shutdownable
import dorkbox.netUtil.IP.toBytes
import dorkbox.os.OS.isLinux
import dorkbox.os.OS.isMacOsX
import dorkbox.updates.Updates.add
-import dorkbox.util.NamedThreadFactory
import io.netty.bootstrap.Bootstrap
import io.netty.buffer.PooledByteBufAllocator
-import io.netty.channel.ChannelFuture
-import io.netty.channel.ChannelOption
-import io.netty.channel.DefaultEventLoopGroup
-import io.netty.channel.EventLoopGroup
-import io.netty.channel.WriteBufferWaterMark
+import io.netty.channel.*
import io.netty.channel.epoll.EpollDatagramChannel
import io.netty.channel.epoll.EpollEventLoopGroup
import io.netty.channel.kqueue.KQueueDatagramChannel
@@ -69,7 +65,7 @@ class DnsServer(host: String?, tcpPort: Int) : Shutdownable(DnsServer::class.jav
/**
* Gets the version number.
*/
- const val version = "2.9"
+ const val version = "2.10"
var workerThreadPoolSize = (Runtime.getRuntime().availableProcessors() / 2).coerceAtLeast(1)
diff --git a/src/dorkbox/dns/dns/records/Header.kt b/src/dorkbox/dns/dns/records/Header.kt
index 92999f1..1b71637 100644
--- a/src/dorkbox/dns/dns/records/Header.kt
+++ b/src/dorkbox/dns/dns/records/Header.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2021 dorkbox, llc
+ * Copyright 2023 dorkbox, llc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -22,8 +22,7 @@ import dorkbox.dns.dns.constants.DnsResponseCode
import dorkbox.dns.dns.constants.DnsSection
import dorkbox.dns.dns.constants.Flags
import dorkbox.os.OS.LINE_SEPARATOR
-import dorkbox.util.FastThreadLocal
-import dorkbox.util.MersenneTwisterFast
+import kotlin.random.Random
/**
* A DNS message header
@@ -271,9 +270,9 @@ class Header : Cloneable {
}
companion object {
- private val random: FastThreadLocal = object : FastThreadLocal() {
- override fun initialValue(): MersenneTwisterFast {
- return MersenneTwisterFast()
+ private val random: ThreadLocal = object : ThreadLocal() {
+ override fun initialValue(): Random {
+ return Random(System.nanoTime())
}
}
diff --git a/src/dorkbox/dns/dns/utils/NamedThreadFactory.kt b/src/dorkbox/dns/dns/utils/NamedThreadFactory.kt
new file mode 100644
index 0000000..8370928
--- /dev/null
+++ b/src/dorkbox/dns/dns/utils/NamedThreadFactory.kt
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2023 dorkbox, llc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package dorkbox.dns.dns.utils
+
+import dorkbox.dns.DnsClient
+import java.util.concurrent.*
+import java.util.concurrent.atomic.*
+
+/**
+ * The default thread factory with names and daemon state
+ */
+class NamedThreadFactory(
+ /** @param namePrefix what you want the subsequent threads to be named. */
+ val namePrefix: String,
+
+ /** @param group the group this thread will belong to. If NULL, it will belong to the current thread group. */
+ val group: ThreadGroup = Thread.currentThread().threadGroup,
+
+ /** @param threadPriority 1-10, with 5 being normal and 10 being max */
+ val threadPriority: Int = Thread.NORM_PRIORITY,
+
+ /** @param daemon true to stop this thread automatically when the JVM shutsdown */
+ val daemon: Boolean = true,
+
+ /** @param actionOnNewThread the action that will run whenever a new thread is created */
+ val actionOnNewThread: (Thread) -> Unit
+
+) : ThreadFactory {
+ constructor(poolNamePrefix: String) : this(poolNamePrefix, Thread.currentThread().threadGroup, Thread.NORM_PRIORITY, true, {})
+ constructor(poolNamePrefix: String, group: ThreadGroup) : this(poolNamePrefix, group, Thread.NORM_PRIORITY, true, {})
+ constructor(poolNamePrefix: String, isDaemon: Boolean) : this(poolNamePrefix, Thread.currentThread().threadGroup, isDaemon, {})
+ constructor(poolNamePrefix: String, group: ThreadGroup, isDaemon: Boolean) : this(poolNamePrefix, group, Thread.NORM_PRIORITY, isDaemon, {})
+ constructor(poolNamePrefix: String, group: ThreadGroup, threadPriority: Int, isDaemon: Boolean) : this(poolNamePrefix, group, threadPriority, isDaemon, {})
+ constructor(poolNamePrefix: String, group: ThreadGroup, isDaemon: Boolean, actionOnNewThread: (Thread) -> Unit) : this(poolNamePrefix, group, Thread.NORM_PRIORITY, isDaemon, actionOnNewThread)
+
+ companion object {
+ /**
+ * Gets the version number.
+ */
+ val version = DnsClient.version
+ }
+
+
+
+ private val poolId = AtomicInteger()
+
+ init {
+ require(threadPriority >= Thread.MIN_PRIORITY) {
+ String.format(
+ "Thread priority (%s) must be >= %s", threadPriority, Thread.MIN_PRIORITY
+ )
+ }
+ require(threadPriority <= Thread.MAX_PRIORITY) {
+ String.format(
+ "Thread priority (%s) must be <= %s", threadPriority, Thread.MAX_PRIORITY
+ )
+ }
+ }
+
+ override fun newThread(r: Runnable): Thread {
+ // stack size is arbitrary based on JVM implementation. Default is 0
+ // 8k is the size of the android stack. Depending on the version of android, this can either change, or will always be 8k
+ // To be honest, 8k is pretty reasonable for an asynchronous/event based system (32bit) or 16k (64bit)
+ // Setting the size MAY or MAY NOT have any effect!!!
+ val t = Thread(group, r, namePrefix + '-' + poolId.incrementAndGet())
+ t.isDaemon = daemon
+ t.priority = threadPriority
+
+ actionOnNewThread(t)
+ return t
+ }
+}
diff --git a/src9/module-info.java b/src9/module-info.java
index b8055a8..3919527 100644
--- a/src9/module-info.java
+++ b/src9/module-info.java
@@ -5,7 +5,6 @@ module dorkbox.dns {
exports dorkbox.dns.dns.records;
requires dorkbox.netutil;
- requires dorkbox.utilities;
requires dorkbox.collections;
requires dorkbox.updates;
requires dorkbox.os;