TEA is a set of extensions for the Eclipse IDE with the primary goal to automate tasks in a way, so they can be executed both in the IDE as well as in headless environments.
A great portion of TEA deals with making it possible to execute the very same actions (e.g. compiling a project) from the IDE as well as headlessly without any additional configuration or setup effort.
Along with the core components of TEA itself, an extensive library of prebuilt tasks and actions comes along in the package.
TEA provides an easy to use framework for extending the Eclipse IDE with arbitrarily complex tasks or combination of tasks (called task chain).
Although partially rewritten for the open source version, the basis of TEA has been in development since seven years, and is used on hundreds of developer machines every day.
The strong focus on enabling all tasks written for TEA to also run headlessly allows to avoid additional infrastructure. For instance the TEA library tasks to clean and build a workspace also run headlessly, and are thus usable on Jenkins build environments, etc.
Using the same code in the IDE and in headless builds allows to achieve reproducible results. If a build succeeds in the IDE, it will succeed headlessly too.
Not everything in plain Eclipse is suitable for all use cases. The TEA build library provides tasks tailored to specific Eclipse RCP setups, which allows to strip down the required actions to build bundles. With a dedicated build orchestration, builds can be sped up by factors.
There are plenty things you can do using Eclipse EASE. Why use TEA after all? TEA tasks are usually provided as IDE plugin, and thus are available also when Eclipse runs on an empty workspace, whereas EASE scripts would require a configuration of script locations in the workspace, or the presence of projects containing those scripts. Also, TEA tasks can become very complex - which would be hard to handle with scripts alone. And last but not least: TEA tasks delivered as plugin cannot be easily modified by IDE users. This is clearly a benefit in some coporate environments.
The core platform of TEA provides the possibility to extend the IDE by implementing tasks, task chains, configuration and more. With a few simple building blocks, it is possible to provide complex tasks that aid developes in their daily work.
For years, TEA has been used primarily to speed up Eclipse builds in certain scenarios. Since TEA has become open source, we are improving on the existing library to be suitable for more and more scenarios. Currently, Eclipse RCP / P2 is well supported for applications that don't use package import.
Want to leverage the power of the TEA library tasks but don't want to get your hands dirty building your own plugins? No worries, use the Eclipse EASE integration to provide tasks as scripts, build task chains by mixing scripts and pre-built tasks, etc.