By Developers, For Developers

Historical errata for Domain-Driven Design Using Naked Objects

PDF PgPaper PgTypeDescriptionFixed onComments
13SUGGEST

Remove the word ‘out’ from 2nd graph: “we work to identify out the key concepts…”

2009-06-22Thanks - fixed in beta5.
30ERROR

Going to localhost port 8080 to use the HTML viewer as instructed on this page gave me a “403 Forbidden” error.

Instead, the correct link needs to end with “logon.app” as stated in the server console log on start-up.

2009-06-30I'm going to leave this one as is, and fix the framework instead so that it redirects as necessary. \n \n(In fact, the framework does redirect as necessary when deployed as a webapp, but not in exploration/prototype mode. For some reason specifying welcome files programmatically in the jetty server doesn't seem to be honoured; I intend to use a client-side redirect instead).
29ERROR

Unlike your screen shot, File -> New -> Project -> Maven did not generate any source folders in Eclipse, only “plain” nesting folders. Hence my project explorer looks like project > dom > src > main > java > com > mypkg > nofapp > dom > claim > Approver.java, not project > src/main/java > com.mypkg.nofapp.dom.claim > Approver.java, which would have been much preferable.

2009-06-30
29ERROR

Please ignore my erratum #39675 - I was in the parent project, not the -dom suffixed project when I was seeing the nested resource-style packages as opposed to the Java source packages.

2009-06-30
40TYPO

Last sentence before section “Installing Naked Objects Templates” says “..then we’ll can get onto the coding itself.”

2009-06-30
46SUGGEST

Where you say “..editing the nakedobjects.services key in the nakedobjects.properties file (in the client project)…” did you mean the “-commandline” project? My workspace doesn’t contain a client project.

Also, the directions here don’t mention to clear out the cruft to do with the expenses application from the properties file if you started off as instructed earlier in the chapter.

2009-06-30Yup, commandline. As you probably guessed, the name of that project has changed since I wrote these pages. \n \nAlso added a sentence re: the old expenses cruft, as suggested. Thanks!
50TYPO

Para 2: “What we’re need to do is identify icons and copy them…”

2009-06-30
98ERROR

I’m not sure if I should be raising this elsewhere, but the nosffil and nosufil templates (the first of which is useful for the repository additions on this page) specify an incorrect return type of List rather than Type on their respective “match” methods.

2009-07-08Thanks, this is a prob with the framework, I've raised a ticket against it: http://development.nakedobjects.org/trac/ticket/625. \n \nWe'll fix it in the next beta of the NO framework. \nDan
93ERROR

The first sentence on this page is odd, since there was no mention of getContainer() in the sample on the previous page, and in that sample it was not necessary to call getContainer() in order to call persist(), since persist was already available on AbstractContainedObject, which is a superclass of Customer. Did I miss something?

2009-07-08No, it's a mistake in the book. \n \nI had wanted to remove these helpers and just say to always delegate to the Container, but we decided that it introduced too much clutter so left the code as it was. \n \nwill be fixed in next/last beta.
65TYPO

This code fragment is different than the one generated by a template - a call to a setter is missing :

// associate new
setOwningCustomer(owningCustomer);

public void modifyOwningCustomer( final Customer owningCustomer) {
// check for no-op
if (owningCustomer == null ||
owningCustomer.equals(getOwningCustomer())) {
return;
}
// delegate to parent to associate
owningCustomer.addToCars(this);
// additional business logic
onModifyOwningCustomer(owningCustomer);
}

2009-08-13Actually I think you've misread it slightly, but the book is a little confusing here and the words have been changed following similar feedback from my technical reviewers. \n \nIn terms of what's written in beta-5, what the listing is showing is the code AFTER it's been edited for the mutual registration pattern (see the words on page 63). So, the setter is removed and replaced with the: \n// delegate to parent to associate \nowningCustomer.addToCars(this); \n \nAs I say, though, this is changed in the final draft. The modify/clear and addTo/removeFrom hooks are now in new templates nopmod and nocmod, and no longer appear in the nop and noc templates. This substantially reduces the boilerplate in CarServ. In the book itself it says, basically, that when we want to use mutual registration we (a) apply nopmod and nocmod [and here it shows the code generated, unmodified - ie with that setter], and then (b) edit it to do the delegation to the parent. \n \nHopefully that all makes sense! \nCheers \nDan \n \n
67TYPO

I guess, the text below should be:
Update the Title class by ADDING a Name property…
instead of:
Update the Title class by ADD IN a Name property …

2009-08-13Thanks, fixed.
73TYPO

I believe it must be:
if you HAVEN’T BEEN CODING along …

instead of:

If you HAVEN’T WEREN’T CODING along then load up this chapter’s version

2009-08-13Thanks, fixed.
76TYPO

public void validateAddToCars -> public String validateAddToCars

Ditto for remove.

2009-11-03Thanks, this will be fixed in typesetting.
162TYPO

Customer-Name.java
public class Car … should be public class Customer …

8972TYPO

Last sentence on page seems to be a ‘composite’ of two - first should state something like “…by pressing the Shift key at the same time as clicking on the icon, you can see the menu options shown in fig 4.3. If you do [whatever] using the HTML viewer, it …”

75TYPO

references FredSmithSessionFixture instead of LogonAsFredSmithFixture (not that I can get it to work anyway!)

49ERROR

Just submitted an erratum relating to the Coffee Bytes link given on this page being broken, then was surprised not to see it in the list of errata.

Then I saw the message that errata containing hyperlinks are not accepted! I’ll try again, leaving the protocol part off the URLs.

The link you gave for Coffee Bytes was to www.realjenius.com/platform_support

This is broken, but this works: archive.realjenius.com/platform_support

The latter link is referenced from the project page at code.google.com/p/coffee-bytes/
(which mentions that this project is no longer being maintained)

— Justin

33TYPO

Unless I am misunderstanding (hand coding in Netbeans 6.8)
book shows nakedobjects.properties as

nakedobjects.services.prefix = com.pragprog.dhnako.carserv.dom

should read

nakedobjects.services.prefix = com.pragprog.dhnako.carserv.service

At least, that what I needed to do to get it running

91ERROR

Cannot get “fsmith” to login, the logged in user is still “exploration” when I run it in exploration. The same problem persists even when I import chapter04-02 into eclipse from the given source code, except that in this case, the user “sven” is logged in. Long story short, I cannot log in as “sfmith” using the LogonAsFredSmithFixture method. It seams this error is very similar to error #42002.

123TYPO

In the Exercises section, the sentence “Finally, we
could simplify the AbstractCustomerFixture’s newCar( ) method to use Customer’s
newCar( ) action instead.” should be “Finally, we
could simplify the AbstractCarFixture’s createCar( ) method to use Customer’s
newCar( ) action instead.”

127TYPO

In the createCar method, two lines (Car car = newTransientInstance(Car.class); car.modifyOwningCustomer(customer);) should be replaced with only one line (Car car = customer.newCar();).

231TYPO

The GivenCustomerWithNoVehiclesTest class has a typo: the line assertThat(customer.disableDeleteVehicle(), is(nullValue())); should be assertThat(customer.disableDeleteVehicle(), is(not(nullValue())));

Categories: