What was new in Lucee 5.2

With Lucee 5.2.7 due for release next month, we’re looking at our best release of Lucee yet. It’s worth a quick recap on the features of the 5.2 release – now is a great time to be thinking of upgrading.

https://lucee.daemonite.io/t/announcing-lucee-5-2-7-rc/3757

Lucee 5.2 Features

Documentation

Under /lucee/doc.cfm you now get the reference for all tags, functions, and components Lucee comes with.
This also includes tags, functions, and components provided by extensions or added manually to Lucee.
You can also show your own components there. (We will provide detailed information on how you can do that soon.)

Administrator Mail Servers

When you define a mail server in the Lucee Administrator you can now choose from predefined providers instead of providing all the details.

At the moment we support the following providers:

  • GMail (Google)
  • GMX
  • iCloud Mail (me.com)
  • Outlook Mail (Hotmail)
  • Yahoo! Mail

This list can easy be extended by adding a template for your provider (a component).

Tag CFDump

The tag CFDUMP now produces far less output than before. Instead of generating a lot of HTML for all the data, the tag now outputs the data itself as a JSon String and generates the output with Javascript.

Sidenote: Output type “simple” still generates pure HTML as before.

Query Tags

The tag CFQuery, the function QueryExecute, and the Component org.lucee.cfml.Query now support a new argument/attribute, “tags”, that allows the definition of an array of tags that is used to tag query objects cached with the help of the attribute/argument “cachedWithin”. Then queries can easily be flushed with the help of the new argument, “tags”, in the function “CacheClear”.

More general support for tags with caches will follow in the future.

Example:

<cfquery tags=”#[‘person’]#” cachedwithin=”request”>
select * from person
</cfquery>
<cfdump eval=”person”>
...
<cfquery tags=”#[‘person’]#” cachedwithin=”request”>
insert into person(last,first)
values(‘Sorglos’,’Susi’)
</cfquery>
<cfset cacheClear([‘person’],’myQueryCache’)>

Administrator.cfc

The component org.lucee.cfml.Administrator now provides all actions (167) formerly only supported by the tag CFAdmin. This includes documentation for all actions possible which can be seen in the new Documentation. (See above.)

Function FileTouch

The new function, FileTouch, adds the same functionality you already have with <cffile action="touch"> as a function. This means, if a file path provided to the function does not exist, it is created (empty). If it already exist only “lastModified” is updated.

<cffile action="touch">

XML Member Function

Add support for XML Member functions.

Example:

xml=xmlNew(strXML);

// Before you could only do this
dump(XmlGetNodeType(xml));

// Now you can do
dump(xml.getNodeType());

Session/Client Storage

Session/client Storage definition In the Lucee Administrator is no longer a text field. You have to know the possible valid values. Now you can choose the possible values from a drop down.

Catch

The catch scope provided inside the catch block (<cfcatch>,catch{}) now provides information about the cause of an exception, if there is one. Exceptions thrown by Java often have a cause, sometimes only the cause delivers the necessary information.

Query Cache

Performance improvement with query cache.


Hat tip to the core committers lead by @micstriit :tophat:

6 Likes

I think i missed one… Introduced to Lucee in version 5.2.2.23 released in Feb 2016.

Externalise Strings

All bytecode built based on your CFML code holds all the strings in your CFML code. That can be a lot and all ends up in the memory of your JVM (Java Virtual Machine). To reduce that memory, Lucee is able to externalize strings used in your generated bytecode, so it does not end in your bytecode.

3 posts were split to a new topic: What is the negative impact for externalising strings?