Apache Click Web Framework 2.1.0-RC1: Java 5, new Bindable Annotation, new Documentation Formats
The Apache Click team is proud to announce the first release candidate of Click 2.1.0. This is our first release that requires Java 5.
Apache Click is a simple page and component oriented Java web framework providing a natural rich client style programming model. Click is stateless by design however stateful Pages are supported. For a quick overview please see the introductory article.
This release includes all bugs fixes from 1.5.2 as well as a slew of new features, examples and documentation. The documentation has been converted to the Docbook format and are made available in three different flavors: PDF, HTML (single page) and HTML (multiple pages).
- Click Home
- Roadmap and Changes
- Upgrade Path - please see the upgrade path when upgrading from 2.0.1 or earlier
- Download Click 2.1.0-RC1
- Maven bundles
- Live examples
- Added SubmitLink control that can submit a Form .
- Added HiddenList control for rendering and submitting a list of hidden fields .
- Added plug-able security access controller (AccessController) to Menu class. This plubable interface enable use of security frameworks such as Spring Security (Acegi) or JSecurity to control user access to Menu items. This issue was raised by Demetrios Kyriakis .
- Added method, ClickUtils.createTemplateModel, that returns a template model containing objects such as the Context path, Page path, HTTP request, HTTP response, HTTP session etc. This method is useful when rendering custom templates.
- Added ability to specify a custom TreeNode icon through the new method TreeNode.setIcon(String). This issue was raised and fixed by Tim Hooper .
- Added method Format.url for encoding URL's in templates .
- Added method FieldColumn.setProperty that can be overriden to provide custom binding for complex domain objects. This issue was raised and fixed by WarnerJan Veldhuis .
- Added TypeConverter configuration option to ClickServlet. See getTypeConverter() method for details. This issue was raised Joseph Schmidt and fixed by Adrian A. .
- Added Slf4jLogService for supporting multiple application servers. This issue was raised Oliver Burn .
- Added @Bindable annotation support for page field autobinding .
- Improved Page redirect to support parameters. See the new Page methods setRedirect(String, Map) and setRedirect(Class, Map) This issue was raised and fixed by Adrian .
- Improved Link Controls to support multivalued parameters through the new AbstractLink methods getParameterValues() and setParameterValues() .
- Improved Table to support very large datasets by promoting the methods getFirstRow() and getLastRow() as public. These methods provide the necessary information to only retrieve the displayed rows .
- Improved LinkDecorator to support target identfier property parameter names. This issue was raised by Demetrios Kyriakis and fixed by fixed by Adrian A. .
- Improved PickList methods getValueObject() and setValueObject(Object) to delegate to getSelectedValues() and addSelectedValue(String) respectively .
- Improved Spring integration with SpringClickServlet and PageScopeResolver, supporting Spring instantiated Pages with @Component configuration .
- Improved CompressionServletResponseWrapper and CompressionResponseStream classes to have public visibility to enable use in custom servlet Filters .
- Improved Menu control to render attribute class="selected" when the menu item is selected. This issue was raised and fixed by Frederic Daoud .
- Improved PerformanceFilter to implement exclude-paths filtering .
- Improved XmlConfigService to scan for deployable resources inside folders on the classpath .
- Improved Cayenne DataContextFilter, including adding support for LifecycleListener registration .
- Fixed PerformanceFilter and CompressionFilter to properly handle requests .
- Deprecated methods: Control.getHtmlImports() and Page.getHtmlImports(). These methods have been deprecated in favor of Control.getHeadElements() and Page.getHeadElements().
Updated third-party libraries:
- Update Velocity library to version 1.6.2.
- Update Cayenne library to version 3.0M6.
- Update Prototype.js library to version 1.6.1_RC2.
- Added documentation describing the new HEAD element support. Please see the new section on Page HEAD elements and the section on Control HEAD elements.
- Page HEAD elements demonstrates how to add JsImport, JsScript, CssImport and CssStyle HEAD elements to a Page.
- Control HEAD elements demonstrates how to add JsImport and CssImport HEAD elements to a custom Control.
- SubmitLink Demo shows how to use the new SubmitLink control.
- Large Dataset is an example of a Table with a large number of rows and how to lazily page through the rows using a custom data provider.
- Reusable Panel is an example of a reusable Panel which provides a Form for capturing Client details.
- Quartz Job Scheduler is an example demonstrating how to integrate the Quartz Job Scheduling framework into a Click application.
- The Click team
Apache Click is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)