diff --git a/README.md b/README.md
index 3769cf10..12afdbcf 100644
--- a/README.md
+++ b/README.md
@@ -2,8 +2,6 @@
Please see the file called LICENSE.
-[  ](https://bintray.com/javasabr/maven/com.spaceshift.rlib.common/_latestVersion)
-
## How to use for java 21+
#### Gradle
@@ -15,95 +13,62 @@ repositories {
}
}
-dependencies {
- implementation 'javasabr:rlib-common:9.10.0'
- implementation 'javasabr:rlib-fx:9.10.0'
- implementation 'javasabr:rlib-network:9.10.0'
- implementation 'javasabr:rlib-mail:9.10.0'
- implementation 'javasabr:rlib-testcontainers:9.10.0'
+ext {
+ rlibVersion = "10.0.alpha"
}
-```
-#### Maven
-
-```xml
-
-
- gitlab-maven
- https://gitlab.com/api/v4/projects/37512056/packages/maven
-
-
-
-
- javasabr
- rlib-common
- 9.10.0
-
-
- javasabr
- rlib-fx
- 9.10.0
-
-
- javasabr
- rlib-network
- 9.10.0
-
-
- javasabr
- rlib-mail
- 9.10.0
-
-
- javasabr
- rlib-testcontainers
- 9.10.0
-
+dependencies {
+ implementation "javasabr:rlib-common:$rlibVersion"
+ implementation "javasabr:rlib-collections:$rlibVersion"
+ implementation "javasabr:rlib-compiler:$rlibVersion"
+ implementation "javasabr:rlib-concurrent:$rlibVersion"
+ implementation "javasabr:rlib-geometry:$rlibVersion"
+ implementation "javasabr:rlib-logger-api:$rlibVersion"
+ implementation "javasabr:rlib-logger-slf4j:$rlibVersion"
+ implementation "javasabr:rlib-plugin-system:$rlibVersion"
+ implementation "javasabr:rlib-reference:$rlibVersion"
+ implementation "javasabr:rlib-reusable:$rlibVersion"
+ implementation "javasabr:rlib-fx:$rlibVersion"
+ implementation "javasabr:rlib-network:$rlibVersion"
+ implementation "javasabr:rlib-mail:$rlibVersion"
+ implementation "javasabr:rlib-testcontainers:$rlibVersion"
+}
```
-
## Most interesting parts:
### Fake SMTP Server
```java
-
var container = new FakeSMTPTestContainer()
.withSmtpPassword("pwd")
.withSmtpUser("test_user");
-
- container.
-
-start();
- container.
-waitForReadyState();
+container.start();
+container.waitForReadyState();
// sending emails to this server
// checking API
-var count = container.getEmailCountFrom("from@test.com")
-// clearing API
- container.
+var count = container.getEmailCountFrom("from@test.com");
-deleteEmails();
+// clearing API
+container.deleteEmails();
```
### Classpath Scanner API
```java
+var scanner = ClassPathScannerFactory.newDefaultScanner();
+scanner.setUseSystemClasspath(true);
+scanner.scan();
- var scanner = ClassPathScannerFactory.newDefaultScanner();
- scanner.setUseSystemClasspath(true);
- scanner.scan();
-
- var implementations = scanner.findImplements(Collection.class);
- var inherited = scanner.findInherited(AbstractArray.class);
+var implementations = scanner.findImplements(Collection.class);
+var inherited = scanner.findInherited(AbstractArray.class);
```
### Compiler API
```java
-
var javaSource = getClass().getResource("/java/source/TestCompileJavaSource.java");
var compiler = CompilerFactory.newDefaultCompiler();
@@ -116,169 +81,36 @@ var method = instance
var result = method.invoke(instance);
```
-### VarTable API
-
-```java
-
-var vars = VarTable.newInstance();
- vars.
-
-set("string","Hello");
- vars.
-
-set("intArray",toIntegerArray(1, 2,3,5));
- vars.
-
-set("floatStringArray","1.5,4.2,5.5");
- vars.
-
-set("stringEnum","FLOAT");
- vars.
-
-set("enum",ReferenceType.BYTE);
-
-var string = vars.getString("string");
-var array = vars.getIntegerArray("intArray", "");
-var floatStringArray = vars.getFloatArray("floatStringArray", ",");
-var stringEnum = vars.getEnum("stringEnum", ReferenceType.class);
-var anEnum = vars.getEnum("enum", ReferenceType.class);
-var unsafeGet = vars.get("enum");
-```
-
-### Array API
-
-```java
-
-var array = ArrayFactory.asArray(2, 5, 1, 7, 6, 8, 4);
- array.
-
-sort(Integer::compareTo);
-
-// performance operations
-var unsafe = array.asUnsafe();
-// prepare the wrapped array to have the size
- unsafe.
-
-prepareForSize(10);
- unsafe.
-
-unsafeAdd(3);
- unsafe.
-
-unsafeAdd(9);
-
-var first = array.first();
-var last = array.last();
-
-// remove the element with saving ordering
- array.
-
-slowRemove(1);
-// remove the element without saving ordering
- array.
-
-fastRemove(1);
-
-// search API
-Integer searched = array.search(integer -> integer == 2);
-searched =array.
-
-search(2,(el, arg) ->el ==arg);
-
- // foreach API
- array.
-
-forEach(5,(el, arg) ->System.out.
-
-println(el +arg));
- array.
-
-forEach(5,7,(el, firstArg, secondArg) ->System.out.
-
-println(el +firstArg+secondArg));
-
-// Stream Collector
-Array result = IntStream
- .range(0, 1000)
- .mapToObj(value -> value)
- .collect(ArrayCollectors.toArray(Integer.class));
-```
-
-### Concurrent Array API
+### Logger API
```java
+// getting logger by class/name
+var logger = LoggerManager.getLogger(getClass());
-var array = ConcurrentArray.of(Integer.class);
-var writeStamp = array.writeLock();
- try{
- array.
+// global enable/disable debug level
+LoggerLevel.DEBUG.setEnabled(true);
-addAll(ArrayFactory.toArray(9, 8,7,6,5,4,3));
- array.
+logger.debug("Simple message");
+logger.debug(5, (val) -> "Lazy message with 5: " + val);
+logger.debug(5, 10D, (val1, val2) -> "Lazy message with 5: " + val1 + " and 10: " + val2);
+logger.debug("", "Message with a string owner.");
+logger.debug("", 5, (val) -> "Lazy message with 5: " + val);
+logger.debug("", 5, 10D, (val1, val2) -> "Lazy message with 5: " + val1 + " and 10: " + val2);
-sort(Integer::compareTo);
- }finally{
- array.
-
-writeUnlock(writeStamp);
- }
+// global disable debug level
+LoggerLevel.DEBUG.setEnabled(false);
-var readStamp = array.readLock();
- try{
-var first = array.first();
-var last = array.last();
- }finally{
- array.
+// local enable debug level only for this logger instance
+logger.setEnabled(LoggerLevel.DEBUG, true);
-readUnlock(readStamp);
- }
-
-var last = array.getInReadLock(Array::last);
-var result = array.getInReadLock(last, (arr, target) -> arr.search(target, Integer::equals));
-
- array.
-
-runInWriteLock(result +1, Collection::add);
-
-// Stream Collector
-ConcurrentArray result = IntStream
- .range(0, 1000)
- .parallel()
- .mapToObj(value -> value)
- .collect(ArrayCollectors.toConcurrentArray(Integer.class));
-```
-
-### Logger API
-
-```java
-
- // getting logger by class/name
- var logger = LoggerManager.getLogger(getClass());
-
- // global enable/disable debug level
- LoggerLevel.DEBUG.setEnabled(true);
-
- logger.debug("Simple message");
- logger.debug(5, (val) -> "Lazy message with 5: " + val);
- logger.debug(5, 10D, (val1, val2) -> "Lazy message with 5: " + val1 + " and 10: " + val2);
- logger.debug("", "Message with a string owner.");
- logger.debug("", 5, (val) -> "Lazy message with 5: " + val);
- logger.debug("", 5, 10D, (val1, val2) -> "Lazy message with 5: " + val1 + " and 10: " + val2);
-
- // global disable debug level
- LoggerLevel.DEBUG.setEnabled(false);
-
- // local enable debug level only for this logger instance
- logger.setEnabled(LoggerLevel.DEBUG, true);
-
- // show debug message
- logger.debug("Showed");
+// show debug message
+logger.debug("Showed");
```
### Mail Sender
```java
- var config = MailSenderConfig
+var config = MailSenderConfig
.builder()
.from("from@test.com")
.host("smtp.test.com")
@@ -298,17 +130,12 @@ var javaxConfig = JavaxMailSender.JavaxMailSenderConfig
.build();
var sender = new JavaxMailSender(config, javaxConfig);
- sender.
-
-send("to@test.com","Test Subject","Content");
- sender.
-sendAsync("to@test.com","Test Subject","Content")
- .
+sender.send("to@test.com","Test Subject","Content");
-thenAccept(aVoid ->System.out.
-
-println("done!"));
+sender
+ .sendAsync("to@test.com","Test Subject","Content")
+ .thenAccept(aVoid ->System.out.println("done!"));
```
### Network API
@@ -316,48 +143,24 @@ println("done!"));
#### Simple String Echo Server/Client
```java
-
var serverNetwork = NetworkFactory.newStringDataServerNetwork();
var serverAddress = serverNetwork.start();
- serverNetwork.
-
-accepted()
- .
-
-flatMap(Connection::receivedEvents)
- .
-
-subscribe(event ->{
-var message = event.packet.getData();
- System.out.
-
-println("Received from client: "+message);
- event.connection.
-
-send(new StringWritablePacket("Echo: "+message));
+serverNetwork
+ .accepted()
+ .flatMap(Connection::receivedEvents)
+ .subscribe(event -> {
+ var message = event.packet.getData();
+ System.out.println("Received from client: " + message);
+ event.connection.send(new StringWritablePacket("Echo: " + message));
});
-var clientNetwork = newStringDataClientNetwork();
- clientNetwork.
-
-connected(serverAddress)
- .
-
-doOnNext(connection ->IntStream.
-
-range(10,100)
- .
-
-forEach(length ->connection.
-
-send(new StringWritablePacket(StringUtils.generate(length)))))
- .
-
-flatMapMany(Connection::receivedEvents)
- .
-
-subscribe(event ->System.out.
-
-println("Received from server: "+event.packet.getData()));
+var clientNetwork = NetworkFactory.newStringDataClientNetwork();
+clientNetwork
+ .connected(serverAddress)
+ .doOnNext(connection -> IntStream
+ .range(10,100)
+ .forEach(length -> connection.send(new StringWritablePacket(StringUtils.generate(length)))))
+ .flatMapMany(Connection::receivedEvents)
+ .subscribe(event -> System.out.println("Received from server: " + event.packet.getData()));
```
diff --git a/rlib-mail/src/main/java/javasabr/rlib/mail/sender/impl/JavaxMailSender.java b/rlib-mail/src/main/java/javasabr/rlib/mail/sender/impl/JavaxMailSender.java
index 5d482999..72666dea 100644
--- a/rlib-mail/src/main/java/javasabr/rlib/mail/sender/impl/JavaxMailSender.java
+++ b/rlib-mail/src/main/java/javasabr/rlib/mail/sender/impl/JavaxMailSender.java
@@ -48,8 +48,7 @@ public static class JavaxMailSenderConfig {
private final InternetAddress from;
public JavaxMailSender(MailSenderConfig config) {
- this(
- config,
+ this(config,
JavaxMailSenderConfig
.builder()
.executorKeepAlive(60)