Now using the storage project

This commit is contained in:
Robinson 2021-08-23 00:52:16 -06:00
parent 40fb0d8caf
commit c8f4ba2b01
11 changed files with 609 additions and 373 deletions

358
LICENSE
View File

@ -79,13 +79,6 @@
https://github.com/EsotericSoftware/minlog https://github.com/EsotericSoftware/minlog
Nathan Sweet Nathan Sweet
- Kryo Serializers - Extra kryo serializers
[The Apache Software License, Version 2.0]
https://github.com/magro/kryo-serializers
Copyright 2021
Martin Grotzke
Rafael Winterhalter
- Conversant Disruptor - Disruptor is the highest performing intra-thread transfer mechanism available in Java. - Conversant Disruptor - Disruptor is the highest performing intra-thread transfer mechanism available in Java.
[The Apache Software License, Version 2.0] [The Apache Software License, Version 2.0]
https://github.com/conversant/disruptor https://github.com/conversant/disruptor
@ -116,6 +109,96 @@
Copyright 2021 Copyright 2021
QOS.ch QOS.ch
- ByteUtilties - Byte manipulation and Unsigned Number Utilities
[The Apache Software License, Version 2.0]
https://git.dorkbox.com/dorkbox/ByteUtilities
Copyright 2021
Dorkbox LLC
Extra license information
- Byte Utils (UByte, UInteger, ULong, Unsigned, UNumber, UShort) -
[The Apache Software License, Version 2.0]
https://github.com/jOOQ/jOOQ/tree/master/jOOQ/src/main/java/org/jooq/types
Copyright 2017
Data Geekery GmbH (http://www.datageekery.com)
Lukas Eder
Ed Schaller
Jens Nerche
Ivan Sokolov
- Kryo Serialization -
[BSD 3-Clause License]
https://github.com/EsotericSoftware/kryo
Copyright 2020
Nathan Sweet
- Kotlin Hex -
[MIT License]
https://github.com/komputing/KHex
Copyright 2017
ligi
- Base58 -
[The Apache Software License, Version 2.0]
https://bitcoinj.github.io
https://github.com/komputing/KBase58
Copyright 2018
Google Inc
Andreas Schildbach
ligi
- 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 2021
The Netty Project
Contributors. See source NOTICE
- Kryo - Fast and efficient binary object graph serialization framework for Java
[BSD 3-Clause License]
https://github.com/EsotericSoftware/kryo
Copyright 2021
Nathan Sweet
Extra license information
- ReflectASM -
[BSD 3-Clause License]
https://github.com/EsotericSoftware/reflectasm
Nathan Sweet
- Objenesis -
[The Apache Software License, Version 2.0]
http://objenesis.org
Objenesis Team and all contributors
- MinLog-SLF4J -
[BSD 3-Clause License]
https://github.com/EsotericSoftware/minlog
Nathan Sweet
- 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
- MinLog - Drop-in replacement for MinLog to log through SLF4j. - MinLog - Drop-in replacement for MinLog to log through SLF4j.
[BSD 3-Clause License] [BSD 3-Clause License]
https://git.dorkbox.com/dorkbox/MinLog-SLF4J https://git.dorkbox.com/dorkbox/MinLog-SLF4J
@ -410,6 +493,267 @@
Kotlin Compiler, Test Data+Libraries, and Tools repository contain third-party code, to which different licenses may apply 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 See: https://github.com/JetBrains/kotlin/blob/master/license/README.md
- Storage - Storage system for Java
[The Apache Software License, Version 2.0]
https://git.dorkbox.com/dorkbox/Storage
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
- kotlin-logging - Lightweight logging framework for Kotlin
[The Apache Software License, Version 2.0]
https://github.com/MicroUtils/kotlin-logging
Copyright 2021
Ohad Shai
- SLF4J - Simple facade or abstraction for various logging frameworks
[MIT License]
http://www.slf4j.org
Copyright 2021
QOS.ch
- Kryo - Fast and efficient binary object graph serialization framework for Java
[BSD 3-Clause License]
https://github.com/EsotericSoftware/kryo
Copyright 2021
Nathan Sweet
Extra license information
- ReflectASM -
[BSD 3-Clause License]
https://github.com/EsotericSoftware/reflectasm
Nathan Sweet
- Objenesis -
[The Apache Software License, Version 2.0]
http://objenesis.org
Objenesis Team and all contributors
- MinLog-SLF4J -
[BSD 3-Clause License]
https://github.com/EsotericSoftware/minlog
Nathan Sweet
- ByteUtilties - Byte manipulation and Unsigned Number Utilities
[The Apache Software License, Version 2.0]
https://git.dorkbox.com/dorkbox/ByteUtilities
Copyright 2021
Dorkbox LLC
Extra license information
- Byte Utils (UByte, UInteger, ULong, Unsigned, UNumber, UShort) -
[The Apache Software License, Version 2.0]
https://github.com/jOOQ/jOOQ/tree/master/jOOQ/src/main/java/org/jooq/types
Copyright 2017
Data Geekery GmbH (http://www.datageekery.com)
Lukas Eder
Ed Schaller
Jens Nerche
Ivan Sokolov
- Kryo Serialization -
[BSD 3-Clause License]
https://github.com/EsotericSoftware/kryo
Copyright 2020
Nathan Sweet
- Kotlin Hex -
[MIT License]
https://github.com/komputing/KHex
Copyright 2017
ligi
- Base58 -
[The Apache Software License, Version 2.0]
https://bitcoinj.github.io
https://github.com/komputing/KBase58
Copyright 2018
Google Inc
Andreas Schildbach
ligi
- 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 2021
The Netty Project
Contributors. See source NOTICE
- Kryo - Fast and efficient binary object graph serialization framework for Java
[BSD 3-Clause License]
https://github.com/EsotericSoftware/kryo
Copyright 2021
Nathan Sweet
Extra license information
- ReflectASM -
[BSD 3-Clause License]
https://github.com/EsotericSoftware/reflectasm
Nathan Sweet
- Objenesis -
[The Apache Software License, Version 2.0]
http://objenesis.org
Objenesis Team and all contributors
- MinLog-SLF4J -
[BSD 3-Clause License]
https://github.com/EsotericSoftware/minlog
Nathan Sweet
- 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
- Serializers - Kryo based serializers
[The Apache Software License, Version 2.0]
https://git.dorkbox.com/dorkbox/Serializers
Copyright 2021
Dorkbox LLC
Extra license information
- Kryo Serializers -
[The Apache Software License, Version 2.0]
https://github.com/magro/kryo-serializers
Copyright 2021
Martin Grotzke
Rafael Winterhalter
- 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
- Bouncy Castle Crypto - Lightweight cryptography API and JCE Extension
[The Apache Software License, Version 2.0]
http://www.bouncycastle.org
Copyright 2021
The Legion of the Bouncy Castle Inc
- Kryo - Fast and efficient binary object graph serialization framework for Java
[BSD 3-Clause License]
https://github.com/EsotericSoftware/kryo
Copyright 2021
Nathan Sweet
Extra license information
- ReflectASM -
[BSD 3-Clause License]
https://github.com/EsotericSoftware/reflectasm
Nathan Sweet
- Objenesis -
[The Apache Software License, Version 2.0]
http://objenesis.org
Objenesis Team and all contributors
- MinLog-SLF4J -
[BSD 3-Clause License]
https://github.com/EsotericSoftware/minlog
Nathan Sweet
- 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
- ObjectPool - Fast, lightweight, and compatible blocking/non-blocking/soft-reference object pool for Java 8+
[The Apache Software License, Version 2.0]
https://git.dorkbox.com/dorkbox/ObjectPool
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
- kotlinx.coroutines - Library support for Kotlin coroutines with multiplatform support
[The Apache Software License, Version 2.0]
https://github.com/Kotlin/kotlinx.coroutines
Copyright 2021
JetBrains s.r.o.
- Conversant Disruptor - Disruptor is the highest performing intra-thread transfer mechanism available in Java.
[The Apache Software License, Version 2.0]
https://github.com/conversant/disruptor
Copyright 2021
Conversant, Inc
- 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 - Updates - Software Update Management
[The Apache Software License, Version 2.0] [The Apache Software License, Version 2.0]
https://git.dorkbox.com/dorkbox/Updates https://git.dorkbox.com/dorkbox/Updates

View File

@ -1,47 +0,0 @@
The OpenLDAP Public License
Version 2.8, 17 August 2003
Redistribution and use of this software and associated documentation
("Software"), with or without modification, are permitted provided
that the following conditions are met:
1. Redistributions in source form must retain copyright statements
and notices,
2. Redistributions in binary form must reproduce applicable copyright
statements and notices, this list of conditions, and the following
disclaimer in the documentation and/or other materials provided
with the distribution, and
3. Redistributions must contain a verbatim copy of this document.
The OpenLDAP Foundation may revise this license from time to time.
Each revision is distinguished by a version number. You may use
this Software under terms of this license revision or under the
terms of any subsequent revision of the license.
THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS
CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S)
OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
The names of the authors and copyright holders must not be used in
advertising or otherwise to promote the sale, use or other dealing
in this Software without specific, written prior permission. Title
to copyright in this Software shall at all times remain with copyright
holders.
OpenLDAP is a registered trademark of the OpenLDAP Foundation.
Copyright 1999-2003 The OpenLDAP Foundation, Redwood City,
California, USA. All Rights Reserved. Permission to copy and
distribute verbatim copies of this document is granted.

View File

@ -1,253 +1,236 @@
/* /*
* Copyright 2020 dorkbox, llc * Copyright 2020 dorkbox, llc
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import java.time.Instant import java.time.Instant
/////////////////////////////// ///////////////////////////////
////// PUBLISH TO SONATYPE / MAVEN CENTRAL ////// PUBLISH TO SONATYPE / MAVEN CENTRAL
////// TESTING : (to local maven repo) <'publish and release' - 'publishToMavenLocal'> ////// TESTING : (to local maven repo) <'publish and release' - 'publishToMavenLocal'>
////// RELEASE : (to sonatype/maven central), <'publish and release' - 'publishToSonatypeAndRelease'> ////// RELEASE : (to sonatype/maven central), <'publish and release' - 'publishToSonatypeAndRelease'>
/////////////////////////////// ///////////////////////////////
gradle.startParameter.showStacktrace = ShowStacktrace.ALWAYS // always show the stacktrace! gradle.startParameter.showStacktrace = ShowStacktrace.ALWAYS // always show the stacktrace!
gradle.startParameter.warningMode = WarningMode.All
plugins {
//buildscript { id("com.dorkbox.GradleUtils") version "2.9"
// dependencies { id("com.dorkbox.Licensing") version "2.9.2"
// classpath(project.files("D:\\Code\\dorkbox\\public_projects_build_system\\GradleUtils\\build\\libs\\GradleUtils-2.7.jar")) id("com.dorkbox.VersionUpdate") version "2.4"
// } id("com.dorkbox.GradlePublish") version "1.11"
//}
kotlin("jvm") version "1.5.21"
plugins { }
id("com.dorkbox.GradleUtils") version "2.9"
id("com.dorkbox.Licensing") version "2.9.2" object Extras {
id("com.dorkbox.VersionUpdate") version "2.4" // set for the project
id("com.dorkbox.GradlePublish") version "1.11" const val description = "Encrypted, high-performance, and event-driven/reactive network stack for Java 8+"
const val group = "com.dorkbox"
kotlin("jvm") version "1.5.21" const val version = "5.5"
}
// set as project.ext
//apply(plugin = "com.dorkbox.GradleUtils") const val name = "Network"
//val GradleUtils = (project as org.gradle.api.plugins.ExtensionAware).extensions.getByName("GradleUtils") as dorkbox.gradle.StaticMethodsAndTools const val id = "Network"
const val vendor = "Dorkbox LLC"
const val vendorUrl = "https://dorkbox.com"
object Extras { const val url = "https://git.dorkbox.com/dorkbox/Network"
// set for the project
const val description = "Encrypted, high-performance, and event-driven/reactive network stack for Java 8+" val buildDate = Instant.now().toString()
const val group = "com.dorkbox" }
const val version = "5.5"
///////////////////////////////
// set as project.ext ///// assign 'Extras'
const val name = "Network" ///////////////////////////////
const val id = "Network" GradleUtils.load("$projectDir/../../gradle.properties", Extras)
const val vendor = "Dorkbox LLC" GradleUtils.defaults()
const val vendorUrl = "https://dorkbox.com" // because of the api changes for stacktrace stuff, it's best for us to ONLY support 11+
const val url = "https://git.dorkbox.com/dorkbox/Network" GradleUtils.compileConfiguration(JavaVersion.VERSION_1_8) {
// see: https://kotlinlang.org/docs/reference/using-gradle.html
val buildDate = Instant.now().toString() // enable the use of inline classes. see https://kotlinlang.org/docs/reference/inline-classes.html
} freeCompilerArgs = listOf("-Xinline-classes")
}
/////////////////////////////// GradleUtils.jpms(JavaVersion.VERSION_1_9)
///// assign 'Extras'
///////////////////////////////
dorkbox.gradle.GradleUtils.load("$projectDir/../../gradle.properties", Extras) // ratelimiter, "other" package
dorkbox.gradle.GradleUtils.defaults() // rest of unit tests
// because of the api changes for stacktrace stuff, it's best for us to ONLY support 11+ // getConnectionUpgradeType
GradleUtils.compileConfiguration(JavaVersion.VERSION_1_8) { // ability to send with a function callback (using RMI waiter type stuff for callbacks)
// see: https://kotlinlang.org/docs/reference/using-gradle.html // use conscrypt?!
// enable the use of inline classes. see https://kotlinlang.org/docs/reference/inline-classes.html
freeCompilerArgs = listOf("-Xinline-classes") // java 14 is faster with aeron!
} // NOTE: now using aeron instead of netty
GradleUtils.jpms(JavaVersion.VERSION_1_9) // todo: remove BC! use conscrypt instead, or native java? (if possible. we are java 11 now, instead of 1.6)
// ratelimiter, "other" package // also, NOT using bouncastle, but instead the google one
// rest of unit tests // better SSL library
// getConnectionUpgradeType // implementation("org.conscrypt:conscrypt-openjdk-uber:2.2.1")
// ability to send with a function callback (using RMI waiter type stuff for callbacks) // init {
// use conscrypt?! // try {
// Security.insertProviderAt(Conscrypt.newProvider(), 1);
// java 14 is faster with aeron! // }
// NOTE: now using aeron instead of netty // catch (e: Throwable) {
// todo: remove BC! use conscrypt instead, or native java? (if possible. we are java 11 now, instead of 1.6) // e.printStackTrace();
// }
// }
// also, NOT using bouncastle, but instead the google one
// better SSL library
// implementation("org.conscrypt:conscrypt-openjdk-uber:2.2.1") licensing {
// init { license(License.APACHE_2) {
// try { description(Extras.description)
// Security.insertProviderAt(Conscrypt.newProvider(), 1); url(Extras.url)
// } author(Extras.vendor)
// catch (e: Throwable) {
// e.printStackTrace(); extra("KryoNet RMI", License.BSD_3) {
// } copyright(2008)
// } author("Nathan Sweet")
url("https://github.com/EsotericSoftware/kryonet")
}
licensing { extra("Kryo Serialization", License.BSD_3) {
license(License.APACHE_2) { copyright(2020)
description(Extras.description) author("Nathan Sweet")
url(Extras.url) url("https://github.com/EsotericSoftware/kryo")
author(Extras.vendor) }
extra("LAN HostDiscovery from Apache Commons JCS", License.APACHE_2) {
extra("KryoNet RMI", License.BSD_3) { copyright(2014)
copyright(2008) author("The Apache Software Foundation")
author("Nathan Sweet") url("https://issues.apache.org/jira/browse/JCS-40")
url("https://github.com/EsotericSoftware/kryonet") }
} extra("MathUtils, IntArray, IntMap", License.APACHE_2) {
extra("Kryo Serialization", License.BSD_3) { copyright(2013)
copyright(2020) author("Mario Zechner <badlogicgames@gmail.com>")
author("Nathan Sweet") author("Nathan Sweet <nathan.sweet@gmail.com>")
url("https://github.com/EsotericSoftware/kryo") url("http://github.com/libgdx/libgdx")
} }
extra("LAN HostDiscovery from Apache Commons JCS", License.APACHE_2) { extra("Netty (Various network + platform utilities)", License.APACHE_2) {
copyright(2014) copyright(2014)
author("The Apache Software Foundation") description("An event-driven asynchronous network application framework")
url("https://issues.apache.org/jira/browse/JCS-40") author("The Netty Project")
} author("Contributors. See source NOTICE")
extra("MathUtils, IntArray, IntMap", License.APACHE_2) { url("https://netty.io")
copyright(2013) }
author("Mario Zechner <badlogicgames@gmail.com>") }
author("Nathan Sweet <nathan.sweet@gmail.com>") }
url("http://github.com/libgdx/libgdx")
} tasks.jar.get().apply {
extra("Netty (Various network + platform utilities)", License.APACHE_2) { manifest {
copyright(2014) // https://docs.oracle.com/javase/tutorial/deployment/jar/packageman.html
description("An event-driven asynchronous network application framework") attributes["Name"] = Extras.name
author("The Netty Project")
author("Contributors. See source NOTICE") attributes["Specification-Title"] = Extras.name
url("https://netty.io") attributes["Specification-Version"] = Extras.version
} attributes["Specification-Vendor"] = Extras.vendor
}
} attributes["Implementation-Title"] = "${Extras.group}.${Extras.id}"
attributes["Implementation-Version"] = Extras.buildDate
tasks.jar.get().apply { attributes["Implementation-Vendor"] = Extras.vendor
manifest { }
// https://docs.oracle.com/javase/tutorial/deployment/jar/packageman.html }
attributes["Name"] = Extras.name
dependencies {
attributes["Specification-Title"] = Extras.name implementation("org.jetbrains.kotlinx:atomicfu:0.16.2")
attributes["Specification-Version"] = Extras.version implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1")
attributes["Specification-Vendor"] = Extras.vendor
// https://github.com/dorkbox
attributes["Implementation-Title"] = "${Extras.group}.${Extras.id}" implementation("com.dorkbox:ByteUtilities:1.3")
attributes["Implementation-Version"] = Extras.buildDate implementation("com.dorkbox:MinLog:2.4")
attributes["Implementation-Vendor"] = Extras.vendor implementation("com.dorkbox:NetworkUtils:2.8")
} implementation("com.dorkbox:ObjectPool:3.4")
} implementation("com.dorkbox:Serializers:2.5")
implementation("com.dorkbox:Storage:1.0")
dependencies { implementation("com.dorkbox:Updates:1.1")
implementation("org.jetbrains.kotlinx:atomicfu:0.16.2") implementation("com.dorkbox:Utilities:1.12")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1")
// https://github.com/dorkbox // https://github.com/real-logic/aeron
implementation("com.dorkbox:MinLog:2.4") val aeronVer = "1.35.0"
implementation("com.dorkbox:NetworkUtils:2.8") // REMOVE UdpChannel when ISSUE https://github.com/real-logic/aeron/issues/1057 is resolved! (hopefully in 1.30.0)
implementation("com.dorkbox:ObjectPool:3.4") implementation("io.aeron:aeron-client:$aeronVer")
implementation("com.dorkbox:Serializers:2.0") implementation("io.aeron:aeron-driver:$aeronVer")
// implementation("com.dorkbox:Storage:1.0")
implementation("com.dorkbox:Updates:1.1") // https://github.com/EsotericSoftware/kryo
implementation("com.dorkbox:Utilities:1.12") implementation("com.esotericsoftware:kryo:5.2.0") {
exclude("com.esotericsoftware", "minlog") // we use our own minlog, that logs to SLF4j instead
}
// https://github.com/real-logic/aeron
val aeronVer = "1.35.0" // https://github.com/jpountz/lz4-java
// REMOVE UdpChannel when ISSUE https://github.com/real-logic/aeron/issues/1057 is resolved! (hopefully in 1.30.0) // implementation("net.jpountz.lz4:lz4:1.3.0")
implementation("io.aeron:aeron-client:$aeronVer")
implementation("io.aeron:aeron-driver:$aeronVer") // this is NOT the same thing as LMAX disruptor.
// This is just a really fast queue (where LMAX is a fast queue + other things w/ a difficult DSL)
// https://github.com/EsotericSoftware/kryo // https://github.com/conversant/disruptor_benchmark
implementation("com.esotericsoftware:kryo:5.2.0") { // https://www.youtube.com/watch?v=jVMOgQgYzWU
exclude("com.esotericsoftware", "minlog") // we use our own minlog, that logs to SLF4j instead implementation("com.conversantmedia:disruptor:1.2.19")
}
// https://github.com/jhalterman/typetools
// https://github.com/magro/kryo-serializers implementation("net.jodah:typetools:0.6.3")
implementation("de.javakaffee:kryo-serializers:0.45"){
exclude("com.esotericsoftware", "kryo") // we use na updated kryo+ our own min-log, that logs to SLF4j // // really fast storage
} // // https://github.com/lmdbjava/lmdbjava
// val lmdbJava = "org.lmdbjava:lmdbjava:0.8.1"
// https://github.com/jpountz/lz4-java // compileOnly(lmdbJava)
// implementation("net.jpountz.lz4:lz4:1.3.0") //
// // https://github.com/OpenHFT/Chronicle-Map
// this is NOT the same thing as LMAX disruptor. // val chronicleMap = "net.openhft:chronicle-map:3.20.84"
// This is just a really fast queue (where LMAX is a fast queue + other things w/ a difficult DSL) // compileOnly(chronicleMap) {
// https://github.com/conversant/disruptor_benchmark // exclude("com.intellij", "annotations") // not even available at runtime
// https://www.youtube.com/watch?v=jVMOgQgYzWU // // optional from chronicle-map. These cause JPMS to fail!
implementation("com.conversantmedia:disruptor:1.2.19") // exclude("com.thoughtworks.xstream", "xstream")
// exclude("org.ops4j.pax.url", "pax-url-aether")
// https://github.com/jhalterman/typetools // exclude("org.codehaus.jettison", "jettison")
implementation("net.jodah:typetools:0.6.3") // }
//
// // really fast storage
// // https://github.com/lmdbjava/lmdbjava // Jodah Expiring Map (A high performance thread-safe map that expires entries)
// val lmdbJava = "org.lmdbjava:lmdbjava:0.8.1" // https://github.com/jhalterman/expiringmap
// compileOnly(lmdbJava) implementation("net.jodah:expiringmap:0.5.10")
//
// // https://github.com/OpenHFT/Chronicle-Map
// val chronicleMap = "net.openhft:chronicle-map:3.20.84"
// compileOnly(chronicleMap) { // https://github.com/MicroUtils/kotlin-logging
// exclude("com.intellij", "annotations") // not even available at runtime implementation("io.github.microutils:kotlin-logging:2.0.10")
// // optional from chronicle-map. These cause JPMS to fail! implementation("org.slf4j:slf4j-api:1.8.0-beta4")
// exclude("com.thoughtworks.xstream", "xstream")
// exclude("org.ops4j.pax.url", "pax-url-aether")
// exclude("org.codehaus.jettison", "jettison") // testImplementation(lmdbJava)
// } // testImplementation(chronicleMap)
//
testImplementation("junit:junit:4.13.1")
// Jodah Expiring Map (A high performance thread-safe map that expires entries) testImplementation("ch.qos.logback:logback-classic:1.3.0-alpha4")
// https://github.com/jhalterman/expiringmap }
implementation("net.jodah:expiringmap:0.5.10")
publishToSonatype {
groupId = Extras.group
artifactId = Extras.id
// https://github.com/MicroUtils/kotlin-logging version = Extras.version
implementation("io.github.microutils:kotlin-logging:2.0.10")
implementation("org.slf4j:slf4j-api:1.8.0-beta4") name = Extras.name
description = Extras.description
url = Extras.url
vendor = Extras.vendor
// testImplementation(lmdbJava) vendorUrl = Extras.vendorUrl
// testImplementation(chronicleMap)
issueManagement {
testImplementation("junit:junit:4.13.1") url = "${Extras.url}/issues"
testImplementation("ch.qos.logback:logback-classic:1.3.0-alpha4") nickname = "Gitea Issues"
} }
publishToSonatype { developer {
groupId = Extras.group id = "dorkbox"
artifactId = Extras.id name = Extras.vendor
version = Extras.version email = "email@dorkbox.com"
}
name = Extras.name }
description = Extras.description
url = Extras.url
vendor = Extras.vendor
vendorUrl = Extras.vendorUrl
issueManagement {
url = "${Extras.url}/issues"
nickname = "Gitea Issues"
}
developer {
id = "dorkbox"
name = Extras.vendor
email = "email@dorkbox.com"
}
}

15
gradle.properties Normal file
View File

@ -0,0 +1,15 @@
# https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_configuration_properties
org.gradle.jvmargs=-Dfile.encoding=UTF-8
#org.gradle.warning.mode=(all,fail,none,summary)
org.gradle.warning.mode=all
#org.gradle.daemon=false
# default is 3 hours, this is 1 minute
org.gradle.daemon.idletimeout=60000
#org.gradle.console=(auto,plain,rich,verbose)
org.gradle.console=auto
#org.gradle.logging.level=(quiet,warn,lifecycle,info,debug)
org.gradle.logging.level=lifecycle

View File

@ -21,7 +21,7 @@ import dorkbox.netUtil.IP
import dorkbox.network.handshake.ClientConnectionInfo import dorkbox.network.handshake.ClientConnectionInfo
import dorkbox.network.serialization.AeronInput import dorkbox.network.serialization.AeronInput
import dorkbox.network.serialization.AeronOutput import dorkbox.network.serialization.AeronOutput
import dorkbox.network.storage.SettingsStore import dorkbox.network.serialization.SettingsStore
import dorkbox.util.entropy.Entropy import dorkbox.util.entropy.Entropy
import dorkbox.util.exceptions.SecurityException import dorkbox.util.exceptions.SecurityException
import mu.KLogger import mu.KLogger

View File

@ -35,7 +35,7 @@ import dorkbox.network.rmi.messages.MethodResponse
import dorkbox.network.rmi.messages.RmiMessage import dorkbox.network.rmi.messages.RmiMessage
import dorkbox.network.serialization.KryoExtra import dorkbox.network.serialization.KryoExtra
import dorkbox.network.serialization.Serialization import dorkbox.network.serialization.Serialization
import dorkbox.network.storage.SettingsStore import dorkbox.network.serialization.SettingsStore
import dorkbox.util.exceptions.SecurityException import dorkbox.util.exceptions.SecurityException
import io.aeron.Publication import io.aeron.Publication
import io.aeron.driver.MediaDriver import io.aeron.driver.MediaDriver

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2020 dorkbox, llc * Copyright 2021 dorkbox, llc
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package dorkbox.network.storage package dorkbox.network.serialization
import dorkbox.bytes.decodeBase58 import dorkbox.bytes.decodeBase58
import dorkbox.bytes.encodeToBase58String import dorkbox.bytes.encodeToBase58String
@ -53,7 +53,7 @@ class SettingsStore(storageBuilder: Storage.Builder, val logger: KLogger) : Auto
init { init {
store = storageBuilder.logger(logger).apply { store = storageBuilder.logger(logger).apply {
if (!isStringBased) { if (isStringBased) {
// have to load/save keys+values as strings // have to load/save keys+values as strings
onLoad { key, value, load -> onLoad { key, value, load ->
// key/value will be strings for a string based storage system // key/value will be strings for a string based storage system
@ -64,7 +64,7 @@ class SettingsStore(storageBuilder: Storage.Builder, val logger: KLogger) : Auto
val xKey: Any? = when (key) { val xKey: Any? = when (key) {
saltKey, privateKey -> key saltKey, privateKey -> key
else -> { else -> {
IP.toAddress(key) IP.toAddress(key)
} }
} }
@ -113,14 +113,6 @@ class SettingsStore(storageBuilder: Storage.Builder, val logger: KLogger) : Auto
}.build() }.build()
// have to init salt // have to init salt
val currentValue: ByteArray? = store[saltKey] val currentValue: ByteArray? = store[saltKey]
if (currentValue == null) { if (currentValue == null) {

View File

@ -1,24 +0,0 @@
/*
* Copyright 2021 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.network.storage;
/**
* Required for intellij to not complain regarding `module-info` for a multi-release jar.
* This file is completely ignored by the gradle build process
*/
public
class EmptyClass {}

View File

@ -1,24 +0,0 @@
/*
* Copyright 2021 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.network.storage.types;
/**
* Required for intellij to not complain regarding `module-info` for a multi-release jar.
* This file is completely ignored by the gradle build process
*/
public
class EmptyClass {}

View File

@ -10,8 +10,6 @@ module dorkbox.network {
exports dorkbox.network.ping; exports dorkbox.network.ping;
exports dorkbox.network.rmi; exports dorkbox.network.rmi;
exports dorkbox.network.serialization; exports dorkbox.network.serialization;
exports dorkbox.network.storage;
exports dorkbox.network.storage.types;
requires dorkbox.bytes; requires dorkbox.bytes;
requires dorkbox.updates; requires dorkbox.updates;
@ -24,7 +22,6 @@ module dorkbox.network {
requires expiringmap; requires expiringmap;
requires net.jodah.typetools; requires net.jodah.typetools;
// requires de.javakaffee.kryoserializers;
requires com.esotericsoftware.kryo; requires com.esotericsoftware.kryo;
requires com.esotericsoftware.reflectasm; requires com.esotericsoftware.reflectasm;
requires org.objenesis; requires org.objenesis;

View File

@ -18,7 +18,7 @@ package dorkboxTest.network
import dorkbox.network.Client import dorkbox.network.Client
import dorkbox.network.Server import dorkbox.network.Server
import dorkbox.network.connection.Connection import dorkbox.network.connection.Connection
import dorkbox.network.storage.SettingsStore import dorkbox.network.serialization.SettingsStore
import dorkbox.storage.Storage import dorkbox.storage.Storage
import mu.KotlinLogging import mu.KotlinLogging
import org.junit.Assert import org.junit.Assert