Wiki

Clone wiki

Lucee / Lucee_5

Home

#Lucee 5

Lucee 5 is the first major release after forking from the Railo project. Lucee 5 is not about dazzling new features but about improving the core language and providing a complete architectural overhaul of the engine.

This brings Lucee and CFML to a whole new level!

New Language dialect

In addition to the existing "CFML" language dialect, Lucee 5 comes with a completely new dialect simply called "Lucee".

read more

Language Enhancements

Lucee 5 provides the following core language enhancements:

  • Abstract/Final Modifiers - Lucee already supports interfaces, but interfaces have not been well adopted by the community, because they are only used to do "sign a contract" when you implement them. Abstract and Final modifiers are a much more intuitive and flexible way to do the same and even more.

  • Access Modifiers for variables - Lucee already supports access modifiers for functions, but with Lucee 4 this was limited to functions, Lucee 5 now also supports the same for variables.

  • Static support for components - Lucee 5 supports static variables and functions inside components.

  • Lambda expressions - Lucee 5 support Lambda Expression alongside closures, a shorthand notation for anonymous functions.

  • New and modified functions - New and modified functions in Lucee 5.

  • New and modified tags - New and modified tags in Lucee 5.

  • CachedWithin - We not only added the attribute cachedWithin to the tag cffile and cfhttp, we have also added an interface to Lucee to make your own cachedwithin implementation.

  • Handling unquoted arguments as variables

  • Extended Java Interface (TODO) - Lucee provides a interface to interact with Lucee from within Java, Lucee 5 has extended this interface with a lot of new functionality, which makes it far easier to write Extensions for Lucee.

Architecture Enhancements

Lucee 5 has had a complete overhaul under the hood, we have not only redone a lot of the existing functionality, we have also extended the interfaces to the engine to make way for a lot of possible functionality in the future.

  • OSGi - Lucee 5 is completely OSGi based, OSGi is the defacto standard in most Java enterprise environments, to manage bundles (jar libraries) used by the environment.

  • [JSR 223] (TODO) - Lucee 5 fully supports the JSR 223 standard and this is something we are very proud of. JSR 223 will open new doors for many exciting possibilities in the future.

  • Class updating - Previously an optional feature in Lucee 4, class updating is now an integral part of Lucee 5. Lucee 5 is able to update existing classes and this has a huge impact on memory consumption, especially in environments where a lot of CFML templates are used.

  • Bytecode Handling - We have improved the generated Java Bytecode produced in general by optimizing it for Java >=7 and we have done specific improvements of the generated bytecode in multiple places.

Extensions

Lucee 5 has had a complete overhaul of the existing extension framework, to make them more flexible and far easier for anyone to create an extension.

Install/Upgrade instructions

Updated