Skip to content

Commit 0a8fe53

Browse files
Artem LabazinArtem Labazin
Artem Labazin
authored and
Artem Labazin
committed
Add Spring Boot integration sub-project
1 parent 9d82a0a commit 0a8fe53

File tree

72 files changed

+4040
-328
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+4040
-328
lines changed

.travis.yml

+3
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ deploy:
5252
- "encon-handler/target/encon-handler-$project_version.jar"
5353
- "encon-handler/target/encon-handler-$project_version-javadoc.jar"
5454
- "encon-handler/target/encon-handler-$project_version-sources.jar"
55+
- "encon-spring/target/encon-spring-$project_version.jar"
56+
- "encon-spring/target/encon-spring-$project_version-javadoc.jar"
57+
- "encon-spring/target/encon-spring-$project_version-sources.jar"
5558
skip_cleanup: true
5659
on:
5760
tags: true

CHANGELOG.md

+8-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,14 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
2121
- Add handshake error handling (exceptions? error logs?).
2222
- Turn on checkstyle JavaDocs module.
2323
- Add updates to the protocol, like new `ControlMessage`.
24-
- Add Spring Boot support.
24+
25+
## [1.6.0](https://github.com/appulse-projects/encon-java/releases/tag/1.6.0) - 2018-08-21
26+
27+
### Added
28+
29+
- Spring Boot support.
30+
- Benchmarks.
31+
- Example projects.
2532

2633
## [1.5.0](https://github.com/appulse-projects/encon-java/releases/tag/1.5.0) - 2018-07-07
2734

README.md

+21-4
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ Sub-modules descriptions:
1313
- [Encon](./encon/README.md) - the lib itself;
1414
- [Encon databind](./encon-databind/README.md) - serializers/deserializers from/to Java/Eralng objects;
1515
- [Encon handler](./encon-handler/README.md) - helpers for handling received messages in mailbox;
16+
- [Encon Spring](./encon-spring/README.md) - Spring Boot integration;
17+
- [Encon examples](./examples/README.md) - different encon's examples;
18+
- [Encon benchmark](./benchmark/README.md) - encon's benchmarks;
1619

1720
## Development
1821

@@ -41,11 +44,25 @@ To build the project, do the following:
4144
$> mvn clean compile
4245
...
4346
[INFO] ------------------------------------------------------------------------
47+
[INFO] Reactor Summary:
48+
[INFO]
49+
[INFO] encon 1.6.0 ........................................ SUCCESS [ 0.116 s]
50+
[INFO] encon-common ....................................... SUCCESS [ 10.523 s]
51+
[INFO] encon-terms ........................................ SUCCESS [ 10.679 s]
52+
[INFO] encon-config ....................................... SUCCESS [ 7.860 s]
53+
[INFO] encon-databind ..................................... SUCCESS [ 8.767 s]
54+
[INFO] encon .............................................. SUCCESS [ 13.951 s]
55+
[INFO] encon-handler ...................................... SUCCESS [ 9.302 s]
56+
[INFO] encon-spring ....................................... SUCCESS [ 9.062 s]
57+
[INFO] examples ........................................... SUCCESS [ 0.003 s]
58+
[INFO] echo ............................................... SUCCESS [ 1.131 s]
59+
[INFO] echo-spring ........................................ SUCCESS [ 1.217 s]
60+
[INFO] benchmark 1.6.0 .................................... SUCCESS [ 1.659 s]
61+
[INFO] ------------------------------------------------------------------------
4462
[INFO] BUILD SUCCESS
4563
[INFO] ------------------------------------------------------------------------
46-
[INFO] Total time: 20.719 s
47-
[INFO] Finished at: 2018-02-02T13:25:56+03:00
48-
[INFO] Final Memory: 41M/380M
64+
[INFO] Total time: 01:15 min
65+
[INFO] Finished at: 2018-08-20T18:36:04+03:00
4966
[INFO] ------------------------------------------------------------------------
5067
```
5168

@@ -63,7 +80,7 @@ $> mvn clean test
6380
[INFO]
6481
[INFO] Results:
6582
[INFO]
66-
[INFO] Tests run: 7, Failures: 0, Errors: 0, Skipped: 0
83+
[INFO] Tests run: 67, Failures: 0, Errors: 0, Skipped: 0
6784
[INFO]
6885
...
6986
```

