You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2015/04/27 22:17:00 UTC

[2/3] wicket git commit: WICKET-5890 Fixed cross references

WICKET-5890 Fixed cross references


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/8929074f
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/8929074f
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/8929074f

Branch: refs/heads/master
Commit: 8929074fff6ea7bde8bcade1fe5bcb48271d83ca
Parents: 0c089b4
Author: Andrea Del Bene <an...@innoteam.it>
Authored: Mon Apr 27 18:33:55 2015 +0200
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Mon Apr 27 22:13:48 2015 +0200

----------------------------------------------------------------------
 .../src/docs/guide/advanced/advanced_1.gdoc       |  2 +-
 wicket-user-guide/src/docs/guide/ajax/ajax_1.gdoc |  4 ++--
 wicket-user-guide/src/docs/guide/ajax/ajax_2.gdoc |  4 ++--
 wicket-user-guide/src/docs/guide/ajax/ajax_5.gdoc |  2 +-
 wicket-user-guide/src/docs/guide/ajax/ajax_6.gdoc |  2 +-
 .../src/docs/guide/contributing.gdoc              |  2 +-
 wicket-user-guide/src/docs/guide/forms2.gdoc      |  4 ++--
 .../src/docs/guide/forms2/forms2_1.gdoc           |  4 ++--
 .../src/docs/guide/forms2/forms2_10.gdoc          |  4 ++--
 .../src/docs/guide/forms2/forms2_11.gdoc          |  6 +++---
 .../src/docs/guide/forms2/forms2_2.gdoc           | 12 ++++++------
 .../src/docs/guide/forms2/forms2_3.gdoc           |  4 ++--
 .../src/docs/guide/forms2/forms2_9.gdoc           |  6 +++---
 wicket-user-guide/src/docs/guide/i18n.gdoc        |  2 +-
 wicket-user-guide/src/docs/guide/i18n/i18n_1.gdoc |  4 ++--
 wicket-user-guide/src/docs/guide/i18n/i18n_2.gdoc |  6 +++---
 wicket-user-guide/src/docs/guide/i18n/i18n_3.gdoc |  4 ++--
 wicket-user-guide/src/docs/guide/i18n/i18n_4.gdoc |  6 +++---
 wicket-user-guide/src/docs/guide/i18n/i18n_5.gdoc |  4 ++--
 .../src/docs/guide/internals/pagestoring.gdoc     | 18 +++++++++++++++++-
 wicket-user-guide/src/docs/guide/jee/jee_3.gdoc   |  5 +++--
 .../docs/guide/jsintegration/jsintegration_2.gdoc |  4 ++--
 .../src/docs/guide/maven/maven_1.gdoc             | 12 +++++++++---
 .../src/docs/guide/maven/maven_2.gdoc             |  6 +++---
 .../src/docs/guide/modelsforms/modelsforms_1.gdoc |  4 ++--
 .../src/docs/guide/repeaters/repeaters_4.gdoc     |  2 +-
 .../requestProcessing/requestProcessing_3.gdoc    |  6 +++---
 .../requestProcessing/requestProcessing_4.gdoc    |  2 +-
 .../requestProcessing/requestProcessing_6.gdoc    |  2 +-
 wicket-user-guide/src/docs/guide/resources.gdoc   |  4 ++--
 .../src/docs/guide/resources/resources_1.gdoc     |  2 +-
 .../src/docs/guide/resources/resources_10.gdoc    |  4 ++--
 .../src/docs/guide/resources/resources_11.gdoc    |  4 ++--
 .../src/docs/guide/resources/resources_3.gdoc     |  4 ++--
 .../src/docs/guide/resources/resources_4.gdoc     |  2 +-
 .../src/docs/guide/security/security_2.gdoc       |  6 +++---
 .../src/docs/guide/security/security_3.gdoc       |  2 +-
 .../src/docs/guide/testing/testing_1.gdoc         |  2 +-
 wicket-user-guide/src/docs/guide/urls.gdoc        |  2 +-
 wicket-user-guide/src/docs/guide/urls/urls_6.gdoc | 10 +++++-----
 .../versioningCaching/versioningCaching_2.gdoc    |  6 +++---
 .../versioningCaching/versioningCaching_3.gdoc    |  4 ++--
 .../versioningCaching/versioningCaching_4.gdoc    |  2 +-
 .../src/docs/guide/wicketstuff/wicketstuff_5.gdoc |  2 +-
 44 files changed, 111 insertions(+), 88 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/advanced/advanced_1.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/advanced/advanced_1.gdoc b/wicket-user-guide/src/docs/guide/advanced/advanced_1.gdoc
