SlideShare a Scribd company logo
2006 Adobe Systems Incorporated. All Rights Reserved.
1
Language
Enhancements
Rupesh Kumar
Computer Scientist
June 27, 2007
2006 Adobe Systems Incorporated. All Rights Reserved.
2
Agenda
 Syntax enhancements
 CFC Enhancements
 Multi-Threading
 New File I/O
 Application.cfc
 cfdump enhancement
 Secure ftp
 Misc
 cfzip
 Cffeed
 cfobject changes
 cfdbinfo
2006 Adobe Systems Incorporated. All Rights Reserved.
3
Syntax Enhancement
 cfscript operators
 Now ++, --, +=, -=, /=, *=, ==, >=, <=, <>, &= available in cfscript
 Implicit struct and array creation
 <cfset a={key1="value1", key2=expression}>
 <cfset a=[expression1, innerstruct1, innerarray1, literal]>
 Nested array and struct not yet supported
2006 Adobe Systems Incorporated. All Rights Reserved.
4
attributeCollection
 Instead of passing tag attributes, pass a struct to tags
 Conditional tag attributes
 Example TBD
2006 Adobe Systems Incorporated. All Rights Reserved.
5
New File I/O
 Reading large files
 cfloop tag
 FileReadXXX functions
<cfloop file="temp.txt" from=5 to=10 index="myline">
<cfoutput>#myline#</cfoutput>
</cfloop>
<cfscript>
myfile =
FileOpen("c:tempmyfile.txt","read");
while(NOT isEOF(myfile))
x = FileReadLine(myfile); // read line
FileClose(myfile);
</cfscript>
2006 Adobe Systems Incorporated. All Rights Reserved.
6
FileXXX functions
2006 Adobe Systems Incorporated. All Rights Reserved.
7
CFTHREAD
 Allow cf page to launch threads
 for example fetch result of a web service
 Create, join, sleep, terminate
 Thread local scope
 Any variable with var or with no scope inside cfthread tag
 THREAD scope
 Contains thread-specific variables and metadata about the thread
 Owner can write, anyone can read
 Attributes scope
 Passed to the thread by value
 Server, Session, Request, and Client scopes shared with the launching page
2006 Adobe Systems Incorporated. All Rights Reserved.
8
CFTHREAD – Example
<cfloop query="dir">
<cfset threadname = "thread_" & #i#>
<cfset i=i+1>
<cfthread name="#threadname#" filename="#dir.name#">
<!--- Declare local variable--->
<cfset localVar = “Only for thread”>
<cffile action="COPY" source="#src##filename#"
destination="#dest##filename#">
<!--- Set variable in THREAD scope --->
<cfset THREAD.readOutside = “sure”>
</cfthread>
</cfloop>
<!--- Access THREAD scope outside --->
<cfset reading=thread_1.readOutside>
2006 Adobe Systems Incorporated. All Rights Reserved.
9
CFC Enhancements
 Interface
 Serialization
 Duplicate
 onMissingMethod
 Metadata
2006 Adobe Systems Incorporated. All Rights Reserved.
10
CFC Interfaces
<!--- EventListener interface --->
<cfinterface>
<cffunction name=“handleEvent”>
<cfargument name=“event” type=“struct”
required=“true”>
</cffunction>
</cfinterface>
<!--- EventHandler component --->
<cfcomponent implements=“EventListener”>
<cffunction name=“handleEvent”>
<cfargument name=“event” type=“struct”
required=“true>
<!--- implementation code here --->
</cffunction>
</cfcomponent>
2006 Adobe Systems Incorporated. All Rights Reserved.
11
CFC serialization
 CFC stored in the session can be retrieved back from the session
 when a session failover happens in a ColdFusion cluster
 Struct & arrays in session scope also supported
 CFC referencing a CFC also supported
2006 Adobe Systems Incorporated. All Rights Reserved.
12
CFC Duplicate
 Also used in cfthread when cfc is passed
 TBD
2006 Adobe Systems Incorporated. All Rights Reserved.
13
OnMissingMethod
2006 Adobe Systems Incorporated. All Rights Reserved.
14
Metadata
 getComponentMetadata
 TBD
