lift tests to module path
This commit is contained in:
parent
9e30dd2e1c
commit
96f47650b5
123 changed files with 522 additions and 214 deletions
5
benchmark/src/jmh/java/module-info.java
Normal file
5
benchmark/src/jmh/java/module-info.java
Normal file
|
@ -0,0 +1,5 @@
|
|||
module org.xbib.net.benchmark.jmh {
|
||||
requires jmh.core;
|
||||
requires org.xbib.net;
|
||||
requires org.xbib.net.path;
|
||||
}
|
10
build.gradle
10
build.gradle
|
@ -1,18 +1,14 @@
|
|||
|
||||
plugins {
|
||||
id "checkstyle"
|
||||
id "pmd"
|
||||
id 'maven-publish'
|
||||
id 'signing'
|
||||
id "io.github.gradle-nexus.publish-plugin" version "2.0.0-rc-1"
|
||||
id "com.github.spotbugs" version "6.0.0-beta.3"
|
||||
id "org.cyclonedx.bom" version "1.7.4"
|
||||
id "org.xbib.gradle.plugin.asciidoctor" version "3.0.0"
|
||||
}
|
||||
|
||||
wrapper {
|
||||
gradleVersion = libs.versions.gradle.get()
|
||||
distributionType = Wrapper.DistributionType.ALL
|
||||
distributionType = Wrapper.DistributionType.BIN
|
||||
}
|
||||
|
||||
ext {
|
||||
|
@ -36,11 +32,7 @@ subprojects {
|
|||
apply from: rootProject.file('gradle/compile/java.gradle')
|
||||
apply from: rootProject.file('gradle/test/junit5.gradle')
|
||||
apply from: rootProject.file('gradle/documentation/asciidoc.gradle')
|
||||
apply from: rootProject.file('gradle/quality/checkstyle.gradle')
|
||||
apply from: rootProject.file('gradle/quality/pmd.gradle')
|
||||
//apply from: rootProject.file('gradle/quality/spotbugs.gradle')
|
||||
apply from: rootProject.file('gradle/publish/maven.gradle')
|
||||
}
|
||||
apply from: rootProject.file('gradle/publish/sonatype.gradle')
|
||||
apply from: rootProject.file('gradle/publish/forgejo.gradle')
|
||||
apply from: rootProject.file('gradle/quality/cyclonedx.gradle')
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
group = org.xbib
|
||||
name = net
|
||||
version = 4.2.0
|
||||
version = 4.3.0
|
||||
|
|
|
@ -17,13 +17,29 @@ jar {
|
|||
}
|
||||
|
||||
tasks.withType(JavaCompile) {
|
||||
doFirst {
|
||||
options.fork = true
|
||||
options.forkOptions.jvmArgs += ['-Duser.language=en','-Duser.country=US']
|
||||
options.compilerArgs.add('-Xlint:all')
|
||||
options.encoding = 'UTF-8'
|
||||
options.compilerArgs.add('-Xlint:all')
|
||||
// enforce presence of module-info.java
|
||||
options.compilerArgs.add("--module-path")
|
||||
options.compilerArgs.add(classpath.asPath)
|
||||
classpath = files()
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType(Javadoc) {
|
||||
doFirst {
|
||||
options.addStringOption('Xdoclint:none', '-quiet')
|
||||
options.encoding = 'UTF-8'
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType(JavaExec) {
|
||||
doFirst {
|
||||
jvmArguments.add("--module-path")
|
||||
jvmArguments.add(classpath.asPath)
|
||||
classpath = files()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,6 @@ test {
|
|||
jvmArgs '--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED',
|
||||
'--add-exports=java.base/jdk.internal.ref=ALL-UNNAMED',
|
||||
'--add-exports=java.base/sun.nio.ch=ALL-UNNAMED',
|
||||
'--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED',
|
||||
'--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED',
|
||||
'--add-opens=jdk.compiler/com.sun.tools.javac=ALL-UNNAMED',
|
||||
'--add-opens=java.base/java.lang=ALL-UNNAMED',
|
||||
|
|
12
net-mime/build.gradle
Normal file
12
net-mime/build.gradle
Normal file
|
@ -0,0 +1,12 @@
|
|||
|
||||
|
||||
def moduleName = 'org.xbib.net.mime.test'
|
||||
def patchArgs = ['--patch-module', "$moduleName=" + files(sourceSets.test.resources.srcDirs).asPath ]
|
||||
|
||||
tasks.named('compileTestJava') {
|
||||
options.compilerArgs += patchArgs
|
||||
}
|
||||
|
||||
tasks.named('test') {
|
||||
jvmArgs += patchArgs
|
||||
}
|
6
net-mime/src/test/java/module-info.java
Normal file
6
net-mime/src/test/java/module-info.java
Normal file
|
@ -0,0 +1,6 @@
|
|||
module org.xbib.net.mime.test {
|
||||
requires java.logging;
|
||||
requires org.junit.jupiter.api;
|
||||
requires org.xbib.net.mime;
|
||||
exports org.xbib.net.mime.test;
|
||||
}
|
|
@ -17,7 +17,7 @@ public class MimeMultipartTest {
|
|||
|
||||
@Test
|
||||
public void multiPartTest() throws MimeException, IOException {
|
||||
try (InputStream inputStream = getClass().getResourceAsStream("/org/xbib/net/mime/test/msg.txt")) {
|
||||
try (InputStream inputStream = getClass().getResourceAsStream("msg.txt")) {
|
||||
Objects.requireNonNull(inputStream);
|
||||
MimeMultipartParser parser = new MimeMultipartParser("multipart/mixed; boundary=\"----=_Part_4_910054940.1065629194743\"; charset=\"ISO-8859-1\"");
|
||||
parser.parse(ByteBuffer.wrap(inputStream.readAllBytes()),
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
dependencies {
|
||||
api project(':net')
|
||||
}
|
||||
|
||||
def moduleName = 'org.xbib.net.path.test'
|
||||
def patchArgs = ['--patch-module', "$moduleName=" + files(sourceSets.test.resources.srcDirs).asPath ]
|
||||
|
||||
tasks.named('compileTestJava') {
|
||||
options.compilerArgs += patchArgs
|
||||
}
|
||||
|
||||
tasks.named('test') {
|
||||
jvmArgs += patchArgs
|
||||
}
|
||||
|
|
13
net-path/src/test/java/module-info.java
Normal file
13
net-path/src/test/java/module-info.java
Normal file
|
@ -0,0 +1,13 @@
|
|||
module org.xbib.net.path.test {
|
||||
requires transitive org.junit.jupiter.api;
|
||||
requires org.hamcrest;
|
||||
requires org.xbib.net.path;
|
||||
exports org.xbib.net.path.test;
|
||||
exports org.xbib.net.path.test.simple;
|
||||
exports org.xbib.net.path.test.spring;
|
||||
exports org.xbib.net.path.test.structure;
|
||||
opens org.xbib.net.path.test;
|
||||
opens org.xbib.net.path.test.simple;
|
||||
opens org.xbib.net.path.test.spring;
|
||||
opens org.xbib.net.path.test.structure;
|
||||
}
|
|
@ -1,8 +1,9 @@
|
|||
package org.xbib.net.path;
|
||||
package org.xbib.net.path.test;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.Parameter;
|
||||
import org.xbib.net.URL;
|
||||
import org.xbib.net.path.PathDecoder;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.path.simple;
|
||||
package org.xbib.net.path.test.simple;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
|
@ -1,8 +1,9 @@
|
|||
package org.xbib.net.path.simple;
|
||||
package org.xbib.net.path.test.simple;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.Parameter;
|
||||
import org.xbib.net.ParameterException;
|
||||
import org.xbib.net.path.simple.PathResolver;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
|
@ -1,6 +1,8 @@
|
|||
package org.xbib.net.path.simple;
|
||||
package org.xbib.net.path.test.simple;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.path.simple.Path;
|
||||
import org.xbib.net.path.simple.PathComparator;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
|
@ -1,7 +1,8 @@
|
|||
package org.xbib.net.path.spring;
|
||||
package org.xbib.net.path.test.spring;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.path.spring.PathPatternParser;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
@ -1,6 +1,7 @@
|
|||
package org.xbib.net.path.structure;
|
||||
package org.xbib.net.path.test.structure;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.path.structure.PathMatcher;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
@ -1,9 +1,10 @@
|
|||
package org.xbib.net.path.structure;
|
||||
package org.xbib.net.path.test.structure;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.Parameter;
|
||||
import org.xbib.net.ParameterException;
|
||||
import org.xbib.net.path.structure.PathResolver;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
|
@ -1,6 +1,8 @@
|
|||
package org.xbib.net.path.structure;
|
||||
package org.xbib.net.path.test.structure;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.path.structure.Path;
|
||||
import org.xbib.net.path.structure.PathComparator;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
4
net-resource/src/test/java/module-info.java
Normal file
4
net-resource/src/test/java/module-info.java
Normal file
|
@ -0,0 +1,4 @@
|
|||
module org.xbib.net.resource.test {
|
||||
requires org.junit.jupiter.api;
|
||||
requires org.xbib.net.resource;
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.resource;
|
||||
package org.xbib.net.resource.test;
|
||||
/*
|
||||
* Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
|
@ -26,6 +26,8 @@ package org.xbib.net.resource;
|
|||
* @test
|
||||
*/
|
||||
|
||||
import org.xbib.net.resource.IRI;
|
||||
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.resource;/*
|
||||
package org.xbib.net.resource.test;/*
|
||||
* Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
|
@ -31,6 +31,8 @@ package org.xbib.net.resource;/*
|
|||
* exception with new URL(IRI.toString()) and IRI.toURL()
|
||||
*/
|
||||
|
||||
import org.xbib.net.resource.IRI;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.resource;
|
||||
package org.xbib.net.resource.test;
|
||||
/*
|
||||
* Copyright (c) 2003, 2019 Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
|
@ -27,6 +27,8 @@ package org.xbib.net.resource;
|
|||
* @summary URI.resolve escapes characters in parameter URI
|
||||
*/
|
||||
|
||||
import org.xbib.net.resource.IRI;
|
||||
|
||||
import java.io.File;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.Objects;
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.resource;
|
||||
package org.xbib.net.resource.test;
|
||||
/*
|
||||
* Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
|
@ -27,6 +27,8 @@ package org.xbib.net.resource;
|
|||
* @bug 8019345 6345502 6363889 6345551 6348515
|
||||
*/
|
||||
|
||||
import org.xbib.net.resource.IRI;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
|
@ -36,7 +38,6 @@ import java.io.PrintStream;
|
|||
import java.lang.invoke.MethodHandle;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.lang.invoke.MethodType;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.net.MalformedURLException;
|
|
@ -2,3 +2,14 @@ dependencies {
|
|||
api project(':net')
|
||||
testImplementation project(':net-bouncycastle')
|
||||
}
|
||||
|
||||
def moduleName = 'org.xbib.net.security.test'
|
||||
def patchArgs = ['--patch-module', "$moduleName=" + files(sourceSets.test.resources.srcDirs).asPath ]
|
||||
|
||||
tasks.named('compileTestJava') {
|
||||
options.compilerArgs += patchArgs
|
||||
}
|
||||
|
||||
tasks.named('test') {
|
||||
jvmArgs += patchArgs
|
||||
}
|
||||
|
|
|
@ -12,5 +12,6 @@ module org.xbib.net.security {
|
|||
exports org.xbib.net.security.signatures;
|
||||
exports org.xbib.net.security.ssl;
|
||||
exports org.xbib.net.security.ssl.trustmanager;
|
||||
exports org.xbib.net.security.ssl.util;
|
||||
exports org.xbib.net.security.util;
|
||||
}
|
||||
|
|
|
@ -22,41 +22,41 @@ public class GroupElement {
|
|||
/**
|
||||
* Variable is package private only so that tests run.
|
||||
*/
|
||||
final Curve curve;
|
||||
public final Curve curve;
|
||||
/**
|
||||
* Variable is package private only so that tests run.
|
||||
*/
|
||||
final Representation repr;
|
||||
public final Representation repr;
|
||||
/**
|
||||
* Variable is package private only so that tests run.
|
||||
*/
|
||||
final FieldElement X;
|
||||
public final FieldElement X;
|
||||
/**
|
||||
* Variable is package private only so that tests run.
|
||||
*/
|
||||
final FieldElement Y;
|
||||
public final FieldElement Y;
|
||||
/**
|
||||
* Variable is package private only so that tests run.
|
||||
*/
|
||||
final FieldElement Z;
|
||||
public final FieldElement Z;
|
||||
/**
|
||||
* Variable is package private only so that tests run.
|
||||
*/
|
||||
final FieldElement T;
|
||||
public final FieldElement T;
|
||||
/**
|
||||
* Precomputed table for {@link #scalarMultiply(byte[])},
|
||||
* filled if necessary.
|
||||
* <p>
|
||||
* Variable is package private only so that tests run.
|
||||
*/
|
||||
GroupElement[][] precmp;
|
||||
public GroupElement[][] precmp;
|
||||
/**
|
||||
* Precomputed table for {@link #doubleScalarMultiplyVariableTime(GroupElement, byte[], byte[])},
|
||||
* filled if necessary.
|
||||
* <p>
|
||||
* Variable is package private only so that tests run.
|
||||
*/
|
||||
GroupElement[] dblPrecmp;
|
||||
public GroupElement[] dblPrecmp;
|
||||
|
||||
/**
|
||||
* Creates a group element for a curve.
|
||||
|
@ -243,7 +243,7 @@ public class GroupElement {
|
|||
* @param a $= a[0]+256*a[1]+...+256^{31} a[31]$
|
||||
* @return 64 bytes, each between -8 and 7
|
||||
*/
|
||||
static byte[] toRadix16(final byte[] a) {
|
||||
public static byte[] toRadix16(final byte[] a) {
|
||||
final byte[] e = new byte[64];
|
||||
int i;
|
||||
// Radix 16 notation
|
||||
|
@ -822,7 +822,7 @@ public class GroupElement {
|
|||
* @param b in $\{0, 1\}$
|
||||
* @return $u$ if $b == 1$; this if $b == 0$. Results undefined if $b$ is not in $\{0, 1\}$.
|
||||
*/
|
||||
GroupElement cmov(final GroupElement u, final int b) {
|
||||
public GroupElement cmov(final GroupElement u, final int b) {
|
||||
return precomp(curve, X.cmov(u.X, b), Y.cmov(u.Y, b), Z.cmov(u.Z, b));
|
||||
}
|
||||
|
||||
|
@ -840,7 +840,7 @@ public class GroupElement {
|
|||
* @param b $= r_i$
|
||||
* @return the GroupElement
|
||||
*/
|
||||
GroupElement select(final int pos, final int b) {
|
||||
public GroupElement select(final int pos, final int b) {
|
||||
// Is r_i negative?
|
||||
final int bnegative = Utils.negative(b);
|
||||
// |r_i|
|
||||
|
|
|
@ -12,7 +12,7 @@ public class BigIntegerFieldElement extends FieldElement {
|
|||
/**
|
||||
* Variable is package private for encoding.
|
||||
*/
|
||||
final BigInteger bi;
|
||||
public final BigInteger bi;
|
||||
|
||||
public BigIntegerFieldElement(Field f, BigInteger bi) {
|
||||
super(f);
|
||||
|
|
|
@ -17,7 +17,7 @@ public class Ed25519FieldElement extends FieldElement {
|
|||
/**
|
||||
* Variable is package private for encoding.
|
||||
*/
|
||||
final int[] t;
|
||||
public final int[] t;
|
||||
|
||||
/**
|
||||
* Creates a field element.
|
||||
|
|
14
net-security/src/test/java/module-info.java
Normal file
14
net-security/src/test/java/module-info.java
Normal file
|
@ -0,0 +1,14 @@
|
|||
module org.xbib.net.security.test {
|
||||
requires java.logging;
|
||||
requires transitive org.junit.jupiter.api;
|
||||
requires org.hamcrest;
|
||||
requires org.xbib.net.security;
|
||||
requires org.bouncycastle.provider;
|
||||
exports org.xbib.net.security.test;
|
||||
exports org.xbib.net.security.test.ed25519;
|
||||
exports org.xbib.net.security.test.eddsa;
|
||||
exports org.xbib.net.security.test.eddsa.math;
|
||||
exports org.xbib.net.security.test.eddsa.math.bigint;
|
||||
exports org.xbib.net.security.test.eddsa.math.ed25519;
|
||||
exports org.xbib.net.security.test.eddsa.spec;
|
||||
}
|
|
@ -1,10 +1,11 @@
|
|||
package org.xbib.net.security;
|
||||
package org.xbib.net.security.test;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.CertificateReader;
|
||||
|
||||
public class CertificateReaderTest {
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
package org.xbib.net.security;
|
||||
package org.xbib.net.security.test;
|
||||
|
||||
import org.bouncycastle.jce.provider.BouncyCastleProvider;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.CertificateProvider;
|
||||
import org.xbib.net.security.CertificateReader;
|
||||
import org.xbib.net.security.util.HexUtil;
|
||||
|
||||
import javax.crypto.SecretKey;
|
|
@ -1,6 +1,7 @@
|
|||
package org.xbib.net.security;
|
||||
package org.xbib.net.security.test;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.PrivateKeyReader;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.InputStream;
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.security.ed25519;
|
||||
package org.xbib.net.security.test.ed25519;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.KeyPair;
|
|
@ -1,4 +1,6 @@
|
|||
package org.xbib.net.security.eddsa;
|
||||
package org.xbib.net.security.test.eddsa;
|
||||
|
||||
import org.xbib.net.security.eddsa.Utils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.security.eddsa;
|
||||
package org.xbib.net.security.test.eddsa;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
@ -13,6 +13,10 @@ import java.security.SignatureException;
|
|||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.EdDSAEngine;
|
||||
import org.xbib.net.security.eddsa.EdDSAPrivateKey;
|
||||
import org.xbib.net.security.eddsa.EdDSAPublicKey;
|
||||
import org.xbib.net.security.eddsa.Utils;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveTable;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSAParameterSpec;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSAPrivateKeySpec;
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.security.eddsa;
|
||||
package org.xbib.net.security.test.eddsa;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
@ -6,6 +6,8 @@ import static org.hamcrest.Matchers.*;
|
|||
import java.security.spec.PKCS8EncodedKeySpec;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.EdDSAPrivateKey;
|
||||
import org.xbib.net.security.eddsa.Utils;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSAPrivateKeySpec;
|
||||
|
||||
/**
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.security.eddsa;
|
||||
package org.xbib.net.security.test.eddsa;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
@ -6,6 +6,8 @@ import static org.hamcrest.Matchers.*;
|
|||
import java.security.spec.X509EncodedKeySpec;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.EdDSAPublicKey;
|
||||
import org.xbib.net.security.eddsa.Utils;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSAPublicKeySpec;
|
||||
|
||||
/**
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.security.eddsa;
|
||||
package org.xbib.net.security.test.eddsa;
|
||||
|
||||
import java.security.KeyFactory;
|
||||
import java.security.KeyPairGenerator;
|
||||
|
@ -7,6 +7,7 @@ import java.security.Security;
|
|||
import java.security.Signature;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.EdDSASecurityProvider;
|
||||
|
||||
/**
|
||||
*
|
|
@ -1,9 +1,10 @@
|
|||
package org.xbib.net.security.eddsa;
|
||||
package org.xbib.net.security.test.eddsa;
|
||||
|
||||
import org.hamcrest.core.IsEqual;
|
||||
|
||||
import java.security.SecureRandom;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.Utils;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.is;
|
|
@ -1,10 +1,13 @@
|
|||
package org.xbib.net.security.eddsa.math;
|
||||
package org.xbib.net.security.test.eddsa.math;
|
||||
|
||||
import org.hamcrest.core.IsEqual;
|
||||
import org.hamcrest.core.IsNot;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.math.Field;
|
||||
import org.xbib.net.security.eddsa.math.FieldElement;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
|
||||
/**
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.security.eddsa.math;
|
||||
package org.xbib.net.security.test.eddsa.math;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
@ -10,6 +10,9 @@ import java.security.MessageDigest;
|
|||
import java.security.NoSuchAlgorithmException;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.math.Curve;
|
||||
import org.xbib.net.security.eddsa.math.FieldElement;
|
||||
import org.xbib.net.security.eddsa.math.GroupElement;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveSpec;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveTable;
|
||||
|
|
@ -1,9 +1,12 @@
|
|||
package org.xbib.net.security.eddsa.math;
|
||||
package org.xbib.net.security.test.eddsa.math;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.Ed25519TestVectors;
|
||||
import org.xbib.net.security.test.eddsa.Ed25519TestVectors;
|
||||
import org.xbib.net.security.eddsa.Utils;
|
||||
import org.xbib.net.security.eddsa.math.Curve;
|
||||
import org.xbib.net.security.eddsa.math.FieldElement;
|
||||
import org.xbib.net.security.eddsa.math.GroupElement;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveSpec;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveTable;
|
||||
import org.hamcrest.core.IsEqual;
|
|
@ -1,7 +1,11 @@
|
|||
package org.xbib.net.security.eddsa.math;
|
||||
package org.xbib.net.security.test.eddsa.math;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.Utils;
|
||||
import org.xbib.net.security.eddsa.math.Curve;
|
||||
import org.xbib.net.security.eddsa.math.Field;
|
||||
import org.xbib.net.security.eddsa.math.FieldElement;
|
||||
import org.xbib.net.security.eddsa.math.GroupElement;
|
||||
import org.xbib.net.security.eddsa.math.ed25519.Ed25519FieldElement;
|
||||
import org.xbib.net.security.eddsa.math.ed25519.Ed25519LittleEndianEncoding;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveSpec;
|
||||
|
@ -416,7 +420,6 @@ public class MathUtils {
|
|||
return GroupElement.p3(g.getCurve(), g.getX().negate(), g.getY(), g.getZ(), g.getT().negate());
|
||||
}
|
||||
|
||||
// Start TODO BR: Remove when finished!
|
||||
@Test
|
||||
public void mathUtilsWorkAsExpected() {
|
||||
final GroupElement neutral = GroupElement.p3(curve, curve.getField().ZERO, curve.getField().ONE, curve.getField().ONE, curve.getField().ZERO);
|
||||
|
@ -468,5 +471,4 @@ public class MathUtils {
|
|||
assertThat(curve.getZero(GroupElement.Representation.P3), IsEqual.equalTo(h));
|
||||
}
|
||||
}
|
||||
// End TODO BR: Remove when finished!
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.security.eddsa.math;
|
||||
package org.xbib.net.security.test.eddsa.math;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
|
@ -6,12 +6,13 @@ import java.io.InputStream;
|
|||
import java.io.InputStreamReader;
|
||||
|
||||
import org.xbib.net.security.eddsa.Utils;
|
||||
import org.xbib.net.security.eddsa.math.Curve;
|
||||
import org.xbib.net.security.eddsa.math.Field;
|
||||
import org.xbib.net.security.eddsa.math.FieldElement;
|
||||
import org.xbib.net.security.eddsa.math.GroupElement;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveSpec;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveTable;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class PrecomputationTestVectors {
|
||||
// Test files were generated using base.py and base2.py from ref10
|
||||
// (by printing hex(x%q) instead of the radix-255 representation).
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.security.eddsa.math.bigint;
|
||||
package org.xbib.net.security.test.eddsa.math.bigint;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
@ -10,8 +10,10 @@ import org.junit.jupiter.api.Test;
|
|||
import org.xbib.net.security.eddsa.Utils;
|
||||
import org.xbib.net.security.eddsa.math.Field;
|
||||
import org.xbib.net.security.eddsa.math.FieldElement;
|
||||
import org.xbib.net.security.eddsa.math.MathUtils;
|
||||
import org.xbib.net.security.eddsa.math.AbstractFieldElementTest;
|
||||
import org.xbib.net.security.test.eddsa.math.MathUtils;
|
||||
import org.xbib.net.security.test.eddsa.math.AbstractFieldElementTest;
|
||||
import org.xbib.net.security.eddsa.math.bigint.BigIntegerFieldElement;
|
||||
import org.xbib.net.security.eddsa.math.bigint.BigIntegerLittleEndianEncoding;
|
||||
|
||||
/**
|
||||
*
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.security.eddsa.math.bigint;
|
||||
package org.xbib.net.security.test.eddsa.math.bigint;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
@ -9,6 +9,7 @@ import org.junit.jupiter.api.Test;
|
|||
import org.xbib.net.security.eddsa.Utils;
|
||||
import org.xbib.net.security.eddsa.math.Field;
|
||||
import org.xbib.net.security.eddsa.math.ScalarOps;
|
||||
import org.xbib.net.security.eddsa.math.bigint.BigIntegerScalarOps;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveSpec;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveTable;
|
||||
|
|
@ -1,12 +1,13 @@
|
|||
package org.xbib.net.security.eddsa.math.ed25519;
|
||||
package org.xbib.net.security.test.eddsa.math.ed25519;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.math.AbstractFieldElementTest;
|
||||
import org.xbib.net.security.test.eddsa.math.AbstractFieldElementTest;
|
||||
import org.xbib.net.security.eddsa.math.Field;
|
||||
import org.xbib.net.security.eddsa.math.FieldElement;
|
||||
import org.xbib.net.security.eddsa.math.MathUtils;
|
||||
import org.xbib.net.security.test.eddsa.math.MathUtils;
|
||||
import org.hamcrest.core.IsEqual;
|
||||
import org.xbib.net.security.eddsa.math.ed25519.Ed25519FieldElement;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
|
@ -1,9 +1,10 @@
|
|||
package org.xbib.net.security.eddsa.math.ed25519;
|
||||
package org.xbib.net.security.test.eddsa.math.ed25519;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.math.FieldElement;
|
||||
import org.xbib.net.security.eddsa.math.MathUtils;
|
||||
import org.xbib.net.security.test.eddsa.math.MathUtils;
|
||||
import org.hamcrest.core.IsEqual;
|
||||
import org.xbib.net.security.eddsa.math.ed25519.Ed25519FieldElement;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.security.SecureRandom;
|
|
@ -1,9 +1,10 @@
|
|||
package org.xbib.net.security.eddsa.math.ed25519;
|
||||
package org.xbib.net.security.test.eddsa.math.ed25519;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.Utils;
|
||||
import org.xbib.net.security.eddsa.math.MathUtils;
|
||||
import org.xbib.net.security.test.eddsa.math.MathUtils;
|
||||
import org.hamcrest.core.IsEqual;
|
||||
import org.xbib.net.security.eddsa.math.ed25519.Ed25519ScalarOps;
|
||||
|
||||
import java.math.BigInteger;
|
||||
|
|
@ -1,6 +1,9 @@
|
|||
package org.xbib.net.security.eddsa.spec;
|
||||
package org.xbib.net.security.test.eddsa.spec;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveSpec;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveTable;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
|
|
@ -1,10 +1,14 @@
|
|||
package org.xbib.net.security.eddsa.spec;
|
||||
package org.xbib.net.security.test.eddsa.spec;
|
||||
|
||||
import static org.hamcrest.MatcherAssert.assertThat;
|
||||
import static org.hamcrest.Matchers.*;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.security.eddsa.Utils;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveSpec;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSANamedCurveTable;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSAParameterSpec;
|
||||
import org.xbib.net.security.eddsa.spec.EdDSAPrivateKeySpec;
|
||||
|
||||
/**
|
||||
*
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.security.ssl.trustmanager;
|
||||
package org.xbib.net.security.test.trustmanager;
|
||||
|
||||
import org.xbib.net.security.ssl.util.TrustManagerUtils;
|
||||
|
|
@ -1,3 +1,14 @@
|
|||
dependencies {
|
||||
implementation libs.jna
|
||||
}
|
||||
|
||||
def moduleName = 'org.xbib.net.socket.test'
|
||||
def patchArgs = ['--patch-module', "$moduleName=" + files(sourceSets.test.resources.srcDirs).asPath ]
|
||||
|
||||
tasks.named('compileTestJava') {
|
||||
options.compilerArgs += patchArgs
|
||||
}
|
||||
|
||||
tasks.named('test') {
|
||||
jvmArgs += patchArgs
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ module org.xbib.net.socket {
|
|||
requires java.logging;
|
||||
requires transitive com.sun.jna;
|
||||
exports org.xbib.net.socket;
|
||||
exports org.xbib.net.socket.notify;
|
||||
exports org.xbib.net.socket.v4;
|
||||
exports org.xbib.net.socket.v4.bsd;
|
||||
exports org.xbib.net.socket.v4.datagram;
|
||||
|
|
8
net-socket/src/test/java/module-info.java
Normal file
8
net-socket/src/test/java/module-info.java
Normal file
|
@ -0,0 +1,8 @@
|
|||
module org.xbib.net.socket.test {
|
||||
requires java.logging;
|
||||
requires org.junit.jupiter.api;
|
||||
requires org.xbib.net.socket;
|
||||
exports org.xbib.net.socket.test.notify;
|
||||
exports org.xbib.net.socket.test.v4;
|
||||
exports org.xbib.net.socket.test.v6;
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package org.xbib.net.socket.notify;
|
||||
package org.xbib.net.socket.test.notify;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.xbib.net.socket.notify.SystemdNotify;
|
||||
|
||||
import java.io.IOException;
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.socket.v4;
|
||||
package org.xbib.net.socket.test.v4;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
|
@ -1,4 +1,4 @@
|
|||
package org.xbib.net.socket.v6;
|
||||
package org.xbib.net.socket.test.v6;
|
||||
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
|
@ -2,3 +2,14 @@ dependencies {
|
|||
api libs.datastructures.common
|
||||
testImplementation libs.jackson
|
||||
}
|
||||
|
||||
def moduleName = 'org.xbib.net.test'
|
||||
def patchArgs = ['--patch-module', "$moduleName=" + files(sourceSets.test.resources.srcDirs).asPath ]
|
||||
|
||||
tasks.named('compileTestJava') {
|
||||
options.compilerArgs += patchArgs
|
||||
}
|
||||
|
||||
tasks.named('test') {
|
||||
jvmArgs += patchArgs
|
||||
}
|
||||
|
|
|
@ -1,5 +1,38 @@
|
|||
import org.xbib.net.buffer.DataBufferFactory;
|
||||
import org.xbib.net.buffer.DefaultDataBufferFactory;
|
||||
import org.xbib.net.scheme.DnsScheme;
|
||||
import org.xbib.net.scheme.FileScheme;
|
||||
import org.xbib.net.scheme.FtpScheme;
|
||||
import org.xbib.net.scheme.GitScheme;
|
||||
import org.xbib.net.scheme.GitSecureHttpScheme;
|
||||
import org.xbib.net.scheme.GopherScheme;
|
||||
import org.xbib.net.scheme.HttpScheme;
|
||||
import org.xbib.net.scheme.HttpsScheme;
|
||||
import org.xbib.net.scheme.ImapScheme;
|
||||
import org.xbib.net.scheme.ImapsScheme;
|
||||
import org.xbib.net.scheme.IrcScheme;
|
||||
import org.xbib.net.scheme.LdapScheme;
|
||||
import org.xbib.net.scheme.LdapsScheme;
|
||||
import org.xbib.net.scheme.MailtoScheme;
|
||||
import org.xbib.net.scheme.NewsScheme;
|
||||
import org.xbib.net.scheme.NntpScheme;
|
||||
import org.xbib.net.scheme.Pop3Scheme;
|
||||
import org.xbib.net.scheme.RedisScheme;
|
||||
import org.xbib.net.scheme.RsyncScheme;
|
||||
import org.xbib.net.scheme.RtmpScheme;
|
||||
import org.xbib.net.scheme.RtspScheme;
|
||||
import org.xbib.net.scheme.Scheme;
|
||||
import org.xbib.net.scheme.SecureNewsScheme;
|
||||
import org.xbib.net.scheme.SecurePop3Scheme;
|
||||
import org.xbib.net.scheme.SftpScheme;
|
||||
import org.xbib.net.scheme.SmtpScheme;
|
||||
import org.xbib.net.scheme.SmtpsScheme;
|
||||
import org.xbib.net.scheme.SshScheme;
|
||||
import org.xbib.net.scheme.TelnetScheme;
|
||||
import org.xbib.net.scheme.TftpScheme;
|
||||
import org.xbib.net.scheme.UrnScheme;
|
||||
import org.xbib.net.scheme.WsScheme;
|
||||
import org.xbib.net.scheme.WssScheme;
|
||||
|
||||
module org.xbib.net {
|
||||
exports org.xbib.net;
|
||||
|
@ -18,4 +51,38 @@ module org.xbib.net {
|
|||
requires transitive java.logging;
|
||||
uses DataBufferFactory;
|
||||
provides DataBufferFactory with DefaultDataBufferFactory;
|
||||
uses Scheme;
|
||||
provides Scheme with
|
||||
DnsScheme,
|
||||
FileScheme,
|
||||
FtpScheme,
|
||||
GitScheme,
|
||||
GitSecureHttpScheme,
|
||||
GopherScheme,
|
||||
HttpScheme,
|
||||
HttpsScheme,
|
||||
ImapScheme,
|
||||
ImapsScheme,
|
||||
IrcScheme,
|
||||
LdapScheme,
|
||||
LdapsScheme,
|
||||
MailtoScheme,
|
||||
NewsScheme,
|
||||
NntpScheme,
|
||||
Pop3Scheme,
|
||||
RedisScheme,
|
||||
RsyncScheme,
|
||||
RtmpScheme,
|
||||
RtspScheme,
|
||||
SecureNewsScheme,
|
||||
SecurePop3Scheme,
|
||||
SftpScheme,
|
||||
SmtpScheme,
|
||||
SmtpsScheme,
|
||||
SshScheme,
|
||||
TelnetScheme,
|
||||
TftpScheme,
|
||||
UrnScheme,
|
||||
WsScheme,
|
||||
WssScheme;
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ public class PercentEncoder {
|
|||
* @param charsetEncoder charset encoder to encode characters with. Make sure to not re-use CharsetEncoder instances
|
||||
* across threads.
|
||||
*/
|
||||
PercentEncoder(BitSet safeChars, CharsetEncoder charsetEncoder) {
|
||||
public PercentEncoder(BitSet safeChars, CharsetEncoder charsetEncoder) {
|
||||
this.safeChars = safeChars;
|
||||
this.encoder = charsetEncoder;
|
||||
this.stringHandler = new StringBuilderPercentEncoderOutputHandler();
|
||||
|
|
|
@ -4,13 +4,13 @@ package org.xbib.net.scheme;
|
|||
* The DNS URI scheme.
|
||||
* @see <a href="https://www.w3.org/Addressing/draft-mirashi-url-irc-01.txt">DNS RFC</a>
|
||||
*/
|
||||
class DnsScheme extends HttpScheme {
|
||||
public class DnsScheme extends HttpScheme {
|
||||
|
||||
DnsScheme() {
|
||||
public DnsScheme() {
|
||||
super("dns", 53);
|
||||
}
|
||||
|
||||
DnsScheme(String name, int port) {
|
||||
public DnsScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@ package org.xbib.net.scheme;
|
|||
/**
|
||||
* File scheme.
|
||||
*/
|
||||
class FileScheme extends HttpScheme {
|
||||
public class FileScheme extends HttpScheme {
|
||||
|
||||
FileScheme() {
|
||||
public FileScheme() {
|
||||
super("file", -1);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,13 +3,13 @@ package org.xbib.net.scheme;
|
|||
/**
|
||||
* FTP scheme.
|
||||
*/
|
||||
class FtpScheme extends HttpScheme {
|
||||
public class FtpScheme extends HttpScheme {
|
||||
|
||||
FtpScheme() {
|
||||
public FtpScheme() {
|
||||
super("ftp", 21);
|
||||
}
|
||||
|
||||
FtpScheme(String name, int port) {
|
||||
public FtpScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,13 +3,13 @@ package org.xbib.net.scheme;
|
|||
/**
|
||||
* Git scheme.
|
||||
*/
|
||||
class GitScheme extends HttpScheme {
|
||||
public class GitScheme extends HttpScheme {
|
||||
|
||||
GitScheme() {
|
||||
public GitScheme() {
|
||||
super("git", 443);
|
||||
}
|
||||
|
||||
GitScheme(String name, int port) {
|
||||
public GitScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,13 +3,13 @@ package org.xbib.net.scheme;
|
|||
/**
|
||||
* Git secure scheme.
|
||||
*/
|
||||
class GitSecureHttpScheme extends HttpScheme {
|
||||
public class GitSecureHttpScheme extends HttpScheme {
|
||||
|
||||
GitSecureHttpScheme() {
|
||||
public GitSecureHttpScheme() {
|
||||
super("git+https", 443);
|
||||
}
|
||||
|
||||
GitSecureHttpScheme(String name, int port) {
|
||||
public GitSecureHttpScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@ package org.xbib.net.scheme;
|
|||
/**
|
||||
* Gopher scheme.
|
||||
*/
|
||||
class GopherScheme extends AbstractScheme {
|
||||
public class GopherScheme extends AbstractScheme {
|
||||
|
||||
GopherScheme() {
|
||||
public GopherScheme() {
|
||||
super("gopher", 70);
|
||||
}
|
||||
|
||||
|
|
|
@ -8,13 +8,13 @@ import java.util.Locale;
|
|||
/**
|
||||
* HTTP scheme.
|
||||
*/
|
||||
class HttpScheme extends AbstractScheme {
|
||||
public class HttpScheme extends AbstractScheme {
|
||||
|
||||
HttpScheme() {
|
||||
public HttpScheme() {
|
||||
super("http", 80);
|
||||
}
|
||||
|
||||
HttpScheme(String name, int port) {
|
||||
public HttpScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
|
||||
|
|
37
net/src/main/java/org/xbib/net/scheme/HttpsScheme.java
Normal file
37
net/src/main/java/org/xbib/net/scheme/HttpsScheme.java
Normal file
|
@ -0,0 +1,37 @@
|
|||
package org.xbib.net.scheme;
|
||||
|
||||
import org.xbib.net.PathNormalizer;
|
||||
import org.xbib.net.URL;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* HTTPS scheme.
|
||||
*/
|
||||
public class HttpsScheme extends AbstractScheme {
|
||||
|
||||
public HttpsScheme() {
|
||||
super("https", 443);
|
||||
}
|
||||
|
||||
public HttpsScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
|
||||
@Override
|
||||
public URL normalize(URL url) {
|
||||
String host = url.getHost();
|
||||
if (host != null) {
|
||||
host = host.toLowerCase(Locale.ROOT);
|
||||
}
|
||||
return URL.builder()
|
||||
.scheme(url.getScheme())
|
||||
.userInfo(url.getUserInfo())
|
||||
.host(host, url.getProtocolVersion())
|
||||
.port(url.getPort())
|
||||
.path(PathNormalizer.normalize(url.getPath()))
|
||||
.query(url.getQuery())
|
||||
.fragment(url.getFragment())
|
||||
.build();
|
||||
}
|
||||
}
|
|
@ -5,13 +5,13 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://tools.ietf.org/html/rfc5092">IMAP RFC</a>
|
||||
*/
|
||||
class ImapScheme extends AbstractScheme {
|
||||
public class ImapScheme extends AbstractScheme {
|
||||
|
||||
ImapScheme() {
|
||||
public ImapScheme() {
|
||||
super("imap", 143);
|
||||
}
|
||||
|
||||
ImapScheme(String name, int port) {
|
||||
public ImapScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,9 +4,9 @@ package org.xbib.net.scheme;
|
|||
* The secure IMAP scheme.
|
||||
* @see <a href="https://tools.ietf.org/html/rfc5092">IMAP scheme RFC</a>
|
||||
*/
|
||||
class SecureImapScheme extends ImapScheme {
|
||||
public class ImapsScheme extends ImapScheme {
|
||||
|
||||
SecureImapScheme() {
|
||||
public ImapsScheme() {
|
||||
super("imaps", 993);
|
||||
}
|
||||
|
|
@ -5,13 +5,13 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://www.w3.org/Addressing/draft-mirashi-url-irc-01.txt">IRC draft</a>
|
||||
*/
|
||||
class IrcScheme extends HttpScheme {
|
||||
public class IrcScheme extends HttpScheme {
|
||||
|
||||
IrcScheme() {
|
||||
public IrcScheme() {
|
||||
super("irc", 194);
|
||||
}
|
||||
|
||||
IrcScheme(String name, int port) {
|
||||
public IrcScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
|
||||
|
|
|
@ -4,13 +4,13 @@ package org.xbib.net.scheme;
|
|||
* The LDAP scheme.
|
||||
* @see <a href="https://tools.ietf.org/html/rfc4516">LDAP RFC</a>
|
||||
*/
|
||||
class LdapScheme extends AbstractScheme {
|
||||
public class LdapScheme extends AbstractScheme {
|
||||
|
||||
LdapScheme() {
|
||||
public LdapScheme() {
|
||||
super("ldap", 143);
|
||||
}
|
||||
|
||||
LdapScheme(String name, int port) {
|
||||
public LdapScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://tools.ietf.org/html/rfc4516">LDAP RFC</a>
|
||||
*/
|
||||
class SecureLdapScheme extends LdapScheme {
|
||||
public class LdapsScheme extends LdapScheme {
|
||||
|
||||
SecureLdapScheme() {
|
||||
public LdapsScheme() {
|
||||
super("ldaps", 636);
|
||||
}
|
||||
|
|
@ -5,13 +5,13 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://tools.ietf.org/html/rfc5538">news RFC</a>
|
||||
*/
|
||||
class NewsScheme extends AbstractScheme {
|
||||
public class NewsScheme extends AbstractScheme {
|
||||
|
||||
NewsScheme() {
|
||||
public NewsScheme() {
|
||||
super("nntp", 119);
|
||||
}
|
||||
|
||||
NewsScheme(String name, int port) {
|
||||
public NewsScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://tools.ietf.org/html/rfc5538">NNTP RFC</a>
|
||||
*/
|
||||
class NntpScheme extends AbstractScheme {
|
||||
public class NntpScheme extends AbstractScheme {
|
||||
|
||||
NntpScheme() {
|
||||
public NntpScheme() {
|
||||
super("nntp", 119);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,13 +5,13 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://tools.ietf.org/html/rfc1081">POP3 RFC</a>
|
||||
*/
|
||||
class Pop3Scheme extends AbstractScheme {
|
||||
public class Pop3Scheme extends AbstractScheme {
|
||||
|
||||
Pop3Scheme() {
|
||||
public Pop3Scheme() {
|
||||
super("pop3", 110);
|
||||
}
|
||||
|
||||
Pop3Scheme(String name, int port) {
|
||||
public Pop3Scheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@ package org.xbib.net.scheme;
|
|||
/**
|
||||
* Redis scheme.
|
||||
*/
|
||||
class RedisScheme extends AbstractScheme {
|
||||
public class RedisScheme extends AbstractScheme {
|
||||
|
||||
RedisScheme() {
|
||||
public RedisScheme() {
|
||||
super("redis", 6379);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@ package org.xbib.net.scheme;
|
|||
/**
|
||||
* Rsync scheme.
|
||||
*/
|
||||
class RsyncScheme extends SshScheme {
|
||||
public class RsyncScheme extends SshScheme {
|
||||
|
||||
RsyncScheme() {
|
||||
public RsyncScheme() {
|
||||
super("rsync", 873);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@ package org.xbib.net.scheme;
|
|||
/**
|
||||
* Rtmp scheme.
|
||||
*/
|
||||
class RtmpScheme extends AbstractScheme {
|
||||
public class RtmpScheme extends AbstractScheme {
|
||||
|
||||
RtmpScheme() {
|
||||
public RtmpScheme() {
|
||||
super("rtmp", 1935);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://www.ietf.org/rfc/rfc2326.txt">RTSP RFC</a>
|
||||
*/
|
||||
class RtspScheme extends AbstractScheme {
|
||||
public class RtspScheme extends AbstractScheme {
|
||||
|
||||
RtspScheme() {
|
||||
public RtspScheme() {
|
||||
super("rtsp", 554);
|
||||
}
|
||||
|
||||
|
|
|
@ -23,12 +23,12 @@ public final class SchemeRegistry {
|
|||
schemes.put(Scheme.GIT_HTTPS, new GitSecureHttpScheme());
|
||||
schemes.put(Scheme.GOPHER, new GopherScheme());
|
||||
schemes.put(Scheme.HTTP, new HttpScheme());
|
||||
schemes.put(Scheme.HTTPS, new SecureHttpScheme());
|
||||
schemes.put(Scheme.HTTPS, new HttpsScheme());
|
||||
schemes.put(Scheme.IMAP, new ImapScheme());
|
||||
schemes.put(Scheme.IMAPS, new SecureImapScheme());
|
||||
schemes.put(Scheme.IMAPS, new ImapsScheme());
|
||||
schemes.put(Scheme.IRC, new IrcScheme());
|
||||
schemes.put(Scheme.LDAP, new LdapScheme());
|
||||
schemes.put(Scheme.LDAPS, new SecureLdapScheme());
|
||||
schemes.put(Scheme.LDAPS, new LdapsScheme());
|
||||
schemes.put(Scheme.MAILTO, new MailtoScheme());
|
||||
schemes.put(Scheme.NEWS, new NewsScheme());
|
||||
schemes.put(Scheme.NNTP, new NntpScheme());
|
||||
|
@ -40,14 +40,14 @@ public final class SchemeRegistry {
|
|||
schemes.put(Scheme.RTSP, new RtspScheme());
|
||||
schemes.put(Scheme.SFTP, new SftpScheme());
|
||||
schemes.put(Scheme.SMTP, new SmtpScheme());
|
||||
schemes.put(Scheme.SMTPS, new SecureSmtpScheme());
|
||||
schemes.put(Scheme.SMTPS, new SmtpsScheme());
|
||||
schemes.put(Scheme.SNEWS, new SecureNewsScheme());
|
||||
schemes.put(Scheme.SSH, new SshScheme());
|
||||
schemes.put(Scheme.TELNET, new TelnetScheme());
|
||||
schemes.put(Scheme.TFTP, new TftpScheme());
|
||||
schemes.put(Scheme.URN, new UrnScheme());
|
||||
schemes.put(Scheme.WS, new WebSocketScheme());
|
||||
schemes.put(Scheme.WSS, new SecureWebSocketScheme());
|
||||
schemes.put(Scheme.WS, new WsScheme());
|
||||
schemes.put(Scheme.WSS, new WssScheme());
|
||||
for (Scheme scheme : ServiceLoader.load(Scheme.class)) {
|
||||
register(scheme);
|
||||
}
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
package org.xbib.net.scheme;
|
||||
|
||||
/**
|
||||
* Secure HTTP scheme.
|
||||
*/
|
||||
class SecureHttpScheme extends HttpScheme {
|
||||
|
||||
SecureHttpScheme() {
|
||||
super("https", 443);
|
||||
}
|
||||
|
||||
}
|
|
@ -5,9 +5,9 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://tools.ietf.org/html/rfc5538">news RFC</a>
|
||||
*/
|
||||
class SecureNewsScheme extends NewsScheme {
|
||||
public class SecureNewsScheme extends NewsScheme {
|
||||
|
||||
SecureNewsScheme() {
|
||||
public SecureNewsScheme() {
|
||||
super("snews", 563);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://tools.ietf.org/html/rfc2595">POP3 RFC</a>
|
||||
*/
|
||||
class SecurePop3Scheme extends Pop3Scheme {
|
||||
public class SecurePop3Scheme extends Pop3Scheme {
|
||||
|
||||
SecurePop3Scheme() {
|
||||
public SecurePop3Scheme() {
|
||||
super("pop3s", 995);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,9 +3,9 @@ package org.xbib.net.scheme;
|
|||
/**
|
||||
* Secure FTP scheme.
|
||||
*/
|
||||
class SftpScheme extends SshScheme {
|
||||
public class SftpScheme extends SshScheme {
|
||||
|
||||
SftpScheme() {
|
||||
public SftpScheme() {
|
||||
super("sftp", 22);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,13 +5,13 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://tools.ietf.org/html/rfc5321">SMTP RFC</a>
|
||||
*/
|
||||
class SmtpScheme extends AbstractScheme {
|
||||
public class SmtpScheme extends AbstractScheme {
|
||||
|
||||
SmtpScheme() {
|
||||
public SmtpScheme() {
|
||||
super("smtp", 25);
|
||||
}
|
||||
|
||||
SmtpScheme(String name, int port) {
|
||||
public SmtpScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://tools.ietf.org/html/rfc4409">SMTP RFC</a>
|
||||
*/
|
||||
class SecureSmtpScheme extends SmtpScheme {
|
||||
public class SmtpsScheme extends SmtpScheme {
|
||||
|
||||
SecureSmtpScheme() {
|
||||
public SmtpsScheme() {
|
||||
super("smtps", 587);
|
||||
}
|
||||
|
|
@ -3,13 +3,13 @@ package org.xbib.net.scheme;
|
|||
/**
|
||||
* Secure shell scheme.
|
||||
*/
|
||||
class SshScheme extends HttpScheme {
|
||||
public class SshScheme extends HttpScheme {
|
||||
|
||||
SshScheme() {
|
||||
public SshScheme() {
|
||||
super("ssh", 22);
|
||||
}
|
||||
|
||||
SshScheme(String name, int port) {
|
||||
public SshScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,9 +5,9 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://tools.ietf.org/html/rfc4248">TELNET RFC</a>
|
||||
*/
|
||||
class TelnetScheme extends AbstractScheme {
|
||||
public class TelnetScheme extends AbstractScheme {
|
||||
|
||||
TelnetScheme() {
|
||||
public TelnetScheme() {
|
||||
super("telnet", 23);
|
||||
}
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://tools.ietf.org/html/rfc1350">TFTP RFC</a>
|
||||
*/
|
||||
class TftpScheme extends FtpScheme {
|
||||
public class TftpScheme extends FtpScheme {
|
||||
|
||||
TftpScheme() {
|
||||
public TftpScheme() {
|
||||
super("tftp", 69);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,9 +5,9 @@ package org.xbib.net.scheme;
|
|||
*
|
||||
* @see <a href="https://www.ietf.org/rfc/rfc2141.txt">URN RFC</a>
|
||||
*/
|
||||
class UrnScheme extends AbstractScheme {
|
||||
public class UrnScheme extends AbstractScheme {
|
||||
|
||||
UrnScheme() {
|
||||
public UrnScheme() {
|
||||
super("urn", -1);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,13 +3,13 @@ package org.xbib.net.scheme;
|
|||
/**
|
||||
* Web socket scheme.
|
||||
*/
|
||||
class WebSocketScheme extends HttpScheme {
|
||||
public class WsScheme extends HttpScheme {
|
||||
|
||||
WebSocketScheme() {
|
||||
public WsScheme() {
|
||||
super("ws", 80);
|
||||
}
|
||||
|
||||
WebSocketScheme(String name, int port) {
|
||||
public WsScheme(String name, int port) {
|
||||
super(name, port);
|
||||
}
|
||||
|
|
@ -3,9 +3,9 @@ package org.xbib.net.scheme;
|
|||
/**
|
||||
* Secure web socket scheme.
|
||||
*/
|
||||
class SecureWebSocketScheme extends WebSocketScheme {
|
||||
public class WssScheme extends WsScheme {
|
||||
|
||||
SecureWebSocketScheme() {
|
||||
public WssScheme() {
|
||||
super("wss", 443);
|
||||
}
|
||||
|
12
net/src/test/java/module-info.java
Normal file
12
net/src/test/java/module-info.java
Normal file
|
@ -0,0 +1,12 @@
|
|||
module org.xbib.net.test {
|
||||
requires transitive org.junit.jupiter.api;
|
||||
requires org.xbib.net;
|
||||
requires com.fasterxml.jackson.core;
|
||||
requires com.fasterxml.jackson.databind;
|
||||
exports org.xbib.net.test;
|
||||
exports org.xbib.net.test.resource;
|
||||
exports org.xbib.net.test.template;
|
||||
exports org.xbib.net.test.util;
|
||||
opens org.xbib.net.test;
|
||||
opens org.xbib.net.test.template;
|
||||
}
|
|
@ -1,4 +0,0 @@
|
|||
/**
|
||||
* Classes for testing URL building und parsing.
|
||||
*/
|
||||
package org.xbib.net;
|
|
@ -1,4 +0,0 @@
|
|||
/**
|
||||
* Classes for testing URL templates.
|
||||
*/
|
||||
package org.xbib.net.template;
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue