Skip to content

Commit 5ee5e7c

Browse files
committed
Polishing up through ch 8.
1 parent bee0953 commit 5ee5e7c

File tree

58 files changed

+202
-347
lines changed

Some content is hidden

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

58 files changed

+202
-347
lines changed

1-classic/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>2.3.0.M4</version>
8+
<version>2.3.0.RC1</version>
99
<relativePath/> <!-- lookup parent from repository -->
1010
</parent>
1111
<groupId>com.greglturnquist</groupId>

1-reactive/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<parent>
1010
<groupId>org.springframework.boot</groupId>
1111
<artifactId>spring-boot-starter-parent</artifactId>
12-
<version>2.3.0.M4</version>
12+
<version>2.3.0.RC1</version>
1313
<relativePath/> <!-- lookup parent from repository -->
1414
</parent>
1515
<!-- end::parent[] -->

1-reactive/src/main/java/com/greglturnquist/hackingspringboot/reactive/HackingSpringBootApplication.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
public class HackingSpringBootApplication {
99

1010
public static void main(String[] args) {
11-
SpringApplication.run( //
12-
HackingSpringBootApplication.class, args);
11+
SpringApplication.run(HackingSpringBootApplication.class, args);
1312
}
1413
}
1514
// end::code[]

1-reactive/src/main/java/com/greglturnquist/hackingspringboot/reactive/KitchenService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ public class KitchenService {
3131
* Generates continuous stream of dishes.
3232
*/
3333
Flux<Dish> getDishes() {
34-
return Flux //
35-
.<Dish> generate(sink -> sink.next(randomDish())) //
34+
return Flux.<Dish> generate(sink -> sink.next(randomDish())) //
3635
.delayElements(Duration.ofMillis(250));
3736
}
3837

1-reactive/src/main/java/com/greglturnquist/hackingspringboot/reactive/ServerController.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,14 @@ public ServerController(KitchenService kitchen) {
3030
this.kitchen = kitchen;
3131
}
3232

33-
@GetMapping(value = "/server", //
34-
produces = MediaType.TEXT_EVENT_STREAM_VALUE)
33+
@GetMapping(value = "/server", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
3534
Flux<Dish> serveDishes() {
3635
return this.kitchen.getDishes();
3736
}
3837
// end::controller[]
3938

4039
// tag::deliver[]
41-
@GetMapping(value = "/served-dishes", //
42-
produces = MediaType.TEXT_EVENT_STREAM_VALUE)
40+
@GetMapping(value = "/served-dishes", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
4341
Flux<Dish> deliverDishes() {
4442
return this.kitchen.getDishes() //
4543
.map(dish -> deliver(dish));

1-reactive/src/test/java/com/greglturnquist/hackingspringboot/reactive/DishMetaphor.java

Lines changed: 12 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -70,25 +70,13 @@ class PoliteServer {
7070

7171
Flux<Dish> doingMyJob() {
7272
return this.kitchen.getDishes() //
73-
.doOnNext(dish -> thanks(dish)) //
74-
.doOnError(error -> sorry(error)) //
75-
.doOnComplete(() -> goodWork()) //
73+
.doOnNext(dish -> System.out.println("Thank you for " + dish + "!")) //
74+
.doOnError(error -> System.out.println("So sorry about " //
75+
+ error.getMessage())) //
76+
.doOnComplete(() -> System.out.println("Thanks for all your hard work!")) //
7677
.map(this::deliver);
7778
}
7879

79-
void thanks(Dish dish) {
80-
System.out.println("Thank you for " + dish + "!");
81-
}
82-
83-
void sorry(Throwable error) {
84-
System.out.println("So sorry about " //
85-
+ error.getMessage());
86-
}
87-
88-
void goodWork() {
89-
System.out.println("Thanks for all your hard work!");
90-
}
91-
9280
Dish deliver(Dish dish) {
9381
dish.setDelivered(true);
9482
return dish;
@@ -108,26 +96,14 @@ Flux<Dish> doingMyJob() {
10896
// tag::multiple-side-effects[]
10997
return this.kitchen.getDishes() //
11098
.doOnNext(dish -> {
111-
thanks(dish);
112-
markAsDone();
113-
grabSomeSilverware();
99+
System.out.println("Thank you for " + dish + "!");
100+
System.out.println("Marking the ticket as done.");
101+
System.out.println("Grabbing some silverware.");
114102
}) //
115103
.map(this::deliver);
116104
// end::multiple-side-effects[]
117105
}
118106

119-
void thanks(Dish dish) {
120-
System.out.println("Thank you for " + dish + "!");
121-
}
122-
123-
void markAsDone() {
124-
System.out.println("Marking the ticket as done.");
125-
}
126-
127-
void grabSomeSilverware() {
128-
System.out.println("Grabbing some silverware.");
129-
}
130-
131107
Dish deliver(Dish dish) {
132108
dish.setDelivered(true);
133109
return dish;
@@ -145,25 +121,15 @@ class BusyServer2 {
145121
Flux<Dish> doingMyJob() {
146122
// tag::multiple-side-effects2[]
147123
return this.kitchen.getDishes() //
148-
.doOnNext(dish -> thanks(dish)) //
149-
.doOnNext(dish -> markAsDone()) //
150-
.doOnNext(dish -> grabSilverware()) //
124+
.doOnNext( //
125+
dish -> System.out.println("Thank you for " + dish + "!")) //
126+
.doOnNext( //
127+
dish -> System.out.println("Marking the ticket as done.")) //
128+
.doOnNext(dish -> System.out.println("Grabbing some silverware.")) //
151129
.map(this::deliver);
152130
// end::multiple-side-effects2[]
153131
}
154132

155-
void thanks(Dish dish) {
156-
System.out.println("Thank you for " + dish + "!");
157-
}
158-
159-
void markAsDone() {
160-
System.out.println("Marking the ticket as done.");
161-
}
162-
163-
void grabSilverware() {
164-
System.out.println("Grabbing some silverware.");
165-
}
166-
167133
Dish deliver(Dish dish) {
168134
dish.setDelivered(true);
169135
return dish;

2-classic/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parent>
88
<groupId>org.springframework.boot</groupId>
99
<artifactId>spring-boot-starter-parent</artifactId>
10-
<version>2.3.0.M4</version>
10+
<version>2.3.0.RC1</version>
1111
<relativePath/> <!-- lookup parent from repository -->
1212
</parent>
1313

2-reactive/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parent>
88
<groupId>org.springframework.boot</groupId>
99
<artifactId>spring-boot-starter-parent</artifactId>
10-
<version>2.3.0.M4</version>
10+
<version>2.3.0.RC1</version>
1111
<relativePath/> <!-- lookup parent from repository -->
1212
</parent>
1313

2-reactive/src/main/java/com/greglturnquist/hackingspringboot/reactive/CartRepository.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
* @author Greg Turnquist
2222
*/
2323
// tag::code[]
24-
public interface CartRepository extends //
25-
ReactiveCrudRepository<Cart, String> {
24+
public interface CartRepository extends ReactiveCrudRepository<Cart, String> {
2625

2726
}
2827
// end::code[]

2-reactive/src/main/java/com/greglturnquist/hackingspringboot/reactive/CartService.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ class CartService {
3030
private final ItemRepository itemRepository;
3131
private final CartRepository cartRepository;
3232

33-
CartService(ItemRepository itemRepository, // <2>
34-
CartRepository cartRepository) {
33+
CartService(ItemRepository itemRepository, CartRepository cartRepository) { // <2>
3534
this.itemRepository = itemRepository;
3635
this.cartRepository = cartRepository;
3736
}

2-reactive/src/main/java/com/greglturnquist/hackingspringboot/reactive/ItemRepository.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@
1818
// tag::code[]
1919
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
2020

21-
public interface ItemRepository extends //
22-
ReactiveCrudRepository<Item, String> {
21+
public interface ItemRepository extends ReactiveCrudRepository<Item, String> {
2322

2423
}
2524
// end::code[]

2-reactive/src/test/java/com/greglturnquist/hackingspringboot/reactive/BlockingItemRepository.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
* @author Greg Turnquist
2424
*/
2525
// tag::code[]
26-
interface BlockingItemRepository extends //
27-
CrudRepository<Item, String> {
26+
interface BlockingItemRepository extends CrudRepository<Item, String> {
2827

2928
}
3029
// end::code[]

2-reactive/src/test/java/com/greglturnquist/hackingspringboot/reactive/RepositoryDatabaseLoader.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@
2727
public class RepositoryDatabaseLoader {
2828

2929
@Bean // <2>
30-
CommandLineRunner initialize( //
31-
BlockingItemRepository repository) { // <3>
30+
CommandLineRunner initialize(BlockingItemRepository repository) { // <3>
3231
return args -> { // <4>
3332
repository.save(new Item("Alf alarm clock", 19.99));
3433
repository.save(new Item("Smurf TV tray", 24.99));

2-reactive/src/test/java/com/greglturnquist/hackingspringboot/reactive/Sample1.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@ void demo2() {
4747

4848
// tag::2[]
4949
if (cart.getCartItems().stream() //
50-
.anyMatch(cartItem -> cartItem.getItem() //
51-
.getId().equals("5"))) {
50+
.anyMatch(cartItem -> cartItem.getItem().getId().equals("5"))) {
5251
// increment
5352
} else {
5453
// add new CartItem

2b-reactive/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<parent>
88
<groupId>org.springframework.boot</groupId>
99
<artifactId>spring-boot-starter-parent</artifactId>
10-
<version>2.3.0.M4</version>
10+
<version>2.3.0.RC1</version>
1111
<relativePath/> <!-- lookup parent from repository -->
1212
</parent>
1313

2b-reactive/src/main/java/com/greglturnquist/hackingspringboot/reactive/HomeController.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,7 @@ Mono<Rendering> search( //
103103
@RequestParam boolean useAnd) {
104104
return Mono.just(Rendering.view("home.html") // <3>
105105
.modelAttribute("results", //
106-
inventoryService //
107-
.searchByExample(name, description, useAnd)) // <4>
106+
inventoryService.searchByExample(name, description, useAnd)) // <4>
108107
.build());
109108
}
110109
// end::search[]

2b-reactive/src/main/java/com/greglturnquist/hackingspringboot/reactive/InventoryService.java

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,16 @@ Flux<Item> getItems() {
5252
}
5353

5454
// tag::code-2[]
55-
Flux<Item> search(String partialName, //
56-
String partialDescription, boolean useAnd) {
55+
Flux<Item> search(String partialName, String partialDescription, boolean useAnd) {
5756
if (partialName != null) {
5857
if (partialDescription != null) {
5958
if (useAnd) {
60-
return repository.findByNameContainingAndDescriptionContainingAllIgnoreCase(partialName, partialDescription);
59+
return repository //
60+
.findByNameContainingAndDescriptionContainingAllIgnoreCase( //
61+
partialName, partialDescription);
6162
} else {
62-
return repository.findByNameContainingOrDescriptionContainingAllIgnoreCase(partialName, partialDescription);
63+
return repository.findByNameContainingOrDescriptionContainingAllIgnoreCase( //
64+
partialName, partialDescription);
6365
}
6466
} else {
6567
return repository.findByNameContaining(partialName);
@@ -75,8 +77,7 @@ Flux<Item> search(String partialName, //
7577
// end::code-2[]
7678

7779
// tag::code-3[]
78-
Flux<Item> searchByExample(String name, //
79-
String description, boolean useAnd) {
80+
Flux<Item> searchByExample(String name, String description, boolean useAnd) {
8081
Item item = new Item(name, description, 0.0); // <1>
8182

8283
ExampleMatcher matcher = (useAnd // <2>
@@ -93,19 +94,15 @@ Flux<Item> searchByExample(String name, //
9394
// end::code-3[]
9495

9596
// tag::code-4[]
96-
Flux<Item> searchByFluentExample(String name, //
97-
String description) {
97+
Flux<Item> searchByFluentExample(String name, String description) {
9898
return fluentOperations.query(Item.class) //
99-
.matching(query( //
100-
where("TV tray").is(name) //
101-
.and("Smurf").is(description))) //
99+
.matching(query(where("TV tray").is(name).and("Smurf").is(description))) //
102100
.all();
103101
}
104102
// end::code-4[]
105103

106104
// tag::code-5[]
107-
Flux<Item> searchByFluentExample(String name, //
108-
String description, boolean useAnd) {
105+
Flux<Item> searchByFluentExample(String name, String description, boolean useAnd) {
109106
Item item = new Item(name, description, 0.0);
110107

111108
ExampleMatcher matcher = (useAnd //
@@ -116,8 +113,7 @@ Flux<Item> searchByFluentExample(String name, //
116113
.withIgnorePaths("price");
117114

118115
return fluentOperations.query(Item.class) //
119-
.matching(query( //
120-
byExample(Example.of(item, matcher)))) //
116+
.matching(query(byExample(Example.of(item, matcher)))) //
121117
.all();
122118
}
123119
// end::code-5[]

2b-reactive/src/main/java/com/greglturnquist/hackingspringboot/reactive/ItemByExampleRepository.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
* @author Greg Turnquist
2323
*/
2424
// tag::code[]
25-
public interface ItemByExampleRepository extends //
26-
ReactiveQueryByExampleExecutor<Item> {
25+
public interface ItemByExampleRepository extends ReactiveQueryByExampleExecutor<Item> {
2726

2827
}
2928
// end::code[]

2b-reactive/src/main/java/com/greglturnquist/hackingspringboot/reactive/ItemRepository.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
2222

2323
// tag::code[]
24-
public interface ItemRepository extends //
25-
ReactiveCrudRepository<Item, String> {
24+
public interface ItemRepository extends ReactiveCrudRepository<Item, String> {
2625

2726
Flux<Item> findByNameContaining(String partialName);
2827
// end::code[]

2b-reactive/src/test/java/com/greglturnquist/hackingspringboot/reactive/FluentService.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,17 +31,15 @@
3131
@Service
3232
public class FluentService {
3333

34-
private final ReactiveFluentMongoOperations fluentMongoOperations;
35-
36-
public FluentService(ReactiveFluentMongoOperations fluentMongoOperations) {
37-
this.fluentMongoOperations = fluentMongoOperations;
38-
}
39-
40-
Flux<Item> searchFluently(String name, String description) {
41-
return fluentMongoOperations.query(Item.class)
42-
.matching(query(
43-
where("name").is(name)
44-
.and("description").is(description)))
45-
.all();
46-
}
34+
private final ReactiveFluentMongoOperations fluentMongoOperations;
35+
36+
public FluentService(ReactiveFluentMongoOperations fluentMongoOperations) {
37+
this.fluentMongoOperations = fluentMongoOperations;
38+
}
39+
40+
Flux<Item> searchFluently(String name, String description) {
41+
return fluentMongoOperations.query(Item.class) //
42+
.matching(query(where("name").is(name).and("description").is(description))) //
43+
.all();
44+
}
4745
}

2b-reactive/src/test/java/com/greglturnquist/hackingspringboot/reactive/InventoryController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@ class InventoryController {
3838

3939
@GetMapping(value = "/items", produces = "application/stream+json")
4040
Flux<Item> findInventoryData(@RequestParam("q") String q) {
41-
return this.service.getItems()
42-
.filter(item -> item.getName().contains(q));
41+
return this.service.getItems() //
42+
.filter(item -> item.getName().contains(q));
4343
}
4444
}
4545
// end::code[]

3-classic/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>2.3.0.M4</version>
8+
<version>2.3.0.RC1</version>
99
<relativePath/> <!-- lookup parent from repository -->
1010
</parent>
1111
<groupId>com.greglturnquist</groupId>

3-reactive/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>org.springframework.boot</groupId>
77
<artifactId>spring-boot-starter-parent</artifactId>
8-
<version>2.3.0.M4</version>
8+
<version>2.3.0.RC1</version>
99
<relativePath/> <!-- lookup parent from repository -->
1010
</parent>
1111
<groupId>com.greglturnquist</groupId>

0 commit comments

Comments
 (0)