index bde225a..ac01cf8 100644
--- a/wicket-user-guide/src/docs/guide/advanced/advanced_1.gdoc
+++ b/wicket-user-guide/src/docs/guide/advanced/advanced_1.gdoc
@@ -29,7 +29,7 @@ public class RedAsteriskBehavior extends Behavior {
       Response response = component.getResponse();
       StringBuffer asterisktHtml = new StringBuffer(200);
       
-      if(componet instanceof FormComponent 
+      if(component instanceof FormComponent 
             && ((FormComponent)component).isRequired()){
         asteriskHtml.append(" <b style=\"color:red;font-size:medium\">*</b>");
       }  

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/ajax/ajax_1.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/ajax/ajax_1.gdoc b/wicket-user-guide/src/docs/guide/ajax/ajax_1.gdoc
index fcd54fe..5f1ccf5 100644
--- a/wicket-user-guide/src/docs/guide/ajax/ajax_1.gdoc
+++ b/wicket-user-guide/src/docs/guide/ajax/ajax_1.gdoc
@@ -28,7 +28,7 @@ new AjaxLink("ajaxLink"){
 };
 {code}
 
-Components can be refreshed via Ajax only if they have rendered a markup id for their related tag. As a consequence, we must remember to set a valid id value on every component we want to add to @AjaxRequestTarget@. This can be done using one of the two methods seen in paragraph 4.3:
+Components can be refreshed via Ajax only if they have rendered a markup id for their related tag. As a consequence, we must remember to set a valid id value on every component we want to add to @AjaxRequestTarget@. This can be done using one of the two methods seen in [paragraph 6.3|guide:keepControl_3]:
 
 {code}
 final Label label = new Label("labelComponent", "Initial value.");
@@ -61,4 +61,4 @@ new AjaxLink("ajaxLink"){
 Repeaters component that have @org.apache.wicket.markup.repeater.AbstractRepeater@ as base class (like @ListView@, @RepeatingView@, etc...) can not be directly updated via AJAX.
 
 If we want to refresh their markup via AJAX we must add one of their parent containers to the @AjaxRequestTarget@.
-{warning}
\ No newline at end of file
+{warning}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/ajax/ajax_2.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/ajax/ajax_2.gdoc b/wicket-user-guide/src/docs/guide/ajax/ajax_2.gdoc
index 7dc9cdc..755fbbf 100644
--- a/wicket-user-guide/src/docs/guide/ajax/ajax_2.gdoc
+++ b/wicket-user-guide/src/docs/guide/ajax/ajax_2.gdoc
@@ -2,7 +2,7 @@
 
 Wicket distribution comes with a number of built-in AJAX components ready to be used. Some of them are the ajaxified version of common components like links and buttons, while others are AJAX-specific components. 
 
-AJAX components are not different from any other component seen so far and they don't require any additional configuration to be used. As we will shortly see, switching from a classic link or button to the ajaxified version is just a matter of appending “Ajax” to the component class name.
+AJAX components are not different from any other component seen so far and they don't require any additional configuration to be used. As we will shortly see, switching from a classic link or button to the ajaxified version is just a matter of prepending “Ajax” to the component class name.
 
 This paragraph provides an overview of what we can find in Wicket to start writing AJAX-enhanced web applications.
 
@@ -18,7 +18,7 @@ Building an entire site using AJAX can be risky as some clients may not support
 
 h3. AJAX Checkbox
 
-Class @org.apache.wicket.ajax.markup.html.form.AjaxCheckBox@ is a checkbox component that updates its model via AJAX when user changes its value. Its AJAX callback method is @onUpdate(AjaxRequestTarget target)@. The component extends standard checkbox component @CheckBox@ adding an @AjaxFormComponentUpdatingBehavior@ to itself (we will see this behavior later in paragraph 16.3.3).
+Class @org.apache.wicket.ajax.markup.html.form.AjaxCheckBox@ is a checkbox component that updates its model via AJAX when user changes its value. Its AJAX callback method is @onUpdate(AjaxRequestTarget target)@. The component extends standard checkbox component @CheckBox@ adding an @AjaxFormComponentUpdatingBehavior@ to itself (we will see this behavior later in [paragraph 18.3.3|guide:ajax_3]).
 
 h3. AJAX editable labels
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/ajax/ajax_5.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/ajax/ajax_5.gdoc b/wicket-user-guide/src/docs/guide/ajax/ajax_5.gdoc
index 9729808..5f4a145 100644
--- a/wicket-user-guide/src/docs/guide/ajax/ajax_5.gdoc
+++ b/wicket-user-guide/src/docs/guide/ajax/ajax_5.gdoc
@@ -19,7 +19,7 @@ bh, pre, bsh, ah, sh, fh, coh | This is a list of the listeners that are execute
 {table}
 
 {note}
-A full list of the available request parameters as well as more details on the related JavaScript code can be found at "https://cwiki.apache.org/confluence/ display/WICKET/Wicket+Ajax":https://cwiki.apache.org/confluence/ display/WICKET/Wicket+Ajax .
+A full list of the available request parameters as well as more details on the related JavaScript code can be found at "https://cwiki.apache.org/confluence/display/WICKET/Wicket+Ajax":https://cwiki.apache.org/confluence/display/WICKET/Wicket+Ajax .
 {note}
 
 Parameters 'u' (callback URL) and 'c' (the id of the component) are generated by the AJAX behavior that will serve the AJAX call and they are not accessible through @AjaxRequestAttributes@.

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/ajax/ajax_6.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/ajax/ajax_6.gdoc b/wicket-user-guide/src/docs/guide/ajax/ajax_6.gdoc
index 399399b..1ca5e55 100644
--- a/wicket-user-guide/src/docs/guide/ajax/ajax_6.gdoc
+++ b/wicket-user-guide/src/docs/guide/ajax/ajax_6.gdoc
@@ -152,7 +152,7 @@ Global AJAX call events are handled with JavaScript. We can register a callback
 
 The callback function takes in input the following parameters:  attrs, jqXHR, textStatus, jqEvent and errorThrown. The first three parameters are the same seen before with @IAjaxCallListener@ while jqEvent is an event internally fired by Wicket. The last parameter errorThrown indicates if an error has occurred during the AJAX call. 
 
-To see a basic example of use of a global AJAX call listener, let's go back to our custom datepicker created in chapter 14. When we built it we didn't think about a possible use of the component with AJAX.  When a complex component like our datepicker is refreshed via AJAX, the following two side effects can occur: 
+To see a basic example of use of a global AJAX call listener, let's go back to our custom datepicker created in [chapter 16|guide:jsintegration]. When we built it we didn't think about a possible use of the component with AJAX.  When a complex component like our datepicker is refreshed via AJAX, the following two side effects can occur: 
 
 * After been refreshed, the component loses every JavaScript handler set on it. This is not a problem for our datepicker as it sets a new JQuery datepicker every time is rendered (inside method renderHead).
 * The markup previously created with JavaScript is not removed. For our datepicker this means that the icon used to open the calendar won't be removed while a new one will be added each time the component is refreshed.

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/contributing.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/contributing.gdoc b/wicket-user-guide/src/docs/guide/contributing.gdoc
index 8ea93af..52a3b62 100644
--- a/wicket-user-guide/src/docs/guide/contributing.gdoc
+++ b/wicket-user-guide/src/docs/guide/contributing.gdoc
@@ -20,4 +20,4 @@ git clone https://github.com/apache/wicket.git
 
 * *Commit and push the changes* to your forked Apacke Wicket's GIT repository and *create a pull request* on github
 
-*Thank you!*
\ No newline at end of file
+*Thank you!*

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/forms2.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/forms2.gdoc b/wicket-user-guide/src/docs/guide/forms2.gdoc
index 138cab5..098174d 100644
--- a/wicket-user-guide/src/docs/guide/forms2.gdoc
+++ b/wicket-user-guide/src/docs/guide/forms2.gdoc
@@ -1,5 +1,5 @@
 In the previous chapter we have only scratched the surface of Wicket forms. The Form component was not only designed to collect user input but also to extend the semantic of the classic HTML forms with new features. 
 
-One of such features is the ability to work with nested forms (they will be discussed in paragraph 10.5).
+One of such features is the ability to work with nested forms (they will be discussed in [paragraph 12.6|guide:forms2_6]).
 
-In this chapter we will continue to explore Wicket forms learning how to master them and how to build effective and user-proof forms for our web applications.
\ No newline at end of file
+In this chapter we will continue to explore Wicket forms learning how to master them and how to build effective and user-proof forms for our web applications.

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/forms2/forms2_1.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/forms2/forms2_1.gdoc b/wicket-user-guide/src/docs/guide/forms2/forms2_1.gdoc
index 5920070..48776c5 100644
--- a/wicket-user-guide/src/docs/guide/forms2/forms2_1.gdoc
+++ b/wicket-user-guide/src/docs/guide/forms2/forms2_1.gdoc
@@ -1,6 +1,6 @@
 
 
-In paragraph 9.3 we have seen a very basic usage of the Form component and we didn't pay much attention to what happens behind the scenes of form submission. In Wicket when we submit a form we trigger the following steps on server side:
+In [paragraph 11.3|guide:modelsforms_3] we have seen a very basic usage of the Form component and we didn't pay much attention to what happens behind the scenes of form submission. In Wicket when we submit a form we trigger the following steps on server side:
 
 # Form validation: user input is checked to see if it satisfies the validation rules set on the form. If validation fails, step number 2 is skipped and the form should display a feedback message to explain to user what went wrong. During this step input values (which are simple strings sent with a web request) are converted into Java objects. In the next paragraphs we will explore the infrastructures provided by Wicket for the three sub-tasks involved with form validation, which are: conversion of user input into objects, validation of user input, and visualization of feedback messages.
 # Updating of models: if validation succeeds, the form updates the model of its children components with the converted values obtained in the previous step.
@@ -12,4 +12,4 @@ Please note that the model of form components is updated only if no validation e
 
 Without going into too much detail, we can say that the first two steps of form processing correspond to the invocation of one or more Form's internal methods (which are declared protected and final). Some examples of these methods are validate(), which is invoked during validation step, and updateFormComponentModels(), which is used at the step that updates the form field models.
 
-The whole form processing is started invoking public method process(IFormSubmitter) (Later in paragraph 10.4 we will introduce interface IFormSubmitter). 
\ No newline at end of file
+The whole form processing is started invoking public method process(IFormSubmitter) (Later in [paragraph 12.5|guide:forms2_5] we will introduce interface IFormSubmitter). 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/forms2/forms2_10.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/forms2/forms2_10.gdoc b/wicket-user-guide/src/docs/guide/forms2/forms2_10.gdoc
index 0de6193..53d18e1 100644
--- a/wicket-user-guide/src/docs/guide/forms2/forms2_10.gdoc
+++ b/wicket-user-guide/src/docs/guide/forms2/forms2_10.gdoc
@@ -1,6 +1,6 @@
 
 
-In chapter 6 we have seen how Wicket pages can be divided into two categories: stateful and stateless. Pages that are stateless don't need to be stored in the user session and they should be used  when we don't need to save any user data in the user session (for example in the public area of a site).
+In [chapter 8|guide:versioningCaching] we have seen how Wicket pages can be divided into two categories: stateful and stateless. Pages that are stateless don't need to be stored in the user session and they should be used  when we don't need to save any user data in the user session (for example in the public area of a site).
 
 Besides saving resources on server-side, stateless pages can be adopted to improve user experience and to avoid security weaknesses. A typical situation where a stateless page can bring these benefits is when we have to implement a login page. 
 
@@ -75,4 +75,4 @@ public class HomePage extends WebPage {
 }
 {code}
 
-Label sessionType shows if current session is temporary or not and is set inside onBeforeRender(): if our page is really stateless the session will be always temporary. We have also inserted a feedback panel in the home page that shows if the credentials are correct. This was done to make the example form more interactive.
\ No newline at end of file
+Label sessionType shows if current session is temporary or not and is set inside onBeforeRender(): if our page is really stateless the session will be always temporary. We have also inserted a feedback panel in the home page that shows if the credentials are correct. This was done to make the example form more interactive.

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/forms2/forms2_11.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/forms2/forms2_11.gdoc b/wicket-user-guide/src/docs/guide/forms2/forms2_11.gdoc
index 664b54c..fa656f6 100644
--- a/wicket-user-guide/src/docs/guide/forms2/forms2_11.gdoc
+++ b/wicket-user-guide/src/docs/guide/forms2/forms2_11.gdoc
@@ -4,7 +4,7 @@ In this paragraph we will see which components can be used to handle HTML radio
 
 !choice-form-screenshot.png!
 
-A check box can be used as single component to set a boolean property. For this purpose Wicket provides the @org.apache.wicket.markup.html.form.CheckBox@ component which must be attached to <input type="checkbox".../> tag. In the next example (project SingleCheckBox) we will consider a form similar to the one used in paragraph 9.5 to edit a Person object, but with an additional checkbox to let the user decide if she wants to subscribe to our mailing list or not. The form uses the following bean as backing object:
+A check box can be used as single component to set a boolean property. For this purpose Wicket provides the @org.apache.wicket.markup.html.form.CheckBox@ component which must be attached to <input type="checkbox".../> tag. In the next example (project SingleCheckBox) we will consider a form similar to the one used in [paragraph 11.5|guide:modelsforms_5] to edit a Person object, but with an additional checkbox to let the user decide if she wants to subscribe to our mailing list or not. The form uses the following bean as backing object:
 
 {code}
 public class RegistrationInfo implements Serializable {
@@ -113,7 +113,7 @@ This component can be attached to a <div> tag or to a <span> tag. No specific co
 
 By default CheckBoxMultipleChoice inserts a <br/> tag as suffix after each option. We can configure both the suffix and the prefix used by the component with the setPrefix and setSuffix methods.
 
-When our options are more complex objects than simple strings, we can render them using an IChoiceRender, as we did for DropDownChoice in paragraph 9.4:
+When our options are more complex objects than simple strings, we can render them using an IChoiceRender, as we did for DropDownChoice in [paragraph 11.5|guide:modelsforms_5]:
 
 *HTML:*
 
@@ -184,4 +184,4 @@ form.add(new RadioChoice("radioGroup", Model.of(""), fruits));
 
 !grouped-radiobutton.png!
 
-Just like CheckBoxMultipleChoice, this component provides the setPrefix and setSuffix methods to configure the prefix and suffix for our options and it supports IChoiceRender as well. In addition, RadioChoice provides the wantOnSelectionChangedNotifications() method to notify the web server when the selected option changes (this is the same method seen for DropDownChoice in paragraph 9.4).
\ No newline at end of file
+Just like CheckBoxMultipleChoice, this component provides the setPrefix and setSuffix methods to configure the prefix and suffix for our options and it supports IChoiceRender as well. In addition, RadioChoice provides the wantOnSelectionChangedNotifications() method to notify the web server when the selected option changes (this is the same method seen for DropDownChoice in paragraph 9.4).

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/forms2/forms2_2.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/forms2/forms2_2.gdoc b/wicket-user-guide/src/docs/guide/forms2/forms2_2.gdoc
index 2e9ea33..ec55703 100644
--- a/wicket-user-guide/src/docs/guide/forms2/forms2_2.gdoc
+++ b/wicket-user-guide/src/docs/guide/forms2/forms2_2.gdoc
@@ -1,6 +1,6 @@
 
 
-A basic example of a validation rule is to make a field required. In paragraph 9.3.2 we have already seen how this can be done calling setRequired(true) on a field. However, to set a validation rule on a FormComponent we must add the corresponding validator to it.
+A basic example of a validation rule is to make a field required. In [paragraph 11.3|guide:modelsforms_3] we have already seen how this can be done calling setRequired(true) on a field. However, to set a validation rule on a FormComponent we must add the corresponding validator to it.
 
 A validator is an implementation of the @org.apache.wicket.validation.IValidator@ interface and the @FormComponent@ has a version of method add which takes as input a reference of this interface. 
 
@@ -11,7 +11,7 @@ TextField email = new TextField("email");
 email.add(EmailAddressValidator.getInstance());
 {code}
 
-Wicket comes with a set of built-in validators that should suit most of our needs. We will see them in paragraph 10.2.3.
+Wicket comes with a set of built-in validators that should suit most of our needs. We will see them later in this chapter.
 
 h3. Feedback messages and localization
 
@@ -24,10 +24,10 @@ Wicket generates a feedback message for each field that doesn't satisfy one of i
 The entire infrastructure of feedback messages is built on top of the Java internationalization (I18N) support and it uses "resource bundles":http://docs.oracle.com/javase/tutorial/i18n/resbundle/index.html to store messages.
 
 {note}
-The topics of internationalization will be covered in chapter 12. For now we will give just few notions needed to understand the examples from this chapter.
+The topics of internationalization will be covered in [chapter 14|guide:i18n]. For now we will give just few notions needed to understand the examples from this chapter.
 {note}
 
-By default resource bundles are stored into properties files but we can easily configure other sources as described later in paragraph 12.4.5. 
+By default resource bundles are stored into properties files but we can easily configure other sources as described later in [paragraph 14.2|guide:i18n_2]. 
 
 Default feedback messages (like the one above for required fields) are stored in the file Application. properties placed inside Wicket the org.apache.wicket package. Opening this file we can find the key and the localized value of the message:
 
@@ -40,7 +40,7 @@ We can note the key (Required in our case) and the label parameter written in th
 By default FormComponent provides 3 parameters for feedback message: input (the value that failed validation), label and name (this later is the id of the component).
 
 {warning}
-Remember that component model is updated with the user input only if validation succeeds! As a consequence, we can't retrieve the wrong value inserted for a field from its model. Instead, we should use getValue() method of FormComponent class. (This method will be introduced in the example used in paragraph 10.2.5)
+Remember that component model is updated with the user input only if validation succeeds! As a consequence, we can't retrieve the wrong value inserted for a field from its model. Instead, we should use getValue() method of FormComponent class. (This method will be introduced in the example used later in this chapter)
 {warning}
 
 h3. Displaying feedback messages and filtering them
@@ -65,7 +65,7 @@ Error messages can be filtered using three built-in filters:
 
 * *ComponentFeedbackMessageFilter*: shows only messages coming from a specific component.
 * *ContainerFeedbackMessageFilter*: shows only messages coming from a specific container or from any of its children components.
-* *ErrorLevelFeedbackMessageFilter*: shows only messages with a level of severity equals or greater than a given lower bound. Class FeedbackMessage defines a set of static constants to express different levels of severity: DEBUG, ERROR, WARNING, INFO, SUCCESS, etc.... Levels of severity for feedback messages are discussed in paragraph 10.2.6.
+* *ErrorLevelFeedbackMessageFilter*: shows only messages with a level of severity equals or greater than a given lower bound. Class FeedbackMessage defines a set of static constants to express different levels of severity: DEBUG, ERROR, WARNING, INFO, SUCCESS, etc.... Levels of severity for feedback messages are discussed later in this chapter.
 
 These filters are intended to be used when there are more than one feedback panel (or more than one form) in the same page. We can pass a filter to a feedback panel via its constructor or using the setFilter method. Custom filters can be created implementing the IFeedbackMessageFilter interface. An example of custom filter is illustrated later in this paragraph.
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/forms2/forms2_3.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/forms2/forms2_3.gdoc b/wicket-user-guide/src/docs/guide/forms2/forms2_3.gdoc
index 83b9add..08f5f34 100644
--- a/wicket-user-guide/src/docs/guide/forms2/forms2_3.gdoc
+++ b/wicket-user-guide/src/docs/guide/forms2/forms2_3.gdoc
@@ -82,7 +82,7 @@ public class RegExpPatternConverter implements IConverter<Pattern> {
 }
 {code}
 
-Methods declared by interface IConverter take as input a Locale parameter in order to deal with locale-sensitive data and conversions. We will learn more about locales and internationalization in chapter 12.
+Methods declared by interface IConverter take as input a Locale parameter in order to deal with locale-sensitive data and conversions. We will learn more about locales and internationalization in [paragraph 14|guide:i18n].
 
 Once we have implemented our custom converter, we must override method newConverterLocator() inside our application class and tell it to add our new converter to the default set:
 
@@ -134,4 +134,4 @@ public class HomePage extends WebPage {
 
 {note}
 If the user input can not be converted to the target type, FormComponent will generate the default error message “The value of '${label}' is not a valid ${type}.”. The bundle key for this message is IConverter.
-{note}
\ No newline at end of file
+{note}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/forms2/forms2_9.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/forms2/forms2_9.gdoc b/wicket-user-guide/src/docs/guide/forms2/forms2_9.gdoc
index 4331ef8..26fddd8 100644
--- a/wicket-user-guide/src/docs/guide/forms2/forms2_9.gdoc
+++ b/wicket-user-guide/src/docs/guide/forms2/forms2_9.gdoc
@@ -1,6 +1,6 @@
 
 
-In chapter 3.2.2 we have seen how to use class Panel to create custom components with their own markup and with an arbitrary number of children components.
+In [chapter 5.2.2|guide:layout_2] we have seen how to use class Panel to create custom components with their own markup and with an arbitrary number of children components.
 
 While it's perfectly legal to use Panel also to group form components, the resulting component won't be itself a form component and it won't participate in the form's submission workflow. 
 
@@ -67,7 +67,7 @@ public class TemperatureDegreeField extends FormComponentPanel<Double> {
 	}
 {code}
 
-Inside the onInitialize method we have created a read-only model for the label that displays the letter corresponding to the user's temperature scale. To determinate which temperature scale is in use, we retrieve the Locale from the session by calling Component's getLocale() method (we will talk more about this method in chapter 12). Then, if locale is the one corresponding to the United States, the chosen scale will be Fahrenheit, otherwise it will be considered as Celsius. 
+Inside the onInitialize method we have created a read-only model for the label that displays the letter corresponding to the user's temperature scale. To determinate which temperature scale is in use, we retrieve the Locale from the session by calling Component's getLocale() method (we will talk more about this method in [paragraph 14|guide:i18n]). Then, if locale is the one corresponding to the United States, the chosen scale will be Fahrenheit, otherwise it will be considered as Celsius. 
 
 In the final part of onInitialize() we add the two components to our custom form component. You may have noticed that we have explicitly set the type of model object for the text field to double. This is necessary as the starting model object is a null reference and this prevents the component from automatically determining the type of its model object. 
 
@@ -119,4 +119,4 @@ Now we can look at the rest of the code containing the convertInput and onBefore
 
 Since our component does not directly receive the user input, convertInput() must read this value from the inner text field using FormComponent's getConvertedInput() method which returns the input value already converted to the type specified for the component (Double in our case). Once we have the user input we convert it to kelvin degrees and we use the resulting value to set the converted input for our custom component (using method setConvertedInput(T convertedInput)).
 
-Method onBeforeRender() is responsible for synchronizing the model of the inner textfield with the model of our custom component. To do this we retrieve the model object of the custom component with the getDefaultModelObject() method, then we convert it to the temperature scale adopted by the user and finally we use this value to set the model object of the text field.
\ No newline at end of file
+Method onBeforeRender() is responsible for synchronizing the model of the inner textfield with the model of our custom component. To do this we retrieve the model object of the custom component with the getDefaultModelObject() method, then we convert it to the temperature scale adopted by the user and finally we use this value to set the model object of the text field.

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/i18n.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/i18n.gdoc b/wicket-user-guide/src/docs/guide/i18n.gdoc
index 410bea5..c8dcaba 100644
--- a/wicket-user-guide/src/docs/guide/i18n.gdoc
+++ b/wicket-user-guide/src/docs/guide/i18n.gdoc
@@ -1 +1 @@
-In chapter 10 we have seen how the topic of localization is involved in the generation of feedback messages and we had a first contact with resource bundles. In this chapter we will continue to explore the localization support provided by Wicket and we will learn how to build pages and components ready to be localized in different languages.
\ No newline at end of file
+In [chapter 12.2|guide:forms2_2] we have seen how the topic of localization is involved in the generation of feedback messages and we had a first contact with resource bundles. In this chapter we will continue to explore the localization support provided by Wicket and we will learn how to build pages and components ready to be localized in different languages.

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/i18n/i18n_1.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/i18n/i18n_1.gdoc b/wicket-user-guide/src/docs/guide/i18n/i18n_1.gdoc
index a50b446..81522c8 100644
--- a/wicket-user-guide/src/docs/guide/i18n/i18n_1.gdoc
+++ b/wicket-user-guide/src/docs/guide/i18n/i18n_1.gdoc
@@ -1,6 +1,6 @@
 
 
-As we have seen in chapter 10, the infrastructure of feedback messages is built on top of Java internationalization (i18n) support, so it should not be surprising that the same infrastructure is used also for localization purpose. However, while so far we have used only the <ApplicationClassName>.properties file to store our custom messages, in this chapter we will see that also pages, components, validators and even Java packages can have their own resource bundles. This allows us to split bundles into multiple files keeping them close to where they are used. But before diving into the details of internationalization with Wicket, it's worthwhile to quickly review how i18n works under Java, see what classes are involved and how they are integrated into Wicket.
+As we have seen in [paragraph 12.2|guide:forms2_2], the infrastructure of feedback messages is built on top of Java internationalization (i18n) support, so it should not be surprising that the same infrastructure is used also for localization purpose. However, while so far we have used only the <ApplicationClassName>.properties file to store our custom messages, in this chapter we will see that also pages, components, validators and even Java packages can have their own resource bundles. This allows us to split bundles into multiple files keeping them close to where they are used. But before diving into the details of internationalization with Wicket, it's worthwhile to quickly review how i18n works under Java, see what classes are involved and how they are integrated into Wicket.
 
 {note}
 Providing a full description of Java support for i18n is clearly out of the scope of this document. If you need more informations about this topic you can find them in the JavaDocs and in the official "i18n tutorial":http://docs.oracle.com/javase/tutorial/i18n/index.html .
@@ -24,4 +24,4 @@ For example a bundle with MyBundle as base name and localized for Mandarin Chine
 
 The list of these candidate names is generated starting from the most specific one and subtracting an optional parameter at each step. The last name of the list corresponds to the default resource bundle which is the most general name and is equal to the base name. Once that getBundle has generated the list of candidate names, it will iterate over them to find the first one for which is possible to load a class or a properties file. The class must be a subclass of @ResourceBundle@ having as class name the full name used in the current iteration. If such a class is not found, getBundle will try to locate a properties file having a file name equals to the current full name (Java will automatically append extension .properties to the full name). For example given the resource bundle of the previous example, Java will search first for class org.foo.MyBundle_zh_CH_cmn and then for file MyBundle_zh_CH_cmn.properties inside package org.foo. If no file is found for any of the candidate name
 s, a MissingResourceException will be thrown. Bundles contains local-dependent string resources identified by a key that is unique in the given bundle. So once we have obtained a valid bundle we can access these objects with method getString (String key).
 
-As we have seen before working with feedback messages, in Wicket most of the times we will work with properties files rather than with bundle classes. In chapter 10 we used a properties file having as base name the class name of the application class and without any information about the locale. This file is the default resource bundle for a Wicket application. In paragraph 12.4 we will explore the algorithm used in Wicket to locate the available bundles for a given component. Once we have learnt how to leverage this algorithm, we will be able to split our bundles into more files organized in a logical hierarchy.
\ No newline at end of file
+As we have seen before working with feedback messages, in Wicket most of the times we will work with properties files rather than with bundle classes. In [paragraph 12.2|guide:forms2_2] we used a properties file having as base name the class name of the application class and without any information about the locale. This file is the default resource bundle for a Wicket application. In [paragraph 14.3|guide:i18n_3] we will explore the algorithm used in Wicket to locate the available bundles for a given component. Once we have learnt how to leverage this algorithm, we will be able to split our bundles into more files organized in a logical hierarchy.

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/i18n/i18n_2.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/i18n/i18n_2.gdoc b/wicket-user-guide/src/docs/guide/i18n/i18n_2.gdoc
index df6c66a..499aa0e 100644
--- a/wicket-user-guide/src/docs/guide/i18n/i18n_2.gdoc
+++ b/wicket-user-guide/src/docs/guide/i18n/i18n_2.gdoc
@@ -60,7 +60,7 @@ To use XML bundles in Wicket we don't need to put in place any additional config
 
 h3. Reading bundles from code
 
-Class Component makes reading bundles very easy with method getString(String key). This method searches for a resource with the given key looking into the resource bundles visited by the lookup algorithm illustrated in paragraph 12.4. For example if we have a greeting message with key greetingMessage in our application's resource  bundle, we can read it from our component code with this instruction:
+Class Component makes reading bundles very easy with method getString(String key). This method searches for a resource with the given key looking into the resource bundles visited by the lookup algorithm illustrated in [paragraph 14.3|guide:i18n_3]. For example if we have a greeting message with key greetingMessage in our application's resource  bundle, we can read it from our component code with this instruction:
 
 {code}
 getString("greetingMessage");
@@ -68,7 +68,7 @@ getString("greetingMessage");
 
 h3. Localization of bundles in Wicket
 
-In chapter 10 we have used as resource bundle the properties file placed next to our application class. This file is the default resource bundle for the entire application and it is used by the lookup algorithm if it doesn't find any better match for a given component and locale. If we want to provide localized versions of this file we must simply follow the rules of Java i18n and put our translated resources into another properties file with a name corresponding to the desired locale. For example project LocalizedGreetings comes with the default application's properties file ( WicketApplication.properties) containing a greeting message:
+In [paragraph 12.2|guide:forms2_2] we have used as resource bundle the properties file placed next to our application class. This file is the default resource bundle for the entire application and it is used by the lookup algorithm if it doesn't find any better match for a given component and locale. If we want to provide localized versions of this file we must simply follow the rules of Java i18n and put our translated resources into another properties file with a name corresponding to the desired locale. For example project LocalizedGreetings comes with the default application's properties file ( WicketApplication.properties) containing a greeting message:
 
 {code}
 greetingMessage=Welcome to the site!
@@ -91,7 +91,7 @@ AbstractReadOnlyModel<String> model = new AbstractReadOnlyModel<String>() {
 add(new Label("greetingMessage", model));
 {code}
 
-Class @org.apache.wicket.model.AbstractReadOnlyModel@ is a convenience class for implementing read-only models. In this project we have implemented a custom read-only model for illustrative purposes only because Wicket already provides built-in models for the same task. We will see them in paragraph 12.6.
+Class @org.apache.wicket.model.AbstractReadOnlyModel@ is a convenience class for implementing read-only models. In this project we have implemented a custom read-only model for illustrative purposes only because Wicket already provides built-in models for the same task. We will see them in paragraph [paragraph 14.5|guide:i18n_5].
 
 The rest of the code of the home page builds the stateless form and the drop-down menu used to change the locale.
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/i18n/i18n_3.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/i18n/i18n_3.gdoc b/wicket-user-guide/src/docs/guide/i18n/i18n_3.gdoc
index d00a134..a38b67d 100644
--- a/wicket-user-guide/src/docs/guide/i18n/i18n_3.gdoc
+++ b/wicket-user-guide/src/docs/guide/i18n/i18n_3.gdoc
@@ -78,13 +78,13 @@ Validator's resource bundles have the lowest priority in the lookup algorithm. T
 
 h3. Extending the default lookup algorithm
 
-Wicket implements the default lookup algorithm using the strategy pattern1. The concrete strategies are abstracted with the interface @org.apache.wicket.resource.loader.IStringResourceLoader@. By default Wicket uses the following implementations of @IStringResourceLoader@ (sorted by execution order):
+Wicket implements the default lookup algorithm using the strategy pattern. The concrete strategies are abstracted with the interface @org.apache.wicket.resource.loader.IStringResourceLoader@. By default Wicket uses the following implementations of @IStringResourceLoader@ (sorted by execution order):
 
 # *ComponentStringResourceLoader:* implements most of the default algorithm. It searches for a given resource across bundles from the container hierarchy, from class hierarchy and from the given component.
 # *PackageStringResourceLoader:* searches into package bundles.
 # *ClassStringResourceLoader:* searches into bundles of a given class. By default the target class is the application class.
 # *ValidatorStringResourceLoader:* searches for resources into validator's bundles. A list of validators is provided by the form component that failed validation.
-# *InitializerStringResourceLoader:* this resource allows internationalization to interact with the initialization mechanism of the framework that will be illustrated in paragraph 15.4.
+# *InitializerStringResourceLoader:* this resource allows internationalization to interact with the initialization mechanism of the framework that will be illustrated in [paragraph 17.3|guide:advanced_3].
 
 Developer can customize lookup algorithm removing default resource loaders or adding custom implementations to the list of the resource loaders in use. This task can be accomplished using method getStringResourceLoaders of setting class @org.apache.wicket.settings.ResourceSettings@:
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/i18n/i18n_4.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/i18n/i18n_4.gdoc b/wicket-user-guide/src/docs/guide/i18n/i18n_4.gdoc
index 8372272..1dd962f 100644
--- a/wicket-user-guide/src/docs/guide/i18n/i18n_4.gdoc
+++ b/wicket-user-guide/src/docs/guide/i18n/i18n_4.gdoc
@@ -47,8 +47,8 @@ yellow=Yellow
 German bundle:
 
 {code}
-selectColor.null=Wahlen sie eine farbe
-green=Grun
+selectColor.null=Wählen Sie eine Farbe
+green=Grün
 red=Rot
 blue=Blau
 yellow=Gelb
@@ -64,4 +64,4 @@ blue=Blu
 yellow=Giallo
 {code}
 
-Along with the localized versions of colors names, in the bundles above we can also find a custom value for the placeholder text (“Chose one ”) used for null value. The resource key for this resource is 'null' or '<component id>.null' if we want to make it component-specific.
\ No newline at end of file
+Along with the localized versions of colors names, in the bundles above we can also find a custom value for the placeholder text (“Select a color ”) used for null value. The resource key for this resource is 'null' or '<component id>.null' if we want to make it component-specific.

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/i18n/i18n_5.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/i18n/i18n_5.gdoc b/wicket-user-guide/src/docs/guide/i18n/i18n_5.gdoc
index aff8c2c..be06e61 100644
--- a/wicket-user-guide/src/docs/guide/i18n/i18n_5.gdoc
+++ b/wicket-user-guide/src/docs/guide/i18n/i18n_5.gdoc
@@ -4,7 +4,7 @@ Internationalization is another good chance to taste the power of models. Wicket
 
 h3. ResourceModel
 
-Model @org.apache.wicket.model.ResourceModel@ acts just like the read-only model we have implemented in paragraph 12.3.4. It simply retrieves a string resource corresponding to a given key:
+Model @org.apache.wicket.model.ResourceModel@ acts just like the read-only model we have implemented in [paragraph 14.3|guide:i18n_3]. It simply retrieves a string resource corresponding to a given key:
 
 {code}
 //build a ResourceModel for key 'greetingMessage'
@@ -90,4 +90,4 @@ One further parameter we can specify when we build a StringResourceModel is the
 
 {code}
 new StringResourceModel("myKey", myComponent, myModel, param1, param2, param3,...);
-{code}
\ No newline at end of file
+{code}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/internals/pagestoring.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/internals/pagestoring.gdoc b/wicket-user-guide/src/docs/guide/internals/pagestoring.gdoc
index 784d732..2bdc268 100644
--- a/wicket-user-guide/src/docs/guide/internals/pagestoring.gdoc
+++ b/wicket-user-guide/src/docs/guide/internals/pagestoring.gdoc
@@ -45,7 +45,10 @@ To disable it use: @org.apache.wicket.settings.StoreSettings.setAsynchronous(fal
 
 h3. DebugDiskDataStore
 
-Wicket provides an extension of @DiskDataStore@ that can be used to browse the content of the 'data' files created by @DiskDataStore@. This debug enabled @DiskDataStore@ is automatically setup when wicket-devutils.jar is in the classpath.
+Wicket provides an extension of @DiskDataStore@ that can be used to browse the content of the 'data' files created by @DiskDataStore@. This extension can be found in wicket-devutils.jar and needs to be enabled in the @init@-method of your application via 
+{code}
+ DebugDiskDataStore.register(this);
+{code}
 The debug information can be seen at http://host:port/context/wicket/internal/debug/diskDataStore
 
 h3. HttpSessionDataStore
@@ -72,3 +75,16 @@ MyApp#init()
 }
 {code}
 
+h3. DebugBar
+
+Further insights which can be valueable during debugging can be retrieved using the @org.apache.wicket.devutils.debugbar.DebugBar@ from wicket-devutils.jar. It's a panel which you simply add:
+
+Java: 
+{code}
+add(new DebugBar("debug"));
+{code}
+
+HTML:
+{code}
+<span wicket:id="debug"/>
+{code}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/jee/jee_3.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/jee/jee_3.gdoc b/wicket-user-guide/src/docs/guide/jee/jee_3.gdoc
index 38e56da..f190a98 100644
--- a/wicket-user-guide/src/docs/guide/jee/jee_3.gdoc
+++ b/wicket-user-guide/src/docs/guide/jee/jee_3.gdoc
@@ -4,6 +4,7 @@ Spring (and Guice) users can use standard "JSR-330":http://jcp.org/en/jsr/detail
 
 {code}
   //inject a bean specifying its name with JSR-330 annotations
-  @Inject @Named("anotherName")
+  @Inject 
+  @Named("anotherName")
   private EnterpriseMessage enterpriseMessage;
-{code}
\ No newline at end of file
+{code}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/jsintegration/jsintegration_2.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/jsintegration/jsintegration_2.gdoc b/wicket-user-guide/src/docs/guide/jsintegration/jsintegration_2.gdoc
index 88c945d..ef18256 100644
--- a/wicket-user-guide/src/docs/guide/jsintegration/jsintegration_2.gdoc
+++ b/wicket-user-guide/src/docs/guide/jsintegration/jsintegration_2.gdoc
@@ -81,7 +81,7 @@ The first thing to do inside onInitialize is to ensure that our component will h
 
 Next, JQueryDateField tries to retrieve the date format and the ISO language code that must be used as initialization parameters. This is done using class @ResourceModel@ which searches for a given resource in the available bundles. If no value is found for date format or for ISO language code, default values will be used ('mm/dd/yy' and 'en-GB'). 
 
-To generate the relative URL for calendar icon, we load it as package resource reference and then we use @Component@'s method urlFor to get the URL value (we have seen this method in paragraph 7.3.2).
+To generate the relative URL for calendar icon, we load it as package resource reference and then we use @Component@'s method urlFor to get the URL value (we have seen this method in [paragraph 9.3.2|guide:requestProcessing_3]).
 
 The last configuration instruction executed inside onInitialize is the instantiation of the custom converter used by our component. This converter is an instance of the built-in class @org.apache.wicket.datetime.PatternDateConvert@ and must use the previously retrieved date format to perform conversion operations. Now to tell our component to use this converter we must return it overriding @FormComponent@'s method @getConverter@. 
 
@@ -133,5 +133,5 @@ This does not apply to the init script which is dynamically generated and is ren
 {note}
 
 {warning}
-Our datepicker is not ready yet to be used with AJAX. In chapter 16 we will see how to modify it to make it AJAX-compatible.
+Our datepicker is not ready yet to be used with AJAX. In [chapter 18|guide:ajax] we will see how to modify it to make it AJAX-compatible.
 {warning}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/maven/maven_1.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/maven/maven_1.gdoc b/wicket-user-guide/src/docs/guide/maven/maven_1.gdoc
index 7c05c81..a20d570 100644
--- a/wicket-user-guide/src/docs/guide/maven/maven_1.gdoc
+++ b/wicket-user-guide/src/docs/guide/maven/maven_1.gdoc
@@ -1,6 +1,6 @@
 
 
-As pointed out in the note at page 9, Wicket can be started in two modes, DEVELOPMENT and DEPLOYMENT. When we are in DEVELOPMENT mode Wicket warns us at application startup with the following message:
+As pointed out in the note in [paragraph 4.2|guide:helloWorld_2], Wicket can be started in two modes, DEVELOPMENT and DEPLOYMENT. When we are in DEVELOPMENT mode Wicket warns us at application startup with the following message:
 
 {code}
 ********************************************************************
@@ -11,7 +11,7 @@ As pointed out in the note at page 9, Wicket can be started in two modes, DEVELO
 ********************************************************************
 {code}
 
-As we can read Wicket itself discourages us from using DEVELOPMENT mode into production environment. The running mode of our application can be configured in three different ways. The first one is adding a filter parameter inside deployment descriptor web.xml:
+As we can read Wicket itself discourages us from using DEVELOPMENT mode into production environment. The running mode of our application can be configured in four different ways. The first one is adding a filter parameter inside deployment descriptor web.xml:
 
 {code:html}
 <filter>      
@@ -43,4 +43,10 @@ The third way to set the running mode is using system property wicket.configurat
 java -Dwicket.configuration=deployment ...
 {code}
 
-Remember that system properties overwrite other settings, so they are ideal to ensure that on production machine the running mode will be always set to DEPLOYMENT. 
\ No newline at end of file
+The last option is to set it in your Java code (e.g. in the init-method of your WebApplication):
+
+{code}
+setConfigurationType(RuntimeConfigurationType.DEPLOYMENT);
+{code}
+
+Remember that system properties overwrite other settings, so they are ideal to ensure that on production machine the running mode will be always set to DEPLOYMENT. 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/maven/maven_2.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/maven/maven_2.gdoc b/wicket-user-guide/src/docs/guide/maven/maven_2.gdoc
index 95cb4d8..04b5f62 100644
--- a/wicket-user-guide/src/docs/guide/maven/maven_2.gdoc
+++ b/wicket-user-guide/src/docs/guide/maven/maven_2.gdoc
@@ -8,7 +8,7 @@ Another requirement is a good Internet connection (a flat ADSL is enough) becaus
 
 h3. From Maven to our IDE
 
-Wicket project and its dependencies are managed using Maven1. This tool is very useful also when we want to create a new project based on Wicket from scratch. With a couple of shell commands we can generate a new project properly configured and ready to be imported into our favourite IDE.
+Wicket project and its dependencies are managed using Maven. This tool is very useful also when we want to create a new project based on Wicket from scratch. With a couple of shell commands we can generate a new project properly configured and ready to be imported into our favourite IDE.
 The main step to create such a project is to run the command which generates project's structure and its artifacts. If we are not familiar with Maven or we simply don't want to type this command by hand, we can use the utility form on Wicket site at "http://wicket.apache.org/start/quickstart.html":http://wicket.apache.org/start/quickstart.html :
 
 !quickstart-webpage.png!
@@ -118,7 +118,7 @@ h3. Speeding up development with plugins.
 Now that we have our project loaded into our IDE we could start coding our components directly by hand. However it would be a shame to not leverage the free and good Wicket plugins available for our IDE. The following is a brief overview of the most widely used plugins for each of the three main IDEs considered so far.
 
 *NetBeans*
-NetBeans offers Wicket support thought 'NetBeans Plugin for Wicket' hosted at "http://java.net/projects/nbwicketsupport/":http://java.net/projects/nbwicketsupport/ . This plugin is released under CDDL-1.0 license. 
+NetBeans offers Wicket support through 'NetBeans Plugin for Wicket' hosted at "http://plugins.netbeans.org/plugin/3586/wicket-1-4-support":http://plugins.netbeans.org/plugin/3586/wicket-1-4-support . This plugin is released under CDDL-1.0 license. 
 You can  find a nice introduction guide to this plugin at "http://netbeans.org/kb/docs/web/quickstart-webapps-wicket.html":http://netbeans.org/kb/docs/web/quickstart-webapps-wicket.html .
 
 *Intellj IDEA*
@@ -126,4 +126,4 @@ For JetBrain IDEA we can use WicketForge plugin, hosted at Google Code "http://c
 
 *Eclipse*
 With Eclipse we can install one of the plugins that supports Wicket. As of the writing of this document, the most popular is probably Qwickie, available in the Eclipse Marketplace and hosted on Google Code at "http://code.google.com/p/qwickie/":http://code.google.com/p/qwickie/ .
-QWickie is released under ASF 2.0 license.
\ No newline at end of file
+QWickie is released under ASF 2.0 license.

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/modelsforms/modelsforms_1.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/modelsforms/modelsforms_1.gdoc b/wicket-user-guide/src/docs/guide/modelsforms/modelsforms_1.gdoc
index ce458cc..750e399 100644
--- a/wicket-user-guide/src/docs/guide/modelsforms/modelsforms_1.gdoc
+++ b/wicket-user-guide/src/docs/guide/modelsforms/modelsforms_1.gdoc
@@ -64,5 +64,5 @@ add(new Label("timeStamp", timeStampModel));
 Even if sometimes writing a custom model could be a good choice to solve a specific problem, Wicket already provides a set of IModel implementations which should fit most of our needs. In the next paragraph we will see a couple of models that allow us to easily integrate JavaBeans with our web applications and in particular with our forms.
 
 {note}
-By default class Component escapes HTML sensitive characters (like '<', '>' or '&') from the textual representation of its model object. The term 'escape' means that these characters will be replaced with their corresponding HTML "entity":http://en.wikipedia.org/wiki/Character_entity_reference (for example '<' becomes '&lt; '). This is done for security reasons as a malicious user could attempt to inject markup or JavaScript into our pages. If we want to display the raw content stored inside a model, we can tell the Component class not to escape characters by calling the setEscapeModelStrings(false) method.
-{note}
\ No newline at end of file
+By default the class Component escapes HTML sensitive characters (like '<', '>' or '&') from the textual representation of its model object. The term 'escape' means that these characters will be replaced with their corresponding HTML "entity":http://en.wikipedia.org/wiki/Character_entity_reference (for example '<' becomes '&lt; '). This is done for security reasons as a malicious user could attempt to inject markup or JavaScript into our pages. If we want to display the raw content stored inside a model, we can tell the Component class not to escape characters by calling the setEscapeModelStrings(false) method.
+{note}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/repeaters/repeaters_4.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/repeaters/repeaters_4.gdoc b/wicket-user-guide/src/docs/guide/repeaters/repeaters_4.gdoc
index 4a7496b..71c5793 100644
--- a/wicket-user-guide/src/docs/guide/repeaters/repeaters_4.gdoc
+++ b/wicket-user-guide/src/docs/guide/repeaters/repeaters_4.gdoc
@@ -2,7 +2,7 @@
 
 Wicket offers a number of components that should be used when we have to display a big number of  items (for example the results of a select SQL query). 
 
-All these components implement interface @org.apache.wicket.markup.html.navigation.paging.IPageable@ and use interface @IDataProvider@ (placed in package @org.apache.wicket.markup.repeater.data@) as data source. This interface is designed to support data paging. We will see an example of data paging later in paragraph 11.4.2. 
+All these components implement interface @org.apache.wicket.markup.html.navigation.paging.IPageable@ and use interface @IDataProvider@ (placed in package @org.apache.wicket.markup.repeater.data@) as data source. This interface is designed to support data paging. We will see an example of data paging later in [paragraph 13.4.2|guide:repeaters_4]. 
 
 The methods defined by IDataProvider are the following:
 * iterator(long first, long count): returns an iterator over a subset of the entire dataset. The subset starts from the item at position first and includes all the next count items (i.e. it's the closed interval [first,first+count]).

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_3.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_3.gdoc b/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_3.gdoc
index f94fe54..7f491cf 100644
--- a/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_3.gdoc
+++ b/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_3.gdoc
@@ -4,7 +4,7 @@ Class @org.apache.wicket.request.cycle.RequestCycle@ is the entity in charge of
 
 Method @createRequestCycle@ is declared as final, so we can't override it to return a custom subclass of @RequestCycle@. Instead, we must build a request cycle provider implementing interface @org.apache.wicket.IRequestCycleProvider@, and then we must tell our application class to use it via the @setRequestCycleProvider@ method.
 
-The current running request cycle can be retrieved at any time by calling its static method @RequestCycle.get()@. Strictly speaking this method returns the request cycle associated with the current (or local) thread, which is the thread that is serving the current request. A similar @get()@ method is also implemented in classes @org.apache.wicket.Application@ (as we have seen in paragraph 2.2.2) and @org.apache.wicket.Session@ in order to get the application and the session in use by the current thread.
+The current running request cycle can be retrieved at any time by calling its static method @RequestCycle.get()@. Strictly speaking this method returns the request cycle associated with the current (or local) thread, which is the thread that is serving the current request. A similar @get()@ method is also implemented in classes @org.apache.wicket.Application@ (as we have seen in [paragraph 4.2.2|guide:helloWorld_2]) and @org.apache.wicket.Session@ in order to get the application and the session in use by the current thread.
 
 {note}
 The implementation of the get method takes advantage of the standard class @java.lang.ThreadLocal@. See its JavaDoc for an introduction to local-thread variables.
@@ -40,13 +40,13 @@ The RequestCycle is also responsible for generating the URL value (as CharSequen
 
 * a page class, via the @urlFor(Class<C> pageClass, PageParameters parameters)@ method 
 * an IRequestHandler via the @urlFor(IRequestHandler handler)@ method 
-* a ResourceReference via the @urlFor(ResourceReference reference, PageParameters params)@ method (resource entities will be introduced in chapter 13). 
+* a ResourceReference via the @urlFor(ResourceReference reference, PageParameters params)@ method (resource entities will be introduced in [chapter 15|guide:resources]). 
 
 The overloaded @urlFor@ method from above also has a corresponding version that returns an instance of @org.apache.wicket.request.Url@ instead of a @CharSequence@. This version has the prefix 'map' in its name (i.e. it has @mapUrlFor@ as full name).
 
 h3. Method setResponsePage
 
-The @RequestCycle@ class contains the implementation of the @setResponsePage@ method we use to redirect a user to a specific page (see paragraph 2.4). The namesake method of class @org.apache.wicket.Component@ is just a convenience method that internally invokes the actual implementation on current request cycle:
+The @RequestCycle@ class contains the implementation of the @setResponsePage@ method we use to redirect a user to a specific page (see [paragraph 4.4|guide:helloWorld_4]). The namesake method of class @org.apache.wicket.Component@ is just a convenience method that internally invokes the actual implementation on current request cycle:
 
 {code}
 public final void setResponsePage(final Page page) {

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_4.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_4.gdoc b/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_4.gdoc
index f852071..393e0ac 100644
--- a/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_4.gdoc
+++ b/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_4.gdoc
@@ -32,7 +32,7 @@ The Session class handles session attributes in much the same way as the standar
 * *getAttribute(String name):* returns the value of the attribute identified by the given name, or null if the name does not correspond to any attribute.
 * *removeAttribute(String name):* removes the attribute identified by the given name.
 
-By default class WebSession will use the underlying http session to store attributes. Wicket will automatically add a prefix to the name of the attributes. This prefix is returned by the WebApplication's method getSessionAttributePrefix().
+By default class WebSession will use the underlying HTTP session to store attributes. Wicket will automatically add a prefix to the name of the attributes. This prefix is returned by the WebApplication's method getSessionAttributePrefix().
 
 h3. Accessing to the HTTP session
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_6.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_6.gdoc b/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_6.gdoc
index 9cd6a4c..61f28d8 100644
--- a/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_6.gdoc
+++ b/wicket-user-guide/src/docs/guide/requestProcessing/requestProcessing_6.gdoc
@@ -2,4 +2,4 @@
 
 In this chapter we had a look at how Wicket internally handles a web request. Even if most of the time  we won't need to customize this internal process, knowing how it works is essential to use the framework at 100%.
 
-Entities like Application and Session will come in handy again when we will tackle the topic of security in chapter 20.
\ No newline at end of file
+Entities like Application and Session will come in handy again when we will tackle the topic of security in [chapter 21|guide:security].

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/resources.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/resources.gdoc b/wicket-user-guide/src/docs/guide/resources.gdoc
index 1274817..ff01f7c 100644
--- a/wicket-user-guide/src/docs/guide/resources.gdoc
+++ b/wicket-user-guide/src/docs/guide/resources.gdoc
@@ -1,5 +1,5 @@
 One of the biggest challenge for a web framework is to offer an efficient and consistent mechanism to handle internal resources such as CSS/JavaScript files, picture files, pdf and so on. Resources can be static (like an icon used across the site) or dynamic (they can be generated on the fly) and they can be made available to users as a download or as a simple URL.
 
-In paragraph 4.6 we have already seen how to add CSS and JavaScript contents to the header section of the page. In the first half of this chapter we will learn a more sophisticated technique that allows us to manage static resources directly from code and “pack” them with our custom components.
+In [paragraph 6.6|guide:keepControl_6] we have already seen how to add CSS and JavaScript contents to the header section of the page. In the first half of this chapter we will learn a more sophisticated technique that allows us to manage static resources directly from code and “pack” them with our custom components.
 
-Then, in the second part of the chapter we will see how to implement custom resources to enrich our web application with more complex and dynamic functionalities.
\ No newline at end of file
+Then, in the second part of the chapter we will see how to implement custom resources to enrich our web application with more complex and dynamic functionalities.

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/resources/resources_1.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/resources/resources_1.gdoc b/wicket-user-guide/src/docs/guide/resources/resources_1.gdoc
index 1c47376..8bf9c5a 100644
--- a/wicket-user-guide/src/docs/guide/resources/resources_1.gdoc
+++ b/wicket-user-guide/src/docs/guide/resources/resources_1.gdoc
@@ -6,4 +6,4 @@ Resources can be static or dynamic. Static resources don't entail any computatio
 
 An example of dynamic resource is the built-in class CaptchaImageResource in package @org.apache.wicket.extensions.markup.html.captcha@ which generates a captcha image each time is rendered. 
 
-As we will see in paragraph 13.6, developers can build custom resources extending base class @org.apache.wicket.request.resource.AbstractResource@.
\ No newline at end of file
+As we will see in [paragraph 15.10|guide:resources_10], developers can build custom resources extending base class @org.apache.wicket.request.resource.AbstractResource@.

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/resources/resources_10.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/resources/resources_10.gdoc b/wicket-user-guide/src/docs/guide/resources/resources_10.gdoc
index f7fe0d9..45d78f4 100644
--- a/wicket-user-guide/src/docs/guide/resources/resources_10.gdoc
+++ b/wicket-user-guide/src/docs/guide/resources/resources_10.gdoc
@@ -2,7 +2,7 @@
 
 In Wicket the best way to add dynamic functionalities to our application (such as csv export, a pdf generated on the fly, etc...) is implementing a custom resource. In this paragraph as example of custom resource we will build a basic RSS feeds generator which can be used to publish feeds on our site (project CustomResourceMounting). Instead of generating a RSS feed by hand we will use Rome framework and its utility classes. 
 
-As hinted above in paragraph 13.1, class @AbstractResource@ can be used as base class to implement new resources. This class defines abstract method @newResourceResponse@ which is invoked when the resource is requested. The following is the code of our RSS feeds generator:
+As hinted above in [paragraph 15.1|guide:resources_1], class @AbstractResource@ can be used as base class to implement new resources. This class defines abstract method @newResourceResponse@ which is invoked when the resource is requested. The following is the code of our RSS feeds generator:
 
 {code}
 public class RSSProducerResource extends AbstractResource {
@@ -45,4 +45,4 @@ Now that we have our custom resource in place, we can use it in the home page of
 add(new ResourceLink("rssLink", new RSSProducerResource()));
 {code}
 
-In the next paragraphs we will see how to register a resource at application-level and how to mount it to an arbitrary URL.
\ No newline at end of file
+In the next paragraphs we will see how to register a resource at application-level and how to mount it to an arbitrary URL.

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/resources/resources_11.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/resources/resources_11.gdoc b/wicket-user-guide/src/docs/guide/resources/resources_11.gdoc
index 89eee07..9d62202 100644
--- a/wicket-user-guide/src/docs/guide/resources/resources_11.gdoc
+++ b/wicket-user-guide/src/docs/guide/resources/resources_11.gdoc
@@ -1,6 +1,6 @@
 
 
-Just like pages also resources can be mounted to a specific path. Class @WebApplication@ provides method @mountResource@ which is almost identical to @mountPage@ seen in paragraph 8.6.1:
+Just like pages also resources can be mounted to a specific path. Class @WebApplication@ provides method @mountResource@ which is almost identical to @mountPage@ seen in [paragraph 10.6.1|guide:urls_6]:
 
 {code}
 @Override
@@ -34,4 +34,4 @@ public void init() {
   }};
   mountResource("/bar/${baz}", resourceReference);
 }
-{code}
\ No newline at end of file
+{code}

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/resources/resources_3.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/resources/resources_3.gdoc b/wicket-user-guide/src/docs/guide/resources/resources_3.gdoc
index e996b36..ecd4aba 100644
--- a/wicket-user-guide/src/docs/guide/resources/resources_3.gdoc
+++ b/wicket-user-guide/src/docs/guide/resources/resources_3.gdoc
@@ -49,7 +49,7 @@ In our example the URL for our picture file calendar.jpg is the following:
 
 @./wicket/resource/org.wicketTutorial.CustomPanel/calendar-ver-1297887542000.jpg@
 
-The first part of the URL is the relative path to the application root. In our example our page is already at the application's root so we have only a single-dotted segment. The next two segments, wicket and resource, are respectively the namespace and the identifier for resources seen in paragraph 8.6.4. 
+The first part of the URL is the relative path to the application root. In our example our page is already at the application's root so we have only a single-dotted segment. The next two segments, wicket and resource, are respectively the namespace and the identifier for resources seen in [paragraph 10.6.4|guide:urls_6]. 
 
 The fourth segment is the fully qualified name of the class used to locate the resource and it is the scope of the package resource. In the last segment of the URL we can find the name of the resource (the file name).
 
@@ -145,7 +145,7 @@ Since Wicket 7.0.0 the PackageResource and the PackageResourceReference support
 
 h3. Using package resources with tag <wicket:link>
 
-In paragraph 8.3 we have used tag <wicket:link> to automatically create links to bookmarkable pages. The same technique can be used also for package resources in order to use them directly from markup file. Let's assume for example that we have a picture file called icon.png placed in the same package of the current page. Under these conditions we can display the picture file using the following markup fragment:
+In [paragraph 10.3|guide:urls_3] we have used tag <wicket:link> to automatically create links to bookmarkable pages. The same technique can be used also for package resources in order to use them directly from markup file. Let's assume for example that we have a picture file called icon.png placed in the same package of the current page. Under these conditions we can display the picture file using the following markup fragment:
 
 {code:html}
 <wicket:link>

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/resources/resources_4.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/resources/resources_4.gdoc b/wicket-user-guide/src/docs/guide/resources/resources_4.gdoc
index 7645c9b..769659b 100644
--- a/wicket-user-guide/src/docs/guide/resources/resources_4.gdoc
+++ b/wicket-user-guide/src/docs/guide/resources/resources_4.gdoc
@@ -1,6 +1,6 @@
 
 
-Wicket comes with interface @org.apache.wicket.markup.html.IHeaderContributor@ which allows components and behaviors (which will be introduced later in paragraph 15.1) to contribute to the header section of their page. The only method defined in this interface is @renderHead(IHeaderResponse response)@ where @IHeaderResponse@ is an interface which defines method @render(HeaderItem item)@ to write static resources or free-form text into the header section of the page. 
+Wicket comes with interface @org.apache.wicket.markup.html.IHeaderContributor@ which allows components and behaviors (which will be introduced later in [paragraph 17.1|guide:advanced_1]) to contribute to the header section of their page. The only method defined in this interface is @renderHead(IHeaderResponse response)@ where @IHeaderResponse@ is an interface which defines method @render(HeaderItem item)@ to write static resources or free-form text into the header section of the page. 
 
 Header entries are instances of abstract class @org.apache.wicket.markup.head.HeaderItem@. Wicket provides a set of built-in implementations of this class suited for the most common types of resources. With the exception of @PriorityHeaderItem@, every implementation of @HeaderItem@ is an abstract factory class:
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/security/security_2.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/security/security_2.gdoc b/wicket-user-guide/src/docs/guide/security/security_2.gdoc
index 1f76d76..46e9984 100644
--- a/wicket-user-guide/src/docs/guide/security/security_2.gdoc
+++ b/wicket-user-guide/src/docs/guide/security/security_2.gdoc
@@ -70,7 +70,7 @@ By default @SimplePageAuthorizationStrategy@ checks for permissions only on page
 
 h3. Role-based strategies
 
-At the end of paragraph 20.1 we have introduced AbstractAuthenticatedWebSession's method getRoles which is provided to support role-based authorization returning the set of roles granted to the current user.
+At the end of [paragraph 21.1|guide:security_1] we have introduced AbstractAuthenticatedWebSession's method getRoles which is provided to support role-based authorization returning the set of roles granted to the current user.
 
 In Wicket roles are simple strings like “BASIC_USER” or “ADMIN” (they don't need to be capitalized) and they are handled with class @org.apache.wicket.authroles.authorization.strategies.role.Roles@. This class extends standard HashSet collection adding some functionalities to check whether the set contains one or more roles. Class @Roles@ already defines roles Roles.USER and Roles.ADMIN.
 
@@ -116,7 +116,7 @@ Roles can be adopted to apply security restrictions on our pages and components.
 The difference between these two strategies is that @MetaDataRoleAuthorizationStrategy@ handles role-based authorizations with Wicket metadata while @AnnotationsRoleAuthorizationStrategy@ uses Java annotations.
 
 {note}
-Application class @AuthenticatedWebApplication@ already sets @MetaDataRoleAuthorizationStrategy@ and @AnnotationsRoleAuthorizationStrategy@ as its own authorization strategies (it uses a compound strategy as we will see in paragraph 20.2).
+Application class @AuthenticatedWebApplication@ already sets @MetaDataRoleAuthorizationStrategy@ and @AnnotationsRoleAuthorizationStrategy@ as its own authorization strategies (it uses a compound strategy as we will see in [paragraph 21.2|guide:security_2]).
 
 The code that we will see in the next examples is for illustrative purpose only. If our application class inherits from @AuthenticatedWebApplication@ we won't need to configure anything to use these two strategies.
 {note}
@@ -217,7 +217,7 @@ The access-denied page can be customized using method @setAccessDeniedPage(Class
    }
 {code}
 
-Just like custom “Page expired” page (see chapter 6.2.5), also custom “Access denied” page must be bookmarkable.
+Just like custom “Page expired” page (see [chapter 8.2.5|guide:versioningCaching_2]), also custom “Access denied” page must be bookmarkable.
 
 h4. Using roles with annotations
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/security/security_3.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/security/security_3.gdoc b/wicket-user-guide/src/docs/guide/security/security_3.gdoc
index 62be06b..26d58e3 100644
--- a/wicket-user-guide/src/docs/guide/security/security_3.gdoc
+++ b/wicket-user-guide/src/docs/guide/security/security_3.gdoc
@@ -4,7 +4,7 @@ HTTPS is the standard technology adopted on Internet to create a secure communic
 
 In Wicket we can easily protect our pages with HTTPS mounting a special request mapper called @HttpsMapper@ and using annotation RequireHttps with those pages we want to serve over this protocol. Both these two entities are in package @org.apache.wicket.protocol.https@.
 
-HttpsMapper wraps an existing mapper and redirects incoming requests to HTTPS if the related response must render a page containing annotation @RequireHttps@. Most of the times the wrapped mapper will be the root one, just like we saw before for @CryptoMapper@ in paragraph 10.6.
+HttpsMapper wraps an existing mapper and redirects incoming requests to HTTPS if the related response must render a page containing annotation @RequireHttps@. Most of the times the wrapped mapper will be the root one, just like we saw before for @CryptoMapper@ in [paragraph 10.6|guide:urls_6].
 
 Another parameter needed to build a @HttpsMapper@ is an instance of class @HttpsConfi@g. This class allows us to specify which ports must be used for HTTPS and HTTP. By default the port numbers used by these two protocols are respectively 443 and 80.
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/testing/testing_1.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/testing/testing_1.gdoc b/wicket-user-guide/src/docs/guide/testing/testing_1.gdoc
index 04a2eda..3fbb7fc 100644
--- a/wicket-user-guide/src/docs/guide/testing/testing_1.gdoc
+++ b/wicket-user-guide/src/docs/guide/testing/testing_1.gdoc
@@ -238,7 +238,7 @@ tester.executeBehavior(ajaxBehavior));
 
 h3. Using a custom servlet context
 
-In paragraph 13.9 we have seen how to configure our application to store resource files into a custom folder placed inside webapp root folder (see project @CustomFolder4MarkupExample@). 
+In [paragraph 15.13|guide:resources_13] we have seen how to configure our application to store resource files into a custom folder placed inside webapp root folder (see project @CustomFolder4MarkupExample@). 
 
 In order to write testing code for applications that use this kind of customization, we must tell @WicketTester@ which folder to use as webapp root. This is necessary as under test environment we don't have any web server, hence it's impossible for @WicketTester@ to retrieve this parameter from servlet context.
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/urls.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/urls.gdoc b/wicket-user-guide/src/docs/guide/urls.gdoc
index 8353113..d96cb95 100644
--- a/wicket-user-guide/src/docs/guide/urls.gdoc
+++ b/wicket-user-guide/src/docs/guide/urls.gdoc
@@ -1,4 +1,4 @@
-Up to now we used component Link to move from a page to another and we have seen that it is quiet similar to a “click” event handler (see paragraph 2.4). 
+Up to now we used component Link to move from a page to another and we have seen that it is quiet similar to a “click” event handler (see [paragraph 4.4|guide:helloWorld_4]). 
 
 However this component alone is not enough to build all possible kinds of links we may need in our pages. Therefore, Wicket offers other link components suited for those tasks which can not be accomplished with a basic Link. 
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/8929074f/wicket-user-guide/src/docs/guide/urls/urls_6.gdoc
----------------------------------------------------------------------
diff --git a/wicket-user-guide/src/docs/guide/urls/urls_6.gdoc b/wicket-user-guide/src/docs/guide/urls/urls_6.gdoc
index 770b1d2..0b0b491 100644
--- a/wicket-user-guide/src/docs/guide/urls/urls_6.gdoc
+++ b/wicket-user-guide/src/docs/guide/urls/urls_6.gdoc
@@ -1,10 +1,10 @@
 
 
-Having structured URLs in our site is a basic requirement if we want to build an efficient SEO1 strategy, but it also contributes to improve user experience with more intuitive URLs. Wicket provides two different ways to control URL generation. The first (and simplest) is to “mount” one or more pages to an arbitrary path, while a more powerful technique is to use custom implementations of IMapperContext and IPageParametersEncoder interfaces. In the next paragraphs we will learn both of these two techniques.
+Having structured URLs in our site is a basic requirement if we want to build an efficient SEO strategy, but it also contributes to improve user experience with more intuitive URLs. Wicket provides two different ways to control URL generation. The first (and simplest) is to “mount” one or more pages to an arbitrary path, while a more powerful technique is to use custom implementations of IMapperContext and IPageParametersEncoder interfaces. In the next paragraphs we will learn both of these two techniques.
 
 h3. Mounting a single page
 
-With Wicket we can mount a page to a given path in much the same way as we map a servlet filer to a desired path inside file web.xml (see page 9). Using mountPage(String path, Class <T> pageClass) method of the WepApplication class we tell Wicket to respond with a new instance of pageClass whenever a user navigates to the given path. In the application class of the project MountedPagesExample we mount MountedPage to the "/pageMount" path:
+With Wicket we can mount a page to a given path in much the same way as we map a servlet filter to a desired path inside file web.xml (see [paragraph 4.2|guide:helloWorld_2]). Using mountPage(String path, Class <T> pageClass) method of the WepApplication class we tell Wicket to respond with a new instance of pageClass whenever a user navigates to the given path. In the application class of the project MountedPagesExample we mount MountedPage to the "/pageMount" path:
 
 {code}
 @Override
@@ -31,7 +31,7 @@ public final <T extends Page> void mountPage(final String path,final Class<T> pa
 }
 {code}
 
-Request mappers and the Application's method mount have been introduced in the previous chapter (paragraph 9.3).
+Request mappers and the Application's method mount have been introduced in the previous chapter ([paragraph 9.3|guide:requestProcessing_3]).
 
 h3. Using parameter placeholders with mounted pages
 
@@ -111,8 +111,8 @@ Interface @org.apache.wicket.request.mapper.IMapperContext@ is used by request m
 
 * Namespace: it's the first URL segment of non-mounted pages. By default its value is wicket.
 * Identifier for non-bookmarkable URLs: it's the segment that identifies non bookmarkable pages. By default its value is page.
-* Identifier for bookmarkable URLs: it's the segment that identifies bookmarkable pages. By default its value is bookmarkable (as we have seen before in paragraph 8.1.1).
-* Identifier for resources: it's the segment that identifies Wicket resources. Its default value is resources. The topic of resource management will be covered in chapter 13.
+* Identifier for bookmarkable URLs: it's the segment that identifies bookmarkable pages. By default its value is bookmarkable (as we have seen before in [paragraph 10.1.1|guide:urls_1]).
+* Identifier for resources: it's the segment that identifies Wicket resources. Its default value is resources. The topic of resource management will be covered in [chapter 15|guide:resources].
 
 IMapperContext provides a getter method for any segment listed above. By default Wicket uses class @org.apache.wicket.DefaultMapperContext@ as mapper context.