2006 Adobe Systems Incorporated. All Rights Reserved.
15
Application.cfc changed
 onMissingTemplate
 Per app settings
2006 Adobe Systems Incorporated. All Rights Reserved.
16
onMissingTemplate
 This function is invoked on file not found condition
 No other handlers are invoked
 Rules
 TBD, lot of discussion on forums
2006 Adobe Systems Incorporated. All Rights Reserved.
17
Per app settings
 Mappings
 Custom tag paths
 Via THIS scope in Application.cfc
 Overrides server wide settings in Administrator
<cfset THIS.mappings["MyMap"]="c:inetpubmyStuff">
<cfset THIS.customtagpaths = "c:mapped1,c:mapped2">
2006 Adobe Systems Incorporated. All Rights Reserved.
18
DB Features
 Support for DataDirect v3.6 drivers
 Auto-generated key retrieval
 Transaction savepoints
 <cftransaction action="setsavepoint" savepoint="pointA" />
 Split neo-query.xml into neo-drivers.xml, neo-datasources.xml
 CFDBINFO tag
 Fetch tables, database names, stored procedures in a data source
 Columns, indexes, primary keys, foreign keys in a table
<cfdbinfo type="tables“ datasource=“dsn“
dbname="databasename“
pattern="pattern“
username="username1“ password="password1“
name="resultname">
2006 Adobe Systems Incorporated. All Rights Reserved.
19
CFDUMP
 Show the first 'n' keys of a structure
 Show or hide query colums or structure keys
 Include SQL and other metadata when dumping query objects
<cfdump
var = "#variable#"
expand = "yes" or "no"
label = "text"
top = "number of rows or levels"
show = "columns or keys"
hide = "columns or keys"
keys = "number of keys to display for structures"
output = "browser or console or file"
showUDFs = "yes or no"
>
2006 Adobe Systems Incorporated. All Rights Reserved.
20
Secure CFFTP
 Supports FTP over SSH2 protocol
<cfftp
action = "action"
username = "name"
password = "password"
fingerprint = "hh:hh:hh:hh:hh:hh:hh:hh"
key = "absolute path of the private key"
paraphrase = "paraphrase of the private key"
server = "server"
timeout = "timeout in seconds"
port = "port"
connection = "name"
proxyServer = "proxy server"
retryCount = "number"
stopOnError = "yes" or "no"
secure = "yes"
result = "result_name“
>
2006 Adobe Systems Incorporated. All Rights Reserved.
21
PrecisionEvaluate
 Uses BigDecimal arithmetic
 TBD
2006 Adobe Systems Incorporated. All Rights Reserved.
22
CFZIP
 Support manipulation of ZIP & JAR files
 Create, extract, delete, list and update action on the zip entries
<cfzip file="E:workabc.zip" source="c:temp" />
<cfzip file="E:worktest.zip" action="zip">
<cfzipparam source="c:tempabc.txt"
prefix="comabc">
<cfzipparam source="c:srcclasses" recurse="true"
filter="*.class,*.properties"
prefix="classes">
<cfzipparam source="c:srcManifest.MF"
entrypath="META-INFMANIFEST">
</cfzip>
2006 Adobe Systems Incorporated. All Rights Reserved.
23
CFFEED
 Read all flavours of RSS and Atom feeds.
 Create RSS 2.0 and Atom 1.0 feeds.
 Support for enclosures
 Support for iTunes & Dublin Core
 Convert feed from/to RSS and ATOM
 Demo
2006 Adobe Systems Incorporated. All Rights Reserved.
24

More Related Content

What's hot

Introduction to PHP 5.3
Introduction to PHP 5.3Introduction to PHP 5.3
Introduction to PHP 5.3
guestcc91d4
 
Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)
julien pauli
 
Python and EM CLI: The Enterprise Management Super Tools
Python and EM CLI: The Enterprise Management Super ToolsPython and EM CLI: The Enterprise Management Super Tools
Python and EM CLI: The Enterprise Management Super Tools
Seth Miller
 
CakePHP
CakePHPCakePHP
Sa
SaSa
PHP FUNCTIONS
PHP FUNCTIONSPHP FUNCTIONS
PHP FUNCTIONS
Zeeshan Ahmed
 
Introduction to PowerShell
Introduction to PowerShellIntroduction to PowerShell
Introduction to PowerShell
Boulos Dib
 
Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/Proxy
Peter Eisentraut
 
Lesson 9. The Apache Web Server
Lesson 9. The Apache Web ServerLesson 9. The Apache Web Server
Lesson 9. The Apache Web Server
webhostingguy
 
Datagrids with Symfony 2, Backbone and Backgrid
Datagrids with Symfony 2, Backbone and BackgridDatagrids with Symfony 2, Backbone and Backgrid
Datagrids with Symfony 2, Backbone and Backgrid
eugenio pombi
 
Flask patterns
Flask patternsFlask patterns
Flask patterns
it-people
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
Max Claus Nunes
 
Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18
Lar21
 
Flask RESTful Flask HTTPAuth
Flask RESTful Flask HTTPAuthFlask RESTful Flask HTTPAuth
Flask RESTful Flask HTTPAuth
Eueung Mulyana
 
Psr-7
Psr-7Psr-7
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutionsPython RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
Solution4Future
 
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...
King Foo
 
8 Minutes On Rack
8 Minutes On Rack8 Minutes On Rack
8 Minutes On Rack
danwrong
 
PHP 7 Crash Course - php[world] 2015
PHP 7 Crash Course - php[world] 2015PHP 7 Crash Course - php[world] 2015
PHP 7 Crash Course - php[world] 2015
Colin O'Dell
 
CMake - Introduction and best practices
CMake - Introduction and best practicesCMake - Introduction and best practices
CMake - Introduction and best practices
Daniel Pfeifer
 

What's hot (20)

Introduction to PHP 5.3
Introduction to PHP 5.3Introduction to PHP 5.3
Introduction to PHP 5.3
 
Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)Php in 2013 (Web-5 2013 conference)
Php in 2013 (Web-5 2013 conference)
 
Python and EM CLI: The Enterprise Management Super Tools
Python and EM CLI: The Enterprise Management Super ToolsPython and EM CLI: The Enterprise Management Super Tools
Python and EM CLI: The Enterprise Management Super Tools
 
CakePHP
CakePHPCakePHP
CakePHP
 
Sa
SaSa
Sa
 
PHP FUNCTIONS
PHP FUNCTIONSPHP FUNCTIONS
PHP FUNCTIONS
 
Introduction to PowerShell
Introduction to PowerShellIntroduction to PowerShell
Introduction to PowerShell
 
Getting Started with PL/Proxy
Getting Started with PL/ProxyGetting Started with PL/Proxy
Getting Started with PL/Proxy
 
Lesson 9. The Apache Web Server
Lesson 9. The Apache Web ServerLesson 9. The Apache Web Server
Lesson 9. The Apache Web Server
 
Datagrids with Symfony 2, Backbone and Backgrid
Datagrids with Symfony 2, Backbone and BackgridDatagrids with Symfony 2, Backbone and Backgrid
Datagrids with Symfony 2, Backbone and Backgrid
 
Flask patterns
Flask patternsFlask patterns
Flask patterns
 
Flask – Python
Flask – PythonFlask – Python
Flask – Python
 
Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18
 
Flask RESTful Flask HTTPAuth
Flask RESTful Flask HTTPAuthFlask RESTful Flask HTTPAuth
Flask RESTful Flask HTTPAuth
 
Psr-7
Psr-7Psr-7
Psr-7
 
Python RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutionsPython RESTful webservices with Python: Flask and Django solutions
Python RESTful webservices with Python: Flask and Django solutions
 
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...
 
8 Minutes On Rack
8 Minutes On Rack8 Minutes On Rack
8 Minutes On Rack
 
PHP 7 Crash Course - php[world] 2015
PHP 7 Crash Course - php[world] 2015PHP 7 Crash Course - php[world] 2015
PHP 7 Crash Course - php[world] 2015
 
CMake - Introduction and best practices
CMake - Introduction and best practicesCMake - Introduction and best practices
CMake - Introduction and best practices
 

Similar to Language enhancement in ColdFusion 8

Language Enhancement in ColdFusion 8 - CFUnited 2007
Language Enhancement in ColdFusion 8 - CFUnited 2007Language Enhancement in ColdFusion 8 - CFUnited 2007
Language Enhancement in ColdFusion 8 - CFUnited 2007
Rupesh Kumar
 
