Skip to content

Commit fe9b3fe

Browse files
committed
feat: kafka and zookeeper
1 parent 0df81a8 commit fe9b3fe

File tree

20 files changed

+266
-33
lines changed

20 files changed

+266
-33
lines changed

alternatives/server-micronaut-java/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
## Autorestart
44

5-
You can disable autorestart in `src/main/resources/application.yml` if you would rather restart manually with `taito restart:server`.
5+
You can turn autorestart on/off in `src/main/resources/application.yml`. Note that you can manually restart the server at anytime with `taito restart:server`.

alternatives/server-micronaut-java/bin/main/.gitignore

Lines changed: 0 additions & 5 deletions
This file was deleted.

alternatives/server-micronaut-java/bin/main/application.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ micronaut:
55
io:
66
watch:
77
paths: src/main/java
8-
restart: true
8+
restart: false
99

1010
---
1111
datasources:
1212
default:
13+
# TODO: DATABASE_PORT
1314
url: jdbc:postgresql://${DATABASE_HOST}:5432/${DATABASE_NAME}
1415
username: ${DATABASE_USER}
1516
password: ${DATABASE_PASSWORD}
@@ -20,4 +21,7 @@ datasources:
2021
---
2122
kafka:
2223
bootstrap:
23-
servers: localhost:9092
24+
servers: ${KAFKA_HOST}:${KAFKA_PORT}
25+
producers:
26+
default:
27+
retries: 5

alternatives/server-micronaut-java/bin/test/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

alternatives/server-micronaut-java/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ dependencies {
5757
testCompile "io.micronaut.test:micronaut-test-junit5"
5858
testRuntime "org.junit.jupiter:junit-jupiter-engine"
5959

60-
// Database and database class generation
60+
compile "org.apache.commons:commons-lang3:3.9"
61+
62+
// Database, jooq, and jooq class generation
6163
compile 'io.micronaut:micronaut-spring' // For db transaction support
6264
runtime 'org.springframework:spring-jdbc' // For db transaction support
6365
compile 'org.jooq:jooq:3.11.11'
@@ -68,12 +70,10 @@ dependencies {
6870
generate 'org.jooq:jooq-codegen:3.11.11'
6971
generate 'org.postgresql:postgresql:42.2.5'
7072
runtime 'org.postgresql:postgresql:42.2.5'
71-
7273
generate "javax.xml.bind:jaxb-api:2.3.0"
7374
generate "com.sun.xml.bind:jaxb-core:2.3.0"
7475
generate "com.sun.xml.bind:jaxb-impl:2.3.0"
7576
generate "javax.activation:activation:1.1.1"
76-
7777
}
7878

7979
test.classpath += configurations.developmentOnly

alternatives/server-micronaut-java/src/main/java/content/Post.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,14 @@ public class Post {
55
public String subject;
66
public String content;
77
public String author;
8+
9+
public Post() {}
10+
11+
public Post(String id, String subject, String content, String author) {
12+
this.id = id;
13+
this.subject = subject;
14+
this.content = content;
15+
this.author = author;
16+
}
17+
818
}

alternatives/server-micronaut-java/src/main/java/content/PostDAO.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,16 @@ public class PostDAO {
1515
private @Inject DSLContext jooq;
1616

1717
public List<Post> fetch() {
18-
return jooq.selectFrom(POSTS).orderBy(POSTS.ID).fetchInto(Post.class);
18+
return jooq.selectFrom(POSTS)
19+
.orderBy(POSTS.CREATED_AT.desc())
20+
.fetchInto(Post.class);
1921
}
2022

2123
public Post create(Post post) {
22-
jooq.insertInto(POSTS, POSTS.SUBJECT, POSTS.AUTHOR, POSTS.CONTENT).values(post.subject, post.author, post.content)
23-
.returning(POSTS.ID, POSTS.SUBJECT, POSTS.AUTHOR, POSTS.CONTENT);
24-
// .fetchOne().into(Post.class);
24+
jooq.insertInto(POSTS, POSTS.SUBJECT, POSTS.AUTHOR, POSTS.CONTENT)
25+
.values(post.subject, post.author, post.content)
26+
.returning(POSTS.ID, POSTS.SUBJECT, POSTS.AUTHOR, POSTS.CONTENT)
27+
.fetchOne().into(Post.class);
2528
return post;
2629
}
2730

alternatives/server-micronaut-java/src/main/java/content/PostService.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package content;
22

3+
import io.micronaut.spring.tx.annotation.Transactional;
4+
35
import java.util.List;
46

57
import javax.inject.Inject;
68
import javax.inject.Singleton;
79

8-
// import io.micronaut.spring.tx.annotation.Transactional;
9-
1010
@Singleton
1111
public class PostService {
1212

@@ -17,7 +17,10 @@ public List<Post> fetch() {
1717
return postDAO.fetch();
1818
}
1919

20-
// @Transactional
20+
// TODO: @Transactional does not work properly?
21+
// package org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy
22+
// not in classpath?
23+
@Transactional
2124
public Post create(Post post) {
2225
return postDAO.create(post);
2326
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package content;
2+
3+
import javax.inject.Inject;
4+
5+
import io.micronaut.configuration.kafka.annotation.KafkaKey;
6+
import io.micronaut.configuration.kafka.annotation.KafkaListener;
7+
import io.micronaut.configuration.kafka.annotation.OffsetReset;
8+
import io.micronaut.configuration.kafka.annotation.Topic;
9+
10+
@KafkaListener(offsetReset = OffsetReset.EARLIEST)
11+
public class UserListener {
12+
13+
@Inject
14+
PostService postService;
15+
16+
@Topic("users")
17+
public void receive(@KafkaKey String id, String username) {
18+
postService.create(new Post(null, "User " + username + " was added!",
19+
"Let's make him/her feel welcome", "System"));
20+
}
21+
22+
}

alternatives/server-micronaut-java/src/main/java/management/Company.java

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)