_posts/2010-02-12-click_2_1_0_now.html (288 lines of code) (raw):

--- layout: post status: PUBLISHED published: true title: Apache Click becomes a Top-Level Project and v2.1.0 now available id: c1cffb42-10b7-464f-8a5c-0787c4582f13 date: '2010-02-12 08:13:18 -0500' categories: click tags: - release - 2.1.0 - graduate permalink: click/entry/click_2_1_0_now --- <p>Apache Click has become a new Apache Top Level Project (TLP),<br /> signifying that Click is a well-governed project under the Apache<br /> Software Foundation <a href="http://www.apache.org/foundation/how-it-works.html">principles</a>.</p> <p>Furthermore<br /> Click 2.1.0 has been released sporting many new features, including<br /> support for <a href="http://code.google.com/appengine/docs/java/overview.html" target="_blank" class="external">Google<br /> App Engine</a>, a free Java hosting environment from Google. <ul> <li><a href="http://click.apache.org/">Click Home</a></li> <li><a href="http://click.apache.org/docs/roadmap-changes.html#2.1.0">Roadmap<br /> and Changes</a> - full list of new features, improvements and bug fixes</li> <li><a href="http://click.apache.org/docs/upgrade-path.html#2.1.0">Upgrade<br /> Path</a> - please see the upgrade path when upgrading from 2.0.1 or<br /> earlier.</li> <li><a href="http://www.apache.org/dyn/closer.cgi/click/click/2.1.0/click-2.1.0.zip">Download<br /> Click 2.1.0</a></li> <li><a href="http://repo1.maven.org/maven2/org/apache/click/">Maven bundles</a></li> <li><a href="http://www.avoka.com/click-examples/">Live examples</a></li> </ul> <p><font style="font-weight: bold;">New features and improvements:</font> <ul> <li class="change"> Added support for <a href="http://code.google.com/appengine/docs/java/overview.html" target="_blank" class="external">Google<br /> App Engine</a>, a free Java hosting environment from Google.<br /> This provides an ideal environment for students and startups<br /> to easily host their Click applications online. See <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/gae/GoogleAppEngineListener.html">GoogleAppEngineListener</a><br /> for details [<a href="https://issues.apache.org/jira/browse/CLK-560" target="_blank">560</a>]. </li> <li class="change"> Added support for an in-memory <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/gae/MemoryFileUploadService.html">File<br /> Upload Service</a> that can be used for uploading files in a<br /> <a href="http://code.google.com/appengine/docs/java/overview.html" target="_blank" class="external">Google<br /> App Engine</a> environment. </li> <li class="change"> Added support for templates with custom extensions through the<br /> new ConfigService.<a href="http://click.apache.org/docs/click-api/org/apache/click/service/ConfigService.html#isTemplate%28java.lang.String%29">isTemplate</a><br /> method. The default ConfigService implementation,<br /> XmlConfigService, provides support for the extensions <tt>.htm</tt><br /> and <tt>.jsp</tt>, but new extensions can be provided in a<br /> subclass. See the <a href="http://click.apache.org/docs/click-api/org/apache/click/service/XmlConfigService.html#isTemplate%28java.lang.String%29">JavaDoc</a><br /> for details [<a href="https://issues.apache.org/jira/browse/CLK-568" target="_blank">568</a>]. </li> <li class="change"> Added support to the Page class for<br /> conditionally including Control <a href="http://click.apache.org/docs/click-api/org/apache/click/Page.html#getHeadElements%28%29">head<br /> elements</a> through the new method <a href="http://click.apache.org/docs/click-api/org/apache/click/Page.html#setIncludeControlHeadElements%28boolean%29">includeControlHeadElements</a><br /> [<a href="https://issues.apache.org/jira/browse/CLK-571" target="_blank">571</a>]. </li> <li class="change"> Added support to deploy resources inside JARs<br /> from the Servlet 3.0 compliant location, <tt>META-INF/resources</tt>.<br /> Click's own pre-packaged resources are now also located in<br /> the JAR under <tt>META-INF/resources</tt> [<a href="https://issues.apache.org/jira/browse/CLK-570" target="_blank">570</a>]. </li> <li class="change"> Added new Calendar popup to DateField. This<br /> Calendar popup uses <a href="http://code.google.com/p/calendardateselect/" class="external" target="_blank">Calendar Date Select</a><br /> which is based on the Prototype JavaScript library. </p> <p> Please note if you don't want a dependency on the<br /> Prototype library you can use the third-party <a href="http://code.google.com/p/click-calendar/" target="_blank" class="external">Click Calendar</a><br /> instead. </p> </li> <li class="change"> Added<br /> first class support for HEAD elements such as JavaScript and Css.<br /> The following classes were added: <a href="http://click.apache.org/docs/click-api/org/apache/click/element/Element.html">Element</a>,<br /> <a href="http://click.apache.org/docs/click-api/org/apache/click/element/ResourceElement.html">ResourceElement</a>,<br /> <a href="http://click.apache.org/docs/click-api/org/apache/click/element/JsImport.html">JsImport</a>,<br /> <a href="http://click.apache.org/docs/click-api/org/apache/click/element/JsScript.html">JsScript</a>,<br /> <a href="http://click.apache.org/docs/click-api/org/apache/click/element/CssImport.html">CssImport</a><br /> and <a href="http://click.apache.org/docs/click-api/org/apache/click/element/CssStyle.html">CssStyle</a>.<br /> A new method was added to Page and Control: <a href="http://click.apache.org/docs/click-api/org/apache/click/Control.html#getHeadElements%28%29">Control.getHeadElements()</a><br /> and <a href="http://click.apache.org/docs/click-api/org/apache/click/Page.html#getHeadElements%28%29">Page.getHeadElements()</a><br /> [<a href="https://issues.apache.org/jira/browse/CLK-501" target="_blank">501</a>]. </li> <li class="change"> Added <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/control/SubmitLink.html">SubmitLink</a><br /> control that can submit a Form [<a href="https://issues.apache.org/jira/browse/CLK-519" target="_blank">519</a>]. </li> <li> Added <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/control/HiddenList.html">HiddenList</a><br /> control for rendering and submitting a list of hidden fields<br /> [<a href="https://issues.apache.org/jira/browse/CLK-491" target="_blank">491</a>]. </li> <li class="change"> Added pluggable security access controller (<a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/security/AccessController.html">AccessController</a>)<br /> to Menu class. This pluggable interface enable use of<br /> security frameworks such as Spring Security (Acegi) or JSecurity to<br /> control user access to Menu items. This issue was raised by<br /> Demetrios Kyriakis [<a href="https://issues.apache.org/click/browse/CLK-406" target="_blank">406</a>]. </li> <li class="change"> Added an Ant task, called DeployTask, for<br /> deploying static resources at build time. This task is useful<br /> when deploying Click applications in restricted<br /> environments. For more details see the section: <a href="http://click.apache.org/docs/user-guide/html/ch04s03.html#deploying-restricted-env">deploying<br /> resources in a restricted environment</a>. </li> <li class="change"> Added a <a href="http://click.apache.org/docs/click-api/org/apache/click/service/ResourceService.html">ResourceService</a>,<br /> for serving static resources at runtime. This service is<br /> useful when deploying Click applications in restricted<br /> environments. For more details see the section: <a href="http://click.apache.org/docs/user-guide/html/ch04s03.html#deploying-restricted-env">deploying<br /> resources in a restricted environment</a> [<a href="https://issues.apache.org/click/browse/CLK-564" target="_blank">564</a>]. </li> <li class="change"> Added method, <a href="http://click.apache.org/docs/click-api/org/apache/click/util/ClickUtils.html#createTemplateModel%28org.apache.click.Page,%20org.apache.click.Context%29">ClickUtils.createTemplateModel</a>,<br /> which returns a template model containing objects such as the<br /> Context path, Page path, HTTP request, HTTP response, HTTP<br /> session etc. </li> <li class="change"> Added ability to<br /> specify a custom TreeNode icon through the new method<br /> TreeNode.<a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/tree/TreeNode.html#setIcon%28java.lang.String%29">setIcon(String)</a>.<br /> This issue was raised and fixed by Tim Hooper [<a href="https://issues.apache.org/jira/browse/CLK-494" target="_blank">494</a>]. </li> <li class="change"> Added method <a href="http://click.apache.org/docs/click-api/org/apache/click/util/Format.html#url%28java.lang.Object%29">Format.url</a><br /> for encoding URL's in templates [<a href="https://issues.apache.org/jira/browse/CLK-399" target="_blank">399</a>]. </li> <li class="change"> Added method <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/control/FieldColumn.html#setProperty%28java.lang.Object,%20java.lang.String,%20java.lang.Object%29">FieldColumn.setProperty</a><br /> that can be overriden to provide custom binding for complex<br /> domain objects. This issue was raised and fixed by WarnerJan<br /> Veldhuis [<a href="https://issues.apache.org/jira/browse/CLK-528" target="_blank">528</a>]. </li> <li class="change"> Added TypeConverter configuration option to<br /> ClickServlet. See <a href="http://click.apache.org/docs/click-api/org/apache/click/ClickServlet.html#getTypeConverter%28%29">getTypeConverter()</a><br /> method for details. This issue was raised Joseph Schmidt and<br /> fixed by Adrian A. [<a href="https://issues.apache.org/jira/browse/CLK-539" target="_blank">539</a>]. </li> <li class="change"> Added <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/service/Slf4jLogService.html">Slf4jLogService</a><br /> for supporting multiple application servers. This<br /> issue was raised Oliver Burn [<a href="https://issues.apache.org/jira/browse/CLK-555" target="_blank">555</a>]. </li> <li class="change"> Added <a href="http://click.apache.org/docs/click-api/org/apache/click/util/Bindable.html">@Bindable</a><br /> annotation support for page field autobinding. @Bindable<br /> supports public, protected and private Page variables<br /> [<a href="https://issues.apache.org/jira/browse/CLK-556" target="_blank">556</a>,<br /> <a href="https://issues.apache.org/jira/browse/CLK-599" target="_blank">599</a><br /> ]. </li> <li class="change"> Added property files with<br /> translation for the Russian language. This issue was raised and<br /> fixed by Andrey Rybin [<a href="https://issues.apache.org/jira/browse/CLK-607" target="_blank">607</a>], [<a href="https://issues.apache.org/jira/browse/CLK-611" target="_blank">611</a>]. </li> <li class="change"> Added new Tree methods <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/tree/Tree.html#setWidth%28java.lang.String%29">setWidth</a><br /> / <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/tree/Tree.html#getWidth%28%29">getWidth</a><br /> and <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/tree/Tree.html#setHeight%28java.lang.String%29">setHeight</a><br /> / <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/tree/Tree.html#getHeight%28%29">getHeight</a>.<br /> Also fixed rendering issues in IE6/7 for long node labels that<br /> overflow the tree width [<a href="https://issues.apache.org/jira/browse/CLK-616" target="_blank">616</a>]. </li> <li class="change"> The click.dtd has been published to<br /> <a href="http://click.apache.org/dtds/click-2.1.dtd">http://click.apache.org/dtds/click-2.1.dtd</a>.</li> <li class="change"> If you want your configuration to conform to<br /> the click.dtd, include the following declaration in your<br /> click.xml: <pre><!DOCTYPE click-app PUBLIC "-//Apache Software Foundation//DTD Click Configuration 2.1//EN"<br /> "http://click.apache.org/dtds/click_2_1.dtd"></pre> </li> <li class="change"> Improved Form validation to allow Form<br /> subclasses to override the <a href="http://click.apache.org/docs/click-api/org/apache/click/control/Form.html#validate%28%29">validate</a><br /> method and implement cross-field validation. The following<br /> changes were made: the previous <tt>validate</tt> method was<br /> renamed to <a href="http://click.apache.org/docs/click-api/org/apache/click/control/Form.html#validateFileUpload%28%29">validateFileUpload</a><br /> and a new empty <a href="http://click.apache.org/docs/click-api/org/apache/click/control/Form.html#validate%28%29">validate</a><br /> method was introduced, that can safely be overridden in<br /> subclasses [<a href="https://issues.apache.org/jira/browse/CLK-572" target="_blank">572</a>]. </li> <li class="change"> Improved Page redirect to support parameters.<br /> See the new Page methods <a href="http://click.apache.org/docs/click-api/org/apache/click/Page.html#setRedirect%28java.lang.String,%20java.util.Map%29">setRedirect(String,<br /> Map)</a> and <a href="http://click.apache.org/docs/click-api/org/apache/click/Page.html#setRedirect%28java.lang.Class,%20java.util.Map%29">setRedirect(Class,<br /> Map)</a> This issue was raised and fixed by Adrian<br /> [<a href="https://issues.apache.org/jira/browse/CLK-536" target="_blank">536</a>]. </li> <li class="change"> Improved Link Controls to support multivalued<br /> parameters through the new AbstractLink methods <a href="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractLink.html#getParameterValues%28java.lang.String%29">getParameterValues()</a><br /> and <a href="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractLink.html#setParameterValues%28java.lang.String,%20java.lang.String[]%29">setParameterValues()</a><br /> [<a href="https://issues.apache.org/jira/browse/CLK-554" target="_blank">554</a>]. </li> <li class="change"> Improved Table to support very large datasets<br /> by promoting the methods <a href="http://click.apache.org/docs/click-api/org/apache/click/control/Table.html#getFirstRow%28%29">getFirstRow()</a><br /> and <a href="http://click.apache.org/docs/click-api/org/apache/click/control/Table.html#getLastRow%28%29">getLastRow()</a><br /> as public. These methods provide the necessary information to<br /> only retrieve the displayed rows [<a href="https://issues.apache.org/jira/browse/CLK-504" target="_blank">504</a>]. </li> <li class="change"> Improved LinkDecorator to<br /> support target identfier property parameter names. This issue<br /> was raised by Demetrios Kyriakis and fixed by fixed by Adrian A.<br /> [<a href="https://issues.apache.org/jira/browse/CLK-400" target="_blank">400</a>]. </li> <li class="change"> Improved PickList methods <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/control/PickList.html#getValueObject%28%29">getValueObject()</a><br /> and <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/control/PickList.html#setValueObject%28java.lang.Object%29">setValueObject(Object)</a><br /> to delegate to <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/control/PickList.html#getSelectedValues%28%29">getSelectedValues()</a><br /> and <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/control/PickList.html#addSelectedValue%28java.lang.String%29">addSelectedValue(String)</a><br /> respectively [<a href="https://issues.apache.org/jira/browse/CLK-490" target="_blank">490</a>]. </li> <li class="change"> Improved Spring integration with <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/spring/SpringClickServlet.html">SpringClickServlet</a><br /> and <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/spring/PageScopeResolver.html">PageScopeResolver</a>,<br /> supporting Spring instantiated Pages with @Component<br /> configuration [<a href="https://issues.apache.org/jira/browse/CLK-534" target="_blank">534</a>]. </li> <li class="change"> Improved CompressionServletResponseWrapper<br /> and CompressionResponseStream classes to have public<br /> visibility to enable use in custom servlet Filters [<a href="https://issues.apache.org/click/browse/CLK-547" target="_blank">547</a>]. </li> <li class="change"> Improved Menu control to<br /> render attribute class="selected" when the menu item is<br /> selected. This issue was raised and fixed by Frederic Daoud [<a href="https://issues.apache.org/click/browse/CLK-551" target="_blank">551</a>]. </li> <li class="change"> Improved PerformanceFilter to<br /> implement exclude-paths filtering [<a href="https://issues.apache.org/click/browse/CLK-498" target="_blank">498</a>]. </li> <li class="change"> Improved XmlConfigService to scan for<br /> deployable resources inside folders on the classpath<br /> [<a href="https://issues.apache.org/click/browse/CLK-552" target="_blank">552</a>]. </li> <li class="change"> Improved Cayenne DataContextFilter, including<br /> adding support for LifecycleListener registration<br /> [<a href="https://issues.apache.org/jira/browse/CLK-559" target="_blank">559</a>]. </li> <li class="change"> Improved <a href="http://click.apache.org/docs/click-api/org/apache/click/control/AbstractLink.html">AbstractLink</a><br /> to allow rendering of both icon and label in Link controls<br /> (default behavior renders either a label or an icon)<br /> [<a href="https://issues.apache.org/jira/browse/CLK-535" target="_blank">535</a>]. </li> <li class="change"> Improved Page and Control message handling<br /> with null args. This issue was raised by WarnerJan Veldhuis<br /> [<a href="https://issues.apache.org/jira/browse/CLK-600" target="_blank">600</a>]. </li> <li class="change"> Fixed resource deployment on JBoss 5 and up.<br /> The solution is based on the work done by the <a href="http://www.stripesframework.org/" target="_blank" class="external">Stripes<br /> Framework</a> developers [<a href="https://issues.apache.org/jira/browse/CLK-589" target="_blank">589</a>].</p> </li> </ul> <p><font style="font-weight: bold;">Deprecated:</font> <ul> <li class="change"> Deprecated methods: <a href="http://click.apache.org/docs/click-api/org/apache/click/Control.html#getHtmlImports%28%29">Control.getHtmlImports()</a><br /> and <a href="http://click.apache.org/docs/click-api/org/apache/click/Page.html#getHtmlImports%28%29">Page.getHtmlImports()</a>.<br /> These methods have been deprecated in favor of <a href="http://click.apache.org/docs/click-api/org/apache/click/Control.html#getHeadElements%28%29">Control.getHeadElements()</a><br /> and <a href="http://click.apache.org/docs/click-api/org/apache/click/Page.html#getHeadElements%28%29">Page.getHeadElements()</a>. </li> <li class="change">Deprecated methods: <a href="http://click.apache.org/docs/click-api/org/apache/click/Page.html#getPageImports%28%29">Page.getPageImports()</a><br /> and <a href="http://click.apache.org/docs/click-api/org/apache/click/Page.html#setPageImports%28org.apache.click.util.PageImports%29">Page.setPageImports()</a>.<br /> These methods have been deprecated in favor of <a href="http://click.apache.org/docs/click-api/org/apache/click/Page.html#getHeadElements%28%29">Page.getHeadElements()</a>. </li> </ul> <p><font style="font-weight: bold;">Updated<br /> third-party libraries:</font> <ul> <li class="change"> Update Velocity library to version <a href="http://velocity.apache.org/engine/releases/velocity-1.6.2/">1.6.3</a>. </li> <li class="change"> Update Cayenne library to<br /> version <a href="http://cayenne.apache.org/">3.0M6</a>. </li> <li class="change" style="text-align: left;"> Update Prototype.js<br /> library to version <a href="http://www.prototypejs.org/2009/9/1/prototype-1-6-1-released">1.6.1</a>. </li> </ul> <p><font style="font-weight: bold;">New Documentation:</font> <ul> <li>Documentation<br /> has been converted to Docbook and are made available in three<br /> different flavors: <a href="file:///C:/dev/os/apache/click/click-svn/documentation/docs/user-guide.html">PDF,<br /> HTML (single page) and HTML (multiple pages)</a>. Thanks to<br /> Gilberto C Andrade for doing the conversion [<a href="https://issues.apache.org/jira/browse/CLK-482" target="_blank">482</a>]. </li> <li>Added<br /> a new section, <a href="http://click.apache.org/docs/user-guide/html/ch04s03.html#deploying-restricted-env">Deploying<br /> resources in a restricted environment</a>, describing how to<br /> deploy static resources in environments where WAR/EAR are not<br /> unpacked or where file system permissions are restricted, such<br /> as <a href="http://code.google.com/appengine/docs/java/overview.html" target="_blank" class="external">Google<br /> App Engine</a>. </li> <li>Added documentation describing the new<br /> HEAD element support. Please see the new section on <a href="http://click.apache.org/docs/user-guide/html/ch02s12.html">Page<br /> HEAD elements</a> and the section on <a href="http://click.apache.org/docs/user-guide/html/ch03s05.html">Control<br /> HEAD elements</a>. </li> </ul> <p><font style="font-weight: bold;">New<br /> examples: </font> <ul> <li> <a href="http://www.avoka.com/click-examples/general/page-head-demo.htm" class="external" target="_blank"><br /> Page HEAD elements</a> demonstrates how to add <a href="http://click.apache.org/docs/click-api/org/apache/click/element/JsImport.html">JsImport</a>,<br /> <a href="http://click.apache.org/docs/click-api/org/apache/click/element/JsScript.html">JsScript</a>,<br /> <a href="http://click.apache.org/docs/click-api/org/apache/click/element/CssImport.html">CssImport</a><br /> and <a href="http://click.apache.org/docs/click-api/org/apache/click/element/CssStyle.html">CssStyle</a><br /> HEAD elements to a Page. </li> <li> <a href="http://www.avoka.com/click-examples/general/control-head-demo.htm" class="external" target="_blank"><br /> Control HEAD elements</a> demonstrates how to add <a href="http://click.apache.org/docs/click-api/org/apache/click/element/JsImport.html">JsImport</a><br /> and <a href="http://click.apache.org/docs/click-api/org/apache/click/element/CssImport.html">CssImport</a><br /> HEAD elements to a custom Control. </li> <li> <a href="http://www.avoka.com/click-examples/control/submit-link-demo.htm" class="external" target="_blank"><br /> SubmitLink Demo</a> shows how to use the new <a href="http://click.apache.org/docs/extras-api/org/apache/click/extras/control/SubmitLink.html">SubmitLink</a><br /> control. </li> <li> <a href="http://www.avoka.com/click-examples/table/large-dataset-demo.htm" class="external" target="_blank"><br /> Large Dataset</a> is an example of a Table with a large number<br /> of rows and how to lazily page through the rows using a custom<br /> data provider. </li> <li> <a href="http://www.avoka.com/click-examples/panel/reusable-panel-demo.htm" class="external" target="_blank"><br /> Reusable Panel</a> is an example of a reusable Panel<br /> which provides a Form for capturing Client details. </li> <li> <a href="http://www.avoka.com/click-examples/quartz/quartz-job-scheduler.htm" class="external" target="_blank"><br /> Quartz Job Scheduler</a> is an example demonstrating how to<br /> integrate the Quartz Job Scheduling framework into a Click<br /> application. </li> <li><a href="http://www.avoka.com/click-examples/general/excel-export.htm" class="external" target="_blank">Excel<br /> Table Exporter</a> example demonstrates how to export a Click Table<br /> to an Excel spreadsheet using <a href="http://poi.apache.org/" target="_blank" class="external">Apache POI</a>. </li> </ul> <p>Enjoy.</p> <p>-<br /> The Click team</p>