You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Juergen Donnerstag (JIRA)" <ji...@apache.org> on 2011/04/24 10:03:05 UTC

[jira] [Created] (WICKET-3639) if and when a xml prolog is written to the response

if and when a xml prolog is written to the response
---------------------------------------------------

                 Key: WICKET-3639
                 URL: https://issues.apache.org/jira/browse/WICKET-3639
             Project: Wicket
          Issue Type: Improvement
            Reporter: Juergen Donnerstag


Copied from mail thread: http://apache-wicket.1842946.n4.nabble.com/Re-Missing-XML-declaration-in-error-page-td3466395.html

I had another look at Page.configureResponse(). I agree that the
current behavior is a bit strange.

If the page markup contains the xml prolog, than a xml prolog is
written to the response, with the encoding provided by
application.getRequestCycleSettings().getResponseRequestEncoding().
If page markup contain no xml prolog, than no xml prolog is written
into the response.

I think we should remove get/setStripXmlDeclarationFromOutput() and
replace it with is/setInsertXmlProlog. An no matter whether the page
markup contains a prolog or not, only if the application setting is
true, a prolog is written or not. If RCS encoding is null, the prolog
will still be written, but without encoding attribute.

- it more clearly separates markup reading from response writing
- allow to enable/disable xml prolog for all pages of the application,
irrespective whether the markup has the prolog
- the response prolog can no longer be controlled via the page markup.
E.g. all pages with style or variation "IE" containing IE specific
markup, have slightly different markup (don't know if anybody is using
it like that). We could still allow that by introducing
WebApplication.isInsertXmlProlog with Page parameter, which can be
overriden by user on demand. By default it return
markupSettings.isInsert...

Any thoughts?

-Juergen
- Hide quoted text -

On Fri, Apr 22, 2011 at 11:12 AM, Martin Grigorov <mg...@apache.org> wrote:
> Hi Juergen,
>
> Thanks for the explanation. It is more clear now.
> I meant using IResponseFilter to add the XML prolog if the user
> application really wants to.
> Now Page#configureResponse() sets it only for the pages which have it
> in their markup. If a MyPage.html don't have it and all panels used in
> that page use non-ascii characters and have the prolog then it is not
> set in the produced final page markup.
>
> I'm not saying we need to change it. If I want the prolog then I'd use
> my own IResponseFilter to add it to all pages - mine and re-used from
> libraries (like Wicket internals).
>
> The problem reported by Petr is fixed in 1.5. All pages have the prolog.
>
> On Fri, Apr 22, 2011 at 10:10 AM, Juergen Donnerstag
> <ju...@gmail.com> wrote:
>> the setting/exception is to make sure that all markup files have
>> proper encoding. Think about moving markup files from your local latop
>> onto a production server. Who guarantees that in your markup are only
>> ascii chars? Who guarantees the prod server has the same default
>> encoding than your devs laptops (and your dev might be working
>> somewhere on the globe). And though the response needs to be browser
>> aware, because especially historically every browser version behaved
>> different depending on the presence of the xml prolog in response, it
>> doesn't (and shouldn't) matter for Wicket's markup. Use whatever web
>> editor you want, with whatever encoding you want, just make sure the
>> xml prolog is present.
>>
>> Wicket always removes the xml prolog from the markup upon reading,
>> only the encoding (of Pages) get remembered and used as default for
>> configuring the Page response. It is Page.configureResponse which
>> writes a new xml prolog to the response. You can omit that by simply
>> setting getMarkupSettings().setStripXmlDeclarationFromOutput(false).
>> No need for response filter or whatever.
>>
>> IMO every Wicket markup, especially of what we deliver, should have
>> the xml prolog.
>>
>> -Juergen
>>
>> On Thu, Apr 21, 2011 at 9:04 PM, Martin Grigorov <mg...@apache.org> wrote:
>>> I don't know the history of this recommendation. The log message says
>>> "The markup file does not have a XML declaration prolog: " +
>>> markupResourceData.getResource() + ". It is more save to use it."
>>>
>>> I'm not sure how it is more safe this way (if we keep this message we
>>> need to fix the typo at least :-) )
>>> I'd vote to remove this prolog all together. If the user app needs it
>>> then it is quite easy to use IResponseFilter to add it for each and
>>> every page.
>>>
>>>
>>> On Thu, Apr 21, 2011 at 7:51 PM, Pedro Santos <pe...@gmail.com> wrote:
>>>>
>>>> He Petr, by add the prolog in the html files those pages are not correctly
>>>> rendered in IE8, IMO opinion the best option we have now is to move the
>>>> Apache header in those files to inside the html tag plus restore the prolog
>>>> [1].
>>>>
>>>> Devs, I don't know if we can freely move the Apache header to outside the
>>>> top of our files. Also reading the header politic site [2], I don't get if
>>>> we can simple remove it. Does the exception page fits the "without any
>>>> degree of creativity" requirement since it has no programming code? It is
>>>> just static markup...
>>>>
>>>> 1 - https://issues.apache.org/jira/browse/WICKET-3566
>>>> 2 - http://www.apache.org/legal/src-headers.html
>>>>
>>>> <https://issues.apache.org/jira/browse/WICKET-3566>
>>>> On Thu, Apr 21, 2011 at 2:26 AM, Petr Gladkikh <pe...@gmail.com> wrote:
>>>>
>>>> > I am trying to upgrage from wicket 1.4.1 to 1.4.17 and have following
>>>> > problem.
>>>> > In our application we configure
>>>> > getMarkupSettings().setThrowExceptionOnMissingXmlDeclaration(true);
>>>> >
>>>> > This prevents all Wicket's default pages from rendering since none of
>>>> > them contain XML prolog anymore. E.g. none of HTML files in
>>>> >
>>>> > apache-wicket-1.4.17/src/wicket/src/main/java/org/apache/wicket/markup/html/pages
>>>> > contain XML declaration prolog. When wicket tries to show error page
>>>> > exception is thrown. Top of stack trace is:
>>>> > at org.apache.wicket.markup.MarkupParser.parse(MarkupParser.java:280)
>>>> > at
>>>> > org.apache.wicket.markup.loader.SimpleMarkupLoader.loadMarkup(SimpleMarkupLoader.java:52)
>>>> > at
>>>> > org.apache.wicket.markup.loader.InheritedMarkupMarkupLoader.loadMarkup(InheritedMarkupMarkupLoader.java:62)
>>>> > at
>>>> > org.apache.wicket.markup.loader.DefaultMarkupLoader.loadMarkup(DefaultMarkupLoader.java:55)
>>>> > at org.apache.wicket.markup.MarkupCache.loadMarkup(MarkupCache.java:465)
>>>> > at
>>>> > org.apache.wicket.markup.MarkupCache.loadMarkupAndWatchForChanges(MarkupCache.java:561)
>>>> > at org.apache.wicket.markup.MarkupCache.getMarkup(MarkupCache.java:325)
>>>> > at
>>>> > org.apache.wicket.markup.MarkupCache.getMarkupStream(MarkupCache.java:216)
>>>> > at
>>>> > org.apache.wicket.MarkupContainer.getAssociatedMarkupStream(MarkupContainer.java:351)
>>>> > at org.apache.wicket.Page.onRender(Page.java:1587)
>>>> > at org.apache.wicket.Component.render(Component.java:2521)
>>>> > at org.apache.wicket.Page.renderPage(Page.java:932)
>>>> >
>>>> > I can work around by switching these exceptions off. But I think that
>>>> > the problem should be fixed otherwise since even when these exceptions
>>>> > are switched off following message is written to log:
>>>> > log.debug("The markup file does not have a XML declaration prolog: " +
>>>> > markupResourceData.getResource() + ". It is more save to use it. E.g.
>>>> > <?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
>>>> >
>>>> > --
>>>> > Petr Gladkikh
>>>> >
>>>> > ---------------------------------------------------------------------
>>>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>>>> > For additional commands, e-mail: users-help@wicket.apache.org
>>>> >
>>>> >
>>>>
>>>>
>>>> --
>>>> Pedro Henrique Oliveira dos Santos
>>>
>>>
>>>
>>> --
>>> Martin Grigorov
>>> jWeekend
>>> Training, Consulting, Development
>>> http://jWeekend.com
>>>
>>
>
>
>
> --
> Martin Grigorov
> jWeekend
> Training, Consulting, Development
> http://jWeekend.com
>

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Commented] (WICKET-3639) if and when a xml prolog is written to the response

Posted by "Martin Grigorov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-3639?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13045384#comment-13045384 ] 

Martin Grigorov commented on WICKET-3639:
-----------------------------------------

I've missed that this ticket has a patch.
Looks OK. I just don't like that Page uses *Web*Application. It'd be good if this can be moved to WebPage.

Additionally I just saw https://developer.mozilla.org/en/Writing_JavaScript_for_XHTML#Finally.3a_Content_Negotiation. Here they recommend to write the XML declaration only if the user agent says that it supports it.

