Friday, February 19, 2010

ClickIDE 2.1.0.0 released: support Apache Click 2.1.0 and Eclipse 3.5

The latest version of ClickIDE is available. This release supports Click 2.1.0 and Eclipse 3.5.

ClickIDE is based on Eclipse and the Eclipse Web Tools Project (WTP), and provides extended features for developing web applications using Click.

Important links:

Main features:

  • Fast switching between Page classes and templates (Ctrl+Alt+S)
  • Project creation wizard
  • Click page creation wizard
  • Visual editor for the Click configuration file
  • Velocity template editor
  • Spring Framework and Apache Cayenne Integration
  • Integrated Click documentation
New features and enhancements in 2.1.0.0:
  • Upgraded to Cayenne to 3.0 M6.
  • Added "Use PerformanceFilter" option in the project creation wizard.
  • Added switching comment action in the Velocity editor ([CTRL] + [/]).
  • Added (*) to required attributes in the click.xml editor.

Enjoy Click!

Friday, February 5, 2010

Apache Click becomes a Top-Level Project and v2.1.0 now available

Apache Click has become a new Apache Top Level Project (TLP), signifying that Click is a well-governed project under the Apache Software Foundation principles.

Furthermore Click 2.1.0 has been released sporting many new features, including support for Google App Engine, a free Java hosting environment from Google.

New features and improvements:
  • Added support for Google App Engine, a free Java hosting environment from Google. This provides an ideal environment for students and startups to easily host their Click applications online. See GoogleAppEngineListener for details [560].
  • Added support for an in-memory File Upload Service that can be used for uploading files in a Google App Engine environment.
  • Added support for templates with custom extensions through the new ConfigService.isTemplate method. The default ConfigService implementation, XmlConfigService, provides support for the extensions .htm and .jsp, but new extensions can be provided in a subclass. See the JavaDoc for details [568].
  • Added support to the Page class for conditionally including Control head elements through the new method includeControlHeadElements [571].
  • Added support to deploy resources inside JARs from the Servlet 3.0 compliant location, META-INF/resources. Click's own pre-packaged resources are now also located in the JAR under META-INF/resources [570].
  • Added new Calendar popup to DateField. This Calendar popup uses Calendar Date Select which is based on the Prototype JavaScript library.

    Please note if you don't want a dependency on the Prototype library you can use the third-party Click Calendar instead.

  • Added first class support for HEAD elements such as JavaScript and Css. The following classes were added: Element, ResourceElement, JsImport, JsScript, CssImport and CssStyle. A new method was added to Page and Control: Control.getHeadElements() and Page.getHeadElements() [501].
  • Added SubmitLink control that can submit a Form [519].
  • Added HiddenList control for rendering and submitting a list of hidden fields [491].
  • Added pluggable security access controller (AccessController) to Menu class. This pluggable 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 [406].
  • Added an Ant task, called DeployTask, for deploying static resources at build time. This task is useful when deploying Click applications in restricted environments. For more details see the section: deploying resources in a restricted environment.
  • Added a ResourceService, for serving static resources at runtime. This service is useful when deploying Click applications in restricted environments. For more details see the section: deploying resources in a restricted environment [564].
  • Added method, ClickUtils.createTemplateModel, which returns a template model containing objects such as the Context path, Page path, HTTP request, HTTP response, HTTP session etc.
  • Added ability to specify a custom TreeNode icon through the new method TreeNode.setIcon(String). This issue was raised and fixed by Tim Hooper [494].
  • Added method Format.url for encoding URL's in templates [399].
  • 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 [528].
  • Added TypeConverter configuration option to ClickServlet. See getTypeConverter() method for details. This issue was raised Joseph Schmidt and fixed by Adrian A. [539].
  • Added Slf4jLogService for supporting multiple application servers. This issue was raised Oliver Burn [555].
  • Added @Bindable annotation support for page field autobinding. @Bindable supports public, protected and private Page variables [556, 599 ].
  • Added property files with translation for the Russian language. This issue was raised and fixed by Andrey Rybin [607], [611].
  • Added new Tree methods setWidth / getWidth and setHeight / getHeight. Also fixed rendering issues in IE6/7 for long node labels that overflow the tree width [616].
  • The click.dtd has been published to http://click.apache.org/dtds/click-2.1.dtd.
  • If you want your configuration to conform to the click.dtd, include the following declaration in your click.xml:
    <!DOCTYPE click-app PUBLIC
    "-//Apache Software Foundation//DTD Click Configuration 2.1//EN"
    "http://click.apache.org/dtds/click_2_1.dtd">
  • Improved Form validation to allow Form subclasses to override the validate method and implement cross-field validation. The following changes were made: the previous validate method was renamed to validateFileUpload and a new empty validate method was introduced, that can safely be overridden in subclasses [572].
  • 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 [536].
  • Improved Link Controls to support multivalued parameters through the new AbstractLink methods getParameterValues() and setParameterValues() [554].
  • 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 [504].
  • Improved LinkDecorator to support target identfier property parameter names. This issue was raised by Demetrios Kyriakis and fixed by fixed by Adrian A. [400].
  • Improved PickList methods getValueObject() and setValueObject(Object) to delegate to getSelectedValues() and addSelectedValue(String) respectively [490].
  • Improved Spring integration with SpringClickServlet and PageScopeResolver, supporting Spring instantiated Pages with @Component configuration [534].
  • Improved CompressionServletResponseWrapper and CompressionResponseStream classes to have public visibility to enable use in custom servlet Filters [547].
  • Improved Menu control to render attribute class="selected" when the menu item is selected. This issue was raised and fixed by Frederic Daoud [551].
  • Improved PerformanceFilter to implement exclude-paths filtering [498].
  • Improved XmlConfigService to scan for deployable resources inside folders on the classpath [552].
  • Improved Cayenne DataContextFilter, including adding support for LifecycleListener registration [559].
  • Improved AbstractLink to allow rendering of both icon and label in Link controls (default behavior renders either a label or an icon) [535].
  • Improved Page and Control message handling with null args. This issue was raised by WarnerJan Veldhuis [600].
  • Fixed resource deployment on JBoss 5 and up. The solution is based on the work done by the Stripes Framework developers [589].

