Errata

Cloud Native Java

Errata for Cloud Native Java

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Printed, PDF, ePub, Mobi, , Other Digital Version Page frontmatter
whole page

Please add a praise page to the book in future printings, containing this quote:

In today's climate of digital transformation and "software eating the world", many businesses and even more developers and IT professionals have already begun a journey to Cloud Native. Some have already arrived, and still more are toying with the idea, whether they realize it or not. Cloud Native in some ways is just a badge for a bunch of sensible best practices for distributed systems, but naming something can be useful: it can make it tangible and give us hooks, as practitioners, architects, developers or operators, on which to hang our discussions and analyses. In this book, Josh and Kenny have described in vivid detail a substantial overview of landscape of distributed systems technology, with abundant details where needed, in a style that will enlighten and amuse. The tools we use to deliver the Cloud Native vision might change over time, but the basic principles will change less, and the practical approach in this book will stay relevant, even if the tools change. The topics range widely, and it is especially interesting to see an emphasis on events and stream processing, which are only given relatively shallow treatment elsewhere, but are rapidly becoming part of the foundations of the modern distributed architecture. The book has a wealth of practical examples and source code, and although the technology stack used in the is quite specific (Java, and also mostly Spring and Cloud Foundry), I hope that this book will find readers outside the existing user base for those tools, because the lessons are deep, general, and grounded in real practice by the authors over the course of their careers. I predict that all who are on that Cloud Native journey, no matter if just starting or already nearing the destination, will benefit from understanding and applying the distilled insight and experience in Cloud Native Java.

—Dr. Dave Syer, Spring Framework contributor and Spring Boot and Spring Cloud co-founder

Nan Barber  Aug 11, 2017 
Printed, PDF, ePub, Mobi, , Other Digital Version Page About the Authors; Back Cover
Bio for Josh Long

Please use Josh's new bio:

Josh Long is a Spring Developer Advocate at Pivotal (www.lanyrd.com/starbuxman), an open-source contributor (Spring Boot, Spring Integration, Spring Cloud, Spring Integration, Activiti, Vaadin, etc.), a Java Champion, coauthor or lead author on numerous books and video trainings (including "Building Microservices with Spring Boot Livelessons" with Spring Boot cofounder Phil Webb), and a blogger at www.joshlong.com and www.spring.io/team/jlong. Twitter: (@starbuxman)

Nan Barber  Sep 13, 2017 
Printed Page xvi
2nd paragraph

The phrase "an still larger application server" uses the wrong article for a/an. It should read, "a still larger application server"

Paul Ojanen  Sep 25, 2017 
Printed Page xi
3rd paragraph

In the paragraph on attribution, the example attribution should include the book's actual title rather than the placeholder, "Book Title." The other data in the example are real: copyright year, authors, ISBN.

Paul Ojanen  Sep 27, 2017 
Printed Page xvii
3rd paragraph

It seems like the book consistently makes use of the serial comma. However, in the second-to-last sentence, the serial is omitted. There should probably be one before the final conjunction in the phrase, "solutions for infrastructure, testing, middleware, continuous integration and delivery, development frameworks and cloud platforms."

Paul Ojanen  Sep 27, 2017 
Printed Page back cover
bottom

"Josh Long is a Spring developer advocate" should be "Josh Long is a Spring Developer Advocate" to be consistent with a section about Kenny Bastani and About the Authors page.

Boris  Oct 11, 2017 
Printed Page n/a
n/a

Bullet points (black circles with numbers) are used inconsistently on code examples throughout the book. Sometimes it is opposite, sometimes it is above and sometimes it is inline with the code line.

Boris  Oct 11, 2017 
Digital
4th paragraph under the section titled "Remote Partitioning a Spring Batch Job with Messaging"

The 4th paragraph talks about Remote Chunking and states the following:
"Remote Chunking is similar to remote partitioning, except that data is read on the leader node and sent over the wire to the leader node for processing."

I believe the intent was for the wording to be "... and sent over the wire to the worker node for processing"

Jonathan L Meek  Jun 15, 2020 
Other Digital Version 2
Below Figure 2-18

Section i. Basics
Chapter 2 Bootcamp
Subsection CLoud Foundry

Edition Kindle Edition (probably in every Edition)

Cite:
"Target the appropriate Cloud Foundry instance using cf target api.run.pivotal.io,..."