> if and when a xml prolog is written to the response
> ---------------------------------------------------
>
>                 Key: WICKET-3639
>                 URL: https://issues.apache.org/jira/browse/WICKET-3639
>             Project: Wicket
>          Issue Type: Improvement
>            Reporter: Juergen Donnerstag
>         Attachments: wicket-xmlProlog.patch
>
>
> Copied from mail thread: http://apache-wicket.1842946.n4.nabble.com/Re-Missing-XML-declaration-in-error-page-td3466395.html
> I had another look at Page.configureResponse(). I agree that the
> current behavior is a bit strange.
> If the page markup contains the xml prolog, than a xml prolog is
> written to the response, with the encoding provided by
> application.getRequestCycleSettings().getResponseRequestEncoding().
> If page markup contain no xml prolog, than no xml prolog is written
> into the response.
> I think we should remove get/setStripXmlDeclarationFromOutput() and
> replace it with is/setInsertXmlProlog. An no matter whether the page
> markup contains a prolog or not, only if the application setting is
> true, a prolog is written or not. If RCS encoding is null, the prolog
> will still be written, but without encoding attribute.
> - it more clearly separates markup reading from response writing
> - allow to enable/disable xml prolog for all pages of the application,
> irrespective whether the markup has the prolog
> - the response prolog can no longer be controlled via the page markup.
> E.g. all pages with style or variation "IE" containing IE specific
> markup, have slightly different markup (don't know if anybody is using
> it like that). We could still allow that by introducing
> WebApplication.isInsertXmlProlog with Page parameter, which can be
> overriden by user on demand. By default it return
> markupSettings.isInsert...
> Any thoughts?
> -Juergen
> - Hide quoted text -
> On Fri, Apr 22, 2011 at 11:12 AM, Martin Grigorov <mg...@apache.org> wrote:
> > Hi Juergen,
> >
> > Thanks for the explanation. It is more clear now.
> > I meant using IResponseFilter to add the XML prolog if the user
> > application really wants to.
> > Now Page#configureResponse() sets it only for the pages which have it
> > in their markup. If a MyPage.html don't have it and all panels used in
> > that page use non-ascii characters and have the prolog then it is not
> > set in the produced final page markup.
> >
> > I'm not saying we need to change it. If I want the prolog then I'd use
> > my own IResponseFilter to add it to all pages - mine and re-used from
> > libraries (like Wicket internals).
> >
> > The problem reported by Petr is fixed in 1.5. All pages have the prolog.
> >
> > On Fri, Apr 22, 2011 at 10:10 AM, Juergen Donnerstag
> > <ju...@gmail.com> wrote:
> >> the setting/exception is to make sure that all markup files have
> >> proper encoding. Think about moving markup files from your local latop
> >> onto a production server. Who guarantees that in your markup are only
> >> ascii chars? Who guarantees the prod server has the same default
> >> encoding than your devs laptops (and your dev might be working
> >> somewhere on the globe). And though the response needs to be browser
> >> aware, because especially historically every browser version behaved
> >> different depending on the presence of the xml prolog in response, it
> >> doesn't (and shouldn't) matter for Wicket's markup. Use whatever web
> >> editor you want, with whatever encoding you want, just make sure the
> >> xml prolog is present.
> >>
> >> Wicket always removes the xml prolog from the markup upon reading,
> >> only the encoding (of Pages) get remembered and used as default for
> >> configuring the Page response. It is Page.configureResponse which
> >> writes a new xml prolog to the response. You can omit that by simply
> >> setting getMarkupSettings().setStripXmlDeclarationFromOutput(false).
> >> No need for response filter or whatever.
> >>
> >> IMO every Wicket markup, especially of what we deliver, should have
> >> the xml prolog.
> >>
> >> -Juergen
> >>
> >> On Thu, Apr 21, 2011 at 9:04 PM, Martin Grigorov <mg...@apache.org> wrote:
> >>> I don't know the history of this recommendation. The log message says
> >>> "The markup file does not have a XML declaration prolog: " +
> >>> markupResourceData.getResource() + ". It is more save to use it."
> >>>
> >>> I'm not sure how it is more safe this way (if we keep this message we
> >>> need to fix the typo at least :-) )
> >>> I'd vote to remove this prolog all together. If the user app needs it
> >>> then it is quite easy to use IResponseFilter to add it for each and
> >>> every page.
> >>>
> >>>
> >>> On Thu, Apr 21, 2011 at 7:51 PM, Pedro Santos <pe...@gmail.com> wrote:
> >>>>
> >>>> He Petr, by add the prolog in the html files those pages are not correctly
> >>>> rendered in IE8, IMO opinion the best option we have now is to move the
> >>>> Apache header in those files to inside the html tag plus restore the prolog
> >>>> [1].
> >>>>
> >>>> Devs, I don't know if we can freely move the Apache header to outside the
> >>>> top of our files. Also reading the header politic site [2], I don't get if
> >>>> we can simple remove it. Does the exception page fits the "without any
> >>>> degree of creativity" requirement since it has no programming code? It is
> >>>> just static markup...
> >>>>
> >>>> 1 - https://issues.apache.org/jira/browse/WICKET-3566
> >>>> 2 - http://www.apache.org/legal/src-headers.html
> >>>>
> >>>> <https://issues.apache.org/jira/browse/WICKET-3566>
> >>>> On Thu, Apr 21, 2011 at 2:26 AM, Petr Gladkikh <pe...@gmail.com> wrote:
> >>>>
> >>>> > I am trying to upgrage from wicket 1.4.1 to 1.4.17 and have following
> >>>> > problem.
> >>>> > In our application we configure
> >>>> > getMarkupSettings().setThrowExceptionOnMissingXmlDeclaration(true);
> >>>> >
> >>>> > This prevents all Wicket's default pages from rendering since none of
> >>>> > them contain XML prolog anymore. E.g. none of HTML files in
> >>>> >
> >>>> > apache-wicket-1.4.17/src/wicket/src/main/java/org/apache/wicket/markup/html/pages
> >>>> > contain XML declaration prolog. When wicket tries to show error page
> >>>> > exception is thrown. Top of stack trace is:
> >>>> > at org.apache.wicket.markup.MarkupParser.parse(MarkupParser.java:280)
> >>>> > at
> >>>> > org.apache.wicket.markup.loader.SimpleMarkupLoader.loadMarkup(SimpleMarkupLoader.java:52)
> >>>> > at
> >>>> > org.apache.wicket.markup.loader.InheritedMarkupMarkupLoader.loadMarkup(InheritedMarkupMarkupLoader.java:62)
> >>>> > at
> >>>> > org.apache.wicket.markup.loader.DefaultMarkupLoader.loadMarkup(DefaultMarkupLoader.java:55)
> >>>> > at org.apache.wicket.markup.MarkupCache.loadMarkup(MarkupCache.java:465)
> >>>> > at
> >>>> > org.apache.wicket.markup.MarkupCache.loadMarkupAndWatchForChanges(MarkupCache.java:561)
> >>>> > at org.apache.wicket.markup.MarkupCache.getMarkup(MarkupCache.java:325)
> >>>> > at
> >>>> > org.apache.wicket.markup.MarkupCache.getMarkupStream(MarkupCache.java:216)
> >>>> > at
> >>>> > org.apache.wicket.MarkupContainer.getAssociatedMarkupStream(MarkupContainer.java:351)
> >>>> > at org.apache.wicket.Page.onRender(Page.java:1587)
> >>>> > at org.apache.wicket.Component.render(Component.java:2521)
> >>>> > at org.apache.wicket.Page.renderPage(Page.java:932)
> >>>> >
> >>>> > I can work around by switching these exceptions off. But I think that
> >>>> > the problem should be fixed otherwise since even when these exceptions
> >>>> > are switched off following message is written to log:
> >>>> > log.debug("The markup file does not have a XML declaration prolog: " +
> >>>> > markupResourceData.getResource() + ". It is more save to use it. E.g.
> >>>> > <?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
> >>>> >
> >>>> > --
> >>>> > Petr Gladkikh
> >>>> >
> >>>> > ---------------------------------------------------------------------
> >>>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>>> > For additional commands, e-mail: users-help@wicket.apache.org
> >>>> >
> >>>> >
> >>>>
> >>>>
> >>>> --
> >>>> Pedro Henrique Oliveira dos Santos
> >>>
> >>>
> >>>
> >>> --
> >>> Martin Grigorov
> >>> jWeekend
> >>> Training, Consulting, Development
> >>> http://jWeekend.com
> >>>
> >>
> >
> >
> >
> > --
> > Martin Grigorov
> > jWeekend
> > Training, Consulting, Development
> > http://jWeekend.com
> >

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (WICKET-3639) if and when a xml prolog is written to the response

Posted by "Juergen Donnerstag (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-3639?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Juergen Donnerstag updated WICKET-3639:
---------------------------------------

    Attachment: wicket-xmlProlog.patch

a patch implementing the idea

> if and when a xml prolog is written to the response
> ---------------------------------------------------
>
>                 Key: WICKET-3639
>                 URL: https://issues.apache.org/jira/browse/WICKET-3639
>             Project: Wicket
>          Issue Type: Improvement
>            Reporter: Juergen Donnerstag
>         Attachments: wicket-xmlProlog.patch
>
>
> Copied from mail thread: http://apache-wicket.1842946.n4.nabble.com/Re-Missing-XML-declaration-in-error-page-td3466395.html
> I had another look at Page.configureResponse(). I agree that the
> current behavior is a bit strange.
> If the page markup contains the xml prolog, than a xml prolog is
> written to the response, with the encoding provided by
> application.getRequestCycleSettings().getResponseRequestEncoding().
> If page markup contain no xml prolog, than no xml prolog is written
> into the response.
> I think we should remove get/setStripXmlDeclarationFromOutput() and
> replace it with is/setInsertXmlProlog. An no matter whether the page
> markup contains a prolog or not, only if the application setting is
> true, a prolog is written or not. If RCS encoding is null, the prolog
> will still be written, but without encoding attribute.
> - it more clearly separates markup reading from response writing
> - allow to enable/disable xml prolog for all pages of the application,
> irrespective whether the markup has the prolog
> - the response prolog can no longer be controlled via the page markup.
> E.g. all pages with style or variation "IE" containing IE specific
> markup, have slightly different markup (don't know if anybody is using
> it like that). We could still allow that by introducing
> WebApplication.isInsertXmlProlog with Page parameter, which can be
> overriden by user on demand. By default it return
> markupSettings.isInsert...
> Any thoughts?
> -Juergen
> - Hide quoted text -
> On Fri, Apr 22, 2011 at 11:12 AM, Martin Grigorov <mg...@apache.org> wrote:
> > Hi Juergen,
> >
> > Thanks for the explanation. It is more clear now.
> > I meant using IResponseFilter to add the XML prolog if the user
> > application really wants to.
> > Now Page#configureResponse() sets it only for the pages which have it
> > in their markup. If a MyPage.html don't have it and all panels used in
> > that page use non-ascii characters and have the prolog then it is not
> > set in the produced final page markup.
> >
> > I'm not saying we need to change it. If I want the prolog then I'd use
> > my own IResponseFilter to add it to all pages - mine and re-used from
> > libraries (like Wicket internals).
> >
> > The problem reported by Petr is fixed in 1.5. All pages have the prolog.
> >
> > On Fri, Apr 22, 2011 at 10:10 AM, Juergen Donnerstag
> > <ju...@gmail.com> wrote:
> >> the setting/exception is to make sure that all markup files have
> >> proper encoding. Think about moving markup files from your local latop
> >> onto a production server. Who guarantees that in your markup are only
> >> ascii chars? Who guarantees the prod server has the same default
> >> encoding than your devs laptops (and your dev might be working
> >> somewhere on the globe). And though the response needs to be browser
> >> aware, because especially historically every browser version behaved
> >> different depending on the presence of the xml prolog in response, it
> >> doesn't (and shouldn't) matter for Wicket's markup. Use whatever web
> >> editor you want, with whatever encoding you want, just make sure the
> >> xml prolog is present.
> >>
> >> Wicket always removes the xml prolog from the markup upon reading,
> >> only the encoding (of Pages) get remembered and used as default for
> >> configuring the Page response. It is Page.configureResponse which
> >> writes a new xml prolog to the response. You can omit that by simply
> >> setting getMarkupSettings().setStripXmlDeclarationFromOutput(false).
> >> No need for response filter or whatever.
> >>
> >> IMO every Wicket markup, especially of what we deliver, should have
> >> the xml prolog.
> >>
> >> -Juergen
> >>
> >> On Thu, Apr 21, 2011 at 9:04 PM, Martin Grigorov <mg...@apache.org> wrote:
> >>> I don't know the history of this recommendation. The log message says
> >>> "The markup file does not have a XML declaration prolog: " +
> >>> markupResourceData.getResource() + ". It is more save to use it."
> >>>
> >>> I'm not sure how it is more safe this way (if we keep this message we
> >>> need to fix the typo at least :-) )
> >>> I'd vote to remove this prolog all together. If the user app needs it
> >>> then it is quite easy to use IResponseFilter to add it for each and
> >>> every page.
> >>>
> >>>
> >>> On Thu, Apr 21, 2011 at 7:51 PM, Pedro Santos <pe...@gmail.com> wrote:
> >>>>
> >>>> He Petr, by add the prolog in the html files those pages are not correctly
> >>>> rendered in IE8, IMO opinion the best option we have now is to move the
> >>>> Apache header in those files to inside the html tag plus restore the prolog
> >>>> [1].
> >>>>
> >>>> Devs, I don't know if we can freely move the Apache header to outside the
> >>>> top of our files. Also reading the header politic site [2], I don't get if
> >>>> we can simple remove it. Does the exception page fits the "without any
> >>>> degree of creativity" requirement since it has no programming code? It is
> >>>> just static markup...
> >>>>
> >>>> 1 - https://issues.apache.org/jira/browse/WICKET-3566
> >>>> 2 - http://www.apache.org/legal/src-headers.html
> >>>>
> >>>> <https://issues.apache.org/jira/browse/WICKET-3566>
> >>>> On Thu, Apr 21, 2011 at 2:26 AM, Petr Gladkikh <pe...@gmail.com> wrote:
> >>>>
> >>>> > I am trying to upgrage from wicket 1.4.1 to 1.4.17 and have following
> >>>> > problem.
> >>>> > In our application we configure
> >>>> > getMarkupSettings().setThrowExceptionOnMissingXmlDeclaration(true);
> >>>> >
> >>>> > This prevents all Wicket's default pages from rendering since none of
> >>>> > them contain XML prolog anymore. E.g. none of HTML files in
> >>>> >
> >>>> > apache-wicket-1.4.17/src/wicket/src/main/java/org/apache/wicket/markup/html/pages
> >>>> > contain XML declaration prolog. When wicket tries to show error page
> >>>> > exception is thrown. Top of stack trace is:
> >>>> > at org.apache.wicket.markup.MarkupParser.parse(MarkupParser.java:280)
> >>>> > at
> >>>> > org.apache.wicket.markup.loader.SimpleMarkupLoader.loadMarkup(SimpleMarkupLoader.java:52)
> >>>> > at
> >>>> > org.apache.wicket.markup.loader.InheritedMarkupMarkupLoader.loadMarkup(InheritedMarkupMarkupLoader.java:62)
> >>>> > at
> >>>> > org.apache.wicket.markup.loader.DefaultMarkupLoader.loadMarkup(DefaultMarkupLoader.java:55)
> >>>> > at org.apache.wicket.markup.MarkupCache.loadMarkup(MarkupCache.java:465)
> >>>> > at
> >>>> > org.apache.wicket.markup.MarkupCache.loadMarkupAndWatchForChanges(MarkupCache.java:561)
> >>>> > at org.apache.wicket.markup.MarkupCache.getMarkup(MarkupCache.java:325)
> >>>> > at
> >>>> > org.apache.wicket.markup.MarkupCache.getMarkupStream(MarkupCache.java:216)
> >>>> > at
> >>>> > org.apache.wicket.MarkupContainer.getAssociatedMarkupStream(MarkupContainer.java:351)
> >>>> > at org.apache.wicket.Page.onRender(Page.java:1587)
> >>>> > at org.apache.wicket.Component.render(Component.java:2521)
> >>>> > at org.apache.wicket.Page.renderPage(Page.java:932)
> >>>> >
> >>>> > I can work around by switching these exceptions off. But I think that
> >>>> > the problem should be fixed otherwise since even when these exceptions
> >>>> > are switched off following message is written to log:
> >>>> > log.debug("The markup file does not have a XML declaration prolog: " +
> >>>> > markupResourceData.getResource() + ". It is more save to use it. E.g.
> >>>> > <?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
> >>>> >
> >>>> > --
> >>>> > Petr Gladkikh
> >>>> >
> >>>> > ---------------------------------------------------------------------
> >>>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>>> > For additional commands, e-mail: users-help@wicket.apache.org
> >>>> >
> >>>> >
> >>>>
> >>>>
> >>>> --
> >>>> Pedro Henrique Oliveira dos Santos
> >>>
> >>>
> >>>
> >>> --
> >>> Martin Grigorov
> >>> jWeekend
> >>> Training, Consulting, Development
> >>> http://jWeekend.com
> >>>
> >>
> >
> >
> >
> > --
> > Martin Grigorov
> > jWeekend
> > Training, Consulting, Development
> > http://jWeekend.com
> >

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Resolved] (WICKET-3639) if and when a xml prolog is written to the response

