The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

Philip Heath (7) [Avatar] Offline
I would like to suggest an alternate way to phrase comment #C on Listing 2.2

Current: "All Groovy objects inherit println method that outputs messages to console"

Suggested: "All Groovy code by default imports java.lang.* which allows direct calls to the println method"

The current comment implies a base class because of the use of the term inherit. My wording is probably not exactly what you want to use, but I think it would be better to refer to automatic or default imports in Groovy instead.
Kostis Kapelonis (63) [Avatar] Offline

First of all, thank you for your feedback.

Actually that is exactly what I meant. I wrote "inherit" on purpose.
Remember that the book is geared at Java developers (who are well accustomed to how inheritance works)

In Groovy it is possible to write the following:

Date date = new Date()

Integer now = new Integer(4)

Doesn't that imply to a Java developer (regardless of the actual mechanics) that both classes inherit the println method?

Even if you read the documentation of java.lang.Object in the Groovy docs at, among other methods (find(), each(), dump() etc.) the prinltn() method is clearly included.

So to the eyes of a Java developer the println method is really "inherited" from the base object java.lang.Object (even though in reality the implementation behind the scenes might be different)

Philip Heath (7) [Avatar] Offline
I see your point.

BTW, the book is really good so far. I'm partway through Chapter 5 now. Spock is definitely something to be excited about.
Kostis Kapelonis (63) [Avatar] Offline
Thank you!

Judging by your blog, I think that you would be mostly interested in chapter 7 (integration/rest/web testing)

Philip Heath (7) [Avatar] Offline
Will Chapters 7 or 8 cover how to selectively run tests either using the @Requires annotation or SpockConfig.groovy? As test suites grow, there is a need to be able to group into subsets for different purposes such as unit, integration, smoke, etc.
Kostis Kapelonis (63) [Avatar] Offline
Yes, that information already exists in chapter 8

The source code of the whole book (including chapters not yet in MEAP) is available on Github

You can look at listings 8.11, 8.12 and 8.13 for a preview of what will be discussed in the text of the book.