November 8th, 2023
None
April 5th, 2023
None
- 397 - Fix Temporary File Information Disclosure Vulnerability
- 402 - Update woodstox and zip4j to fix security vulnerabilities
June 21st, 2022
None
April 11th, 2022
None
March 25th, 2022
None
December 30th, 2021
None
December 21st, 2021
None
December 15th, 2021
June 11th, 2021
- 374 - Upgrade libraries to latest version
- 314 - Replace logback by log4j 2
- 364 - Add support for extensions packaged as spring-boot uber jar
- 278 - Add PomParentMatch single condition
- 244 - Add PomHasParent single condition
- 372 - Update test case ButterflyFacadeImplTest
- 359 - Butterfly should allow numbers in the extension property names
- 368 - Guava library must be updated to version 24.1.1 (or later) due to security vulnerabilities
- 214 - Vague IllegalArgumentException if "version to" is older than current version
- 360 - Butterfly CLI should allow escaped semicolons and equals as extension property value when passed using -p
- 350 - CLI should never (or very rarely) output the string 'null'
March 20th, 2020
- 342 - Changing POM Plugin feature is not available.
- 335 - Develop Butterfly Slack integration
- 318 - Make Butterfly multi-threaded, asynchronous and non-blocking
- 319 - Make ButterflyFacade API asynchronous and non-blocking
- 316 - Remove UpgradePath class from APIs and simplify ButterflyFacade
- 167 - Allow executing Butterfly passing a set of extension specific properties as input parameter
- 304 - Add support for multiple extensions
- 196 - Introduce a format based method to refer to files in TUs and TOs
- 288 - butterfly-test should interface with façade, instead of CLI
- 220 - Set Application name and type in TransformationResult
- 299 - Improving butterfly-test folders comparison output
- 296 - Add diff for single different file in butterfly-test result
- 261 - Make Butterfly code thread-safe
- 131 - Add operation to write pom file from given Model object
- 130 - Modify PomModel TU to also support returning a Model object out of a local pom.xml file (present in the application)
- 19 - Add TU to build Maven model out of a pom.xml file not present in the application folder
- 275 - Create TU to retrieve parent of given pom model or file
- 272 - Create TU to retrieve packaging of given pom model or file
- 270 - Add operations to add and remove modules from POM files
- 268 - Add PomAddProperty operation
- 266 - Develop condition PomJavaMatch to tell if at least one Java class from that module match a given criteria
- 258 - Improve butterfly-test by listing all different files and folders
- 254 - Keep original scope when replacing pom dependency
- 247 - Add a flag to all Assert.assertTransformation methods to XML equals comparison
- 225 - Add configuration to FindFiles to let user decide between warning, error, or value if no files are found
- 223 - Add TransformationTemplate.set(String, Object) to add or change context attributes
- 236 - Add PomCopyDependencies, PomAddManagedDependency and PomCopyManagedDependencies
- 30 - Metrics JSON objects should contain all fields, even the null ones
- 155 - Provide extension and list of templates in CLI result json
- 212 - Create API project butterfly-metrics
- 211 - Consolidate metrics and result JSON file into a single file
- 210 - Major Butterfly API refactoring (does NOT include extensions API)
- 205 - Add operation to copy dependencies from one POM file to another
- 16 - Add XmlXPathElement and deprecate XmlElement
- 195 - Add support to blank transformations
- 198 - Adding support to non-pom file MavenGoal execution
- 179 - JavaMatch should automatically ignore package-info.java files
- 177 - Replace Exception parameters by Throwable in every Butterfly exception type and TU/TO response method
- 173 - Small API changes and improvements
- 192 - Add "pending manual change" application validation to TE
- 170 - Replace Cobertura by JaCoCo
- 188 - Create Butterfly BOM (butterfly-bom)
- 186 - Add butterfly-test, a test utility project to help extensions development and test quality
- 75 - Add unit tests to utilities project to make sure at least 85% code coverage P1 quality
- 12 - Create catalog of extensions sample
- 164 - Apply Build Scans to Gradle build
- 163 - Replace Maven by Gradle as building tool
- 160 - Increase unit test coverage in butterfly-utilities quality
- 292 - Fixing bug when performing blank template on same folder
- 290 - Fixing butterfly-cli log file naming and improving CLI integration tests
- 284 - Fixing butterfly-cli log file naming and improving CLI integration tests
- 235 - Fix "optional tag" bug in PomChangeDependency
- 224 - MultipleOperations fails to set target file if not set as relative to the transformed application folder
- 111 - AddProperty fails if properties file is empty
- 89 - JavaMatch breaks if Java class file is invalid
April 25th, 2018
March 29th, 2018.
- 115 - Move initialization in CompareXMLFiles to static block
- 107 - Add javadoc to api.metrics, and hide pom.sax
- 17 - Add automated integration tests
- 14 - Add option -f to CLI to modify the original app folder
None
February 20th, 2018.
- 52 - Create Butterfly brew installer
- 87 - Add
butterfly -l
output samples to how-to install document - 95 - Create a TU that, given a XML file, returns the indentation used on it
- 51 - InsertLine TU should allow insertions before the matched line
- 84 - Add TOs to add or change pom file parent preserving file formatting and comments
January 3rd, 2018.
- 73 - Include support to search folders as well in FindFiles
- 68 - Improve TU and TO clone operations
- 64 - Improve logging
- 53 - Implement continuous delivery through automated deployment via Travis CI
- 37 - Leverage File.createTempFile to create temporary files
- 24 - Address Codacy static code analysis issues
- 15 - Add unit tests to utilities project to make sure at least 70% code coverage
- 67 - ReadableByteChannel in ApplyFile and ApplyZip TOs needs to be closed
- 70 - TransformationUtility condition object doesn't refer to the correct execution file
December 2nd, 2017.
- 49 - Add condition that checks if a regex matches any line in a file
- 27 - Print extension name and version during Butterfly execution
October 17th, 2017.
- Automated application source code transformations
- Application upgrades
- Application migrations
- Source code and configuration changes
- Plugable mechanism for Butterfly extensions, containing transformation and/or upgrade templates
- Multiple types of ready-to-use transformation utilities, including for example manipulating text, properties, XML, POM and Java files
- Resilient transformation pipeline
- Shared context among transformation utilities
- Error handling
- Dependency management among transformation utilities
- Conditional transformation utilities
- Transformation utilities execution in different modes and fashions
- Configurable utilities
- Anonymous utilities
- Multiple execution
- Group execution
- In-loop execution
- Post-transformation features
- Manual steps Reporting
- Metrics
- APIs
- Extensions API
- API for custom transformation utilities and operations
- Facade for Java application integration
- Command-Line-Interface tool
- Logging in silent or verbose mode, in info or debug level, and on console or file
None