Mistake
This should probably mean to set the API endpoint to Pivotal API URL. The correct command is "cf api api.run.pivotal.io"

"cf target" would make it necessary to specify org and/or space

Anonymous  Aug 24, 2017 
PDF Page 17
Figure 1-3

The white box on the upper-left corner, says 'Environment'.

But it should be 'Dev'. See Figure 1-2.

hanmomhanda  Oct 28, 2017 
Printed Page 20
2nd paragraph

Stout is what I order at a bar - stdout is where I write my event streams. text reads: write logs as an ordered event stream to stout.

Steve Campbell  Sep 19, 2017 
Printed Page 23
2nd paragraph

"a SQL database" should be "an SQL database"
See, for example, ISO/IEC FDIS 9075-1 Information technology - Database languages - SQL - Part 1: Framework (SQL/Framework).

Boris  Oct 11, 2017 
Other Digital Version 31
Figure 3.1

Section i. Basics
Chapter 2 Twelve Factor Applications Style
Subsection The Spring Cloud Config Clients

Edition Kindle Edition (probably in every Edition)

Figure 3-1. vs description:

In the text as well as in the GitHub repo the file is named configuration-client.properties. The screenshots points to config-client in the URL.Not really an error, but a bit misleading/inconsistent

Anonymous  Aug 24, 2017 
Other Digital Version 39
Example 3-9

Section i. Basics
Chapter 2 Twelve Factor Applications Style
Subsection The Spring Cloud Config Server

Edition Kindle Edition (probably in every Edition)

Cite:
Example 3-9. The configuration server’s configuration, src/ main/ resources/ application.yml

