Skip to content

Commit 7aa3d66

Browse files
committed
feat: micronaut products example
1 parent 2f89bd6 commit 7aa3d66

File tree

10 files changed

+99
-131
lines changed

10 files changed

+99
-131
lines changed

alternatives/server-micronaut-java/src/main/java/content/UserListener.java renamed to alternatives/server-micronaut-java/src/main/java/content/ProductListener.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88
import io.micronaut.configuration.kafka.annotation.Topic;
99

1010
@KafkaListener(offsetReset = OffsetReset.EARLIEST)
11-
public class UserListener {
11+
public class ProductListener {
1212

1313
@Inject
1414
PostService postService;
1515

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"));
16+
@Topic("products")
17+
public void receive(@KafkaKey String operation, String filter) {
18+
postService.create(new Post(null, "Products fetch",
19+
"Someone is interested of our products. Go and sell!", "System"));
2020
}
2121

2222
}

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

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

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

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

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

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

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

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package products;
2+
3+
public class Product {
4+
public String id;
5+
public String name;
6+
7+
public Product() {
8+
}
9+
10+
public Product(String id, String name) {
11+
this.id = id;
12+
this.name = name;
13+
}
14+
15+
public Product(Product product) {
16+
this.id = product.id;
17+
this.name = product.name;
18+
}
19+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package products;
2+
3+
import io.micronaut.http.annotation.Controller;
4+
import io.micronaut.http.annotation.Get;
5+
6+
import java.util.List;
7+
8+
import javax.inject.Inject;
9+
10+
import common.Envelope;
11+
12+
@Controller("/products")
13+
public class ProductController {
14+
15+
public static class ProductsEnvelope extends Envelope<List<Product>> {
16+
public ProductsEnvelope(List<Product> products) {
17+
super(products);
18+
}
19+
}
20+
21+
@Inject
22+
ProductService productService;
23+
24+
@Get("/")
25+
public ProductsEnvelope fetch() {
26+
return new ProductsEnvelope(productService.fetch());
27+
}
28+
29+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package products;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
6+
import javax.inject.Singleton;
7+
8+
/**
9+
* Fake ProductDAO that does nothing
10+
*/
11+
@Singleton
12+
public class ProductDAO {
13+
14+
public List<Product> fetch() {
15+
return Arrays.asList(
16+
new Product("fj35-f3k4", "product1"),
17+
new Product("gj33-f3k4", "product2"));
18+
}
19+
20+
}
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
package management;
1+
package products;
22

33
import io.micronaut.configuration.kafka.annotation.KafkaClient;
44
import io.micronaut.configuration.kafka.annotation.KafkaKey;
55
import io.micronaut.configuration.kafka.annotation.Topic;
66

77
@KafkaClient
8-
public interface UserProducer {
8+
public interface ProductProducer {
99

10-
@Topic("users")
11-
void send(@KafkaKey String id, String username);
10+
@Topic("products")
11+
void send(@KafkaKey String id, String name);
1212

1313
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package products;
2+
3+
import java.util.List;
4+
5+
import javax.inject.Inject;
6+
import javax.inject.Singleton;
7+
8+
@Singleton
9+
public class ProductService {
10+
11+
@Inject
12+
ProductDAO productDAO;
13+
14+
@Inject
15+
ProductProducer productProducer;
16+
17+
public List<Product> fetch() {
18+
productProducer.send("fetch", "all");
19+
return productDAO.fetch();
20+
}
21+
22+
}

0 commit comments

Comments
 (0)