Overview
Java implementation of Erlang Node CONnector (using Eralng Distribution Protocol). For more information, visit the site.
Sub-modules descriptions:
- Encon common - the set of common classes for all subprojects;
- Encon terms - Erlang's terms classes and different helpers;
- Encon config - configuration builder classes;
- Encon - the lib itself;
- Encon databind - serializers/deserializers from/to Java/Eralng objects;
- Encon handler - helpers for handling received messages in mailbox;
- Encon Spring - Spring Boot integration;
- Encon examples - different encon's examples;
- Encon benchmark - encon's benchmarks;
Development
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Prerequisites
For building the project you need only a Java compiler.
IMPORTANT: the project requires Java version starting from 8
And, of course, you need to clone the project from GitHub:
$> git clone https://github.com/appulse-projects/encon-java
$> cd encon-java
Building
For building routine automation, I am using maven.
To build the project, do the following:
$> mvn clean compile
...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] encon 1.6.9 ........................................ SUCCESS [ 1.210 s]
[INFO] encon-common ....................................... SUCCESS [ 25.693 s]
[INFO] encon-terms ........................................ SUCCESS [ 27.517 s]
[INFO] encon-config ....................................... SUCCESS [ 18.707 s]
[INFO] encon-databind ..................................... SUCCESS [ 22.462 s]
[INFO] encon .............................................. SUCCESS [ 36.247 s]
[INFO] encon-handler ...................................... SUCCESS [ 17.436 s]
[INFO] encon-spring ....................................... SUCCESS [ 11.516 s]
[INFO] examples ........................................... SUCCESS [ 0.024 s]
[INFO] simple ............................................. SUCCESS [ 5.337 s]
[INFO] echo-server ........................................ SUCCESS [ 5.840 s]
[INFO] echo-server-spring ................................. SUCCESS [ 7.716 s]
[INFO] custom-queue ....................................... SUCCESS [ 3.920 s]
[INFO] databind ........................................... SUCCESS [ 5.045 s]
[INFO] handler-basic ...................................... SUCCESS [ 6.443 s]
[INFO] handler-advanced ................................... SUCCESS [ 11.289 s]
[INFO] load-config ........................................ SUCCESS [ 3.725 s]
[INFO] load-config-spring ................................. SUCCESS [ 6.420 s]
[INFO] benchmark 1.6.9 .................................... SUCCESS [ 5.594 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:15 min
[INFO] Finished at: 2018-08-20T18:36:04+03:00
[INFO] ------------------------------------------------------------------------
Running the tests
To run the project's test, do the following:
$> mvn clean test
...
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
...
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 67, Failures: 0, Errors: 0, Skipped: 0
[INFO]
...
Also, if you do package
or install
goals, the tests launch automatically.
Built With
-
Java - is a systems and applications programming language
-
Lombok - is a java library that spicing up your java
-
Junit - is a simple framework to write repeatable tests
-
AssertJ - AssertJ provides a rich set of assertions, truly helpful error messages, improves test code readability
-
Maven - is a software project management and comprehension tool
Changelog
To see what has changed in recent versions of the project, see the changelog file.
Contributing
Please read contributing file for details on my code of conduct, and the process for submitting pull requests to me.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Authors
-
Artem Labazin - creator and the main developer
-
Sokol Andrey - texts corrector and mastermind
License
This project is licensed under the Apache License 2.0 License - see the license file for details