Eclipse Command Language

All engineers at Xored, an Eclipse-centric company, are familiar with Java. More than 90% of the code lines we produce is still Java code. Why did we “invent” ECL and proposed it as a scripting language in Q7? To better understand rationale behind our decision to use a new scripting language as a language for Q7 and test automation in general, please read this first:
where it all started
.

ECL stands for Eclipse Command Language, and it was developed and initially introduced by Xored at EclipseCon ’08 in California. ECL has its own story. It goes back to the early history of Eclipse Platform which had always experienced a lack of Scripting and Automation solutions. This problem is not related to a particular programming
(scripting) language but goes way further including an object model to script against it, data and code interoperability, and many more.

There were several projects trying to add easy scripting and automation to the platform; the most successful one was Eclipse Monkey (it was pretty dead before adopted widely). Monkey was using JavaScript as a scripting language and provided the object model (DOM) as a part of the project, which covered high level aspects of Eclipse APIs. However, we were not satisfied with Monkey’s approach either, including JavaScript used by this project.

What we did want from a Scripting-and-Automation solution is the following:

ecl-shell> create-project MyJavaProject -kind Java
//verify that project having "MyProject" name exists in the workspace. 
get-project | any project { project.name == "MyProject" } | true

Try to put the same code in Java using Eclipse APIs and it’ll become several lines instead of a couple.

//displays 5 installed OSGi bundles sorted by their ID in descending order.
get-bundle | sort-object -property id -top 5 -descending 
			
//displays all labels within "Confirmation" window sorted by label text. 
get-window "Confirmation" | get-control -type Label | sort-object -property caption