diff --git a/hello world b/hello world
new file mode 100644
index 00000000..ca5cb81e
--- /dev/null
+++ b/hello world
@@ -0,0 +1,9 @@
+class Test
+{
+ // Your program begins with a call to main().
+ // Prints "Hello World" to the terminal window in Java.
+ public static void main(String args[])
+ {
+ System.out.println("Hello World!");
+ }
+}
diff --git a/helloooo world b/helloooo world
new file mode 100644
index 00000000..1912d379
--- /dev/null
+++ b/helloooo world
@@ -0,0 +1,11 @@
+/* This is a simple Java program.
+FileName : "HelloWorld.java". */
+class HelloWorld
+{
+ // Your program begins with a call to main().
+ // Prints "Hello, World" to the terminal window.
+ public static void main(String args[])
+ {
+ System.out.println("Hello, World");
+ }
+}
diff --git a/helloworlds/1.1-common-frameworks-and-lib/apache-commons-lib/pom.xml b/helloworlds/1.1-common-frameworks-and-lib/apache-commons-lib/pom.xml
index a85170bf..7442636f 100644
--- a/helloworlds/1.1-common-frameworks-and-lib/apache-commons-lib/pom.xml
+++ b/helloworlds/1.1-common-frameworks-and-lib/apache-commons-lib/pom.xml
@@ -27,17 +27,17 @@
com.google.guavaguava
- 18.0
+ 32.0.0-jreorg.apache.commonscommons-collections4
- 4.0
+ 4.1commons-iocommons-io
- 2.4
+ 2.7com.goldmansachs
@@ -64,4 +64,4 @@
6.2.0
-
\ No newline at end of file
+
diff --git a/helloworlds/1.1-common-frameworks-and-lib/guava-lib/pom.xml b/helloworlds/1.1-common-frameworks-and-lib/guava-lib/pom.xml
index 8b33dbdc..d5fb8228 100644
--- a/helloworlds/1.1-common-frameworks-and-lib/guava-lib/pom.xml
+++ b/helloworlds/1.1-common-frameworks-and-lib/guava-lib/pom.xml
@@ -27,17 +27,17 @@
com.google.guavaguava
- 18.0
+ 29.0-jreorg.apache.commonscommons-collections4
- 4.0
+ 4.1commons-iocommons-io
- 2.4
+ 2.7com.goldmansachs
@@ -64,4 +64,4 @@
6.2.0
-
\ No newline at end of file
+
diff --git a/helloworlds/1.1-common-frameworks-and-lib/quasar/pom.xml b/helloworlds/1.1-common-frameworks-and-lib/quasar/pom.xml
index c0f456dc..82327663 100644
--- a/helloworlds/1.1-common-frameworks-and-lib/quasar/pom.xml
+++ b/helloworlds/1.1-common-frameworks-and-lib/quasar/pom.xml
@@ -27,7 +27,7 @@
junitjunit
- 4.12
+ 4.13.1test
diff --git a/helloworlds/1.1-common-frameworks-and-lib/spring/pom.xml b/helloworlds/1.1-common-frameworks-and-lib/spring/pom.xml
index a5df8164..a1a7d434 100644
--- a/helloworlds/1.1-common-frameworks-and-lib/spring/pom.xml
+++ b/helloworlds/1.1-common-frameworks-and-lib/spring/pom.xml
@@ -27,13 +27,13 @@
org.springframeworkspring-context
- 4.2.2.RELEASE
+ 5.3.19org.springframework.securityspring-security-web
- 4.0.3.RELEASE
+ 5.7.13
diff --git a/helloworlds/1.6-usefull-libraries/collections/apache-commons/pom.xml b/helloworlds/1.6-usefull-libraries/collections/apache-commons/pom.xml
index 38c2ffcb..871f4f70 100644
--- a/helloworlds/1.6-usefull-libraries/collections/apache-commons/pom.xml
+++ b/helloworlds/1.6-usefull-libraries/collections/apache-commons/pom.xml
@@ -27,17 +27,17 @@
com.google.guavaguava
- 18.0
+ 29.0-jreorg.apache.commonscommons-collections4
- 4.0
+ 4.1commons-iocommons-io
- 2.4
+ 2.7com.goldmansachs
@@ -64,4 +64,4 @@
6.2.0
-
\ No newline at end of file
+
diff --git a/helloworlds/1.6-usefull-libraries/collections/gs-eclipse/pom.xml b/helloworlds/1.6-usefull-libraries/collections/gs-eclipse/pom.xml
index c4064b0a..196871b7 100644
--- a/helloworlds/1.6-usefull-libraries/collections/gs-eclipse/pom.xml
+++ b/helloworlds/1.6-usefull-libraries/collections/gs-eclipse/pom.xml
@@ -27,17 +27,17 @@
com.google.guavaguava
- 18.0
+ 29.0-jreorg.apache.commonscommons-collections4
- 4.0
+ 4.1commons-iocommons-io
- 2.4
+ 2.7com.goldmansachs
@@ -64,4 +64,4 @@
6.2.0
-
\ No newline at end of file
+
diff --git a/helloworlds/1.6-usefull-libraries/collections/guava/pom.xml b/helloworlds/1.6-usefull-libraries/collections/guava/pom.xml
index 2a26110c..e68b4903 100644
--- a/helloworlds/1.6-usefull-libraries/collections/guava/pom.xml
+++ b/helloworlds/1.6-usefull-libraries/collections/guava/pom.xml
@@ -27,17 +27,17 @@
com.google.guavaguava
- 18.0
+ 29.0-jreorg.apache.commonscommons-collections4
- 4.0
+ 4.1commons-iocommons-io
- 2.4
+ 2.7com.goldmansachs
@@ -64,4 +64,4 @@
6.2.0
-
\ No newline at end of file
+
diff --git a/helloworlds/1.6-usefull-libraries/dependency_injection/dependency-injection-dagger/pom.xml b/helloworlds/1.6-usefull-libraries/dependency_injection/dependency-injection-dagger/pom.xml
index a53a87fb..84d69cc4 100644
--- a/helloworlds/1.6-usefull-libraries/dependency_injection/dependency-injection-dagger/pom.xml
+++ b/helloworlds/1.6-usefull-libraries/dependency_injection/dependency-injection-dagger/pom.xml
@@ -49,13 +49,13 @@
org.springframework.securityspring-security-web
- 4.0.3.RELEASE
+ 5.2.10.RELEASEcom.google.guavaguava
- 18.0
+ 29.0-jre
@@ -86,4 +86,4 @@
-
\ No newline at end of file
+
diff --git a/helloworlds/1.6-usefull-libraries/dependency_injection/dependency-injection-guice/pom.xml b/helloworlds/1.6-usefull-libraries/dependency_injection/dependency-injection-guice/pom.xml
index 69bd71a7..94159c31 100644
--- a/helloworlds/1.6-usefull-libraries/dependency_injection/dependency-injection-guice/pom.xml
+++ b/helloworlds/1.6-usefull-libraries/dependency_injection/dependency-injection-guice/pom.xml
@@ -33,8 +33,8 @@
com.google.guavaguava
- 18.0
+ 29.0-jre
-
\ No newline at end of file
+
diff --git a/helloworlds/1.6-usefull-libraries/dependency_injection/dependency-injection-spring/pom.xml b/helloworlds/1.6-usefull-libraries/dependency_injection/dependency-injection-spring/pom.xml
index ed1d7015..c0a976c0 100644
--- a/helloworlds/1.6-usefull-libraries/dependency_injection/dependency-injection-spring/pom.xml
+++ b/helloworlds/1.6-usefull-libraries/dependency_injection/dependency-injection-spring/pom.xml
@@ -33,7 +33,7 @@
org.springframework.securityspring-security-web
- 4.0.3.RELEASE
+ 5.2.10.RELEASE
diff --git a/helloworlds/2.8-natural-language-processing/opennlp/pom.xml b/helloworlds/2.8-natural-language-processing/opennlp/pom.xml
index 321b98db..0860f9be 100644
--- a/helloworlds/2.8-natural-language-processing/opennlp/pom.xml
+++ b/helloworlds/2.8-natural-language-processing/opennlp/pom.xml
@@ -1,7 +1,5 @@
-
+com.github.vedenin0.01
@@ -28,7 +26,7 @@
org.apache.opennlpopennlp-tools
- 1.6.0
+ 1.8.2org.apache.opennlp
@@ -36,4 +34,4 @@
1.6.0
-
+
\ No newline at end of file
diff --git a/helloworlds/2.8-natural-language-processing/stanford-core-nlp/pom.xml b/helloworlds/2.8-natural-language-processing/stanford-core-nlp/pom.xml
index 3d83053d..e3cd0e39 100644
--- a/helloworlds/2.8-natural-language-processing/stanford-core-nlp/pom.xml
+++ b/helloworlds/2.8-natural-language-processing/stanford-core-nlp/pom.xml
@@ -29,12 +29,12 @@
edu.stanford.nlpstanford-corenlp
- 3.6.0
+ 4.4.0edu.stanford.nlpstanford-corenlp
- 3.6.0
+ 4.4.0models
diff --git a/helloworlds/3.7-web-crawling-and-html-parser/Jsoup/pom.xml b/helloworlds/3.7-web-crawling-and-html-parser/Jsoup/pom.xml
index eaa8b992..4162d8ef 100644
--- a/helloworlds/3.7-web-crawling-and-html-parser/Jsoup/pom.xml
+++ b/helloworlds/3.7-web-crawling-and-html-parser/Jsoup/pom.xml
@@ -27,7 +27,7 @@
org.jsoupjsoup
- 1.8.3
+ 1.15.3
\ No newline at end of file
diff --git a/helloworlds/3.8-json/fastjson/pom.xml b/helloworlds/3.8-json/fastjson/pom.xml
index 2582a73c..14600e0d 100644
--- a/helloworlds/3.8-json/fastjson/pom.xml
+++ b/helloworlds/3.8-json/fastjson/pom.xml
@@ -1,7 +1,7 @@
-
+4.0.0fastjsonJson :: fastjson
@@ -12,7 +12,7 @@
com.alibabafastjson
- 1.2.9
+ 1.2.83
\ No newline at end of file
diff --git a/helloworlds/3.8-json/gson/pom.xml b/helloworlds/3.8-json/gson/pom.xml
index 20d5f54b..8ea0cb06 100644
--- a/helloworlds/3.8-json/gson/pom.xml
+++ b/helloworlds/3.8-json/gson/pom.xml
@@ -26,7 +26,7 @@
com.google.code.gsongson
- 2.6.2
+ 2.8.9
\ No newline at end of file
diff --git a/helloworlds/3.8-json/ig_json_parser/pom.xml b/helloworlds/3.8-json/ig_json_parser/pom.xml
index f1abe60a..102fb92a 100644
--- a/helloworlds/3.8-json/ig_json_parser/pom.xml
+++ b/helloworlds/3.8-json/ig_json_parser/pom.xml
@@ -1,7 +1,7 @@
-
+4.0.0ig_json_parserJson :: IQ Json Parser
diff --git a/helloworlds/3.8-json/jackson/pom.xml b/helloworlds/3.8-json/jackson/pom.xml
index 483c1d46..3bf1b7cb 100644
--- a/helloworlds/3.8-json/jackson/pom.xml
+++ b/helloworlds/3.8-json/jackson/pom.xml
@@ -1,28 +1,23 @@
-
+4.0.0jacksonJson :: jacksoncom.github.vedenin0.01
-
-
- 2.7.3
-
-
com.fasterxml.jackson.corejackson-core
- ${jackson.version}
+ [2.10.0.pr1,)com.fasterxml.jackson.corejackson-databind
- ${jackson.version}
+ [2.10.0.pr1,)
\ No newline at end of file
diff --git a/helloworlds/3.8-json/json_schema_validator/pom.xml b/helloworlds/3.8-json/json_schema_validator/pom.xml
index ac9a8f51..57612db5 100644
--- a/helloworlds/3.8-json/json_schema_validator/pom.xml
+++ b/helloworlds/3.8-json/json_schema_validator/pom.xml
@@ -1,28 +1,23 @@
-
+4.0.0json_schema_validatorJson :: Schema Validatorcom.github.vedenin0.01
-
-
- 2.7.3
-
-
com.fasterxml.jackson.corejackson-core
- ${jackson.version}
+ [2.11.1,)com.fasterxml.jackson.corejackson-databind
- ${jackson.version}
+ [2.11.1,)com.github.fge
@@ -30,4 +25,4 @@
2.2.6
-
\ No newline at end of file
+
diff --git a/helloworlds/3.8-json/jsonschema2pojo/pom.xml b/helloworlds/3.8-json/jsonschema2pojo/pom.xml
index 4e06c3a0..f14eabf3 100644
--- a/helloworlds/3.8-json/jsonschema2pojo/pom.xml
+++ b/helloworlds/3.8-json/jsonschema2pojo/pom.xml
@@ -17,7 +17,7 @@
com.google.guavaguava
- 18.0
+ 29.0-jre
@@ -42,4 +42,4 @@
-
\ No newline at end of file
+
diff --git a/helloworlds/3.8-json/logansquare/pom.xml b/helloworlds/3.8-json/logansquare/pom.xml
index a4447e64..d5b17e27 100644
--- a/helloworlds/3.8-json/logansquare/pom.xml
+++ b/helloworlds/3.8-json/logansquare/pom.xml
@@ -1,18 +1,13 @@
-
+4.0.0logansquareJson :: logansquarecom.github.vedenin0.01
-
-
- 2.7.3
-
-
com.bluelinelabs
@@ -32,12 +27,12 @@
com.fasterxml.jackson.corejackson-core
- ${jackson.version}
+ [2.10.0.pr1,)com.fasterxml.jackson.corejackson-databind
- ${jackson.version}
+ [2.10.0.pr1,)
\ No newline at end of file
diff --git a/helloworlds/3.8-json/pom.xml b/helloworlds/3.8-json/pom.xml
index 00cf724d..b50ecd1f 100644
--- a/helloworlds/3.8-json/pom.xml
+++ b/helloworlds/3.8-json/pom.xml
@@ -1,7 +1,7 @@
-
+com.github.vedenin0.01
@@ -17,7 +17,6 @@
json_javajsonschema2pojomoshi
- ig_json_parserjacksonjson_pathjson_schema_validator
diff --git a/helloworlds/4.1-testing/cucumber/pom.xml b/helloworlds/4.1-testing/cucumber/pom.xml
index 2bba3f56..acf1ac29 100644
--- a/helloworlds/4.1-testing/cucumber/pom.xml
+++ b/helloworlds/4.1-testing/cucumber/pom.xml
@@ -10,7 +10,7 @@
1.7
- 4.12
+ 4.13.11.2.43.3
diff --git a/helloworlds/4.1-testing/image-comparison/pom.xml b/helloworlds/4.1-testing/image-comparison/pom.xml
new file mode 100644
index 00000000..1e6707c8
--- /dev/null
+++ b/helloworlds/4.1-testing/image-comparison/pom.xml
@@ -0,0 +1,44 @@
+
+
+
+ 4.1-testing
+ com.github.vedenin
+ 0.01
+
+ 4.0.0
+
+ image-comparison
+
+ This example to using Image-Comparison for testing code.
+
+
+ 3.3
+ 3.1.1
+
+
+
+
+ com.github.romankh3
+ image-comparison
+ ${image.comparison.version}
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven.compiler.version}
+
+ UTF-8
+ ${java.version}
+ ${java.version}
+
+
+
+
+
+
\ No newline at end of file
diff --git a/helloworlds/4.1-testing/image-comparison/src/main/java/com/github/vedenin/imagecomparison/Sample.java b/helloworlds/4.1-testing/image-comparison/src/main/java/com/github/vedenin/imagecomparison/Sample.java
new file mode 100644
index 00000000..c0a154fc
--- /dev/null
+++ b/helloworlds/4.1-testing/image-comparison/src/main/java/com/github/vedenin/imagecomparison/Sample.java
@@ -0,0 +1,72 @@
+package com.github.vedenin.imagecomparison;
+
+
+
+import com.github.romankh3.image.comparison.ImageComparison;
+import com.github.romankh3.image.comparison.ImageComparisonUtil;
+import com.github.romankh3.image.comparison.model.ComparisonResult;
+import com.github.romankh3.image.comparison.model.ComparisonState;
+
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.net.URISyntaxException;
+
+/**
+ * Sample of the using Image-Comparison library.
+ */
+public class Sample {
+
+ public static void main(String[] args) throws IOException, URISyntaxException {
+ // load the images to be compared
+ BufferedImage expectedImage = ImageComparisonUtil.readImageFromResources("expected.png");
+ BufferedImage actualImage = ImageComparisonUtil.readImageFromResources("actual.png");
+
+ // where to save the result (leave null if you want to see the result in the UI)
+ File resultDestination = new File("result.png");
+
+ //Create ImageComparison object for it.
+ ImageComparison imageComparison = new ImageComparison(expectedImage, actualImage, resultDestination);
+
+ //Can be used another constructor for it, without destination.
+ new ImageComparison("expected.png", "actual.png");
+ //or
+ new ImageComparison(expectedImage, actualImage);
+
+ //Also can be configured BEFORE comparing next properties:
+
+ //Threshold - it's the max distance between non-equal pixels. By default it's 5.
+ imageComparison.setThreshold(10);
+ imageComparison.getThreshold();
+
+ //RectangleListWidth - Width of the line that is drawn in the rectangle. By default it's 1.
+ imageComparison.setRectangleLineWidth(5);
+ imageComparison.getRectangleLineWidth();
+
+ //Destination. Before comparing also can be added destination file for result image.
+ imageComparison.setDestination(resultDestination);
+ imageComparison.getDestination();
+
+ //MaximalRectangleCount - It means that would get first x biggest rectangles for drawing.
+ // by default all the rectangles would be drawn.
+ imageComparison.setMaximalRectangleCount(10);
+ imageComparison.getMaximalRectangleCount();
+
+ //MinimalRectangleSize - The number of the minimal rectangle size. Count as (width x height).
+ // by default it's 1.
+ imageComparison.setMinimalRectangleSize(100);
+ imageComparison.getMinimalRectangleSize();
+
+ //After configuring the ImageComparison object, can be executed compare() method:
+ ComparisonResult comparisonResult = imageComparison.compareImages();
+
+ //Can be found ComparisonState.
+ ComparisonState comparisonState = comparisonResult.getComparisonState();
+
+ //And Result Image
+ BufferedImage resultImage = comparisonResult.getResult();
+
+ //Image can be saved after comparison, using ImageComparisonUtil.
+ ImageComparisonUtil.saveImage(resultDestination, resultImage);
+ }
+}
diff --git a/helloworlds/4.1-testing/image-comparison/src/main/resources/actual.png b/helloworlds/4.1-testing/image-comparison/src/main/resources/actual.png
new file mode 100644
index 00000000..c6b14aeb
Binary files /dev/null and b/helloworlds/4.1-testing/image-comparison/src/main/resources/actual.png differ
diff --git a/helloworlds/4.1-testing/image-comparison/src/main/resources/expected.png b/helloworlds/4.1-testing/image-comparison/src/main/resources/expected.png
new file mode 100644
index 00000000..8c97865c
Binary files /dev/null and b/helloworlds/4.1-testing/image-comparison/src/main/resources/expected.png differ
diff --git a/helloworlds/4.1-testing/mockito/pom.xml b/helloworlds/4.1-testing/mockito/pom.xml
index a267e5c5..a88da97a 100644
--- a/helloworlds/4.1-testing/mockito/pom.xml
+++ b/helloworlds/4.1-testing/mockito/pom.xml
@@ -15,7 +15,7 @@
1.7
- 4.12
+ 4.13.13.31.9.5
diff --git a/helloworlds/4.1-testing/pom.xml b/helloworlds/4.1-testing/pom.xml
index 99d5376c..c49d65c7 100644
--- a/helloworlds/4.1-testing/pom.xml
+++ b/helloworlds/4.1-testing/pom.xml
@@ -14,5 +14,6 @@
cucumbermockito
+ image-comparison
\ No newline at end of file
diff --git a/helloworlds/5.0-other-examples/pom.xml b/helloworlds/5.0-other-examples/pom.xml
index 172c4d71..e052c59e 100644
--- a/helloworlds/5.0-other-examples/pom.xml
+++ b/helloworlds/5.0-other-examples/pom.xml
@@ -53,17 +53,17 @@
com.google.guavaguava
- 18.0
+ 29.0-jreorg.apache.commonscommons-collections4
- 4.0
+ 4.1commons-iocommons-io
- 2.4
+ 2.7org.apache.commons
diff --git a/helloworlds/contributing.md b/helloworlds/contributing.md
index 3574f08d..9fb0d7f0 100644
--- a/helloworlds/contributing.md
+++ b/helloworlds/contributing.md
@@ -5,3 +5,21 @@ You can see [json sections](https://github.com/Vedenin/useful-java-links/tree/ma
Ideally, if you examples can be build using only maven, and running using only Idea Community or Eclipse.
Thank you for any your suggestions!
+
+ import java.lang.*;
+public class Calulator {
+ double i;
+ double x;
+ void p(){
+ x = Math.sqrt(i);
+ }
+}
+class Demonstration_81{
+ public static void main(String[] args){
+ Calulator a = new Calulator();
+ a.i = 20.0;
+ a.p();
+ System.out.println("Square root of"+a.i+" is "+a.x);
+
+ }
+}
diff --git a/link-rus/readme.md b/link-rus/readme.md
index d721cadb..85154f2f 100644
--- a/link-rus/readme.md
+++ b/link-rus/readme.md
@@ -320,7 +320,7 @@
1. [Keycloak](http://keycloak.jboss.org/) - Интеграция с SSO и IDM, как для приложений, работающих в браузере, так и для RESTful веб сервисов. Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
1. [PicketLink](http://picketlink.org/) - Umbrella проект для обеспечения безопасности и индентификации пользователей, Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
1. [Santuario](http://santuario.apache.org) Библиотека реализующая XML Digital Signature спецификацию и XML Encryption спецификацию. Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
-1. [Apache Oltu](https://oltu.apache.org/) Реализация OAuth протокола для Java. Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
+1. [Apache Oltu](https://oltu.apache.org/) ( *больше не поддерживается* ) Реализация OAuth протокола для Java. Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
1. [Apache Syncope](http://syncope.apache.org) Apache Syncope это открытая система для управления цифровыми идентификторами в enterprise приложениях. Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
#### Высокая производительность
@@ -476,6 +476,7 @@
1. [Apache Derby](https://db.apache.org/derby/) - Apache Derby, это Apache DB подпроект, это open source реляционная база данных, реализованная полностью на . Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
1. [Apache Empire-db](http://empire-db.apache.org/) Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
1. [Apache Ignite](http://ignite.apache.org) Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
+1. [Tarantool](https://github.com/tarantool/tarantool) — открытая система управления базой данных с неблокирующим сервером приложений на Lua. База данных обладает высокой скоростью работы по сравнению с традиционными СУБД, обладая теми же свойствами: персистентности, транзакционности ACID, репликации master-slave, master-master. Лицензия: [BSD licenses](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_BSD). 
*Распределенные базы данных.*
@@ -542,6 +543,7 @@
1. [LightAdmin](http://lightadmin.org/) - Легко настраиваемя CRUD UI библиотека для быстрой разработки приложений, Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
1. [Jaybird JCA/JDBC driver](http://www.firebirdsql.org/en/jdbc-driver/) - JCA-JDBC драйвер для Firebird базы данных, [github](https://github.com/FirebirdSQL/jaybird), github's star - 19. Лицензия: [GNU Lesser 2.1](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License), 
1. [dbeaver](https://github.com/serge-rider/dbeaver) - Инструмент для доступа к базе данных для разработчиков, SQL программистов, администраторов баз данных и аналитиков . http://dbeaver.jkiss.org. , github's star - 473. Лицензия: [GNU 2](https://en.wikipedia.org/wiki/GNU_General_Public_License). 
+1. [tarantool-java](https://github.com/tarantool/tarantool-java) Коннектор для работы по бинарному протоколу с Tarantool. Лицензия: [BSD licenses](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_BSD). 
### 5. Маппинг объектов в базы данных (ORM и т. п.)
@@ -942,6 +944,7 @@
1. [Mockito](https://github.com/mockito/mockito) Mocking фреймворк для unit тестов, написанных на Java. Лицензия: [MIT](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT) , рейтинг github'а - 1307. 
1. [Selenium](https://github.com/SeleniumHQ/selenium) Фреймворк для автоматического тестирования в браузере . Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache) , рейтинг github'а - 1305. 
1. [Cucumber jvm](https://github.com/cucumber/cucumber-jvm) Портирование Cucumber фреймворка для JVM. Лицензия: [MIT](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT) , рейтинг github'а - 1047. 
+1. [JBehave](https://github.com/jbehave/jbehave-core) BDD фреймворк, обладающий широкими возможностями по конфигурации. BDD является эволюцией подходов к разработке через тестирование (англ. test-driven development, TDD) и через приемочное тестирование (англ. acceptance-test driven design, ATDD), а также предназначен для того, чтобы сделать эти практики более доступными и интуитивно понятными в одинаковой степени новичкам и экспертам. Лицензия: [BSD 3](https://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22Revised_BSD_License.22.2C_.22New_BSD_License.22.2C_or_.22Modified_BSD_License.22.29), рейтинг github'а - 208. 
1. [Spock](https://github.com/spockframework/spock) Spock это фреймворк тестирования и создания спецификаций для Java и Groovy приложений . Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache) , рейтинг github'а - 669. 
1. [Google Firing range](https://github.com/google/firing-range) Google Firing Range это тестовый вебсервер для приложений-сканеров уязвимостей вебсайтов. Firing Range создает широкий спектр синтетических уязвимостей. Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache) , рейтинг github'а - 650. 
1. [Fitnesse](https://github.com/unclebob/fitnesse) FitNesse это система тестирования, вебсервер и вики. Лицензия: [CPL-1.0](https://opensource.org/licenses/cpl1.0.php), рейтинг github'а - 618.
@@ -956,7 +959,6 @@
1. [Arquillian](http://arquillian.org/) - Интеграционная и функциональная платформа тестирования Java EE контейнеров, Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
1. [Awaitility](https://github.com/jayway/awaitility) - DSL для синхронизации ассинхроных операций, Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
1. [Citrus](http://citrusframework.org/) - Фреймворк интеграционного тестирования, которой фокусируется на тестировании клиент-серверного обмена сообщениями, Лицензия: [Apache 2](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_Apache). 
-1. [Cucumber](https://github.com/cucumber/cucumber-jvm) - BDD фреймворк тестирования. [Hello World examples](https://github.com/Vedenin/useful-java-links/tree/master/helloworlds/4.1-testing/cucumber). Лицензия: [MIT](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT). 
1. [Gatling](http://gatling.io/) - Содержит инструменты тестирования разработанные для легкого использования, легкого сопровождения и высокой производительности, Лицензия: [MIT](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT). 
1. [GreenMail](http://www.icegreen.com/greenmail/) - In-memory email сервер для интеграционного тестирования, поддерживает SMTP, POP3 и IMAP включая SSL, Лицензия: [MIT](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT). 
1. [JGiven](http://jgiven.org) - Удобный для разработчиков BDD фреймворк тестирования совместимый с JUnit и TestNG, Лицензия: [MIT](https://ru.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%8F_MIT). 
diff --git a/link-rus/video-links.md b/link-rus/video-links.md
index 2c177b75..55cd8857 100644
--- a/link-rus/video-links.md
+++ b/link-rus/video-links.md
@@ -35,6 +35,7 @@
- [6.8 Рефлексия и Invokedynamic](#68-Рефлексия-и-invokedynamic)
- [6.9 Работа с нативными библиотеками и кодом (JNI/JNA)](#69-Работа-с-нативными-библиотеками-и-кодом-jnijna)
- [6.10 Особенности языка Java](#610-Особенности-языка-java)
+ - [6.11 Реактивное программирование на Java](#611-Реактивное-программирование-на-java)
- [7. Качество кода и вопросы архитектуры](#7-Качество-кода-и-вопросы-архитектуры)
- [7.1 Рефакторинги, качество кода, методики программирования](#71-Рефакторинги-качество-кода-методики-программирования)
- [7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений](#72-Архитектура-бизнес-правила-бизнес-модель-и-примеры-приложений)
@@ -378,6 +379,12 @@
2. [Алексей Рагозин — Структуры данных в Java, изобретаем заново](https://www.youtube.com/watch?v=mLqjySOrjOw) - описание реализации коллекций в Java и возможные методы их улучшения,
3. [Светлана Исакова — Простыми словами про вывод типов](https://www.youtube.com/watch?v=8K6sNWvqrW8)
+### 6.11 Реактивное программирование на Java
+
+1. [Кирилл Толкачёв и Егений Борисов — Reactive или не reactive, вот в чем вопрос](https://www.youtube.com/watch?v=mX19FWX2_Hs) - рефакторинг системы в реактивном стиле,
+2. [Олег Докука — Протокол RSocket — будущее реактивных приложений](https://www.youtube.com/watch?v=tSVjUKZ8Eg8) - обзор RSocket — новаторское решение для межсервисных взаимодействий,
+3. [Сергей Егоров — Не будь Гомером Симпсоном для своего Reactor-а!](https://www.youtube.com/watch?v=MU4wjB5CE-c) - обзор фреймворка Project Reactor
+
## **7\. Качество кода и вопросы архитектуры**
### 7.1 Рефакторинги, качество кода, методики программирования
@@ -390,6 +397,7 @@
6. [Николай Алименков — Парадигмы ООП](https://www.youtube.com/watch?v=G6LJkWwZGuc)
7. [Михаил Ершов — Разработка совместимого API](https://www.youtube.com/watch?v=EgOZSr-Uc3w)
8. [Nikolay Chashnikov - Write code faster with fewer errors: is it possible?](https://www.youtube.com/watch?v=_VhIBu8_4TE&list=PLYj3Bx1JM6Y6KJyi0TL3BJLRzgZJ4cWmL&index=57) - как избегать ошибок при написании кода,
+9. [Тагир Валеев — Атомарный рефакторинг в IntelliJ IDEA: прогибаем IDE под себя](https://www.youtube.com/watch?v=C5eD-K8AO3o)
### 7.2 Архитектура, бизнес правила, бизнес модель и примеры приложений
diff --git a/readme.md b/readme.md
index 8054f440..08412fb5 100644
--- a/readme.md
+++ b/readme.md
@@ -10,7 +10,7 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
- [3. GUI](#3-gui)
- [4. Business](#4-business)
- [5. Game Development](#5-game-development)
- - [6. Usefull libraries](#6-usefull-libraries)
+ - [6. Useful libraries](#6-useful-libraries)
- [Collections](#collections)
- [Date and Time](#date-and-time)
- [Dependency Injection and AOP](#dependency-injection-and-aop-frameworks)
@@ -81,13 +81,13 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
- [7. Documentation](#7-documentation)
- [8. Other](#8-other)
-- [VI. Program languages and applications, that was written with Java](#vi-program-languages-and-applications-that-was-written-with-java)
- - [1. Program languages, that was written with Java](#1--program-languages-that-was-written-with-java)
- - [2. Other program languages tools, that was written with Java](#2-other-program-languages-tools-that-was-written-with-java)
+- [VI. Program languages and applications that were written with Java](#vi-program-languages-and-applications-that-was-written-with-java)
+ - [1. Program languages that were written with Java](#1--program-languages-that-was-written-with-java)
+ - [2. Other program languages tools that were written with Java](#2-other-program-languages-tools-that-was-written-with-java)
- [3. Javascript](#3-javascript)
- [4. Frameworks that help to create parsers, interpreters or compilers](#4-frameworks-that-help-to-create-parsers-interpreters-or-compilers)
- - [5. Opensource applications, that was written with Java](#5-opensource-applications-that-was-written-with-java)
- - [6. Opensource games, that was written with Java](#6-opensource-games-that-was-written-with-java)
+ - [5. Opensource applications that were written with Java](#5-opensource-applications-that-was-written-with-java)
+ - [6. Opensource games that were written with Java](#6-opensource-games-that-was-written-with-java)
- [VII. Other](#vii-other)
- [1. Source code examples](#1-source-code-examples)
@@ -119,6 +119,7 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
1. [Kilim](https://github.com/kilim/kilim) Lightweight threads for Java, with message passing, nio, http and scheduling support. License: [MIT](https://opensource.org/licenses/MIT) , [](https://github.com/kilim/kilim). 
1. [Apache Isis](http://isis.apache.org) Apache Isis is a framework for rapidly developing domain-driven apps in Java. Write your business logic in entities, domain services and repositories, and the framework dynamically (at runtime) generates a representation of that domain model as a webapp or as a RESTful API. For prototyping or production. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Apache Zest](https://zest.apache.org/) Apache Zest is a community based effort exploring Composite Oriented Programming for domain centric application development. This includes evolved concepts from Aspect Oriented Programming, Dependency Injection and Domain Driven Design. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
+1. [Embedchain-JS](https://github.com/embedchain/embedchainjs) Framework to easily create LLM powered bots over any dataset. [](https://github.com/embedchain/embedchainjs)
### 2. Web development
[Up](#useful-java-links)
@@ -126,7 +127,7 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
#### Web Frameworks
1. [Play Framework](https://github.com/playframework/playframework) The Play Framework combines productivity and performance making it easy to build scalable web applications with Java and Scala. https://www.playframework.com/ . License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/playframework/playframework). 
1. [Spark](https://github.com/perwendel/spark) Spark - a Sinatra inspired web framework. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/perwendel/spark). 
-1. [Blade](https://github.com/biezhi/blade) a simple, elegant java web framework! http://bladejava.com. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/biezhi/blade). 
+1. [Blade](https://github.com/biezhi/blade) a simple, elegant java web framework! License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/biezhi/blade). 
1. [Atmosphere](https://github.com/Atmosphere/atmosphere) - Realtime Client Server Framework for the JVM, supporting WebSockets with Cross-Browser Fallbacks. License: CDDL1 / [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/Atmosphere/atmosphere). 
1. [Grails](https://github.com/grails/grails-core) - Grails is a framework used to build web applications with the Groovy programming language. The core framework is very extensible and there are numerous plugins available that provide easy integration of add-on features. https://grails.org/ License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/grails/grails-core). 
1. [Ninja](https://github.com/ninjaframework/ninja) Ninja is a full stack web framework for Java. Rock solid, fast and super productive. .http://www.ninjaframework.org. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/ninjaframework/ninja). 
@@ -151,12 +152,13 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
1. [VRaptor](https://github.com/caelum/vraptor4) VRaptor 4 delivers high productivity to your Java Web applications on top of CDI. VRaptor is an opensource MVC framework with a large developers and users community, [](https://github.com/caelum/vraptor4). http://www.vraptor.org . License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Jooby](https://github.com/jooby-project/jooby) Scalable, fast and modular micro web framework for Java , [](https://github.com/cjooby-project/jooby). http://jooby.org/ . License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [CUBA Platform](https://github.com/cuba-platform/cuba) - High-level framework for developing enterprise applications with a rich web interface, based on Spring, EclipseLink and Vaadin. https://cuba-platform.com [](https://github.com/cuba-platform/cuba). License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
+1. [Jersey](https://jersey.github.io/) - Jersey RESTful Web Services framework is open source, production quality, framework for developing RESTful Web Services in Java that provides support for JAX-RS APIs and serves as a JAX-RS (JSR 311 & JSR 339) Reference Implementation.
#### Libraries for web development
1. [Tobie ua-parser](https://github.com/tobie/ua-parser) A multi-language port of Browserscope's user agent parser. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0)/[MIT](https://opensource.org/licenses/MIT)/Perl, [](https://github.com/tobie/ua-parser). 
1. [Ghost Driver](https://github.com/detro/ghostdriver) Ghost Driver is an implementation of the Remote WebDriver Wire protocol, using PhantomJS as back-end. License: [BSD 2](https://en.wikipedia.org/wiki/BSD_licenses#2-clause_license_.28.22Simplified_BSD_License.22_or_.22FreeBSD_License.22.29), [](https://github.com/detro/ghostdriver). 
1. [B3log Solo](https://github.com/b3log/solo) - A blogging system written in Java, feel free to create your or your team own blog. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/b3log/solo). 
-1. [Nasher](https://github.com/ghaseminya/nasher-mvc-spring-security-blog-angular) - A Spring Project with spring security support with angular admin panel. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [![GitHub stars]
+1. [Nasher](https://github.com/ghaseminya/nasher-mvc-spring-security-blog-angular) - A Spring Project with spring security support with angular admin panel. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/ghaseminya/nasher-mvc-spring-security-blog-angular). 
1. [Baasbox](https://github.com/baasbox/baasbox) BaasBox is an Open Source project that aims to provide a backend for mobile and web apps. License: ?, [](https://github.com/baasbox/baasbox).
1. [Kolorobot Spring MVC 4 Quickstart Maven Archetype](https://github.com/kolorobot/spring-mvc-quickstart-archetype) — The project is a Maven archetype for Spring MVC 4 web application. License: ?, [](https://github.com/kolorobot/spring-mvc-quickstart-archetype).
1. [Gargl](https://github.com/jodoglevy/gargl) - Record web requests as they happen and turn them into reusable code in any programming language. Gargl - Generic API Recorder and Generator Lite. Pronounced "Gargle." Automate any website. Record web requests as they happen and turn them into reusable code in any programming language. License: [MIT](https://opensource.org/licenses/MIT) , [](https://github.com/jodoglevy/gargl). 
@@ -186,16 +188,18 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
1. [Apache Portals](http://portals.apache.org) The Apache Portals project provides various software products, including Apache Jetspeed-2, Apache Pluto, and Apache Portals Applications. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Apache Roller](http://roller.apache.org/) Apache Roller is a full-featured, multi-user and group blog server suitable for blog sites large and small. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Apache Chemistry](http://chemistry.apache.org/) Apache Chemistry provides open source implementations of the Content Management Interoperability Services (CMIS) specification. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
+1. [Jease](http://jease.org/) Jease eases the development of content- & database-driven web-applications with Java. License: [GPL v3](https://www.gnu.org/licenses/gpl-3.0). 
### 3. GUI
1. [JavaFX](http://www.oracle.com/technetwork/java/javase/overview/javafx-overview-2158620.html) - JavaFX is the next step in the evolution of Java as a rich client platform. It is designed to provide a lightweight, hardware-accelerated Java UI platform for enterprise business applications. License: [Oracle, proprietary](http://www.oracle.com/technetwork/java/javase/terms/license/index.html). 
1. [Scene Builder](http://www.oracle.com/technetwork/java/javase/downloads/javafxscenebuilder-info-2157684.html) - JavaFX Scene Builder is a visual layout tool that lets users quickly design JavaFX application user interfaces, without coding. Users can drag and drop UI components to a work area, modify their properties, apply style sheets, and the FXML code for the layout that they are creating is automatically generated in the background. The result is an FXML file that can then be combined with a Java project by binding the UI to the application’s logic. License: [Oracle, proprietary](http://www.oracle.com/technetwork/java/javase/terms/license/index.html). , but see Gluon Scene Builder.
-1. [Gluon Scene Builder] - Scene Builder is free and open source JavaFX Scene Builder, but is backed by Gluon. Commercial support offerings are available, including training and custom consultancy services. License: [BSD](https://www.google.pl/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0ahUKEwjE5vqD-Y3MAhVH2ywKHe5BBXgQFggkMAI&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBSD_licenses&usg=AFQjCNEADwPS776rXl5O9ofavy4xaW2yYw&sig2=FypX35BAWf3icOci5pQd3w&bvm=bv.119408272,d.bGg). 
-1. [SWT](http://www.eclipse.org/swt/) -SWT is an open source widget toolkit for Java designed to provide efficient, portable access to the user-interface facilities of the operating systems on which it is implemented. License: [Eclipse Public License v1.0](https://en.wikipedia.org/wiki/Eclipse_Public_License). 
+1. [Gluon Scene Builder](https://bitbucket.org/gluon-oss/scenebuilder) - Scene Builder is free and open source JavaFX Scene Builder, but is backed by Gluon. Commercial support offerings are available, including training and custom consultancy services. License: [BSD](https://www.google.pl/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0ahUKEwjE5vqD-Y3MAhVH2ywKHe5BBXgQFggkMAI&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FBSD_licenses&usg=AFQjCNEADwPS776rXl5O9ofavy4xaW2yYw&sig2=FypX35BAWf3icOci5pQd3w&bvm=bv.119408272,d.bGg). 
+1. [SWT](http://www.eclipse.org/swt/) - SWT is an open source widget toolkit for Java designed to provide efficient, portable access to the user-interface facilities of the operating systems on which it is implemented. License: [Eclipse Public License v1.0](https://en.wikipedia.org/wiki/Eclipse_Public_License). 
1. [Lanterna](https://code.google.com/archive/p/lanterna) - Lanterna is a Java library allowing you to write easy semi-graphical user interfaces in a text-only environment, very similar to the C library curses but with more functionality. License: [LGPL 2.1](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License). 
1. [Gephi](https://github.com/gephi/gephi/) - Gephi is an award-winning open-source platform for visualizing and manipulating large graphs. It runs on Windows, Mac OS X and Linux. Localization is available in French, Spanish, Japanese, Russian, Brazilian Portuguese, Chinese and Czech. License: [GNU 3](https://en.wikipedia.org/wiki/GNU_General_Public_License) or [CDDL 1.0](http://opensource.org/licenses/CDDL-1.0).
+1. [Codename One](https://www.codenameone.com/) - Open-source cross-platform app development solution for writing native apps for desktop, web & mobile in Java/Kotlin. (GPL + Classpath Exception)
### 4. Business
[Up](#useful-java-links)
@@ -277,7 +281,7 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
*Libraries that facilitate functional programming.*
1. [Retrolambda](https://github.com/orfjackal/retrolambda) Backport of Java 8's lambda expressions to Java 7, 6 and 5. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/orfjackal/retrolambda). 
-1. [Javaslang](https://github.com/javaslang/javaslang) - Javaslang core is a functional library for Java 8+. It helps to reduce the amount of code and to increase the robustness. A first step towards functional programming is to start thinking in immutable values. Javaslang provides immutable collections and the necessary functions and control structures to operate on these values, [](https://github.com/javaslang/javaslang). License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
+1. [Vavr](https://github.com/vavr-io/vavr) - Vavr (formerly called Javaslang) is a functional library for Java 8+. It helps to reduce the amount of code and to increase the robustness. A first step towards functional programming is to start thinking in immutable values. Vavr provides immutable collections and the necessary functions and control structures to operate on these values, [](https://github.com/vavr-io/vavr). License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [jOOλ](https://github.com/jOOQ/jOOL) - jOOλ - The Missing Parts in Java 8 jOOλ improves the JDK libraries in areas where the Expert Group's focus was elsewhere. It adds tuple support, function support, and a lot of additional functionality around sequential Streams, [](https://github.com/jOOQ/jOOL). License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Functional Java](https://github.com/functionaljava/functionaljava) - Functional Java is an open source library facilitating functional programming in Java. The library implements numerous basic and advanced programming abstractions that assist composition oriented development. Functional Java also serves as a platform for learning functional programming concepts by introducing these concepts using a familiar language. http://www.functionaljava.org License: [BSD 3](https://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22Revised_BSD_License.22.2C_.22New_BSD_License.22.2C_or_.22Modified_BSD_License.22.29), [](https://github.com/functionaljava/functionaljava). 
1. [Cyclops react](https://github.com/aol/cyclops-react) - A comprehensive functional reactive platform for JDK8. Future & functional based programming via JDK compatible extensions for Java 8 and above, [](https://github.com/aol/cyclops-react). License: [MIT](https://opensource.org/licenses/MIT) 
@@ -290,14 +294,16 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
1. [ReactiveX RxJava](https://github.com/ReactiveX/RxJava) RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/ReactiveX/RxJava), stackoverflow - [1814 questions](http://stackoverflow.com/search?q=RxJava). 
1. [Eclipse Vert.x](https://github.com/eclipse/vert.x) Vert.x is a tool-kit for building reactive applications on the JVM . License: Eclipse Public 1 / [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/eclipse/vert.x), stackoverflow - [728 questions](http://stackoverflow.com/search?q=Vert.x). 
-1. [Reactive Streams](https://github.com/reactive-streams/reactive-streams-jvm/) - The purpose of Reactive Streams is to provide a standard for asynchronous stream processing with non-blocking backpressure. License: [Public Domain (CC0)](https://en.wikipedia.org/wiki/%D0%9B%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D0%B8_%D0%B8_%D0%B8%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B_Creative_Commons#CC0), [](https://github.com/reactive-streams/reactive-streams-jvm/). 
+1. [Reactive Streams](https://github.com/reactive-streams/reactive-streams-jvm/) - The purpose of Reactive Streams is to provide a standard for asynchronous stream processing with non-blocking backpressure. License: [Public Domain (CC0)](http://creativecommons.org/publicdomain/zero/1.0/), [](https://github.com/reactive-streams/reactive-streams-jvm/). 
1. [Reactor](http://projectreactor.io/) - Reactor is a second-generation Reactive library for building non-blocking applications on the JVM based on the Reactive Streams Specification. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
+1. [RSocket](http://rsocket.io) - RSocket is a binary protocol for use on byte stream transports such as TCP, WebSockets, and Aeron. License: [Apache 2](https://github.com/rsocket/rsocket/blob/master/LICENSE),[](https://github.com/rsocket/rsocket) 
#### Security and Authentication
*Libraries that handle security, authentication, authorization or session management.*
[Up](#useful-java-links)
+1. [OTP-Java](https://github.com/BastiaanJansen/OTP-Java) - A small one-time password generator library according to RFC 4226 (HOTP) and RFC 6238 (TOTP). [MIT](https://opensource.org/licenses/MIT)
1. [Scribe Java](https://github.com/scribejava/scribejava) - Simple OAuth library for Java. License: [MIT](https://opensource.org/licenses/MIT) , [](https://github.com/scribejava/scribejava). 
1. [Spring security oauth](https://github.com/spring-projects/spring-security-oauth) - Support for adding OAuth1(a) and OAuth2 features (consumer and provider) for Spring web applications. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/spring-projects/spring-security-oauth). 
1. [Jasig CAS (Central Authentication Service)](https://github.com/Jasig/cas) - Apereo CAS - Single Sign On for the Web.The Central Authentication Service (CAS) is the standard mechanism by which web applications should authenticate users. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/Jasig/cas). 
@@ -310,9 +316,10 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
1. [Keycloak](http://keycloak.jboss.org/) - Integrated SSO and IDM for browser apps and RESTful web services. Built on top of the OAuth 2.0, Open ID Connect, JSON Web Token (JWT) and SAML 2.0 specifications. Keycloak has tight integration with a variety of platforms and has a HTTP security proxy service where we don't have tight integration. Options are to deploy it with an existing app server, as a black-box appliance, or as an Openshift cloud service and/or cartridge. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [PicketLink](http://picketlink.org/) - Simplified Security and Identity management for Java Applications PicketLink is an umbrella project for security and identity management for Java Applications. It is licensed under a friendly Apache v2 license. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Santuario](http://santuario.apache.org) Library implementing XML Digital Signature Specification & XML Encryption Specification. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
-1. [Apache Oltu](https://oltu.apache.org/) Apache Oltu is an OAuth protocol implementation in Java. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
+1. [Apache Oltu](https://oltu.apache.org/) ( *has retired* ) Apache Oltu is an OAuth protocol implementation in Java. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Apache Syncope](http://syncope.apache.org) Apache Syncope is an Open Source system for managing digital identities in enterprise environments. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
-
+1. [JObfuscator](https://www.pelock.com/products/jobfuscator) - JObfuscator is a source code obfuscator for the Java language to protect Java source code & algorithms from hacking, cracking, reverse engineering, decompilation & technology theft. License: 
+1. [OpenAM](https://www.pelock.com/products/jobfuscator) - Access management solution that includes authentication, SSO, authorization, federation, entitlements and web services security. License: [CDDL](https://opensource.org/license/cddl-1-0), [](https://github.com/OpenIdentityPlatform/OpenAM). 
#### High Performance
*Everything about high performance computation, from collections to specific libraries.*
@@ -327,6 +334,7 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
1. [JCTools](https://github.com/JCTools/JCTools) - Concurrency tools currently missing from the JDK. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Koloboke](https://github.com/OpenHFT/Koloboke) - Hash sets and hash maps. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Trove](http://trove.starlight-systems.com/) - Primitive collections. License: [GNU Lesser 2.1](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License). 
+1. [JUnion](https://github.com/TehLeo/junion) - Delivers struct types for Java programming language. 64 bit addressable struct arrays. [https://tehleo.github.io/junion/](https://tehleo.github.io/junion/) License: [License: [BSD 3](https://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22Revised_BSD_License.22.2C_.22New_BSD_License.22.2C_or_.22Modified_BSD_License.22.29). 
#### Serialization and I/O
@@ -367,6 +375,7 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
1. [Orika](https://github.com/orika-mapper/orika) - Simpler, better and faster Java bean mapping framework. [Hello World examples](https://github.com/Vedenin/useful-java-links/tree/master/helloworlds/1.6-usefull-libraries/bean_mapping/orika). License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0), [](https://github.com/orika-mapper/orika). 
1. [Selma](https://github.com/xebia-france/selma) - Stupid Simple Statically Linked Mapper. [Hello World examples](https://github.com/Vedenin/useful-java-links/tree/master/helloworlds/1.6-usefull-libraries/bean_mapping/selma). Selma Java bean mapping that compiles. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0), [](https://github.com/xebia-france/selma). 
1. [Apache BVal](http://bval.apache.org/) Apache BVal delivers an implementation of the Java Bean Validation (JSR303) Specification which is TCK compliant, works on Java SE 5 or later. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
+1. [OVal](http://oval.sourceforge.net/) – is a pragmatic and extensible validation framework for any kind of Java objects. Not JSR303/JSR380 compliant but supports Bean Validation constraints. It's pretty old flexible and reliable. License: [EPL v2.0](https://www.eclipse.org/legal/epl-2.0). [](https://github.com/sebthom/oval) 
@@ -394,7 +403,6 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
1. [Byteman](http://byteman.jboss.org/) - Byteman is a tool which makes it easy to trace, monitor and test the behaviour of Java application and JDK runtime code. It injects Java code into your application methods or into Java runtime methods without the need for you to recompile, repackage or even redeploy your application. License: [LGPL 2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.ru.html). 
1. [Javassist](http://jboss-javassist.github.io/javassist/) -Javassist (Java Programming Assistant) makes Java bytecode manipulation simple. It is a class library for editing bytecodes in Java; it enables Java programs to define a new class at runtime and to modify a class file when the JVM loads it. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) or [LGPL or later 2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.ru.html) or [Mozilla Public License 1.1.](https://en.wikipedia.org/wiki/Mozilla_Public_License). 
1. [ADT4J](https://github.com/sviperll/adt4j) - This library implements Algebraic Data Types for Java. ADT4J provides annotation processor for @GenerateValueClassForVisitor annotation. ADT4J generates new class for each @GenerateValueClassForVisitor annotation. License: [BSD 3](https://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22Revised_BSD_License.22.2C_.22New_BSD_License.22.2C_or_.22Modified_BSD_License.22.29). 
-1. [Auto](https://github.com/google/auto) - A collection of source code generators for Java. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [JHipster](https://github.com/jhipster/generator-jhipster) - Hipster stack for Java developers. Spring Boot + AngularJS in one handy generator. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [cglib](https://github.com/cglib/cglib) - cglib - Byte Code Generation Library is high level API to generate and transform Java byte code. It is used by AOP, testing, data access frameworks to generate dynamic proxy objects and intercept field access. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
@@ -412,8 +420,8 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
1. [Hazelcast](http://hazelcast.org/) - The Leading Open Source In-Memory Data Grid: Distributed Computing, Simplified. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Netflix Hystrix](https://github.com/Netflix/Hystrix) - Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable, [](https://github.com/Netflix/Hystrix). License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [JGroups](http://www.jgroups.org/) - JGroups is a toolkit for reliable messaging. It can be used to create clusters whose nodes can send messages to each other. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
-1. [Orbit](http://orbit.bioware.com/) - Orbit is a modern framework for JVM languages that makes it easier to build and maintain distributed and scalable online services. It was developed by BioWare, a division of Electronic Arts. License: [BSD 3](https://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22Revised_BSD_License.22.2C_.22New_BSD_License.22.2C_or_.22Modified_BSD_License.22.29). 
-1. [Quasar](http://www.paralleluniverse.co/quasar/) - Quasar is an open source JVM library that greatly simplifies the creation of highly concurrent software that is very easy to write and reason about, performant, and fault tolerant. License: [Eclipse Public License v1.0](https://en.wikipedia.org/wiki/Eclipse_Public_License) or [LGPL 3.0](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License). 
+1. [Orbit](https://github.com/orbit-legacy/orbit1) - Orbit is a modern framework for JVM languages that makes it easier to build and maintain distributed and scalable online services. It was developed by BioWare, a division of Electronic Arts. License: [BSD 3](https://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22Revised_BSD_License.22.2C_.22New_BSD_License.22.2C_or_.22Modified_BSD_License.22.29). 
+1. [Quasar](https://docs.paralleluniverse.co/quasar/) - Quasar is an open source JVM library that greatly simplifies the creation of highly concurrent software that is very easy to write and reason about, performant, and fault tolerant. License: [Eclipse Public License v1.0](https://en.wikipedia.org/wiki/Eclipse_Public_License) or [LGPL 3.0](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License). 
1. [Storm contrib](https://github.com/nathanmarz/storm-contrib) A collection of spouts, bolts, serializers, DSLs, and other goodies to use with Storm. License: [Eclipse Public 1.0](https://www.eclipse.org/legal/epl-v10.html), [](https://github.com/nathanmarz/storm-contrib). 
1. [JADE](http://jade.tilab.com/) - JADE (Java Agent DEvelopment Framework) is a software Framework fully implemented in the Java language. It simplifies the implementation of multi-agent systems through a middle-ware that complies with the FIPA specifications and through a set of graphical tools that support the debugging and deployment phases. License: [GNU Lesser 2.0](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License). 
1. [Apache River](http://river.apache.org) Apache River software provides a standards-compilani JINI service. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
@@ -473,6 +481,7 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
1. [Apache Derby](https://db.apache.org/derby/) - Apache Derby, an Apache DB subproject, is an open source relational database implemented entirely in Java. Derby provides an embedded JDBC driver that lets you embed Derby in any Java-based solution. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Apache Empire-db](http://empire-db.apache.org/) Apache Empire-db is a lightweight relational database abstraction layer and data persistence component. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Apache Ignite](http://ignite.apache.org) Apache Ignite is an In-Memory Data Fabric providing in-memory data caching, partitioning, processing, and querying components. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
+1. [Tarantool](https://github.com/tarantool/tarantool) — is an open-source NoSQL database management system and Lua application server. It maintains databases in memory and ensures crash resistance with write-ahead logging. It includes a Lua interpreter and interactive console but also accepts connections from programs in several other languages. License: [BSD licenses](https://en.wikipedia.org/wiki/BSD_licenses). 
#### **Distributed Databases.**
*Databases in a distributed system that appear to applications as a single data source.*
@@ -538,6 +547,7 @@ This is a fork of [awesome link](https://github.com/akullpp/awesome-java) with n
1. [LightAdmin](http://lightadmin.org/) - Pluggable data administration UI library for Java web applications. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Jaybird JCA/JDBC driver](https://github.com/FirebirdSQL/jaybird) - JCA-JDBC Driver for Firebird database. http://www.firebirdsql.org/en/jdbc-driver/, [](https://github.com/FirebirdSQL/jaybird). License: [GNU Lesser 2.1](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License). 
1. [dbeaver](https://github.com/serge-rider/dbeaver) - Free universal database manager and SQL client. http://dbeaver.jkiss.org. , [](https://github.com/serge-rider/dbeaver). License: [GNU 2](https://en.wikipedia.org/wiki/GNU_General_Public_License). 
+1. [tarantool-java](https://github.com/tarantool/tarantool-java) A Java client for Tarantool. License: [BSD licenses](https://en.wikipedia.org/wiki/BSD_licenses). 
### 5. ORM
*APIs which handle the persistence of objects.*
@@ -699,6 +709,7 @@ of Apache Hadoop. https://hive.apache.org/ .License: [Apache 2](http://www.apach
1. [Apache Tika](http://tika.apache.org) The Apache Tika toolkit detects and extracts metadata and structured text content from various documents using existing parser libraries. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [CMU Sphinx](http://cmusphinx.sourceforge.net/) - Open Source Speech Recognition Toolkit. License: [BSD 2](https://en.wikipedia.org/wiki/BSD_licenses#2-clause_license_.28.22Simplified_BSD_License.22_or_.22FreeBSD_License.22.29). 
1. [ARK Twitter NLP](https://github.com/brendano/ark-tweet-nlp) - CMU ARK Twitter Part-of-Speech Tagger. http://www.ark.cs.cmu.edu/TweetNLP/ License: [GNU 2/3](https://en.wikipedia.org/wiki/GNU_General_Public_License), [](https://github.com/brendano/ark-tweet-nlp). 
+1. [lc4j](https://github.com/olivomarco/lc4j) - Language Categorization for Java: an Open Source library for finding out in which language a text has been written. License: [MIT](https://en.wikipedia.org/wiki/MIT_License). 
## III. Network and Integration
@@ -707,16 +718,16 @@ of Apache Hadoop. https://hive.apache.org/ .License: [Apache 2](http://www.apach
[Up](#useful-java-links)
1. [Wildfly](https://github.com/wildfly/wildfly) - Formerly known as JBoss and developed by Red Hat with extensive Java EE support. License: [GNU Lesser 2.1](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License), [](https://github.com/wildfly/wildfly). 
-1. [Undertow io Undertow](https://github.com/undertow-io/undertow) - High performance non-blocking webserver. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/undertow-io/undertow). 
+1. [Undertow](https://github.com/undertow-io/undertow) - High performance non-blocking webserver. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/undertow-io/undertow). 
1. [Apache Tomcat](https://github.com/apache/tomcat) - Robust all-round server for Servlet and JSP. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/apache/tomcat). 
1. [Nginx clojure](https://github.com/nginx-clojure/nginx-clojure) - Nginx module for embedding Clojure or Java or Groovy programs, typically those Ring based handlers. License: [BSD 3](https://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22Revised_BSD_License.22.2C_.22New_BSD_License.22.2C_or_.22Modified_BSD_License.22.29) , [](https://github.com/nginx-clojure/nginx-clojure). 
-1. [Eclipse Jetty.project](https://github.com/eclipse/jetty.project) - Lightweight, small server, often embedded in projects. License: [Eclipse Public 1.0](https://www.eclipse.org/legal/epl-v10.html) / [Apache 2](http://www.apache.org/licenses/LICENSE-2.0).0, [](https://github.com/eclipse/jetty.project). 
+1. [Jetty](https://github.com/eclipse/jetty.project) - Lightweight, small server, often embedded in projects. License: [Eclipse Public 1.0](https://www.eclipse.org/legal/epl-v10.html) / [Apache 2](http://www.apache.org/licenses/LICENSE-2.0).0, [](https://github.com/eclipse/jetty.project). 
1. [Apache TomEE](http://tomee.apache.org/) - Tomcat plus Java EE. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [WebSphere Liberty](https://developer.ibm.com/wasdev/) - Lightweight, modular server developed by IBM. ***License: proprietary*** 
1. [GlassFish](https://glassfish.java.net/) - GlassFish - World's first Java EE 7 Application Server. License: [GNU 2](https://en.wikipedia.org/wiki/GNU_General_Public_License) Or [CDDL 1.0](http://opensource.org/licenses/CDDL-1.0).
1. [Apache Geronimo](http://geronimo.apache.org/) Java EE Application Server. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Apache James](http://james.apache.org) The Apache Java Enterprise Mail Server (a.k.a. Apache James) is a 100% pure Java SMTP and POP3 Mail server and NNTP News server. We have designed James to be a complete and portable enterprise mail engine solution based on currently available open protocols. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
-
+1. [Payara](https://github.com/payara/Payara) Payara Server is an open source middleware platform that supports reliable and secure deployments of Java EE (Jakarta EE) and MicroProfile applications in any environment: on premise, in the cloud or hybrid.[CDDL 1.1](https://github.com/payara/Payara/blob/master/LICENSE.txt)
### 2. Networking
*Libraries for network programming.*
@@ -884,7 +895,7 @@ of Apache Hadoop. https://hive.apache.org/ .License: [Apache 2](http://www.apach
1. [Apache CloudStack](http://cloudstack.apache.org/) Apache CloudStack is an IaaS (“Infrastracture as a Service”) cloud orchestration platform. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Apache Stratos](http://stratos.apache.org) Apache Stratos is a highly-extensible Platform-as-a-Service (PaaS) framework that helps run Apache Tomcat, PHP, and MySQL applications and can be extended to support many more environments on all major cloud infrastructures. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Apache Airavata](http://airavata.apache.org/) Apache Airavata is a software framework for executing and managing computational jobs and workflows on distributed computing resources including local clusters, supercomputers, national grids, academic and commercial clouds. Airavata is dominantly used to build Web-based science gateways and assist to compose, manage, execute, and monitor large scale applications (wrapped as Web based services) and workflows composed of these services. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
-
+1. [Quarkus](https://github.com/quarkusio/quarkus) Quarkus is a Cloud Native, (Linux) Container First framework for writing Java applications. [](https://github.com/quarkusio/quarkus/blob/master/LICENSE.txt)
### 13. Cluster Management
*Frameworks which can dynamically manage applications inside of a cluster.*
[Up](#useful-java-links)
@@ -955,17 +966,19 @@ of Apache Hadoop. https://hive.apache.org/ .License: [Apache 2](http://www.apach
*Tools that test from model to the view.*
[Up](#useful-java-links)
+1. [ArchUnit](https://github.com/TNG/ArchUnit) is a free, simple and extensible library for checking the architecture of your Java code. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/TNG/ArchUnit). 
1. [Junit](https://github.com/junit-team/junit4) Common testing framework. License: [Eclipse Public 1.0](https://www.eclipse.org/legal/epl-v10.html) , [](https://github.com/junit-team/junit4). 
1. [Mockito](https://github.com/mockito/mockito) Creation of test double objects in automated unit tests for the purpose of TDD or BDD. License: [MIT](https://opensource.org/licenses/MIT) , [](https://github.com/mockito/mockito). 
1. [Selenium](https://github.com/SeleniumHQ/selenium) Portable software testing framework for web applications. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/SeleniumHQ/selenium). 
-1. [Cucumber jvm](https://github.com/cucumber/cucumber-jvm) Cucumber-JVM is a pure Java implementation of Cucumber that supports the most popular programming languages for the JVM. License: [MIT](https://opensource.org/licenses/MIT) , [](https://github.com/cucumber/cucumber-jvm). 
+1. [Cucumber jvm](https://github.com/cucumber/cucumber-jvm) - BDD testing framework. Cucumber-JVM is a pure Java implementation of Cucumber that supports the most popular programming languages for the JVM. [Hello World examples](https://github.com/Vedenin/useful-java-links/tree/master/helloworlds/4.1-testing/cucumber). License: [MIT](https://opensource.org/licenses/MIT), [](https://github.com/cucumber/cucumber-jvm). 
+1. [JBehave](https://github.com/jbehave/jbehave-core) - extensively configurable framework for Behavior-Driven Development (BDD). BDD is an evolution of test-driven development (TDD) and acceptance-test driven design, and is intended to make these practices more accessible and intuitive to newcomers and experts alike. License: [BSD 3](https://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22Revised_BSD_License.22.2C_.22New_BSD_License.22.2C_or_.22Modified_BSD_License.22.29), [](https://github.com/jbehave/jbehave-core). 
1. [Spock](https://github.com/spockframework/spock) JUnit-compatible framework featuring an expressive Groovy-derived specification language. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/spockframework/spock). 
1. [Google Firing range](https://github.com/google/firing-range) Firing Range is a test bed for web application security scanners, providing synthetic, wide coverage for an array of vulnerabilities. It can be deployed as a Google App Engine application. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/google/firing-range). 
1. [Fitnesse](https://github.com/unclebob/fitnesse) FitNesse is the fully integrated stand-alone acceptance testing framework and wiki.. License: [CPL-1.0](https://opensource.org/licenses/cpl1.0.php), [](https://github.com/unclebob/fitnesse).
1. [Sikuli](https://github.com/sikuli/sikuli) Sikuli is a visual technology to automate graphical user interfaces (GUI) using images (screenshots). The current release of Sikuli includes Sikuli Script, a visual scripting API for Jython, and Sikuli IDE, an integrated development environment for writing visual scripts with screenshots easily. License: [MIT](https://opensource.org/licenses/MIT) , [](https://github.com/sikuli/sikuli). 
1. [JavaHamcrest](https://github.com/hamcrest/JavaHamcrest) Matchers that can be combined to create flexible expressions of intent. License: [BSD 3](https://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22Revised_BSD_License.22.2C_.22New_BSD_License.22.2C_or_.22Modified_BSD_License.22.29), [](https://github.com/hamcrest/JavaHamcrest). 
1. [Wiremock](https://github.com/tomakehurst/wiremock) Stubbs and mocks web services. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/tomakehurst/wiremock). 
-1. [Testng](https://github.com/cbeust/testng) Testing framework. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/cbeust/testng). 
+1. [TestNG](https://github.com/cbeust/testng) Testing framework. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/cbeust/testng). 
1. [Galenframework Galen](https://github.com/galenframework/galen) Layout and functional testing framework for websites. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/galenframework/galen). 
1. [AssertJ](https://github.com/joel-costigliola/assertj-core) Fluent assertions that improve readability. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/joel-costigliola/assertj-core). 
1. [Google truth](https://github.com/google/truth) Google's assertion and proposition framework. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/google/truth). 
@@ -973,7 +986,6 @@ of Apache Hadoop. https://hive.apache.org/ .License: [Apache 2](http://www.apach
1. [Arquillian](http://arquillian.org/) - Integration and functional testing platform for Java EE containers. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Awaitility](https://github.com/jayway/awaitility) - DSL for synchronizing asynchronous operations. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Citrus](http://citrusframework.org/) - Integration testing framework with focus on client- and serverside messaging. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
-1. [Cucumber](https://github.com/cucumber/cucumber-jvm) - BDD testing framework. [Hello World examples](https://github.com/Vedenin/useful-java-links/tree/master/helloworlds/4.1-testing/cucumber). License: [MIT](https://opensource.org/licenses/MIT). 
1. [Gatling](http://gatling.io/) - Load testing tool designed for ease of use, maintainability and high performance. License: [MIT](https://opensource.org/licenses/MIT). 
1. [GreenMail](http://www.icegreen.com/greenmail/) - In-memory email server for integration testing. Supports SMTP, POP3 and IMAP including SSL. License: [MIT](https://opensource.org/licenses/MIT). 
1. [JGiven](http://jgiven.org) - Developer-friendly BDD testing framework compatible with JUnit and TestNG. License: [MIT](https://opensource.org/licenses/MIT). 
@@ -987,6 +999,8 @@ of Apache Hadoop. https://hive.apache.org/ .License: [Apache 2](http://www.apach
1. [Unitils](http://www.unitils.org/) - Modular testing library for unit and integration testing. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [SeLion](https://github.com/paypal/SeLion) - Enabling Test Automation in Java. SeLion builds on top of TestNG and Selenium to provide a set of capabilities that get you up and running with WebDriver in a short time. It can be used for testing web and mobile applications, [](https://github.com/paypal/SeLion). License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [cdp4j](https://github.com/webfolderio/cdp4j) - Web-automation library for Java. It can be used for automating the use of web pages and for testing web pages. [](https://github.com/webfolderio/cdp4j) License: [MIT](https://opensource.org/licenses/MIT). 
+1. [Image-Comparison](https://github.com/romankh3/image-comparison) - Published on Maven Central Java Library that compares 2 images with the same sizes and shows the differences visually by drawing rectangles. Some parts of the image can be excluded from the comparison. [](https://github.com/romankh3/image-comparison) License: [The Unlicense](https://unlicense.org)
+1. [LogCaptor](https://github.com/Hakky54/log-captor) - Captures log entries for unit testing purposes. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/Hakky54/log-captor). 
### 2. Code Coverage
*Frameworks and tools that enable collection of code coverage metrics for test suites.*
@@ -1006,10 +1020,10 @@ of Apache Hadoop. https://hive.apache.org/ .License: [Apache 2](http://www.apach
1. [Codeship](https://codeship.com/features) - Hosted services with a limited free plan. 
1. [fabric8](http://fabric8.io/) - Integration platform for containers. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [Go](https://www.thoughtworks.com/go/) - ThoughtWork's open-source solution. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
-1. [Jenkins](http://jenkins-ci.org/) - Provides server-based deployment services. License: [MIT](https://opensource.org/licenses/MIT). 
+1. [Jenkins](http://jenkins.io/) - Provides server-based deployment services. License: [MIT](https://opensource.org/licenses/MIT). 
1. [TeamCity](http://www.jetbrains.com/teamcity/) - JetBrain's CI solution with a free version. **License: proprietary** 
1. [Travis](https://travis-ci.org) - Hosted service often used for open-source projects. License: ?
-1. [Hudson](http://hudson-ci.org/) - Hudson monitors the execution of repeated jobs, such as building a software project or jobs run by cron. Currently Hudson focuses on the following two jobs: Building/testing software projects continuously and Monitoring executions of externally-run jobs. License: [Eclipse Public License v1.0](https://en.wikipedia.org/wiki/Eclipse_Public_License). 
+1. [Hudson](https://www.eclipse.org/hudson/) - Hudson monitors the execution of repeated jobs, such as building a software project or jobs run by cron. Currently Hudson focuses on the following two jobs: Building/testing software projects continuously and Monitoring executions of externally-run jobs. License: [Eclipse Public License v1.0](https://en.wikipedia.org/wiki/Eclipse_Public_License). 
1. [Apache Continuum](http://continuum.apache.org/) Apache Continuum software is an enterprise-ready continuous integration server with features such as automated builds, release management, role-based security, and integration with popular build tools and source control management systems.. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
@@ -1073,10 +1087,10 @@ of Apache Hadoop. https://hive.apache.org/ .License: [Apache 2](http://www.apach
[Up](#useful-java-links)
1. [Bintray](https://bintray.com/) - Version control for binaries which handles the publishing. Can also be used with Maven or Gradle and has a free plan for open-source software or several business plans. **License: proprietary** 
-1. [Capsule](https://github.com/puniverse/capsule) - Simple and powerful packaging and deployment. A fat JAR on steroids or a "Docker for Java" that supports JVM-optimized containers. http://www.capsule.io/ [](https://github.com/puniverse/capsule). License: [Eclipse Public License v1.0](https://en.wikipedia.org/wiki/Eclipse_Public_License). 
+1. [Capsule](https://github.com/puniverse/capsule) - Simple and powerful packaging and deployment. A fat JAR on steroids or a "Docker for Java" that supports JVM-optimized containers. [](https://github.com/puniverse/capsule). License: [Eclipse Public License v1.0](https://en.wikipedia.org/wiki/Eclipse_Public_License). 
1. [Central Repository](http://search.maven.org/) - Largest binary component repository available as a free service to the open-source community. Default used by Apache Maven and available in all other build tools. **License: proprietary** 
-1. [IzPack](https://github.com/izpack/izpack) - Setup authoring tool for cross-platform deployments. http://izpack.org/ License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/izpack/izpack)). 
-1. [JitPack](https://github.com/jitpack/jitpack.io/) - Easy to use package repository for GitHub. Builds Maven/Gradle projects on demand and publishes ready-to-use packages. https://jitpack.io/ License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/jitpack/jitpack.io)). 
+1. [IzPack](https://github.com/izpack/izpack) - Setup authoring tool for cross-platform deployments. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/izpack/izpack)). 
+1. [JitPack](https://github.com/jitpack/jitpack.io/) - Easy to use package repository for GitHub. Builds Maven/Gradle projects on demand and publishes ready-to-use packages. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/jitpack/jitpack.io)). 
1. [Launch4j](http://launch4j.sourceforge.net/) - Wraps JARs in lightweight and native Windows executables. License: [BSD 3](https://en.wikipedia.org/wiki/BSD_licenses) or [MIT](https://opensource.org/licenses/MIT). 
1. [Nexus](http://www.sonatype.com/nexus-repository-sonatype) - Binary management with proxy and caching capabilities. **License: proprietary** 
1. [packr](https://github.com/libgdx/packr/) - Packs JARs, assets and the JVM for native distribution on Windows, Linux and Mac OS X. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
@@ -1122,10 +1136,11 @@ Teamware, ClearCase, Perforce, Monotone and Bazaar. License: [CDDL 1.0](http://o
1. [AppDynamics](https://www.appdynamics.com/) - Commercial performance monitor. **License: proprietary** 
1. [JavaMelody](https://github.com/javamelody/javamelody) - Performance monitoring and profiling. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [jmxtrans](https://github.com/jmxtrans/jmxtrans/) - Tool to connect to multiple JVMs and to query them for their attributes via JMX. Its query language is based on JSON, which allows non-Java programmers to access the JVMs attributes. Likewise, this tool supports different output writes, including Graphite, Ganglia, StatsD, among others. License: [MIT](https://opensource.org/licenses/MIT). 
-1. [Kamon](http://www.kamon.io/) - Tool for monitoring applications running on the JVM. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
+1. [Kamon](https://www.kamon.io/) - Tool for monitoring applications running on the JVM. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
+1. [Glowroot](https://glowroot.org/) - Open source Java APM. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
1. [New Relic](http://newrelic.com/) - Commercial performance monitor. **License: proprietary** 
1. [SPM](https://sematext.com/spm/) - Commercial performance monitor with distributing transaction tracing for JVM apps. **License: proprietary**
-1. [Takipi](https://www.takipi.com/) - Commercial in-production error monitoring and debugging. **License: proprietary** 
+1. [OverOps](https://www.overops.com/) - Root cause automation in production. **License: proprietary** 
#### 6. Redefinition of classes at runtime
[Up](#useful-java-links)
@@ -1148,6 +1163,7 @@ Teamware, ClearCase, Perforce, Monotone and Bazaar. License: [CDDL 1.0](http://o
1. [Bytecode viewer](https://github.com/Konloch/bytecode-viewer) A Java 8 Jar & Android APK Reverse Engineering Suite (Decompiler, Editor, Debugger & More). License: [GNU 3](https://en.wikipedia.org/wiki/GNU_General_Public_License), [](https://github.com/Konloch/bytecode-viewer). 
1. [Reflections](https://github.com/ronmamo/reflections) Java runtime metadata analysis, in the spirit of Scannotations. Reflections scans your classpath, indexes the metadata, allows you to query it on runtime and may save and collect that information for many modules within your project. License: [WTFPL](https://en.wikipedia.org/wiki/WTFPL), [](https://github.com/ronmamo/reflections). 
1. [Jabba:](https://github.com/shyiko/jabba) Java Version Manager inspired by [nvm](https://github.com/creationix/nvm) (Node.js). The goal is to provide unified pain-free experience of installing (and switching between different versions of) JDK. License [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/shyiko/jabba). 
+1. [Chocotea:](https://github.com/cleopatra27) Generates postman collection, environment and integration tests from java code. License [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/cleopatra27/chocotea).
*Current implementations of the JVM/JDK.*
@@ -1156,8 +1172,8 @@ Teamware, ClearCase, Perforce, Monotone and Bazaar. License: [CDDL 1.0](http://o
1. [Zulu OpenJDK](http://www.azul.com/downloads/zulu/) - OpenJDK builds for Windows, Linux, and Mac OS X through Java 8. License: [GNU 2](https://en.wikipedia.org/wiki/GNU_General_Public_License). 
1. [Zulu OpenJDK 9](http://zulu.org/zulu-9-pre-release-downloads/) - Early access OpenJDK 9 builds for Windows, Linux, and Mac OS X. License: [GNU 2](https://en.wikipedia.org/wiki/GNU_General_Public_License). 
-## VI. Program languages and applications, that was written with Java
-### 1. Program languages, that was written with Java
+## VI. Program languages and applications that were written with Java
+### 1. Program languages that were written with Java
[Up](#useful-java-links)
1. [Clojure](https://github.com/clojure/clojure) The Clojure programming language. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/clojure/clojure). 
@@ -1168,7 +1184,7 @@ Teamware, ClearCase, Perforce, Monotone and Bazaar. License: [CDDL 1.0](http://o
1. [Trifork Erjang](https://github.com/trifork/erjang) A JVM-based Erlang VM. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/trifork/erjang). 
-### 2. Other program languages tools, that was written with Java
+### 2. Other program languages tools that were written with Java
[Up](#useful-java-links)
1. [Go lang idea plugin](https://github.com/go-lang-plugin-org/go-lang-idea-plugin) Google Go language IDE built using the IntelliJ Platform. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/go-lang-plugin-org/go-lang-idea-plugin). 
@@ -1191,7 +1207,7 @@ Teamware, ClearCase, Perforce, Monotone and Bazaar. License: [CDDL 1.0](http://o
1. [JavaCC](https://javacc.java.net/) -More specific and slightly easier to learn. Has syntactic lookahead. License: [BSD ](https://en.wikipedia.org/wiki/BSD_licenses). 
-### 5. Opensource applications, that was written with Java
+### 5. Opensource applications that were written with Java
[Up](#useful-java-links)
1. [Square Keywhiz](https://github.com/square/keywhiz) - A system for distributing and managing secrets. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/square/keywhiz). 
@@ -1211,7 +1227,7 @@ Teamware, ClearCase, Perforce, Monotone and Bazaar. License: [CDDL 1.0](http://o
1. [Languagetool](https://github.com/languagetool-org/languagetool) - Style and Grammar Checker for 25+ Languages. License: [GNU Lesser 2.1](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License), [](https://github.com/languagetool-org/languagetool). 
1. [Apache OpenMeetings](http://openmeetings.apache.org) Video conferencing, instant messaging, white board and collaborative document editing application. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0). 
-### 6. Opensource games, that was written with Java
+### 6. Opensource games that were written with Java
[Up](#useful-java-links)
1. [Bukkit](https://github.com/Bukkit/Bukkit) The Minecraft Mod API. License: [GNU 2](https://en.wikipedia.org/wiki/GNU_General_Public_License), [](https://github.com/Bukkit/Bukkit). 
@@ -1245,6 +1261,7 @@ Teamware, ClearCase, Perforce, Monotone and Bazaar. License: [CDDL 1.0](http://o
1. [7guis](https://github.com/eugenkiss/7guis) 7GUIs is a GUI programming usability benchmark. License: ?, [](https://github.com/eugenkiss/7guis).
1. [Spring projects Spring data jpa examples](https://github.com/spring-projects/spring-data-examples) Spring Data Example Projects. License: [Apache 2](http://www.apache.org/licenses/LICENSE-2.0) , [](https://github.com/spring-projects/spring-data-examples). 
1. [Modern Java - A Guide to Java 8](https://github.com/winterbe/java8-tutorial) - Modern Java - A Guide to Java 8. License: [MIT](https://opensource.org/licenses/MIT). 
+1. [Java Micro code pieces](https://onelinerhub.com/java) - community library of micro Java code solutions for popular issues.
### 2. Benchmark results
[Up](#useful-java-links)
@@ -1267,13 +1284,15 @@ Teamware, ClearCase, Perforce, Monotone and Bazaar. License: [CDDL 1.0](http://o
* [r/java](https://www.reddit.com/r/java) - Subreddit for the Java community.
* [stackoverflow](http://stackoverflow.com/questions/tagged/java) - Question/answer platform.
* [vJUG](http://virtualjug.com/) - Virtual Java User Group.
+* [DevProjects](https://www.codementor.io/projects/java) - Community to discuss Java projects and share solutions.
+
### 2. Influential Books
*Books that had a high impact and are still worth reading.*
[Up](#useful-java-links)
-* [Effective Java (2nd Edition)](http://www.amazon.com/Effective-Java-Edition-Joshua-Bloch/dp/0321356683)
-* [Java 8 in Action](http://www.amazon.com/Java-Action-Lambdas-functional-style-programming/dp/1617291994/)
+* [Effective Java (3nd Edition)](https://www.amazon.com/Effective-Java-Joshua-Bloch/dp/0134685997)
+* [Modern Java in Action](https://www.amazon.com/Modern-Java-Action-functional-programming/dp/1617293563)
* [Java Concurrency in Practice](http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601)
* [Thinking in Java](http://www.amazon.com/Thinking-Java-Edition-Bruce-Eckel/dp/0131872486)
@@ -1284,10 +1303,11 @@ Teamware, ClearCase, Perforce, Monotone and Bazaar. License: [CDDL 1.0](http://o
* [Android Arsenal](https://android-arsenal.com)
* [Google Java Style](http://google-styleguide.googlecode.com/svn/trunk/javaguide.html)
+* [Hackr.io](https://hackr.io/tutorials/learn-java)
* [InfoQ](http://www.infoq.com/)
* [Java, SQL, and jOOQ](https://blog.jooq.org/)
-* [Java.net](https://home.java.net/)
* [Javalobby](https://dzone.com/java-jdk-development-tutorials-tools-news)
+* [Java tutorial](https://hackr.io/tutorials/learn-java)
* [JavaWorld](http://www.javaworld.com/)
* [JAXenter](https://jaxenter.com/)
* [RebelLabs](http://zeroturnaround.com/rebellabs/)
@@ -1298,3 +1318,7 @@ Teamware, ClearCase, Perforce, Monotone and Bazaar. License: [CDDL 1.0](http://o
* [Vanilla Java](http://vanillajava.blogspot.ch/)
* [Vlad Mihalcea on Hibernate](https://vladmihalcea.com/)
* [Voxxed](https://www.voxxed.com/)
+* [OverOps Blog](https://blog.takipi.com/)
+* [Bookmarks.dev](https://www.bookmarks.dev/tagged/java)
+* [Baeldung](https://www.baeldung.com/full_archive)
+* [InterviewBit](https://www.interviewbit.com/courses/fast-track-java/)