CF2016: What's deprecated and/or 'no longer supported' (note: nothing 'removed')
Note: This blog post is from 2016. Some content may be outdated--though not necessarily. Same with links and subsequent comments from myself or others. Corrections are welcome, in the comments. And I may revise the content as necessary.Continuing a series of posts I started last week on ColdFusion (2016 Release), aka CF 2016, I'd like to highlight the items that Adobe has chosen to deprecate and/or declare as "no longer supported", as of CF 2016.
(Note that for now, nothing is "obsoleted" or "removed" in CF2016, so this is just about our being made to know that certain features that DO work now in CF 2016 may NOT in future releases and won't be receiving any additions, enhancements, or modifications. )
While some of these features listed as deprecated will be things that most won't miss (and some may even wonder why they weren't deprecated sooner), some of the features listed as deprecated may really surprise some folks, as I'd not heard discussion of their deprecation myself until finding them discussed in the CF docs.
Some introductory observations
Before I start listing them, let me note that I am indeed simply sharing info that is readily available in the docs, but first of all, that page lists not only what's deprecated in 2016, but indeed what's been deprecated in all releases back to CF 6 (CFMX). I'm drawing out here ONLY what's deprecated in CF 2016. Second, they are offered in that docs page in a seemingly random order. I present them here in what I think may be more logical groupings.
Also note from that document that Adobe has for the first time created yet another subset of deprecation, as in "deprecated AND unsupported". The difference in the latter is that they are also declaring that they will not be making any bugfixes to them (during the CF 2016 release lifetime), except perhaps for security reasons. Some things that are "deprecated and unsupported" as of CF2016 were already deprecated in CF11 or earlier. I'll break out separately also, below.
With that, let's proceed to the 3 groups of deprecations.
1) Language/tags/functions deprecated in 2016
Following are deprecated features which are enabled through CFML code:- cfchart- format flash
- cffileupload Flash component
- cfmediaplayer
- cftable
- UI Tags based on YUI toolkit - cftree, cfcalendar, cfautosuggest, cfmenu*
2) CF Admin features deprecated
Following are deprecated features which are either only used via the CF Administrator or are related to it, or support language features though it:
- Event gateway - Jabber, Flash Media server
- Portlets*
- Server Manager
Server Monitor(Adobe subsequently said that the monitor would NOT be deprecated)- System Probes
And to others who are surprised to hear that the CF Server Monitor is deprecated, so was I. Granted, it's never changed from being Flash-based, but I thought at some point Adobe would just rewrite it as HTML5. That now seems not to be in the future. (Adobe subsequently said that the monitor would NOT be deprecated)
(Folks should definitely check out FusionReactor, the third-party CF server monitor, which HAS been using HTML5 for a few years, and which can in fact monitor not just CF but Railo/Lucee, BlueDragon, OpenBlueDragon, and indeed any JAva app server, like Tomcat, JBoss, Glassfish, Jetty, etc.)
3) Other features deprecated
Finally, following is a deprecated features which is neither specific to language/CFML or the CF Admin:
- Report Builder*
The Report Builder is another item I was a bit surprised to learn was deprecated (and "no longer supported"), though I do of course understand it's not been updated in a long time, and many never got to using it, though I know some folks who do and will be surprised to hear of this. I'll talk about a few such surprises to me (and perhaps some other folks) in the conclusion below.
Features marked "deprecated and unsupported" in CF2016, but deprecated already previously
The following were all already deprecated in CF11, but they are also now marked as "unsupported" in CF 2016, so they won't receive bug fixes (eccept perhaps for security reasons):
- AIR integration
- CF actionscript functions (CF.query, CF.http, etc.)
- cfapplet
- cfdocument format="flashpaper"
- CORBA integration
- Flash forms
- LCDS integration
- cfpresentation flash presentations
- cfslider/cftree/cfgrid, if using format="applet"
- cfsprydataset
- xml forms
Conclusion: no "obsolete/removed" features, yet perhaps surprises
In conclusion, let me repeat that none of the features listed above are "obsoleted" or "removed" in CF 2016. They are simply deprecated, indicating that they will not be updates and should NOT be expected to be in future releases. And in some cases they are "deprecated and unsupported", which will receive no bugfixes, except perhaps for security reasons.
Even so, there may be many things that some are "glad to see go", such as all the things related to Flash or applets or UI components.
Still, a couple of other things may at least surprise those who perhaps DID still use them, like the Report Builder (thought it's not been updated in years), the System Probes and the Server Manager (though many never even knew that either existed). I realize that both facts (things people don't seem to know about, and things not updated in years) are for some the very definition of something that ought to be deprecated. I'm just saying that some people DO use them, and those folks will be bummed to learn that they are now declared officially deprecated and in some cases "no longer supported" (no more bug fixes, other than perhaps for security reasons).
Still, to be clear, this information I share here should have virtually no bearing on whether one *moves to* 2016. It's mostly just information about how such features will be treated in subsequent releases. And as some will know, some things have lay dormant (deprecated but never removed) for years in CFML, such as the parameterexists function, deprecated since like CF 3.1. :-)
And again, note that since nothing is "removed" in 2016, this means also that things marked as "deprecated" even as recently as CF11 have also "still not been removed". If it's not too indelicate to use a legal analogy, deprecation may be a death sentence, but circumstances may forestall that so this becomes instead "life without parole".
What do you think? Any surprises to you?
I would be curious to hear what others think. I'd ask that folks please refrain from sharing "good riddance" type messages regarding the more obvious things most are "glad to see go" (the Flash, applet, or UI components). And really, if you just want to say you're "glad to see" them or even something else here go, I'm not sure what value there is in commenting on that here. Adobe has obviously heeded your sentiment. :-)
I would be interested (as perhaps Adobe may be) to hear from any who are disappointed to hear that some feature is going away.
Finally, I'll note that there may well be mistakes in the Adobe deprecated feature document, or perhaps even in my rendering of the info (in a slightly different, and I hope helpful) way. If you see any, please let me know, and as I learn of any changes, I'll mark them here as an update.
For more content like this from Charlie Arehart:Need more help with problems?
- Signup to get his blog posts by email:
- Follow his blog RSS feed
- View the rest of his blog posts
- View his blog posts on the Adobe CF portal
- If you may prefer direct help, rather than digging around here/elsewhere or via comments, he can help via his online consulting services
- See that page for more on how he can help a) over the web, safely and securely, b) usually very quickly, c) teaching you along the way, and d) with satisfaction guaranteed
But Report Builder?! Our Servers produce thousands of pdf reports each day which all are based on CFRs...
What would be a good recommendation as a replacement?
At least we could stay with CF11 ;)
That said, you conclude, "At least we could stay with CF11 ;)".
No, no, no! Please, PLEASE note the point I made at both the top and bottom of the post: NOTHING is "removed" (or "obsoleted") in CF 2016!
These items are only deprecated: essentially, marked as "to be removed in the future".
And even about the few that are marked as "no longer supported" (and therefore will not receive bug fixes), note that Adobe has left the door open to fixes for security reasons.
So really, this information I share here should have virtually no bearing on whether one *moves to* 2016. It's mostly just information about how such features will be treated in subsequent releases.
As some will know, some things have lay dormant (deprecated but never removed) for years in CFML, such as the isdefined function, deprecated since like CF 3.1. :-)
And again, note that since nothing is "removed" in 2016, this means also that things marked as "deprecated" even as recently as CF11 have also "still not been removed". If it's not too indelicate to use a legal analogy, deprecation may be a death sentence, but circumstances may forestall that, so this becomes instead "life without parole".
Anyway, I have updated the title of the post to make it clear that nothing is "removed". I will also add a bit of this comment as text in the conclusion (as it seems some people only read a blog's text and not comments, for some reason).
Finally, you ask about alternatives to report builder. I'll address that as a separate comment, in case some may not read so far into this one, about deprecation vs obsoletion.
Well, let's clarify some things that seem important to note about that, and then I'll propose some possible replacements:
1) First, the Report Builder was a tool added in CF7, which created a new form of file extension, .cfr, which could be used in CFREPORT as a template to then populate and present a report in any of many formats.
2) But the CFREPORT tag itself has existed long before CF7. It was originally used to integrate with Crystal Reports, which used to be bundled with CF, but has not been included for many years (I think last in CF3, so yes, there was a time when you could use CFREPORT even though the tool for building them was removed, just as could be the case here once the "newer" CF Report builder is removed).
2a) Indeed, to be clear, CFREPORT *STILL DOES* supports Crystal in 2016, but you would need to obtain (purchase) Crystal Reports yourself to use it (supported only on Windows, I believe. It's also expensive, if I recall correctly. And many had complaints about using it over the years). One would also need to then change their CFREPORT tags to use Crystal instead (which does not use "cfr" files. That was added uniquely with the new Report Builder in CF7). I don't know if that's the way most in your situation will go.
3) But there is sadly nothing else I know of which will build CFR files.
That said, there are indeed other alternative mechanisms to create reports in CF, at least given that CF is based on Java.
4) Perhaps the long most popular solution has been the open source JasperReports (http://community.jas...).
But you would need to not only use Jasper's alternatively provided UI for building reports, but note also that the CFREPORT tag does not itself have any feature for integrating with Jasper-provided reports. So it really would be a cobbled-together solution, including calls to the underlying Java object for Jasper (which is beyond the ability or interest of many).
I will note that people have blogged about trying it for years. Witness this post from the 2004 timeframe: http://www.rickroot.... (which still shows up as among the first results in a search for: ColdFusion Jasper).
Then again, some will want to point out that a subset of Jasper functionality (in the form of some jasper JAR files) does exist in CF, and has for some time. It appears that it's used in some ways under the covers for the CFREPORT feature, but again it has nothing to do with creating CFR files. It seems perhaps Adobe was leveraging it as part of the process of creating the reports, after the CFR templating mechanism passed in the data to be formatted.
More to the point: I've heard that some who tried to "use jasper" themselves" found that then they could no longer "use CFREPORT with CFRs", because of a conflict in the versions of the Jasper JAR files. See for instance https://forums.adobe...
5) Here again we see the twin nature of CF and reporting. Some used it and loved it, some tried it and hated it, many I think never even knew it existed. And some have tried using tools like Jasper, but perhaps were put off by the heavy Java-ness of that solution, or ran into version conflicts with the jasper jars.
Some may wonder why Adobe would just drop (again, not kill, but "stop supporting") a reporting solution in CF. Still others would stand on the argument, "it's java, you can just add reporting yourself", not realizing that the long-used Java-based approaches may be beyond most to use, and again can hit conflicts.
And this emphasizes also the twin nature of CF providing things for folks. Some would argue that they are paying Adobe to solve such problems for them, while others decry that by providing such embedded solutions Adobe just opens the door to soon having outdated libraries. (See my blog post on the version of libraries included in CF 2016: http://www.carehart....)
But as for reporting, it seems that so few used the provided feature that Adobe felt compelled to start officially "letting it go" rather than try to implement updates regarding it (and my sense was that the real problem was with the Report Builder tool itself, built as it was using Delphi in the CF7 timeframe. Rewriting it just did not seem to gain priority interest.)
6) That's why I say that those who use it, and rely on it, need to speak up to Adobe. But this blog post is not the best place to rally around that flag. I would think a forum post on the Adobe CF forums (https://forums.adobe...) would be the better place. Indeed, did you know there is a still-active Reporting-specific CF forum, forums.adobe.com/community/coldfusion/coldfusion_reporting? (For some reason, when I offered that as a full URL here, it got badly formatted by BlogCFC. Don't know why, so I have changed it to remove the https. Didn't happen with the other. May be the underscore. Hey, it's a very old version of BlogCFC that I still run. Sorry.)
If one of you RB fans wants to plant a flag pole there to have that conversation, I'm happy to have a pointer to it here as a comment.
7) Finally, I wonder if there may not be some nifty reporting solution which works NOT via java calls but instead perhaps some other way, such via REST calls, where you pass to some service the data to be reported upon, or perhaps even as a Javascript API library, where the reporting data is passed down as JSON and the library formats it.
I'm not saying either is a good or right way to solve the problem. I'm just proposing to Jörg that there may well be other "reporting" solutions he could look for, even if not tied directly to a CF feature.
8) Finally, let's not forget that while this "reporting" feature, based on the CF Report Builder, is now deprecated, there do remain several other options for creating "report-like" content. Of course, CFML has long been able to create any HTML you want, in a report-like format. It has also long had the ability to create charts and graphs (CFCHART, which replaced the older and now-obsoleted CFGRAPH).
And then subsequent releases added the ability to create first PDFs and then later MS Office-formatted files, with such tags as CFDOCUMENT, CFSPREADSHEET, CFPRESENTATION, and related functions.
So it's not that "one can no longer create reports in CF2016". There remain lots of ways one can "create reports". It's just that the Report Builder specifically, the app that creates CFR files and integrates with CFREPORT, is now deprecated. It's not "gone" yet, but Adobe is has put a target on its back.
Hope that's helpful.
(Perhaps I should make a new blog post on this topic alone, repeating what I have here! :-) Some people may not bother to read this, but might spot and even more may contribute to a newly titled post on "alternatives to Report Builder".)
thank you very much for these extensive comments.
I think I'll post to the forums.
But as I worked with Crystal Reports for years, until 2010 at least, I might give that a try.
We would only have to purchase CR first, as I switched companies back then.
Best Regards!
Jörg
https://forums.adobe...
I use the Server Monitor quite a bit. I really don't see any point in removing the System Probes feature - I'd like to know Adobe's thinking on that one.
Regarding UI features, I agree w/ removing Flash functionality and the YUI stuff (Yahoo themselves have deprecated YUI). I wouldn't agree w/ removing ExtJS or ZingChart, and thankfully Adobe hasn't deprecated either of those. For those, inclusion of their licenses alone is a significant value-add as they cost more than CF itself.
Thanks!,
-Aaron
And lest any readers wonder, I totally am a fan of FusionReactor, and see value in both (indeed, I often run and help people run both at once). Each has something the other does not (and both share much in common).
I'm just saying that for those who DO have the CFSM, it would be nice to tweak just a few things, which have long remained untouched, even if it were to remain a Flex thing...which it of course should not!
Oh well, let this indeed be a chance to point out that there is indeed a modern HTML5 CF monitor in FusionReactor (fusion-reactor.com), which of course DOES work with CF Standard OR Enterprise, and which indeed works not just with CF but also BlueDragon, Railo, and Lucee, as well as any Java EE server or servlet engine, like Tomcat, JBoss, Jetty, Glassfish, and so on. It's also pretty cheap, starting at only $39 a month. And the new FR6 edition adds lots of powerful new features, which I'll be talking about more shortly I hope.
I see SeeFusion is noting a pending update also... FusionDebug has been ahead in 'extensive' features, but sometimes I see seefusion as what you need rather than what you 'could have' (for tonnes more cash). It is a the best tool 'today', but we need more options.
I'm also building a new HTML5 'modern' Lucee Admin (extendable), that I'll port back to CF11+ (maybe even 10) and it will have a basic monitor in it also. (and will allow hybrid admin to an extent) and uptime monitor functionality. Think Q4 for beta as a Lucee extension, the Q1 2017 for cf support. (more info will be at http://luceeadmin.in...) - I'm guessing seefusion and fusiondebug will integrate also to give extended info if installed...
I'm also sorry to see the report writer on the deprecation list.
Thanks
our agency migrating to CF2016 from CF9.
I've installed on my pc developer version of CF2016.
Many things stop working, and we use cfform with flash format, also not working,
Any suggestions?
Thanks,
Albert
But since you say one particular thing is that CFFORM with Flash stopped working, note that during the CF install you are asked (since CF10) whether to enable that (flash support), in the "servlets" step of the installer. You may have not understood that you disabled it. Do you recall if you chose the "developer" or one of the "production" modes (on the screen before that).
I will add that, it is possible to revert the disabling (or enabling) of these servlets. This is discussed in the installer, as well as in the installer docs (see 6th screen at https://helpx.adobe....), and in section 4.8 of the CF2016 lockdown guide: http://wwwimages.ado...
But it could also be an issue related to configuration in your CF instance (and web server) for what used to be the CFIDE/scripts folder, now known as the cf_scripts directory (in the cfusion/wwwroot), and for which there must be a virtual directory mapping for it in your web server.
But really, these may be just the tip of the iceberg of many issues you are having, and all the more if you may have installed CF2016 on the same machine that had CF9 previously.
I would propose that if it's important for you to get these things solved, there would be nothing faster than for us to have a remote screen-sharing session where I could see what you are seeing, and how things are configured, and not only help you find perhaps find better diagnostics on the problems but to fix them. I do this with people daily. For more on my rates, approach, satisfaction guarantee, and more, see http://www.carehart....
As for asking more questions here in this blog post, it would not be appropriate to do that with general interest troubleshooting issues. As I said at the outset of the post, no previously available features were removed from CF2016 when it was released in Feb 2016.
You could indeed be hitting some things that would have happened if you've moved to CF11 or even CF10, but this post is just not the place to discuss all challenges someone may hit in skipping from CF9 to CF2016. :-) I hope you'd understand.
But reach out to me directly to help get you going on your issues. I doubt it would take more than an hour to get you set right, since again this is the sort of stuff I help people with daily.
@Doug, I am not aware of any planned replacement for probes. But again, note that they are only listed DEPRECATED in CF2016, not obsoleted. So they are still available, and could even remain so in CF2018.
That said, there are all sorts of monitoring tools that can replicate what it does. I keep a list of tools that can watch a web page/app, as a category of my CF411 page, specifically cf411.com/sitemon. But most of those are hosted services.
If you want something that would run a script within your server to trigger an action, like a CF restart--but by pointing to a file like CF can, rather than a web page as such remote tools would have to, then you (generally) need something installed on the machine.
Among the tools listed there are a few Windows tools that can test a URL, test its result, and run a script based on that result. See WebCheck and WebMonitor (free), and AppsWatch and WebWatchBot (commercial). If you wanted just one recommendation, see https://west-wind.co...
@Edward, about the report builder, yep, it will be sad for some to see it go. I hope you saw my comment back in Feb 2016 (above) where I pointed out possible alternatives: http://www.carehart....
@Nelsom, thanks for your kind regards.
Finally, @Dawesi, while you kept saying FusionDebug in your comment, I realize you mean FusionReactor. I had meant to comment and correct this back when you wrote. More important, your link (luceeadmin.info) fails. Did you give up on that project?
my many things, I just start to check how existing code works,
I just upgrade my agency laptop to Windows 10, all previous CF's was wipeout.
I have problem:
a.) jdbc drivers for db2 not working:
I successfully set connection to db2 database in CF Administrator, but when I run <cfquery> I'm getting error, If I use ODBC setup for the same database it works fine
b.) The CCS which is use before different looks on 2016, but this is easy to fix
c.)Cfform flash
As for the JDBC issue, if the DSN verifies in the CF Admin, then any failing SQL would seem to do with changes in the JDBC driver support of that SQL. Can't offer any more than that, other than to help you perhaps re-craft the SQL to get it to work.
And again, for that or other problems that you can't solve, I proposed that I could help by way of consulting, and that this blog post is about what's deprecated in CF2016. To be frank, none of what you are bringing up seems related to any features listed as deprecated in CF2016--and even then, deprecation doesn't mean "no longer works" but instead "may not work in future releases".
I appreciate you just want your problems solved. If you don't want to go the consulting route, then you would do better to bring your problems up on the Adobe CF forums, https://forums.adobe..., where you can bring up anything related to CF. And not only do I watch those, but more important so do other Adobe ACPs for CF, and fellow CF users. as well as sometimes Adobe folks themselves.
I can't find it online.
Thank you in advance!
https://helpx.adobe....
If instead it's that some app has stopped working, is there any error at all? Or is it just not "running right"?
And either way, did you recently update your cf? From what update to what update?
I just wanted to get that clarification out ASAP--that I am NOT aware that parameterexists has been removed. Sure, it's been deprecated since before the turn of the century, to be clear. (And that's why you felt it had "finally" been given the death knell. I get that. But again, I don't think so.)
But first I'd missed that you'd said you'd updated CF. That's where I suspect your problem is.
And it could be because of the March update (which changed CF's default searchimplicitscopes behavior)...though usually that would not "fail silently" the way you describe.
Or it could be because of the June one (which would incorporate the March one, if you'd not yet applied it). That June one changed CF's default algorithm for several functions involving encryption, hashing, or randomization. And that, too, would not necessarily result in "errors" but instead sometimes just unexpected behavior.
I have blog posts on both the updates, as well as more on them in the months after each came out. I see you found this post on deprecated features...because you reasonably presumed this was the issue. I really don't think so.
Check out those other posts (the most recent are listed right on the page with any one you're reading--on thr right on a desktop or on the bottom on mobile), and let us know if perhaps that better explains your problem.
In the meantime I'll hop out and create a test page that proves for sure whether parameterexists still work. If not, I'll report that and admit my shock...but my money is on another explanation for what you're seeing. :-)
I ran this code at cffiddle.org, which reported both no failure and that the update was indeed cf2021 u14 (the latest, as I write), if I picked cf2021 from the engine version dropdown.
<cfset x=1>
<cfif parameterexists(x)>
x is set
</cfif>
running on <cfoutput>#server.coldfusion.productversion#</cfoutput>
Just saw your posts. The reason I said this is that I had an app that was using URL variables and then parameterExists(url.var) functions to check for them. What was happening was basically nothing. The code was essentially ignoring any and all P.E. URL var checks, all of the sudden. I had just installed the latest HotFix for CF 2021 and knew that P.E. had been deprecated a long time ago. I just figured that the hotfix finally cut it off.
I went ahead and changed all the P.E. functions to isDefined("url.var"). Everything started working again. Are you saying that P.E. is NOT deprecated now?
Thank you.
Zach
Could you please read especially the second and third replies I offered above the day you wrote. It addresses both points in relating. I'm hoping it will be the solution for you.
PS The function remains deprecated as it has been for over 25 years, but it still works.