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. -[ ![Download](https://api.bintray.com/packages/javasabr/maven/com.spaceshift.rlib.common/images/download.svg) ](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)