Language enhancements in cold fusion 11
Language enhancements in cold fusion 11Language enhancements in cold fusion 11
Language enhancements in cold fusion 11
ColdFusionConference
 
Ajax Performance Tuning and Best Practices
Ajax Performance Tuning and Best PracticesAjax Performance Tuning and Best Practices
Ajax Performance Tuning and Best Practices
Doris Chen
 
ColdFusion ORM - Advanced : Adobe Max 2009
ColdFusion ORM - Advanced : Adobe Max 2009ColdFusion ORM - Advanced : Adobe Max 2009
ColdFusion ORM - Advanced : Adobe Max 2009
Rupesh Kumar
 
Top5 scalabilityissues withappendix
Top5 scalabilityissues withappendixTop5 scalabilityissues withappendix
Top5 scalabilityissues withappendix
ColdFusionConference
 
Top5 scalabilityissues
Top5 scalabilityissuesTop5 scalabilityissues
Top5 scalabilityissues
ColdFusionConference
 
Symfony2 revealed
Symfony2 revealedSymfony2 revealed
Symfony2 revealed
Fabien Potencier
 
Hibernate java and_oracle
Hibernate java and_oracleHibernate java and_oracle
Hibernate java and_oracle
Krishnakanth Goud
 
Crafting Beautiful CLI Applications in Ruby
Crafting Beautiful CLI Applications in RubyCrafting Beautiful CLI Applications in Ruby
Crafting Beautiful CLI Applications in Ruby
Nikhil Mungel
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
Lindsay Holmwood
 
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Bastian Feder
 
前端概述
前端概述前端概述
前端概述
Ethan Zhang
 
Software Variability Management
Software Variability ManagementSoftware Variability Management
Software Variability Management
XavierDevroey
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0
Eugenio Romano
 
BP-6 Repository Customization Best Practices
BP-6 Repository Customization Best PracticesBP-6 Repository Customization Best Practices
BP-6 Repository Customization Best Practices
Alfresco Software
 
OSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
OSCamp #4 on Foreman | CLI tools with Foreman by Martin BačovskýOSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
OSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
NETWAYS
 
Feature and platform testing with CMake
Feature and platform testing with CMakeFeature and platform testing with CMake
Feature and platform testing with CMake
Richard Thomson
 
symfony on action - WebTech 207
symfony on action - WebTech 207symfony on action - WebTech 207
symfony on action - WebTech 207
patter
 
FP - Découverte de Play Framework Scala
FP - Découverte de Play Framework ScalaFP - Découverte de Play Framework Scala
FP - Découverte de Play Framework Scala
Kévin Margueritte
 
php & performance
 php & performance php & performance
php & performance
simon8410
 

Similar to Language enhancement in ColdFusion 8 (20)

Language Enhancement in ColdFusion 8 - CFUnited 2007
Language Enhancement in ColdFusion 8 - CFUnited 2007Language Enhancement in ColdFusion 8 - CFUnited 2007
Language Enhancement in ColdFusion 8 - CFUnited 2007
 
Language enhancements in cold fusion 11
Language enhancements in cold fusion 11Language enhancements in cold fusion 11
Language enhancements in cold fusion 11
 
Ajax Performance Tuning and Best Practices
Ajax Performance Tuning and Best PracticesAjax Performance Tuning and Best Practices
Ajax Performance Tuning and Best Practices
 
ColdFusion ORM - Advanced : Adobe Max 2009
ColdFusion ORM - Advanced : Adobe Max 2009ColdFusion ORM - Advanced : Adobe Max 2009
ColdFusion ORM - Advanced : Adobe Max 2009
 
Top5 scalabilityissues withappendix
Top5 scalabilityissues withappendixTop5 scalabilityissues withappendix
Top5 scalabilityissues withappendix
 
Top5 scalabilityissues
Top5 scalabilityissuesTop5 scalabilityissues
Top5 scalabilityissues
 
Symfony2 revealed
Symfony2 revealedSymfony2 revealed
Symfony2 revealed
 
Hibernate java and_oracle
Hibernate java and_oracleHibernate java and_oracle
Hibernate java and_oracle
 
Crafting Beautiful CLI Applications in Ruby
Crafting Beautiful CLI Applications in RubyCrafting Beautiful CLI Applications in Ruby
Crafting Beautiful CLI Applications in Ruby
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
 
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
Advanced Eclipse Workshop (held at IPC2010 -spring edition-)
 
前端概述
前端概述前端概述
前端概述
 
Software Variability Management
Software Variability ManagementSoftware Variability Management
Software Variability Management
 
Let's play with adf 3.0
Let's play with adf 3.0Let's play with adf 3.0
Let's play with adf 3.0
 
BP-6 Repository Customization Best Practices
BP-6 Repository Customization Best PracticesBP-6 Repository Customization Best Practices
BP-6 Repository Customization Best Practices
 
OSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
OSCamp #4 on Foreman | CLI tools with Foreman by Martin BačovskýOSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
OSCamp #4 on Foreman | CLI tools with Foreman by Martin Bačovský
 
Feature and platform testing with CMake
Feature and platform testing with CMakeFeature and platform testing with CMake
Feature and platform testing with CMake
 
symfony on action - WebTech 207
symfony on action - WebTech 207symfony on action - WebTech 207
symfony on action - WebTech 207
 
FP - Découverte de Play Framework Scala
FP - Découverte de Play Framework ScalaFP - Découverte de Play Framework Scala
FP - Découverte de Play Framework Scala
 
php & performance
 php & performance php & performance
php & performance
 

More from Rupesh Kumar

ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013
Rupesh Kumar
 
Extending Java From ColdFusion - CFUnited 2010
Extending Java From ColdFusion - CFUnited 2010Extending Java From ColdFusion - CFUnited 2010
Extending Java From ColdFusion - CFUnited 2010
Rupesh Kumar
 
All about CFThread - CFUnited 2008
All about CFThread - CFUnited 2008All about CFThread - CFUnited 2008
All about CFThread - CFUnited 2008
Rupesh Kumar
 
Keeping Current with ColdFusion - Adobe Max 2011
Keeping Current with ColdFusion - Adobe Max 2011Keeping Current with ColdFusion - Adobe Max 2011
Keeping Current with ColdFusion - Adobe Max 2011
Rupesh Kumar
 
ColdFusion ORM - Part II
ColdFusion ORM - Part II  ColdFusion ORM - Part II
ColdFusion ORM - Part II
Rupesh Kumar
 
ColdFusion 9 ORM
ColdFusion 9 ORMColdFusion 9 ORM
ColdFusion 9 ORM
Rupesh Kumar
 
ColdFusion .NET integration - Adobe Max 2006
ColdFusion .NET integration - Adobe Max 2006ColdFusion .NET integration - Adobe Max 2006
ColdFusion .NET integration - Adobe Max 2006
Rupesh Kumar
 

More from Rupesh Kumar (7)

ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013ColdFusion 11 Overview - CFSummit 2013
ColdFusion 11 Overview - CFSummit 2013
 
Extending Java From ColdFusion - CFUnited 2010
Extending Java From ColdFusion - CFUnited 2010Extending Java From ColdFusion - CFUnited 2010
Extending Java From ColdFusion - CFUnited 2010
 
All about CFThread - CFUnited 2008
All about CFThread - CFUnited 2008All about CFThread - CFUnited 2008
All about CFThread - CFUnited 2008
 
Keeping Current with ColdFusion - Adobe Max 2011
Keeping Current with ColdFusion - Adobe Max 2011Keeping Current with ColdFusion - Adobe Max 2011
Keeping Current with ColdFusion - Adobe Max 2011
 
ColdFusion ORM - Part II
ColdFusion ORM - Part II  ColdFusion ORM - Part II
ColdFusion ORM - Part II
 
ColdFusion 9 ORM
ColdFusion 9 ORMColdFusion 9 ORM
ColdFusion 9 ORM
 
ColdFusion .NET integration - Adobe Max 2006
ColdFusion .NET integration - Adobe Max 2006ColdFusion .NET integration - Adobe Max 2006
ColdFusion .NET integration - Adobe Max 2006
 

Recently uploaded

20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 

Recently uploaded (20)

20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 