Posted by "Juergen Donnerstag (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-3639?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Juergen Donnerstag resolved WICKET-3639.
----------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.5-RC5
         Assignee: Juergen Donnerstag

> if and when a xml prolog is written to the response
> ---------------------------------------------------
>
>                 Key: WICKET-3639
>                 URL: https://issues.apache.org/jira/browse/WICKET-3639
>             Project: Wicket
>          Issue Type: Improvement
>            Reporter: Juergen Donnerstag
>            Assignee: Juergen Donnerstag
>             Fix For: 1.5-RC5
>
>         Attachments: wicket-xmlProlog.patch
>
>
> Copied from mail thread: http://apache-wicket.1842946.n4.nabble.com/Re-Missing-XML-declaration-in-error-page-td3466395.html
> I had another look at Page.configureResponse(). I agree that the
> current behavior is a bit strange.
> If the page markup contains the xml prolog, than a xml prolog is
> written to the response, with the encoding provided by
> application.getRequestCycleSettings().getResponseRequestEncoding().
> If page markup contain no xml prolog, than no xml prolog is written
> into the response.
> I think we should remove get/setStripXmlDeclarationFromOutput() and
> replace it with is/setInsertXmlProlog. An no matter whether the page
> markup contains a prolog or not, only if the application setting is
> true, a prolog is written or not. If RCS encoding is null, the prolog
> will still be written, but without encoding attribute.
> - it more clearly separates markup reading from response writing
> - allow to enable/disable xml prolog for all pages of the application,
> irrespective whether the markup has the prolog
> - the response prolog can no longer be controlled via the page markup.
> E.g. all pages with style or variation "IE" containing IE specific
> markup, have slightly different markup (don't know if anybody is using
> it like that). We could still allow that by introducing
> WebApplication.isInsertXmlProlog with Page parameter, which can be
> overriden by user on demand. By default it return
> markupSettings.isInsert...
> Any thoughts?
> -Juergen
> - Hide quoted text -
> On Fri, Apr 22, 2011 at 11:12 AM, Martin Grigorov <mg...@apache.org> wrote:
> > Hi Juergen,
> >
> > Thanks for the explanation. It is more clear now.
> > I meant using IResponseFilter to add the XML prolog if the user
> > application really wants to.
> > Now Page#configureResponse() sets it only for the pages which have it
> > in their markup. If a MyPage.html don't have it and all panels used in
> > that page use non-ascii characters and have the prolog then it is not
> > set in the produced final page markup.
> >
> > I'm not saying we need to change it. If I want the prolog then I'd use
> > my own IResponseFilter to add it to all pages - mine and re-used from
> > libraries (like Wicket internals).
> >
> > The problem reported by Petr is fixed in 1.5. All pages have the prolog.
> >
> > On Fri, Apr 22, 2011 at 10:10 AM, Juergen Donnerstag
> > <ju...@gmail.com> wrote:
> >> the setting/exception is to make sure that all markup files have
> >> proper encoding. Think about moving markup files from your local latop
> >> onto a production server. Who guarantees that in your markup are only
> >> ascii chars? Who guarantees the prod server has the same default
> >> encoding than your devs laptops (and your dev might be working
> >> somewhere on the globe). And though the response needs to be browser
> >> aware, because especially historically every browser version behaved
> >> different depending on the presence of the xml prolog in response, it
> >> doesn't (and shouldn't) matter for Wicket's markup. Use whatever web
> >> editor you want, with whatever encoding you want, just make sure the
> >> xml prolog is present.
> >>
> >> Wicket always removes the xml prolog from the markup upon reading,
> >> only the encoding (of Pages) get remembered and used as default for
> >> configuring the Page response. It is Page.configureResponse which
> >> writes a new xml prolog to the response. You can omit that by simply
> >> setting getMarkupSettings().setStripXmlDeclarationFromOutput(false).
> >> No need for response filter or whatever.
> >>
> >> IMO every Wicket markup, especially of what we deliver, should have
> >> the xml prolog.
> >>
> >> -Juergen
> >>
> >> On Thu, Apr 21, 2011 at 9:04 PM, Martin Grigorov <mg...@apache.org> wrote:
> >>> I don't know the history of this recommendation. The log message says
> >>> "The markup file does not have a XML declaration prolog: " +
> >>> markupResourceData.getResource() + ". It is more save to use it."
> >>>
> >>> I'm not sure how it is more safe this way (if we keep this message we
> >>> need to fix the typo at least :-) )
> >>> I'd vote to remove this prolog all together. If the user app needs it
> >>> then it is quite easy to use IResponseFilter to add it for each and
> >>> every page.
> >>>
> >>>
> >>> On Thu, Apr 21, 2011 at 7:51 PM, Pedro Santos <pe...@gmail.com> wrote:
> >>>>
> >>>> He Petr, by add the prolog in the html files those pages are not correctly
> >>>> rendered in IE8, IMO opinion the best option we have now is to move the
> >>>> Apache header in those files to inside the html tag plus restore the prolog
> >>>> [1].
> >>>>
> >>>> Devs, I don't know if we can freely move the Apache header to outside the
> >>>> top of our files. Also reading the header politic site [2], I don't get if
> >>>> we can simple remove it. Does the exception page fits the "without any
> >>>> degree of creativity" requirement since it has no programming code? It is
> >>>> just static markup...
> >>>>
> >>>> 1 - https://issues.apache.org/jira/browse/WICKET-3566
> >>>> 2 - http://www.apache.org/legal/src-headers.html
> >>>>
> >>>> <https://issues.apache.org/jira/browse/WICKET-3566>
> >>>> On Thu, Apr 21, 2011 at 2:26 AM, Petr Gladkikh <pe...@gmail.com> wrote:
> >>>>
> >>>> > I am trying to upgrage from wicket 1.4.1 to 1.4.17 and have following
> >>>> > problem.
> >>>> > In our application we configure
> >>>> > getMarkupSettings().setThrowExceptionOnMissingXmlDeclaration(true);
> >>>> >
> >>>> > This prevents all Wicket's default pages from rendering since none of
> >>>> > them contain XML prolog anymore. E.g. none of HTML files in
> >>>> >
> >>>> > apache-wicket-1.4.17/src/wicket/src/main/java/org/apache/wicket/markup/html/pages
> >>>> > contain XML declaration prolog. When wicket tries to show error page
> >>>> > exception is thrown. Top of stack trace is:
> >>>> > at org.apache.wicket.markup.MarkupParser.parse(MarkupParser.java:280)
> >>>> > at
> >>>> > org.apache.wicket.markup.loader.SimpleMarkupLoader.loadMarkup(SimpleMarkupLoader.java:52)
> >>>> > at
> >>>> > org.apache.wicket.markup.loader.InheritedMarkupMarkupLoader.loadMarkup(InheritedMarkupMarkupLoader.java:62)
> >>>> > at
> >>>> > org.apache.wicket.markup.loader.DefaultMarkupLoader.loadMarkup(DefaultMarkupLoader.java:55)
> >>>> > at org.apache.wicket.markup.MarkupCache.loadMarkup(MarkupCache.java:465)
> >>>> > at
> >>>> > org.apache.wicket.markup.MarkupCache.loadMarkupAndWatchForChanges(MarkupCache.java:561)
> >>>> > at org.apache.wicket.markup.MarkupCache.getMarkup(MarkupCache.java:325)
> >>>> > at
> >>>> > org.apache.wicket.markup.MarkupCache.getMarkupStream(MarkupCache.java:216)
> >>>> > at
> >>>> > org.apache.wicket.MarkupContainer.getAssociatedMarkupStream(MarkupContainer.java:351)
> >>>> > at org.apache.wicket.Page.onRender(Page.java:1587)
> >>>> > at org.apache.wicket.Component.render(Component.java:2521)
> >>>> > at org.apache.wicket.Page.renderPage(Page.java:932)
> >>>> >
> >>>> > I can work around by switching these exceptions off. But I think that
> >>>> > the problem should be fixed otherwise since even when these exceptions
> >>>> > are switched off following message is written to log:
> >>>> > log.debug("The markup file does not have a XML declaration prolog: " +
> >>>> > markupResourceData.getResource() + ". It is more save to use it. E.g.
> >>>> > <?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
> >>>> >
> >>>> > --
> >>>> > Petr Gladkikh
> >>>> >
> >>>> > ---------------------------------------------------------------------
> >>>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >>>> > For additional commands, e-mail: users-help@wicket.apache.org
> >>>> >
> >>>> >
> >>>>
> >>>>
> >>>> --
> >>>> Pedro Henrique Oliveira dos Santos
> >>>
> >>>
> >>>
> >>> --
> >>> Martin Grigorov
> >>> jWeekend
> >>> Training, Consulting, Development
> >>> http://jWeekend.com
> >>>
> >>
> >
> >
> >
> > --
> > Martin Grigorov
> > jWeekend
> > Training, Consulting, Development
> > http://jWeekend.com
> >

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira