3.0.0
New features and enhancements
- 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
Bug fixes
- 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