Skip to content

Commit

Permalink
Project modernized.
Browse files Browse the repository at this point in the history
java, Spring, Redis, TimescaleDB version updated.
Server updated to Webflux.
  • Loading branch information
ormanli committed Dec 19, 2020
1 parent 03b153c commit d5d2708
Show file tree
Hide file tree
Showing 29 changed files with 182 additions and 268 deletions.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ Used Technologies
====
* Docker
* Docker Compose
* Java 14
* Java 15
* Spring Boot 2
* Spring Webflux
* Redis
* gRPC
* TimescaleDB
Expand Down
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ docker run \
-v ${MAVEN_DIR}:/root/.m2 \
-v ${PWD}:/src \
--entrypoint="sh" \
maven:3-openjdk-14-slim \
maven:3-openjdk-15-slim \
-c "mvn -f /src/pom.xml clean package"

docker-compose build
Expand Down
2 changes: 1 addition & 1 deletion collector.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM openjdk:14-slim
FROM adoptopenjdk/openjdk15:alpine-jre

WORKDIR /collector

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,17 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.listener.ChannelTopic;
import org.springframework.data.redis.listener.Topic;
import org.springframework.data.redis.serializer.RedisSerializer;

@Configuration
public class AppConfiguration {

@Value("${grpc.port}")
private int grpcPort;
@Value("${redis.host}")
private String redisHost;
@Value("${redis.port}")
private int redisPort;
@Value("${topic}")
private String topic;

Expand All @@ -35,27 +30,22 @@ public BindableService temperatureService(SenderService senderService) {

@Bean
public ServerBuilder serverBuilder() {
return ServerBuilder.forPort(grpcPort);
return ServerBuilder.forPort(this.grpcPort);
}

@Bean
public RedisConnectionFactory lettuceConnectionFactory() {
return new LettuceConnectionFactory(new RedisStandaloneConfiguration(redisHost, redisPort));
}

@Bean
public RedisOperations<String, byte[]> redisTemplate(RedisConnectionFactory lettuceConnectionFactory) {
RedisTemplate<String, byte[]> template = new RedisTemplate<>();
public RedisOperations<String, byte[]> redisOperations(RedisConnectionFactory redisConnectionFactory) {
var template = new RedisTemplate<String, byte[]>();

template.setConnectionFactory(lettuceConnectionFactory);
template.setValueSerializer(new ByteSerializer());
template.setConnectionFactory(redisConnectionFactory);
template.setValueSerializer(RedisSerializer.byteArray());

return template;
}

@Bean
public Topic topic() {
return new ChannelTopic(topic);
return new ChannelTopic(this.topic);
}

@Bean
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public StreamObserver<TemperatureReadingRequest> sendTemperatureReading(StreamOb
return new StreamObserver<>() {
@Override
public void onNext(TemperatureReadingRequest temperatureReadingRequest) {
var temperatureReadingResponse = senderService.send(temperatureReadingRequest);
var temperatureReadingResponse = TemperatureService.this.senderService.send(temperatureReadingRequest);

responseObserver.onNext(temperatureReadingResponse);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public TemperatureReadingResponse send(TemperatureReadingRequest request) {
var builder = TemperatureReadingResponse.newBuilder();

if (StringUtils.isNotBlank(request.getMachineId())) {
var id = timeBasedGenerator.generate().toString();
var id = this.timeBasedGenerator.generate().toString();

var byteArray = TemperatureReading.newBuilder()
.setMessageId(id)
Expand All @@ -32,7 +32,7 @@ public TemperatureReadingResponse send(TemperatureReadingRequest request) {
.build()
.toByteArray();

redisOperations.convertAndSend(topic.getTopic(), byteArray);
this.redisOperations.convertAndSend(this.topic.getTopic(), byteArray);

builder.setId(id);
}
Expand Down
6 changes: 3 additions & 3 deletions collector/src/main/resources/application.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
grpc:
port: 9000

redis:
host: "localhost"
port: 9379
spring:
redis:
port: 9379

topic: "temperature_reading"
14 changes: 7 additions & 7 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3.5"
services:
timescaledb:
image: "timescale/timescaledb:1.1.0-pg10"
image: "timescale/timescaledb:1.7.4-pg12"
ports:
- "54321:5432"
environment:
Expand All @@ -11,7 +11,7 @@ services:
volumes:
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
redis:
image: "redis:5.0.3"
image: "redis:6-alpine"
ports:
- "9379:6379"
collector:
Expand All @@ -21,8 +21,8 @@ services:
ports:
- "9000:9000"
environment:
- REDIS_HOST=redis
- REDIS_PORT=6379
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
depends_on:
- redis
server:
Expand All @@ -32,9 +32,9 @@ services:
ports:
- "8081:8081"
environment:
- REDIS_HOST=redis
- REDIS_PORT=6379
- SPRING_DATASOURCE_URL=jdbc:postgresql://timescaledb:5432/sepet
- SPRING_REDIS_HOST=redis
- SPRING_REDIS_PORT=6379
- SPRING_R2DBC_URL=r2dbc:postgresql://timescaledb:5432/sepet
depends_on:
- redis
- timescaledb
Expand Down
7 changes: 4 additions & 3 deletions init.sql
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
CREATE TABLE readings
(
id VARCHAR(26) NOT NULL,
time TIMESTAMP NOT NULL,
machine_id TEXT NOT NULL,
temperature DOUBLE PRECISION NOT NULL,
PRIMARY KEY (time, machine_id)
temperature DOUBLE PRECISION NOT NULL
);

SELECT create_hypertable('readings', 'time');

create index if not exists readings_machine_id_index
create
index if not exists readings_machine_id_index
on readings (machine_id);
4 changes: 2 additions & 2 deletions iotsimulator/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
<version>1.0-SNAPSHOT</version>

<properties>
<picocli.version>4.5.0</picocli.version>
<assertj-core.version>3.16.1</assertj-core.version>
<picocli.version>4.5.2</picocli.version>
<assertj-core.version>3.18.1</assertj-core.version>
</properties>
<dependencies>
<dependency>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ public class Main implements Runnable {
private int port;

public static void main(String[] args) {
CommandLine.run(new Main(), args);
new CommandLine(new Main()).execute(args);
}

@Override
public void run() {
log.info(String.format("Trying to start %d simulator to call %s:%d", numberOfSimulators, host, port));
log.info("Trying to start %d simulator to call %s:%d".formatted(numberOfSimulators, host, port));

var executor = Executors.newScheduledThreadPool(Math.max(numberOfSimulators / 4, 1));

Expand All @@ -38,7 +38,7 @@ public void run() {
for (var i = 0; i < numberOfSimulators; i++) {
var id = UUID.randomUUID().toString();

log.info(String.format("Simulator %s created", id));
log.info("Simulator %s created".formatted(id));

var temperatureGenerator = new TemperatureGenerator(random.nextInt(5) + 5);

Expand Down
9 changes: 4 additions & 5 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,21 +5,20 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.7.RELEASE</version>
<version>2.4.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.serdarormanli.sepet</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<description></description>
<packaging>pom</packaging>

<properties>
<java.version>14</java.version>
<java.version>15</java.version>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<grpc.version>1.31.0</grpc.version>
<os-maven-plugin.version>1.5.0.Final</os-maven-plugin.version>
<grpc.version>1.34.1</grpc.version>
<os-maven-plugin.version>1.6.1</os-maven-plugin.version>
<protobuf-maven-plugin.version>0.6.1</protobuf-maven-plugin.version>
<springfox-swagger2.version>2.9.2</springfox-swagger2.version>
<proto.root>${basedir}/../proto</proto.root>
Expand Down
2 changes: 1 addition & 1 deletion server.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM openjdk:14-slim
FROM adoptopenjdk/openjdk15:alpine-jre

WORKDIR /server

Expand Down
33 changes: 17 additions & 16 deletions server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,16 @@
<version>0.0.1-SNAPSHOT</version>

<properties>
<jackson-datatype-jsr310.version>2.11.1</jackson-datatype-jsr310.version>
<jackson-datatype-jsr310.version>2.12.0</jackson-datatype-jsr310.version>
<servlet-api.version>3.1.0</servlet-api.version>
<springdoc-openapi.version>1.5.2</springdoc-openapi.version>
<de.huxhorn.sulky.ulid.version>8.2.0</de.huxhorn.sulky.ulid.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
Expand All @@ -33,17 +35,16 @@
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
<artifactId>spring-boot-starter-data-r2dbc</artifactId>
</dependency>
<dependency>
<groupId>io.r2dbc</groupId>
<artifactId>r2dbc-postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
Expand All @@ -54,14 +55,14 @@
<artifactId>lettuce-core</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${springfox-swagger2.version}</version>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-webflux-ui</artifactId>
<version>${springdoc-openapi.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${springfox-swagger2.version}</version>
<groupId>de.huxhorn.sulky</groupId>
<artifactId>de.huxhorn.sulky.ulid</artifactId>
<version>${de.huxhorn.sulky.ulid.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
Expand Down
Loading

0 comments on commit d5d2708

Please sign in to comment.