Language enhancement in ColdFusion 8

  • 1. 2006 Adobe Systems Incorporated. All Rights Reserved. 1 Language Enhancements Rupesh Kumar Computer Scientist June 27, 2007
  • 2. 2006 Adobe Systems Incorporated. All Rights Reserved. 2 Agenda  Syntax enhancements  CFC Enhancements  Multi-Threading  New File I/O  Application.cfc  cfdump enhancement  Secure ftp  Misc  cfzip  Cffeed  cfobject changes  cfdbinfo
  • 3. 2006 Adobe Systems Incorporated. All Rights Reserved. 3 Syntax Enhancement  cfscript operators  Now ++, --, +=, -=, /=, *=, ==, >=, <=, <>, &= available in cfscript  Implicit struct and array creation  <cfset a={key1="value1", key2=expression}>  <cfset a=[expression1, innerstruct1, innerarray1, literal]>  Nested array and struct not yet supported
  • 4. 2006 Adobe Systems Incorporated. All Rights Reserved. 4 attributeCollection  Instead of passing tag attributes, pass a struct to tags  Conditional tag attributes  Example TBD
  • 5. 2006 Adobe Systems Incorporated. All Rights Reserved. 5 New File I/O  Reading large files  cfloop tag  FileReadXXX functions <cfloop file="temp.txt" from=5 to=10 index="myline"> <cfoutput>#myline#</cfoutput> </cfloop> <cfscript> myfile = FileOpen("c:tempmyfile.txt","read"); while(NOT isEOF(myfile)) x = FileReadLine(myfile); // read line FileClose(myfile); </cfscript>
  • 6. 2006 Adobe Systems Incorporated. All Rights Reserved. 6 FileXXX functions
  • 7. 2006 Adobe Systems Incorporated. All Rights Reserved. 7 CFTHREAD  Allow cf page to launch threads  for example fetch result of a web service  Create, join, sleep, terminate  Thread local scope  Any variable with var or with no scope inside cfthread tag  THREAD scope  Contains thread-specific variables and metadata about the thread  Owner can write, anyone can read  Attributes scope  Passed to the thread by value  Server, Session, Request, and Client scopes shared with the launching page
  • 8. 2006 Adobe Systems Incorporated. All Rights Reserved. 8 CFTHREAD – Example <cfloop query="dir"> <cfset threadname = "thread_" & #i#> <cfset i=i+1> <cfthread name="#threadname#" filename="#dir.name#"> <!--- Declare local variable---> <cfset localVar = “Only for thread”> <cffile action="COPY" source="#src##filename#" destination="#dest##filename#"> <!--- Set variable in THREAD scope ---> <cfset THREAD.readOutside = “sure”> </cfthread> </cfloop> <!--- Access THREAD scope outside ---> <cfset reading=thread_1.readOutside>
  • 9. 2006 Adobe Systems Incorporated. All Rights Reserved. 9 CFC Enhancements  Interface  Serialization  Duplicate  onMissingMethod  Metadata
  • 10. 2006 Adobe Systems Incorporated. All Rights Reserved. 10 CFC Interfaces <!--- EventListener interface ---> <cfinterface> <cffunction name=“handleEvent”> <cfargument name=“event” type=“struct” required=“true”> </cffunction> </cfinterface> <!--- EventHandler component ---> <cfcomponent implements=“EventListener”> <cffunction name=“handleEvent”> <cfargument name=“event” type=“struct” required=“true> <!--- implementation code here ---> </cffunction> </cfcomponent>
  • 11. 2006 Adobe Systems Incorporated. All Rights Reserved. 11 CFC serialization  CFC stored in the session can be retrieved back from the session  when a session failover happens in a ColdFusion cluster  Struct & arrays in session scope also supported  CFC referencing a CFC also supported
  • 12. 2006 Adobe Systems Incorporated. All Rights Reserved. 12 CFC Duplicate  Also used in cfthread when cfc is passed  TBD
  • 13. 2006 Adobe Systems Incorporated. All Rights Reserved. 13 OnMissingMethod
  • 14. 2006 Adobe Systems Incorporated. All Rights Reserved. 14 Metadata  getComponentMetadata  TBD
  • 15. 2006 Adobe Systems Incorporated. All Rights Reserved. 15 Application.cfc changed  onMissingTemplate  Per app settings
  • 16. 2006 Adobe Systems Incorporated. All Rights Reserved. 16 onMissingTemplate  This function is invoked on file not found condition  No other handlers are invoked  Rules  TBD, lot of discussion on forums
  • 17. 2006 Adobe Systems Incorporated. All Rights Reserved. 17 Per app settings  Mappings  Custom tag paths  Via THIS scope in Application.cfc  Overrides server wide settings in Administrator <cfset THIS.mappings["MyMap"]="c:inetpubmyStuff"> <cfset THIS.customtagpaths = "c:mapped1,c:mapped2">
  • 18. 2006 Adobe Systems Incorporated. All Rights Reserved. 18 DB Features  Support for DataDirect v3.6 drivers  Auto-generated key retrieval  Transaction savepoints  <cftransaction action="setsavepoint" savepoint="pointA" />  Split neo-query.xml into neo-drivers.xml, neo-datasources.xml  CFDBINFO tag  Fetch tables, database names, stored procedures in a data source  Columns, indexes, primary keys, foreign keys in a table <cfdbinfo type="tables“ datasource=“dsn“ dbname="databasename“ pattern="pattern“ username="username1“ password="password1“ name="resultname">
  • 19. 2006 Adobe Systems Incorporated. All Rights Reserved. 19 CFDUMP  Show the first 'n' keys of a structure  Show or hide query colums or structure keys  Include SQL and other metadata when dumping query objects <cfdump var = "#variable#" expand = "yes" or "no" label = "text" top = "number of rows or levels" show = "columns or keys" hide = "columns or keys" keys = "number of keys to display for structures" output = "browser or console or file" showUDFs = "yes or no" >
  • 20. 2006 Adobe Systems Incorporated. All Rights Reserved. 20 Secure CFFTP  Supports FTP over SSH2 protocol <cfftp action = "action" username = "name" password = "password" fingerprint = "hh:hh:hh:hh:hh:hh:hh:hh" key = "absolute path of the private key" paraphrase = "paraphrase of the private key" server = "server" timeout = "timeout in seconds" port = "port" connection = "name" proxyServer = "proxy server" retryCount = "number" stopOnError = "yes" or "no" secure = "yes" result = "result_name“ >
  • 21. 2006 Adobe Systems Incorporated. All Rights Reserved. 21 PrecisionEvaluate  Uses BigDecimal arithmetic  TBD
  • 22. 2006 Adobe Systems Incorporated. All Rights Reserved. 22 CFZIP  Support manipulation of ZIP & JAR files  Create, extract, delete, list and update action on the zip entries <cfzip file="E:workabc.zip" source="c:temp" /> <cfzip file="E:worktest.zip" action="zip"> <cfzipparam source="c:tempabc.txt" prefix="comabc"> <cfzipparam source="c:srcclasses" recurse="true" filter="*.class,*.properties" prefix="classes"> <cfzipparam source="c:srcManifest.MF" entrypath="META-INFMANIFEST"> </cfzip>
  • 23. 2006 Adobe Systems Incorporated. All Rights Reserved. 23 CFFEED  Read all flavours of RSS and Atom feeds.  Create RSS 2.0 and Atom 1.0 feeds.  Support for enclosures  Support for iTunes & Dublin Core  Convert feed from/to RSS and ATOM  Demo
  • 24. 2006 Adobe Systems Incorporated. All Rights Reserved. 24

Editor's Notes

  1. Scope precedence If you do not specify a scope prefix on a variable inside a cfthread tag body, ColdFusion checks scopes in the following order to find the variable: 1. Function-local, in function definitions in the thread only 2. Thread-local 3. Attributes 4. Variables Other scopes are checked in the standard scope checking order.
  2. ColdFusion mappings let the cfinclude and cfmodule tags access pages that are outside the Web root. If you specify a path that starts with the mapping&amp;apos;s logical path in these tags, ColdFusion looks for the page using the mapping&amp;apos;s directory path. ColdFusion also uses mappings to find ColdFusion components (CFCs). The cfinvoke and cfobject tags and CreateObject function look for CFCs in the mapped directories.