Details
Description
The click-2.2.dtd specifies a default value of "default" for the autobinding attribute of the pages element:
<!-- Application pages. -->
<!ELEMENT pages (page*, excludes*)>
<!ATTLIST pages package CDATA #IMPLIED>
<!ATTLIST pages automapping (true|false) "true">
<!ATTLIST pages autobinding (default|annotation|none) "default">
This causes the following exception when the DTD is specified in click.xml and no autobinding value is supplied (or a value of "default" is specified):
java.lang.RuntimeException: Invalid pages autobinding attribute: default
at org.apache.click.service.XmlConfigService.loadPages(XmlConfigService.java:994)
at org.apache.click.service.XmlConfigService.onInit(XmlConfigService.java:240)
at org.apache.click.ClickServlet.initConfigService(ClickServlet.java:1687)
at org.apache.click.ClickServlet.init(ClickServlet.java:197)
at org.apache.click.extras.spring.SpringClickServlet.init(SpringClickServlet.java:387)
at javax.servlet.GenericServlet.init(GenericServlet.java:241)
I marked this bug as major priority because an exception is thrown with a minimal click.xml file (at least when using the DTD), so the impact to out-of-the-box functionality is pretty severe.
A quick look at the code reveals that XmlConfigService expects an autobinding value of "public" instead of "default". This conflicts with both the DTD and the documentation for click.xml. Since an autobinding value of "public" is not documented anywhere as far as I can tell and since XmlConfigService maps "public" to the AutoBinding.DEFAULT enum, the use of "public" is most likely a typo and should simply be replaced with "default".