Groovy actions

With groovy actions you can make any page as interactive and dynamic as you like.

Each page has a dedicated groovy action. For example, a '/projects' url has a dedicated /pages/project/action.groovy script on the file system.

If you modify a groovy action, it is immediately reloaded in the webapp. There is no need to recompile, redeploy or wait unnecessarily. A fast turnaround means high productivity.

Groovy classpath

If you have utility classes that you want to use across many actions, there is a groovy classpath in your application where you can put them.

Again, any modifications made to the groovy files are immediately picked up by the system without recompilation or redeployment.

Productivity meets reuse.

Online editing

For maximum speed, edit your groovy actions directly in Portofino, using a simple on-line editor. Basic syntax highlighting is provided. Click on "Update" and your script is immediately saved and used by the system.

Making changes to a running system has never been so easy.

Offline editing

For maximum flexibility, edit groovy actions in your favourite IDE and benefit from enhanced syntax highlighting, code completion, automatic classpath imports, code checking and inspection, debugging, etc. The most popular IDE's (Eclipse, NetBeans, IntelliJ Idea) are supported.

When you save your groovy files, they are immediately and automatically reloaded by Portofino. No compilation or redeployment is necessary.


Elements is the underlying forms management UI library: plain, tabular and search forms can be built and customized easily using an object-oriented API.

Stripes templating

Portofino integrates Stripes templating to provide a consistent look and feel of pages. You can decide the overall layout, the branding, the navigation elements (tabs, sidebar, breadcrumbs) that fit your needs.

Stripes API

Use Stripes to make your actions rich and interactive. Custom buttons, AJAX, content streaming and much more can be handled with few lines of code.

Persistence with Hibernate

Portofino integrates Hibernate for data access and persistence.

Run HQL or SQL against any of the connections and use the powerful object-oriented API.

Scheduling with Quartz

Use the embedded Quartz instance to schedule recurring events: reminder sending, report generation, nightly data transfers, etc.

Email integration

Portofino includes an email queue. The main benefits are:

  • Emails are sent asynchronously. No longer wait for slow or unavailable SMTP servers.
  • Emails are persistent. If you shut down Portofino's server, emails in the queue will be sent the next time you restart the server.
  • Emails are sent reliably. Portofino is resilient to transient problems with the SMTP server. Emails that are sent successfully are moved to a "sent" folder. Emails that are not sent due to permanent errors are moved to a "failed" folder.

Multiple recipients, attachments, SMTP authentication, and SSL/TLS connections are supported.