The EC toolkit cannot handle large flow definition files (>100 MB uncompressed) due to its use of String to hold the XML content internally through frequent manipulations. As Strings are immutable in Java, this causes a lot of heap usage and duplication. The read/write to the file system also operates on the String directly rather than perform a streaming read/write.
We should change the internal representation of the file content (for all files) to be a BufferedInputStream or other similar stream representation rather than a String. We should test with very large files (1 GB) and clearly provide instructions and warnings if the file size exceeds that.
The logic of value encryption/replacement will have to change to handle this approach.