[SERVDEV-22]
- Added auxiliary TransformationResult class to store the result of a kettle element process request.
- Refactored processRequest method to separate kettle execution from result processing.
[SERVDEV-22]
- Refactored TransformationResult into outer class KettleResult.
- Added in KettleElementHelpper a method to parse kettle parameters from a request.
- Refactored *KettleOutput to have a processRequest method that processes the new KettleResults.
[SERVDEV-22]
- First cache version.
[SERVDEV-22]
- First working version of Ehcache on cpk. Only in memory caching for now.
[SERVDEV-22]
- Refactored processRequest method in KettleJobElement to separate job execution from result processing.
- Refactored common code for inferResult and processRequest methods in job and transformation elements classes to base KettleElement class.
[SERVDEV-22]
- Added pluginId to KettleResultKey. Changed elementName to elementId in KettleResultKey.
[SERVDEV-22]
- Refactored KettleResult caching to base class KettleElement.
- Moved cache instantiation to CPKEngine. One cache per engine/cpkPlugin.
- Added pluginId to Elements.
[SERVDEV-22]
- Added Ehcache dependencies to ivy.xml.
- Added JsonIgnore attribute to KettleElement.getCache() to prevent it to be serialized when element list is exposed in cpkCoreService.getElementsList()
[SERVDEV-22]
- Refactored kettle job/transformation element init() to prepare use cache parameter processing from kettle file.
[SERVDEV-22]
- A kettle file can now specify a "cpk.cacheResults" parameter that will be used to enable/disable caching in cpk kettle endpoints.
- It is now possible to bypass the cache of a kettle endpoint which caches results by passing "bypassCache=true" as a query parameter of the kettle endpoint query string.
[SERVDEV-22]
- Added clearCache endpoint to cpkApi. This removes all cached kettle results. E.g: http://localhost:8080/pentaho/plugin/sparkl/api/clearCache
[SERVDEV-22]
- Started code refactoring to make KettleResult Serializable for disk caching.
- Removed org.pentaho.di.core.Result from KettleResult.
- Removed *KettleOutput.ProcessResult(). Now all kettle output classes use ProcessResult( KettleResult )
- Removed Row and RowMeta information from *KettleOutput classes. This is now uniquely stored in the KettleResult class.
- KettleResult now stores information needed for ResultOnlyKettleOutput processing.
- Added ability to zip FileObjects in ZipUtil.
[SERVDEV-22]

- CPK cache now allows disk caching.
- KettleResult wraps org.pentaho.di.core.Result and uses its xml serialisation to implement Serializable.
[SERVDEV-22]
- Refactored InferedKettleOutput to remove unnecessary code.
- Removed unnecessary get/setKettleType methods from IKettleOutput and respective implementations.
- Removed unnecessary get/setOutputStepName methods from IKettleOutput and respective implementations.
- Corrected possible NullPointerException on KettleElement.processRequest(  Map<String, String>, String, String, boolean, boolean, HttpServletResponse ).
[SERVDEV-26]
- Kettle transformation elements now only accept output steps which name start with "OUTPUT".
- Updated unit tests and test resources to comply with valid Output step names.
[SERVDEV-26]
- Kettle job elements now only accept getting results from output job entries which name start with "OUTPUT".
[CLEANUP]
- Added copyright headers and some comments.
[CLEANUP]
- Comments and minor refactoring.
[SPARKL-30]
- Corrected bug where when a single file was the result of a cpk kettle endpoint, the file was not set to the client.
- Code refactoring.
[Cleanup]
- Suppressed unchecked warning on EhCache cast.