Mistake
This is not a YAML file but a .properties file
(see also https://github.com/cloud-native-java/configuration/blob/master/configuration-service/src/main/resources/application.properties)

Anonymous  Aug 24, 2017 
Other Digital Version 51
Example 5-14

Section i. Basics
Chapter 5 The Forklifted Application
Subsection Idenrtity Management

Edition Kindle Edition (probably in every Edition)


Citation:
email.setHtml(" < hi >" + message + "</ h1 >");

Should be:
email.setHtml(" < h1 >" + message + "</ h1 >");


Anonymous  Aug 27, 2017 
Printed Page 61
example code

path: target/spring-configuration.jar name is different from target/configuration.jar on page 60. I believe, it should be:
path: target/configuration.jar

Boris  Oct 11, 2017 
Other Digital Version 77
Example 7-7 RibbonCLR.java

Section II. Web Services
Chapter 7 Routing
Subsection The Discovery Client Abstraction

Edition: Kindle Edition (probably in every Edition)

The description of the statements following to Example 7-7 is not correct. It is identical to the example 7-6 (where it fitted)

Anonymous  Sep 01, 2017 
Printed Page 77
7th bullet point

"annotatedparameters" should be "annotated parameters"

Boris  Oct 11, 2017 
Printed Page 78
example code

@Configuration annotation on class Application should be replaced with @SpringBootApplication annotation.

Boris  Oct 11, 2017 
Printed Page 95
example code

ApplicationContextTests class should be renamed to ApplicationTests as explained on pages 94 and 95.

Boris  Oct 11, 2017 
Printed Page 99
1st bullet point

After the 1st bullet point there should be one more bullet point: "Creates a Mockito mock for the AccountRepository component."

Boris  Oct 11, 2017 
Printed Page 105
2nd paragraph above Example 4-7

The .json file live in a directory structure in src/main/resources ...
This should be src/test/resources as displayed in Example 4-7

Tim Riemer  Sep 10, 2017 
PDF Page 133
3rd paragraph

The Message needs to implement java.io.Serializable

should be

The MessageService needs to implement java.io.Serializable

hanmomhanda  Oct 28, 2017 
PDF Page 133
Example 5-7

Example 5-7 says 'DemoApplicationTests.java', but there is no DemoApplicationTests but DemoApplicationClientConfiguration in Example 5-7.

I guess some code is missing.

hanmomhanda  Oct 28, 2017 
PDF Page 133
3rd paragraph

Spring provides mirror image components to
create clients for these remote services based on an agreed-upon service interface ...

I don't understand what 'mirror image components' means.
Please explain in more specific expression, for example, 'Spring copies the agreed service interface to the client'.

hanmomhanda  Oct 28, 2017 
141
Example 14-8 - Description of example

Section IV. Production
Chapter 14 Service Brokers

Edition: Kindle Edition/Safari Online Edition

The description of the statements following to Example 14-8 is not correct. The text states that the method is "GetLastServiceOperationRequest", but the method name is "GetLastOperation"

Anonymous  Sep 04, 2017 
PDF Page 150
2nd paragraph

What is the meaning of 'The swamp of POX'?

Oh, Myung Woon  Nov 11, 2017 
Printed Page 157
4th paragraph

Callbale<T> should be Callable<T>

Aad Rijnberg  Feb 22, 2020 
PDF Page 178
2nd paragraph, starting with (2)

The boook says,

The documentationConfiguration static method simply registers the RestDocu
mentation object with the MockMvc object, which the tests use to exercise the API

But there is no 'documentationConfiguration static method' in the example code.

Oh, Myung Woon  Nov 12, 2017 
PDF Page 178
1st graph, starting with (2)

The book says,

(1) Test rules support cross-cutting concerns from the tests they’re configured on. In
this case, the RestDocumentation rule will emit Asciidoctor snippets to the tar
get/generated-snippets directory when the tests are run.

But in example code, (1) is NOT indicating test rule but indicating @AutoConfigureRestDocs.

So explanation in (1) needs to be rewritten.

Oh, Myung Woon  Nov 12, 2017 
PDF Page 180
3rd paragraph except source code

Here is how you would bring in the response-fields.adoc snippet: include::{snip pets}/error-example/response-fields.adoc[].

What is "include::{snippets}/error-example/response-fields.adoc[]"?

Please clarify if that is a part of a source code/configuration file or command-line command or whatever.

Oh, Myung Woon  Nov 08, 2017 
Printed Page 190
5th bullet point

"Here, what seems like an instance variable, ptr, is actually..." should be "Here, what seems like an instance variable, movies, is actually..."

Boris  Oct 11, 2017 
Printed Page 205
Numbered explanations below the code of example 7.7

The explanations (points "1", "2" and "3") are a copy of the ones that are below the code of example 7.6. For example 7.7 these explanations should clearly be different.

Anonymous  Feb 22, 2020 
Printed Page 228
2nd paragraph

Duplicative word used in the 2nd to last sentence of the paragraph.

"One option is to keep a dynamic white list on the edge service, filtering clients against those registered registered in the registry."

Note the mistake: "registered registered".

Andrew Zurn  Apr 13, 2019 
Printed Page 238
Explanation number 4

centerpeice -> centerpiece

Aad Rijnberg  Feb 23, 2020 
Printed Page 249
2nd paragraph (in the breakout "tip" section)

Missing word in the sentence, "Technologies like the Spring Cloud Authorization Server play an important in an architecture."

Note the mistake: "play an important <likely missing noun> in an architecture".

Andrew Zurn  Apr 13, 2019 
Printed Page 256
example code

anOAuth2RestTemplate method should not have a leading space before UserInfoRestTemplateFactory.

Boris  Oct 11, 2017 
Printed Page 298
2nd paragraph

It reads "...we can do the same for our other domain classes in the Account Context." However all 4 classes have been covered by this point.

Boris  Oct 11, 2017 
ePub Page 299
2nd paragraph

Callbale<T> instead of Callable<T>

Anonymous  Oct 11, 2018 
Printed Page 306
example code

Why joda time library is being used and not Java SE 8 Date and Time?

Boris  Oct 11, 2017 
Printed Page 312
1st paragraph

"a thishipment" should be "a shipment"

Boris  Oct 11, 2017 
Printed Page 319
last paragraph

"We'll again use the PagingAndSortingRepository..." should be "We'll again use the GraphRepository..." as per Example 9-32.

Boris  Oct 11, 2017 
Printed Page 325
Caching section / 5th paragraph

You are talking about colors whereas the book is printed in black & white: "As we can see in Figure 9-15, the User Service (colored in green)..."

There is the same issue on the following page (p326) for the general note.

Stephane Toussaint  Sep 17, 2017 
Printed Page 327
4th paragraph (after the tip paragrap)

memorize is type memoize ('z' character is missing)

Stephane Toussaint  Sep 17, 2017 
Printed Page 356
4th bullet point

"We want to write 10 records..." should be "We want to write 1000 records..." as per code in Example 11-1.

Boris  Oct 11, 2017 
Printed Page 357
6th bullet point

"...from Step1Configuration." should be "...from Step2Configuration".

Boris  Oct 11, 2017 
Printed Page 366
4th paragraph

There is no reference to "worker node" in this paragraph. The second reference to "leader node" should be replaced with "worker node" The current reading is incorrect.

"...data is read on the leader node and sent over the wire to the leader node..." is incorrect.

"...data is read on the leader node and sent over the wire to the worker node..." is correct.

Paul Ojanen  Sep 25, 2017 
Printed Page 375
1st bullet point

"generated" is in the wrong tense. "generate" is correct.

Paul Ojanen  Sep 25, 2017 
Printed Page 375
1st bullet point

Consider placing an article after the verb, "send", so that it reads, "send a Reset Password email"

Paul Ojanen  Sep 25, 2017 
Printed Page 384
example code

Lambda expressions of forEach steps should be indented.

Boris  Oct 11, 2017 
Printed Page 385
last paragraph

It reads "...Mashape email validation REST API (introduced in the discussion on Spring Batch)", however it has not been introduced yet at this point in the book.

Boris  Oct 11, 2017 
Printed Page 386
example code

Why Apache StringUtils is being used and not StringUtils from Spring Framework?

Boris  Oct 11, 2017 
Printed Page 390
example code

Lambda expression of handle step should be indented.

Boris  Oct 11, 2017 
Printed Page 398
example code

Why System.currentTimeMillis() is being used and not Java 8 Date and Time?

Boris  Oct 11, 2017 
Printed Page 400
1st paragraph

"It's not too hard to build a working SEC on top of the primitives a workflow system like Activity provides" sentence does not make a sense.

Boris  Oct 11, 2017 
Printed Page 409
3rd paragraph

"like on (ComplaintFiledEvent cce)" should be "like on (ComplaintFiledEvent cfe)"

Boris  Oct 11, 2017 
Printed Page 411-412
Example 12-9 and Example 12-10

The same example code is used in both code snippets.

Example 12-9, which says it should be the CommentAddedEvent class, actually displays the ComplaintClosedEvent code snippet, which is meant to be displayed (correctly) in Example 12-10.

Andrew Zurn  Apr 13, 2019 
Printed Page 438
example code

Example 12-22 is not nicely split between pages 437 and 438.

Boris  Oct 11, 2017 
Printed Page 439
1st paragraph

"...arranging for messages that leave the log application's output channel to be routed to the time application's input..." should be "...arranging for messages that leave the time application's output channel to be routed to the log application's input..."

Boris  Oct 11, 2017 
Printed Page 498
3rd paragraph

The paragraph ends with "The Hystrix Dashboard UI is available at /hystrix.html." and the next paragraph starts with "Not bad!". It seems that a screenshot is missing in between the paragraphs.

Boris  Oct 11, 2017 
Printed Page 532
last paragraph

Sentence "This is easily had with the cf apps call..." does not make sense and should be corrected.

Boris  Oct 11, 2017 
Printed Page 535
2nd paragraph

Sentence "The rule of thumb is that if you need to implement the same functionality in every application, ..." almost duplicates a sentence on page 525 2nd paragraph.

Boris  Oct 11, 2017 
Printed Page 543
John Allspaw's paragraph

The below phrase uses the wrong verb at the end of the parenthetical statement. We readers are indeed reading this book, but our purpose is not to read web applications. Rather, most of us will build/design/create/... web applications.

"a web application (which we suspect will be the kind of application most readers of this book will read)"

Paul Ojanen  Sep 27, 2017 
Printed Page 549
2nd paragraph

It reads "Concourse differs from tools like Jenkins or Travis in two ways: containers and pipelines." However Jenkins version 2 does support pipelines. Should the sentence be updated or corrected?

Boris  Oct 11, 2017 
Printed Page 554
1st bullet point

It reads "The curly braces indicate..." however there are no braces in the Example 15-3 at the corresponding place.

Boris  Oct 11, 2017 
Printed Page 558
3rd and last paragraph

It reads "highlighted in blue" on paragraph 3 and "pulsating yellow outline" on the last paragraph, however the book is in black and white.

Boris  Oct 11, 2017