Change
Log
Apr 23, 2006
- Page 62, 64, 65, 67, 68, 70, 76, 82: After setting the pattern to
#.#, you still need to
change the type of the "weight" property from int to double. Some of
the code in onSubmit() needs to change accordingly.
- Page 85: "The minDate and maxDate at the moment doesn't support
client side validation yet" should be "The minDate and maxDate
validators at the moment don't support client side validation yet".
- Page 51: "this exception is occuring" should be "this exception
is occurring".
- Page 137: "You can have a different listener for each of
themSubmit component" should be "You can have a different listener
for each of them".
- Page 155: "Let's move them into into the same folder" should be
"Let's move them into the same folder".
- Page 157: In the diagram at the bottom of the page, "while
maintaing the folder structure" should be "while maintaining the
folder structure".
- Page 158: In the library specification, "you can no longer expect
that the specification of that application to list the Java pacakges
for the components" should be "you can no longer expect that the
specification of that application to list the Java packages for the
components".
- Page 254: "move the TabePages to the bottom" should be "move the
TablePages to the bottom".
- Page 264: "When a request such as
http://localhost:8080/Album/app?service=image&imageId=101 arrvies"
should be "When a request such as
http://localhost:8080/Album/app?service=image&imageId=101 arrives".
- Page 266: "As PortletResponse doesn't allow setting setting the
content disposition" should be "As PortletResponse doesn't allow
setting the content disposition, neither does WebResponse".
- Page 274: "Note that the prefix is engine-service, not serivce"
should be "Note that the prefix is engine-service, not service".
- Page 283: "because your context folder may have packaged"
should be "because your context folder may have been packaged".
- Page 283: "usually such a jar file is assigned the .war
extention" should be "usually such a jar file is assigned the .war
extension".
- Page 310: "it will generate a unqiue name" should be "it will
generate a unique name".
- Page 322: "the For component will create the user objects from
the seralized data during the rewind" should be "the For component will
create the user objects from the serialized data during the rewind".
- Page 341: "client side valildation will be disabled" should be
"client side validation will be disabled".
- Page 343: "it will try to get the 2th (0, 1 and 2) from this
list" should be "it will try to get the 2nd (0, 1 and 2) entry from
this list".
- Page 344: "When it is rewinding, don't do anything because you'll
get it from the hidden form form" should be "When it is rewinding,
don't do anything because you'll get it from the hidden form".
- Page 344: "the Hidden component will set it againn" should
be "the Hidden component will set it again".
- Page 392: "For convenience,catch any exception" should be "For
convenience, catch any exception".
- Page 394: "All subsequent
statements are also in the same transaction until it is commited"
should be "All subsequent statements are also in the same transaction
until it is committed".
- Page 432: "you should set the transaction isolation level of each
transaction to serailizable" should be "you should set the transaction
isolation level of each transaction to serializable".
- Page 484: "The welcome page is
displayed in Japanes" should be "The welcome page is displayed in
Japanese".
- Page 486: "a quick and dirty solution is to merge the bunde
name into the key" should be "a quick and dirty solution is to merge
the bundle name into the key".
- Release.
Mar 11, 2006
- Page 3: "don't take our words for it" should be "don't take
our word for it".
- Page 12: "Unzip
it into a folder (suppose that it is
c:\tomcat)" is changed to "Unzip it into a folder say c:\tomcat".
- Page 22: "However, in order for Tapestry to create the component,
it need to know what type of the component it is" should be "However,
in order for Tapestry to create the component, it needs to know what
type of component it is".
- Page 24: 'Home.page is specifying the Java class for the page
object and list the components to be created in the page object, it is
called a "page specification"' should be 'Home.page is specifying the
Java class for the page object and lists the components to be created
in the page object, so it is called a "page specification"'.
- Page 25: "Anyway, run the application and you should see" is
changed to "Anyway, run the application and you should see the
changes taking effect".
- Page 26: Readers are now asked to undo the change of "Good!"
before continuing.
- Page 26: "It will work. It may not take effect immediately, but
it may take just a few seconds to reload" is changed to "It will work
(it may take a few seconds though, so be patient)".
- Page 32: "In this chapter you'll learn how to use forms to get
inputs from the user and how to process them" should be "In this
chapter you'll learn how to use forms to get input from the user".
- Page 36: "As the BasePage doesn't have a getStockId(), a
setStockId() and an onOk() methods" should be "As the BasePage doesn't
have a getStockId(), a setStockId() or an onOk() methods".
- Page 38: "You're just returning a hard code stock value of 100"
should be "You're just returning a hard coded stock value of 100".
- Page 39: "Only after the listener is finished, it will display
it" should be "Only after the listener is finished, will it display it".
- Page 40: "Displaying a hard code stock value is not that
interesting" should be "Displaying a hard coded stock value is not that
interesting".
- Page 44: A semi-colon is added to the now abstract getStockId()
method.
- Page 56: "You will find some description about what it does"
should be "You will find a description about what it does".
- Page 56, 57, 58, 60, 72, 84, 86, 100, 150, 152, 338, 340:
"inputs" should be "input".
- Page 62: "What if the inputs are invalid?" should be "What if the
input is invalid?".
- Page 81: 'This kind of extra parameters are called "informal
parameters"' should be 'This kind of extra parameters is called
"informal parameters"'.
- Page 124: "If not, him to the Login page" should be "If not, send
him to the Login page".
- Page 155: "How others can view the descriptions" is changed
to "How can others view the description".
- Page 171: "you have done with the page title" should
be "you
are done with the page title".
- Page 219: "Who will fill in the real meant" should
be "Who will fill in the real meat".
- Page 457:
the definition of the
DataChangedException class is added.
- Release.
Feb 26, 2006
- Page 80, 81, 83: style="{color: red}" should be
style="color: red" as inline CCS styles don't need curly backets.
- Release.
Jan 11, 2006
- Page 261: "A Hivemind service just a global Java
object" should be "A Hivemind service is just a global Java object".
- Page 261: "it is saying that please give
me" should be "it is saying please give me".
- Page 263: "This is not allowed by Java so
it throws an exception" should be "This is not allowed by Java so an
exception is thrown".
- Page 265: "How is a WebResponse different
from an HttpServletRequest" should be "How is a WebResponse different
from an HttpServletResponse".
- Page 265: "Tapestry appllication" should
be "Tapestry application".
- Page 269: "create the Java object to act
as the Hivemind service" is changed to "create the Java object which
will act as the Hivemind service".
- Page 271: "This is no good because it
hards the context path" should be "This is no good because it hardcodes
the context path".
- Page 272: "unfornately" should be
"unfortunately".
- Page 274: "Only when you actually call a
method on that service, it will in turn" should be "Only when you
actually call a method on that service, will it in turn".
Jan 10, 2006
- Update the first chapter to Tapestry 4
final.
- Release.
Dec 1, 2005
- Page 202: In
Date4ULibrary.library, add <meta
key="org.apache.tapestry.messages-encoding_zh_TW" value="Big5"/>.
- Page 284:
In the diagram and in the text, the possible of specifying a
<meta> in a library specification is added.
- Page 245:
To get the "table" component, one should call getComponent("table")
instead of getComponents("table").
- Page 261:
Some lines in the diagram are not positioned correctly.
- Page 269:
Servie should be service.
- Page 272,
282: getLink() is still shown to take a request cycle as a parameter.
- Page 444:
The diagram should show hivemind.xml. It was showing the same diagram
on page 445.
- Page 451: Remove the bug alert of unable
to save a Customer object as a client persistent property.
- Release.
Nov 19, 2005
- Update the first chapter to Tapestry 4
beta 13.
- Page 451: Remove the bug alert of unable
to save a Customer object as a client persistent property.
- Page 214: Remove the bug alert of the
"class" informal parameter not working.
- Page 46: Show how to use @InitialValue to
set the initial value of a property.
- Page 203, 205: Date4U.library is changed
to Date4ULibrary.library.
- Page 275-277: ServiceEncoding now has a
servletPath and a pathInfo.
- Page 275, 285: It is not the link factory
that decodes a request.
- Page 278: "There is a restriction
servlets" should read "This is a restriction placed by the servlet
specification".
- Page 46: Explicitly state that
an import statement is required to use annotations.
- Page 123: In the code userExists() should
be getUserExists().
- Page 140: Copyright.jwc is not the
template. Copyright.html is the template.
- Page 278: <asset-encoder
path="/assets/"/> is changed to <asset-encoder
path="/assets"/>.
- Page 458: Also need to add
servlet-api.jar to the build path.
- Page 264, 269, 270, 272, 279: getLink()
doesn't take a request cycle anymore.
- Page 38, 43: The package for the class
for the Result page is com.ttdev.stockquote, not mo.org.cpttm.stockquote.
- Page 76: The package for the class for
the Home page is com.ttdev.postage, not mo.org.cpttm.postage.
- Page 145: The package for the class for
the Box component is com.ttdev.components, not mo.org.cpttm.components.
- Page 155:
It should try to read the Copyright.jwc file from
c:\workspace\Components\context\WEBINF\classes\com\ttdev\components\Copyright.jwc,
not from
c:\workspace\Components\context\WEBINF\classes\mo\org\cpttm\components\Copyright.jwc.
- Page 201: The folder structure for the
two gif files should be in com/ttdev/date4u, not mo/org/cpttm/date4u
inside the dat4u.jar file.
- Page 203: The package for the class for
the Home page is com.ttdev.currentdate, not mo.org.cpttm.currentdate.
- Page 253: The package for the class for
the Home page is com.ttdev.phonebook,
not mo.org.cpttm.phonebook.
- Page 437: The package for the Customer
class is com.ttdev.customerCRUD, not mo.org.cpttm.customerCRUD
- Release.
Nov 1, 2005
- Page 2: "sored in a retrieval"
should be "stored in a retrieval".
Oct 30, 2005
- Page 254: Fix a typo "For exampole".
Oct 30, 2005
- Page 22: Fix a typo "Home.pageand".
- Page 24: Package name in screenshot is
wrong.
- Page 84: Fix a typo "Yon can".
- Pages 139, 143, 150: Fix a typo
"BaseCompnent".
- Page 141: A diagram showing
allow-body="no" is not shown.
- Page 144: Figures are on top of each
other.
- Page 148, 150, 152, 227: Fix a type
"compoent".
- Page 152: Fix a typo "It is interesting
is that".
- Page 155: "but why who puts" should be
"but who puts".
- Page 164 and 165: In the screenshot, the
properties are named "currentDate" and "todayIs" but on page 166, it is
shown that the properties are named "current-date" and "today-is". The
latter is correct.
- Page 133, 166: Fix a typo "paramter".
- Page 169: "The solution is set it to
message:currentDate" is changed to "The solution is to set it
to message:current-date".
- Page 172, 181, 183, 185, 187, 189, 196:
The <select> for locale
selection has an non-standard
attribute type="choice" which serves no purpose.
- Page 181: "PageRedirectionException" should be "PageRedirectException".
- Page 199: "Logo_zh_TW.properties.big5" should be "Logo_zh_TW.properties".
- Page 202: "makeProperties" should
be "makeJar".
- Page 261: "IMarkupWrite" should
be "IMarkupWriter".
- Page 261: "It askes" should
be "It asks".
- Page 353: "This time you get a" should
be "This time you get an".
- Page 467: In the diagram "Welcome.do"
should be "MainMenu.do".
- Page 105: "your visit object must
implement Serializable" is changed to "the objects you store into the
session must implement Serializable. In this case, as the 'cart' object
is an ArrayList which does implement Serializable, so it will be fine".
This is because the concept of "visit" is deprecated in Tapestry 4.
- Page 264: Two diagrams are overlapping.
- Page 264: The tone is more explicit to
indicate that "portlet" is a new concept to be introduced.
- Page 264: "Then Tapestry will return that
a" should be "Then Tapestry will return a".
- Page 264: "representing the content for
its column in the HTML page" is changed to "representing the content
for its window in the HTML page".
- Page 89, 118, 134, use an <a>
instead of a <span> for the "detailsLink" component for better
preview.
- Page 45: "When Tapestry sees an
implemented getter, it will create a property" is changed to "When
Tapestry sees an unimplemented getter (either the method is declared
abstract or the class is implementing an interface but doesn't provide
an implementation for a method), it will create a property".
- Page 39: Add "What if you didn't call
activate() at all? Then it would render the current page (Home in this
case) as if you had activated it". A diagram is added to show this.
Page 80: The code in onSubmit() is outdated.
- Page 57: Use the PropertyUtils class to
write to a property of a page instead of call the deprecated
setProperty() method.
- Page 478: Add more description on how to
encode service parameters for the external service.
- Release.
Oct
19, 2005
- A diagram is overlapping
with the main text.
- Release.
Oct
8, 2005
- Update the first chapter to
Tapestry 4 beta 9.
- Use @injectStateFlag to
detect logged-in user in chapter 4. No need to introduce
SessionScopeManager. The introduction to @injectObject
and the concept of Hivemind service are thus postponed to chapter 6.
- Update chapter 4 to show the
new project web site navigation.
- Introduce the action
listener of Submit in chapter 4. The normal listener is no longer
postponed.
- Show the TOC as a PDF
bookmark.
- Release.
Oct 7, 2005
- Fix a typo "it usually
it" on page 275.
Oct 2, 2005
- Some grid lines are
missing in the table on page 281.
Sept 30, 2005
- Remove the extra binding
for the "source" parameter on page 242.
Sept 25, 2005
- The stockQuoteForm isn't
named in the diagram on page 36.
- Change the text on page
35 to refer to the diagram on page 36.
- Use the extendedPDF
plugin to generate a PDF with bookmarks.
- Release.
Sept 21, 2005
- Fix a typo "you no
longer uses" on page 457.
Sept 20, 2005
- Format for printing.
- Release.
Sept 19, 2005
- Rewrite the Hibernate
chapter completely using a "access-by-ref"
model.
Sept 16, 2005
- Fix a typo "to to" on
page 401.
Sept 14, 2005
- Fix a typo "one one" on
page 350.
- Fix a typo "the the" on
page 51, 57, 71, 156, 220.
- Change "create the
Result" to "create the Result page" on page 51.
Sept 13, 2005
- Fix a typo "theform" on
page 139.
Sept 10, 2005
- The listener prefix was
missing for the onOk listener on page 42.
- The listener prefix was
missing for the onOk listener on page 42.
- Change Foreach to For on
page 78, 82, 128, 194, 195, 197, 198.
Sept 3, 2005
- Change the screenshot on
JAVA_HOME to a dialog in English.
- Update the first chapter
to Tapestry 4 beta 5. No need to build Tapestry nor get Hivemind from
subversion.
- Advice readers not to
use the Tomcat exe package.
- Released.
Aug 21, 2005
- Remove the section about
org.apache.tapestry.asset.dir and url.
- Move the places where
meta properties can be defined from the i18n chapter to the download
chapter.
- Make the description on
properties in a portlet response clearer.