Deprecated:

Updated third-party libraries:
  • Update Velocity library to version 1.6.3.
  • Update Cayenne library to version 3.0M6.
  • Update Prototype.js library to version 1.6.1.

New Documentation:

New examples:

Enjoy.

- The Click team

Tuesday, January 5, 2010

New book: Getting Started With Apache Click

We start 2010 with some great news. Freddy Daoud just announced his new book: Getting started with Apache Click. Finally, a book is available on the Click framework that provides a great way for getting started quickly.

From the website:

This book will help you get started with this excellent framework, starting with the basics and moving on to creating a sample application. You'll also learn how to integrate popular third-party frameworks such as Spring, Hibernate, Java Persistence API (JPA), and more.
There is also a chapter on authentication and authorization which integrates Click and Apache Shiro, an open source security framework also hosted at Apache.

You can view the book table of contents here, and download the example source code here.

Enjoy.

The Click team.

Saturday, October 24, 2009

Netbeans plugin released for Apache Click

Hantsy Bai has announced the release of a Netbeans plugin for Apache Click. Netbeans users can now enjoy the same features provided by ClickIDE, the Eclipse based plugin.

Please note the plugin targets Netbeans 6.7.1 and might not work with earlier versions.

Features of the plugin includes:

  • Wizard for creating a new Click project
  • Wizard for creating new pages and templates
  • Quickly switch between a Page class, template and property (you can also define keyboard shortcuts for these functions)
  • Provides basic code completion, error checking, hyperlinking and refactoring for click.xml and menu.xml

Not sure if its a feature of the plugin or of Netbeans itself, but the plugin automatically recognized my existing Click projects which is a nice touch.

Here are some screenshots of the plugin in action.


• Create a new Click project:


• Create a new Click page and template:


• Switch to the Page template:


• Switch to the Page class:


• Define keyboard shortcuts for the "Go to Page Class", "Go to Page Template" and "Go to Page Properties" functions:

Sunday, July 19, 2009

Click Calendar 1.0.2 now available

Click Calendar 1.0.2 has been released fixing a bug in DateField that can disable Fields when the popup is closed.

Changes are:
  • Fixed DateField calendar popup which blocked keyboard input events after popup was destroyed. This issue was raised by Christophe FOIRET [567].
The Click team.

Saturday, July 18, 2009

Click 1.5.3 now available

Click 1.5.3 is the latest maintenance release in the 1.5 series. It fixes a bug in DateField that can disable Fields when the popup is closed.

Please note that this is a non-Apache release. For new projects use Apache Click which is continuing the development of this framework.

Changes are:
  • Fixed DateField calendar popup which blocked keyboard input events after popup was destroyed. Only Internet Explorer is affected. This issue was raised by Christophe FOIRET [567].
  • Fixed maven pom to refer to the correct Velocity groupId.
  • Updated Velocity documentation to version 1.6.2.
The Click team.

Saturday, June 13, 2009

Click 2.1.0-RC1 now available

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.

All bugs fixes from 1.5.2 are included 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).

New features:
  • Added new Calendar popup to DateField. This Calendar popup uses Calendar Date Select which is based on the Prototype JavaScript library. Please note if you don't want a dependency on the Prototype library you can use the third-party Click Calendar instead.
  • Added first class support for HEAD elements such as JavaScript and Css. The following classes were added: Element, ResourceElement, JsImport, JsScript, CssImport and CssStyle. A new method was added to Page and Control: Control.getHeadElements() and Page.getHeadElements() [501].
  • Added SubmitLink control that can submit a Form [519].
  • Added HiddenList control for rendering and submitting a list of hidden fields [491].
  • 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 [406].
  • 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 [494].
  • Added method Format.url for encoding URL's in templates [399].
  • 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 [528].
  • Added TypeConverter configuration option to ClickServlet. See getTypeConverter() method for details. This issue was raised Joseph Schmidt and fixed by Adrian A. [539].
  • Added Slf4jLogService for supporting multiple application servers. This issue was raised Oliver Burn [555].
  • Added @Bindable annotation support for page field autobinding [556].
  • 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 [536].
  • Improved Link Controls to support multivalued parameters through the new AbstractLink methods getParameterValues() and setParameterValues() [554].
  • 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 [504].
  • Improved LinkDecorator to support target identfier property parameter names. This issue was raised by Demetrios Kyriakis and fixed by fixed by Adrian A. [400].
  • Improved PickList methods getValueObject() and setValueObject(Object) to delegate to getSelectedValues() and addSelectedValue(String) respectively [490].
  • Improved Spring integration with SpringClickServlet and PageScopeResolver, supporting Spring instantiated Pages with @Component configuration [534].
  • Improved CompressionServletResponseWrapper and CompressionResponseStream classes to have public visibility to enable use in custom servlet Filters [547].
  • Improved Menu control to render attribute class="selected" when the menu item is selected. This issue was raised and fixed by Frederic Daoud [551].
  • Improved PerformanceFilter to implement exclude-paths filtering [498].
  • Improved XmlConfigService to scan for deployable resources inside folders on the classpath [552].
  • Improved Cayenne DataContextFilter, including adding support for LifecycleListener registration [559].
  • Fixed PerformanceFilter and CompressionFilter to properly handle requests [557].

Deprecated:

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.

New Documentation:

New examples:

Enjoy.

- 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.