Please see the file called LICENSE.
repositories {
maven {
url "https://gitlab.com/api/v4/projects/37512056/packages/maven"
}
}
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'
}
<repositories>
<repository>
<id>gitlab-maven</id>
<url>https://gitlab.com/api/v4/projects/37512056/packages/maven</url>
</repository>
</repositories>
<dependency>
<groupId>javasabr</groupId>
<artifactId>rlib-common</artifactId>
<version>9.10.0</version>
</dependency>
<dependency>
<groupId>javasabr</groupId>
<artifactId>rlib-fx</artifactId>
<version>9.10.0</version>
</dependency>
<dependency>
<groupId>javasabr</groupId>
<artifactId>rlib-network</artifactId>
<version>9.10.0</version>
</dependency>
<dependency>
<groupId>javasabr</groupId>
<artifactId>rlib-mail</artifactId>
<version>9.10.0</version>
</dependency>
<dependency>
<groupId>javasabr</groupId>
<artifactId>rlib-testcontainers</artifactId>
<version>9.10.0</version>
</dependency>
var container = new FakeSMTPTestContainer()
.withSmtpPassword("pwd")
.withSmtpUser("test_user");
container.
start();
container.
waitForReadyState();
// sending emails to this server
// checking API
var count = container.getEmailCountFrom("[email protected]")
// clearing API
container.
deleteEmails();
var scanner = ClassPathScannerFactory.newDefaultScanner();
scanner.setUseSystemClasspath(true);
scanner.scan();
var implementations = scanner.findImplements(Collection.class);
var inherited = scanner.findInherited(AbstractArray.class);
var javaSource = getClass().getResource("/java/source/TestCompileJavaSource.java");
var compiler = CompilerFactory.newDefaultCompiler();
var compiled = compiler.compile(javaSource.toURI());
var instance = ClassUtils.newInstance(compiled[0]);
var method = instance
.getClass()
.getMethod("makeString");
var result = method.invoke(instance);
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");
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<Integer> result = IntStream
.range(0, 1000)
.mapToObj(value -> value)
.collect(ArrayCollectors.toArray(Integer.class));
var array = ConcurrentArray.<Integer>of(Integer.class);
var writeStamp = array.writeLock();
try{
array.
addAll(ArrayFactory.toArray(9, 8,7,6,5,4,3));
array.
sort(Integer::compareTo);
}finally{
array.
writeUnlock(writeStamp);
}
var readStamp = array.readLock();
try{
var first = array.first();
var last = array.last();
}finally{
array.
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<Integer> result = IntStream
.range(0, 1000)
.parallel()
.mapToObj(value -> value)
.collect(ArrayCollectors.toConcurrentArray(Integer.class));
// 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");
var config = MailSenderConfig
.builder()
.from("[email protected]")
.host("smtp.test.com")
.port(smtpPort)
.password(smtpPassword)
.username(smtpUser)
.useAuth(true)
.enableTtls(true)
.sslHost("smtp.test.com")
.build();
var javaxConfig = JavaxMailSender.JavaxMailSenderConfig
.builder()
.executorKeepAlive(120)
.executorMaxThreads(20)
.executorMinThreads(1)
.build();
var sender = new JavaxMailSender(config, javaxConfig);
sender.
send("[email protected]","Test Subject","Content");
sender.
sendAsync("[email protected]","Test Subject","Content")
.
thenAccept(aVoid ->System.out.
println("done!"));
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));
});
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()));