Lucee Changelog, new Tags & Functions, Arguments and Attributes

There’s a new page on docs which lists all the new stuff we have added to Lucee

which builds on the work I did here

https://lucee.daemonite.io/t/docs-now-show-introduced-versions-for-arguments-and-attributes/10869

Since these changes, we will be generating docs from Lucee 6.0 very soon, which also has a lot more metadata about stuff introduced in 5 as well.

Sneak Preview :slight_smile:

  • 5.0.0.0
    • BundleInfo()
    • CacheRegionExists()
    • CacheRegionNew()
    • CacheRegionRemove()
    • EncodeForCSS( canonicalize=“boolean”)
    • EncodeForDN( canonicalize=“boolean”)
    • EncodeForHTML( canonicalize=“boolean”)
    • EncodeForHTMLAttribute( canonicalize=“boolean”)
    • EncodeForJavaScript( canonicalize=“boolean”)
    • EncodeForLDAP( canonicalize=“boolean”)
    • EncodeForSQL( canonicalize=“boolean”)
    • EncodeForURL( canonicalize=“boolean”)
    • EncodeForXML( canonicalize=“boolean”)
    • EncodeForXMLAttribute( canonicalize=“boolean”)
    • EncodeForXPath( canonicalize=“boolean”)
    • ESAPIEncode( canonicalize=“boolean”)
    • FileInfo()
    • GeneratePBKDFkey()
    • GetLocaleInfo()
    • GetTagData( dialect=“string”)
    • GetTimeZoneInfo( timezone=“timezone”)
    • GetTimeZoneInfo( locale=“locale”)
    • IsCustomFunction( type=“string”)
    • IsInThread()
    • ManifestRead()
    • MonthShortAsString( locale=“locale”)
    • Render()
    • StoreGetMetadata()
    • StoreSetMetadata()
    • webservicenew()
    • <cfapplication cachehttp="string">
    • <cfapplication cachefile="string">
    • <cfapplication cachewebservice="string">
    • <cffile cachedwithin="object">
    • <cfhttp clientcert="string">
    • <cfhttp clientcertpassword="string">
    • <cfhttp cachedwithin="object">
    • <cfstatic>
  • 5.3.1.7
    • GetContextInfo()
  • 5.3.1.43
    • NewLine( includeCROnWindows=“boolean”)
  • 5.3.3.37
    • <cfapplication javasettings="struct">
  • 5.3.4.22
    • <cfsetting info="string">
    • <cfsetting listen="boolean">
  • 5.3.4.34
    • QueryGetCellByIndex()
    • QueryRowByIndex()
    • QueryRowDataByIndex()
  • 5.3.4.38
    • QueryClose()
  • 5.3.4.51
    • <cfapplication xmlfeatures="struct">
  • 5.3.5.17
    • ListAppend( includeEmptyFields=“boolean”)
    • ListPrepend( includeEmptyFields=“boolean”)
  • 5.3.5.22
    • findlast()
    • findlastnocase()
  • 5.3.6.19
    • ThreadData()
  • 5.3.7.17
    • listqualifiedtoarray()
  • 5.3.7.33
    • <cfcookie samesite="string">
  • 5.3.8.1
    • <cfexecute directory="string">
  • 5.3.8.18
    • generateArgon2Hash()
  • 5.3.8.19
    • <cfapplication searchresults="boolean">
  • 5.3.8.23
    • REFind( multiline=“boolean”)
    • REFindNoCase( multiline=“boolean”)
    • REMatch( multiline=“boolean”)
    • REMatchNoCase( multiline=“boolean”)
    • <cfapplication regex="any">
  • 5.3.8.25
    • <cfqueryparam charset="string">
  • 5.3.8.43
    • argon2checkhash()
  • 5.3.8.85
    • QueryRowData( format=“string”)
  • 5.3.8.104
    • ArrayPop()
    • ArrayPush()
    • ArrayShift()
    • ArrayUnShift()
  • 5.3.8.107
    • <cffile allowedextensions="any">
    • <cffile blockedextensions="any">
  • 5.3.8.110
    • clearTimeZone()
  • 5.3.8.117
    • StructValueArray()
  • 5.3.8.120
    • QuerySetRow()
  • 5.3.8.127
    • <cffeed columnmap="struct">
  • 5.3.8.130
    • CallStackGet( offset=“number”)
    • CallStackGet( maxFrames=“number”)
  • 5.3.8.135
    • XmlParse( lenient=“boolean”)
    • <cfxml lenient="boolean">
  • 5.3.8.149
    • applicationPathCacheClear()
  • 5.3.9.4
    • iswithintransaction()
  • 5.3.9.6
    • configimport()
  • 5.3.9.40
    • ExtensionList( imageObject=“boolean”)
  • 5.3.9.72
    • GetTempFile( extension=“string”)
  • 6.0.0.12
    • FileUpload( allowedExtensions=“any”)
    • FileUpload( blockedExtensions=“any”)
    • FileUploadAll( allowedExtensions=“any”)
    • FileUploadAll( blockedExtensions=“any”)
  • 6.0.0.15
    • queryappend()
    • queryclear()
    • queryprepend()
  • 6.0.0.16
    • queryinsertat()
  • 6.0.0.17
    • QueryRowSwap()
  • 6.0.0.18
    • queryreverse()
  • 6.0.0.19
    • arraysplice()
  • 6.0.0.57
    • queryrenamecolumn()
  • 6.0.0.79
    • ArrayToStruct( valueAsKey=“boolean”)
  • 6.0.0.96
    • <cfhttp pooling="boolean">
  • 6.0.0.98
    • <cftimer unit="string">
    • <cftimer variable="string">
  • 6.0.0.105
    • stringeach()
    • stringevery()
    • stringfilter()
    • stringmap()
    • stringreduce()
  • 6.0.0.107
    • StructNew( onMissingKey=“function”)
  • 6.0.0.114
    • <cfapplication precisemath="boolean">
      *<cflocation abort="boolean">
  • 6.0.0.119
    • arrayremoveduplicates()
  • 6.0.0.120
    • queryisempty()
  • 6.0.0.126
    • stringsome()
  • 6.0.0.150
    • markdowntohtml()
  • 6.0.0.151
    • directoryinfo()
  • 6.0.0.172
    • <cfschedule useragent="string">
  • 6.0.0.192
    • <cftimeout>
  • 6.0.0.208
    • isfileobject()
  • 6.0.0.210
    • extensioninfo()
