A heads-up: folks might miss the importance of the phrase above, about how among the removals will be removal of "cfscript support for script- based CFCs, such as query and storedproc".
I had in fact highlighted in my first comment here (the day of the post), stressing how this meant (at least) that code using the query cfc (as in new query or other forms of cfc invocation) would need to be changed, such as to queryexecute. I should have elaborated a bit more regarding OTHER of the old "cfc-based tags for script" being removed, including how to find them and how to change them. I do that here.
As the phrase indicates, this removal extends to many more instances of tags which were originally implemented in script as CFCs (first in CF9, and more in 9.1). I list them below. And I have more to share related to this specific removal, which I hope folks will appreciate. (I realize it's a long comment: I was torn whether to do it as a blog post. Maybe I still will. This started out as a simple comment but grew as I wrote. I wanted to go ahead and get this out today, as it came up in today's Adobe webinar on CF2025.)
1) The point of this removal (of CFC-based tags as script) is that you will need to find ALL such occasions of using them (not just the one query or storedproc mentioned above). And then you will need to change them to the NEW forms of script support (introduced in CF11, for nearly ALL tags), which is documented briefly (showing conversion from the "http cfc" to the new cfhttp statement, as a representative example) here:
https://helpx.adobe.com/coldfusion/cfml-reference/script-supported-tags-and-functions.html
2) As for what tags were introduced as CFCs for use in script, in CF9 (which will be removed in CF2025), they were:
ftp (for <cfftp>)
http (for <cfhttp>)
mail (for <cfmail>)
pdf (for <cfpdf>)
query (for <cfquery>)
storedproc (for <cfstoredproc>)
These were/are documented here: https://helpx.adobe.com/coldfusion/cfml-reference/script-functions-implemented-as-cfcs.html
3) Then as for those added in CF 9.1, they were:
dbinfo (for <cfdbinfo>)
imap (for <cfimap>)
pop (for <cfpop>)
ldap (for <cfldap>)
feed (for <cffeed>)
And these were/are documented here:
https://helpx.adobe.com/coldfusion/cfml-reference/script-functions-implemented-as-cfcs/script-functions-implemented-as-cfcs-in-coldfusion-9-update-1.html
4) Beyond those, I also found there are also these:
collection (for <cfcollection>)
index (for <cfindex>)
search (for <cf search>)
Indeed, if anyone might wonder "just where are these CFCs?" that were used for support tags as script, they are deep within the customtags folder of your CF instance, such as \ColdFusion2023\cfusion\CustomTags\com\adobe\coldfusion. And that's where I found these other 3.
5) FWIW the two docs for CF9 and 91 above DO clearly show how Adobe has been "deprecating" the use of these old cfc-based script implementations of tags since CF2018, as was also discussed in the deprecation guide since then as well.
Again, the main point here is that in order to move to CF2025 you will need to change your code where you may still use these old CFC-based forms of script elements to instead use the new form added in CF11, as I noted above is documented here. There's even more discussion of that CF11 change (with examples) here: https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-r-s/cfscript.html#Scriptsupportfortags
6) Finally, I will note that sadly you can't just hope to "find all these" by doing a code search for each as "new http" or "new query", for example, because in CFML there are of course multiple ways to instantiate a CFC. Some coder in the distant past could just as well have implemented this "change of script to support tags via CFCs" by using the creatobject function or cfobject tag. In fact, examples of these are shown in that 9.1 doc I'd offered above. Heck, someone could even use cfinvoke (to call a method, even while instantiating a CFC).
7) As I said in my first comment here (the day of this post), some of these removals are going to be QUITE challenging for some folks--and sadly we can't even experience them yet if you DO join the beta, as they are NOT yet reflected in the beta 1. They are due to be reflected in the beta 2, due in early January.
Indeed, I fear it's going to be a bumpy ride, not just in January or whenever CF2025 comes out but especially when in the future people try to move to CF2025--whether from 2023, 2021, 2018, or older. Many I fear will have code that's not been touched for years but always "just worked" despite the deprecation of these (CFC-based tags for script) in CF2018, and some other things (like parameterexists, which was deprecated over 20 years ago). I hope this comment (or a blog post I may create) will be helpful to them in the transition.
(I'm not at all here questioning or raising for debate the removals. I'm aware of the other comments here and elsewhere on how "removing old cruft is a good thing for any language". I'm just trying to help people navigate the potential minefield.)
... View more