benchmark/README.md

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Overview
2+
3+
## Benchmark host machine
4+
5+
* **JMH version:** 1.21
6+
7+
* **VM version:** JDK 1.8.0_161, Java HotSpot(TM) 64-Bit Server VM, 25.161-b12
8+
9+
* **VM options:** <none>
10+
11+
* **Warmup:** 5 iterations, 10 s each
12+
13+
* **Measurement:** 5 iterations, 10 s each
14+
15+
* **Timeout:** 10 min per iteration
16+
17+
* **Threads:** 1 thread, will synchronize iterations
18+
19+
* **Benchmark mode:** Throughput, ops/time
20+
21+
## Results
22+
23+
| Benchmark | Mode | Cnt | Score | Error | Units |
24+
|----------------------------------------------------------------------------------------------------------------|-------|-----|------------:|------------:|-------|
25+
| [EnconBenchmark.mailbox2mailbox](./src/main/java/io/appulse/encon/benchmark/EnconBenchmark.java#L103) | thrpt | 25 | 4611737.930 | ± 54595.578 | ops/s |
26+
| [EnconBenchmark.node2node](./src/main/java/io/appulse/encon/benchmark/EnconBenchmark.java#L177) | thrpt | 25 | 13969.833 | ± 164.199 | ops/s |
27+
| [EnconBenchmark.oneDirection](./src/main/java/io/appulse/encon/benchmark/EnconBenchmark.java#L167) | thrpt | 25 | 28028.764 | ± 262.720 | ops/s |
28+
| [JInterfaceBenchmark.mailbox2mailbox](./src/main/java/io/appulse/encon/benchmark/JInterfaceBenchmark.java#L99) | thrpt | 25 | 4370604.847 | ± 15769.278 | ops/s |
29+
| [JInterfaceBenchmark.node2node](./src/main/java/io/appulse/encon/benchmark/JInterfaceBenchmark.java#L175) | thrpt | 25 | 17196.521 | ± 113.159 | ops/s |
30+
| [JInterfaceBenchmark.oneDirection](./src/main/java/io/appulse/encon/benchmark/JInterfaceBenchmark.java#L165) | thrpt | 25 | 34529.556 | ± 207.977 | ops/s |

benchmark/pom.xml

+168
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<!--
4+
Copyright 2018 the original author or authors.
5+
6+
Licensed under the Apache License, Version 2.0 (the "License");
7+
you may not use this file except in compliance with the License.
8+
You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing, software
13+
distributed under the License is distributed on an "AS IS" BASIS,
14+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
See the License for the specific language governing permissions and
16+
limitations under the License.
17+
-->
18+
19+
<project xmlns="http://maven.apache.org/POM/4.0.0"
20+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
21+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
22+
23+
<modelVersion>4.0.0</modelVersion>
24+
25+
<parent>
26+
<groupId>io.appulse.encon</groupId>
27+
<artifactId>encon-parent</artifactId>
28+
<version>1.6.0</version>
29+
</parent>
30+
31+
<artifactId>benchmark</artifactId>
32+
<packaging>jar</packaging>
33+
34+
<properties>
35+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
36+
<project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
37+
38+
<maven.compiler.source>1.8</maven.compiler.source>
39+
<maven.compiler.target>1.8</maven.compiler.target>
40+
</properties>
41+
42+
<dependencies>
43+
<dependency>
44+
<groupId>io.appulse.epmd.java</groupId>
45+
<artifactId>server</artifactId>
46+
</dependency>
47+
48+
<dependency>
49+
<groupId>io.appulse.encon</groupId>
50+
<artifactId>encon</artifactId>
51+
<version>${project.version}</version>
52+
</dependency>
53+
<dependency>
54+
<groupId>org.erlang.otp</groupId>
55+
<artifactId>jinterface</artifactId>
56+
</dependency>
57+
58+
<dependency>
59+
<groupId>org.projectlombok</groupId>
60+
<artifactId>lombok</artifactId>
61+
</dependency>
62+
63+
<dependency>
64+
<groupId>org.openjdk.jmh</groupId>
65+
<artifactId>jmh-core</artifactId>
66+
<version>1.21</version>
67+
</dependency>
68+
69+
<dependency>
70+
<groupId>org.openjdk.jmh</groupId>
71+
<artifactId>jmh-generator-annprocess</artifactId>
72+
<version>1.21</version>
73+
<scope>provided</scope>
74+
</dependency>
75+
</dependencies>
76+
77+
<build>
78+
<plugins>
79+
<plugin>
80+
<groupId>org.apache.maven.plugins</groupId>
81+
<artifactId>maven-compiler-plugin</artifactId>
82+
<version>3.1</version>
83+
<configuration>
84+
<compilerVersion>${maven.compiler.target}</compilerVersion>
85+
<source>${maven.compiler.source}</source>
86+
<target>${maven.compiler.target}</target>
87+
</configuration>
88+
</plugin>
89+
<plugin>
90+
<groupId>org.apache.maven.plugins</groupId>
91+
<artifactId>maven-shade-plugin</artifactId>
92+
<version>2.2</version>
93+
<executions>
94+
<execution>
95+
<phase>package</phase>
96+
<goals>
97+
<goal>shade</goal>
98+
</goals>
99+
<configuration>
100+
<finalName>benchmarks</finalName>
101+
<transformers>
102+
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
103+
<!--<mainClass>org.openjdk.jmh.Main</mainClass>-->
104+
<mainClass>io.appulse.encon.benchmark.Main</mainClass>
105+
</transformer>
106+
</transformers>
107+
<filters>
108+
<filter>
109+
<!--
110+
Shading signed JARs will fail without this.
111+
http://stackoverflow.com/questions/999489/invalid-signature-file-when-attempting-to-run-a-jar
112+
-->
113+
<artifact>*:*</artifact>
114+
<excludes>
115+
<exclude>META-INF/*.SF</exclude>
116+
<exclude>META-INF/*.DSA</exclude>
117+
<exclude>META-INF/*.RSA</exclude>
118+
</excludes>
119+
</filter>
120+
</filters>
121+
</configuration>
122+
</execution>
123+
</executions>
124+
</plugin>
125+
</plugins>
126+
127+
<pluginManagement>
128+
<plugins>
129+
<plugin>
130+
<artifactId>maven-clean-plugin</artifactId>
131+
<version>2.5</version>
132+
</plugin>
133+
<plugin>
134+
<artifactId>maven-deploy-plugin</artifactId>
135+
<version>2.8.1</version>
136+
</plugin>
137+
<plugin>
138+
<artifactId>maven-install-plugin</artifactId>
139+
<version>2.5.1</version>
140+
</plugin>
141+
<plugin>
142+
<artifactId>maven-jar-plugin</artifactId>
143+
<version>2.4</version>
144+
</plugin>
145+
<plugin>
146+
<artifactId>maven-javadoc-plugin</artifactId>
147+
<version>2.9.1</version>
148+
</plugin>
149+
<plugin>
150+
<artifactId>maven-resources-plugin</artifactId>
151+
<version>2.6</version>
152+
</plugin>
153+
<plugin>
154+
<artifactId>maven-site-plugin</artifactId>
155+
<version>3.3</version>
156+
</plugin>
157+
<plugin>
158+
<artifactId>maven-source-plugin</artifactId>
159+
<version>2.2.1</version>
160+
</plugin>
161+
<plugin>
162+
<artifactId>maven-surefire-plugin</artifactId>
163+
<version>2.17</version>
164+
</plugin>
165+
</plugins>
166+
</pluginManagement>
167+
</build>
168+
</project>

0 commit comments

Comments
 (0)