8 Likes

There’s a lot of great new features here! I had a couple thoughts about some of them… let me know if I should move this to a separate thread.

this.xmlFeatures = {}

Why was this called this.xmlFeatures? Why not this.xmlSettings, to match this.ormSettings and this.javaSettings?

I see no naming discussion here:

https://luceeserver.atlassian.net/browse/LDEV-1676

isWithinTransaction()

This will only detect a transaction{} construct created in Lucee, from what I see of the source code. Is there any plan to add support for detecting native Hibernate transactions?

Otherwise, this method is useless for native Hibernate transactions created via getOrmSession().beginTransaction() method. (Such as when working around LDEV-4017, or using a transaction wrapper in CBORM).

CallStackGet

Maybe I should start a separate post on this one… what about a filter="NONE" argument to disable Lucee’s filtering of .java stack trace points from the result?

In other words: CallStackGet() would be more useful for debugging if it included all items from the stack trace. As it is, it’s a crippled method.

I wasn’t involved and it was a CVE, so it was done privately. we can add an alias and change it for 6, good suggestion, file a bug

More great feedback! File a bug

Makes sense, start a new thread and we can refine tgis

1 Like

Thanks, Zac! Will file as noted.

Nice one!!!

1 Like

Just for closure:

XMLFeatures rename / alias to xmlSettings

https://luceeserver.atlassian.net/browse/LDEV-4184

isWithinTransaction()

https://luceeserver.atlassian.net/browse/LDEV-4185

CallStackGet

https://lucee.daemonite.io/t/add-option-to-callstackget-to-return-omitted-java-traces/11013