# EclEmma Change Log

## Version 3.1.1 (2018/09/12)

- Adjusted default colors in Dark theme (Eclipse Bug 533264).
- Upgrade to JaCoCo 0.8.2 that provides support for Java 11 (Eclipse Bug 537807).

## Version 3.1.0 (2018/06/27)

- Upgrade to JaCoCo 0.8.1 that provides support for Java 10 and filters out various compiler generated artifacts, which otherwise require unnecessary and sometimes impossible tricks to not have partial or missed coverage, such as for example part of bytecode of try-with resources statements (Eclipse Bug 529391, 532770).
- For consistency with Eclipse Photon UI added icon for "Coverage As" in context and Run menus (Eclipse Bug 530668).

## Version 3.0.1 (2017/11/14)

- Fixed `NullPointerException` and `ArrayIndexOutOfBoundsException` in "Dump Execution Data" dialog (Eclipse Bug 519126, 519149).
- For consistency with other items in "Run" menu, items "Coverage Last Launched" and "Coverage..." has been renamed into "Coverage" and "Coverage Configurations..." accordingly (Eclipse Bug 517712).
- Error message logged by `ContextualLaunchableTester` now contains delegate shortcut id (Eclipse Bug 526701).

## Version 3.0.0 (2017/06/28)

This is the first release under the umbrella of the Eclipse Foundation. EclEmma is now a official Eclipse.org project and included in several Eclipse Oxygen (4.7) packages.

- HiDPI icons (Eclipse Bug 507724).
- Import/export session context menu from Coverage view now opens corresponding wizard directly. This wasn't the case any more since Eclipse 4.3 (Eclipse Bug 507907).
- Session import and export is now consistently named and has been moved to category Run/Debug (Eclipse Bug 507696).
- Automated UI tests with SWTBot.
- End of support for Eclipse versions older than 3.8.
- Upgrade to JaCoCo 0.7.9.
- Upgrade to ASM 5.2.

## Version 2.3.3 (2016/02/23)

- Upgrade to JaCoCo 0.7.6.
- Upgrade to ASM 5.0.4.
- Error logging with exception stack traces (GitHub #106).

## Version 2.3.2 (2014/09/14)

- Fixed internal error when annotated source file is edited (GitHub #90).
- Upgrade to JaCoCo 0.7.2 for Java 8 lambda expressions support.

## Version 2.3.1 (2014/05/11)

- Fixed ASM 5.0.1 dependency conflicts with new ASM bundles in Eclipse 4.4 (GitHub #83).
- Upgrade to JaCoCo 0.7.1 for full Java 8 support.

## Version 2.3.0 (2014/03/19)

- Now with Java 8 support.
- Upgrade to JaCoCo 0.7.0.

## Version 2.2.1 (2013/06/09)

- Keyboard shortcuts to launch TestNG tests and suites (GitHub #1).
- New session import option to import execution data from a JaCoCo agent (GitHub #2).
- New session import option to import execution data from a URL (GitHub #13).
- Don't fail on Scala function elements (GitHub #32).
- Don't fail in case of missing output folders (GitHub #38).
- Upgrade to JaCoCo 0.6.3.

## Version 2.2.0 (2012/10/26)

- The EclEmma project has been moved to GitHub.
- Upgrade to JaCoCo 0.6.0.
- Correct menu labels in the Coverage view.
- SF #1968604: The Coverage view shows graphical bar charts instead of icons to visualize code coverage.

## Version 2.1.4 (2012/08/01)

- Upgrade to JaCoCo 0.5.9.
- SF #3549343: Correct source folder naming for HTML reports.

## Version 2.1.3 (2012/07/12)

- Upgrade to JaCoCo 0.5.8.
- Eclipse Bugzilla #383367: Fix drop-down menus in coverage view for Eclipse 4.2.
- Trac #158: Lifecycle mapping for JaCoCo Maven goals when M2E is used.
- Trac #203: EclEmma feature now depends on Eclipse 3.5 or greater to ensure version check at installation time.

## Version 2.1.2 (2012/05/09)

- Support for Eclipse 3.8 (Juno) since Eclipse issue 227877 has been resolved.
- SF #3522048: Upgrade to JaCoCo 0.5.7.
- SF #3510762: Support for Scala application launches. Contributed by Joachim Hofer.
- Default setting (enabled) fixed for automatically opening the Coverage view.

## Version 2.1.1 (2012/04/09)

- Trac #195: Don't exclude output folders based on their name. This caused empty coverage data results in certain setups. Many thanks to Dominik Stadler for analyzing this bug.
- Avoid restoring column widths to zero in the Coverage view.

## Version 2.1.0 (2012/02/26)

- For long-running processes intermediate coverage data dumps can now be collected without terminating the application under test. This feature allows so called differential code coverage, a technique proposed by Kaitlin Duck Sherwood in her paper Reducing Code Navigation Effort with Differential Code Coverage.
- Trac #168: New editor for JaCoCo execution data files.
- Trac #190: The Coverage view option Hide Unused Types has been generalized to Hide Unused Elements.
- SF #3489951: Don't process class files in team provider folders.
- SF #3487904: Avoid NPE in case of new and empty launch configurations.
- SF #3477725: Java agent must not be added multiple times to plug-in launch configurations.

## Version 2.0.1 (2011/12/28)

- Include bundle `org.objectweb.asm` with the EclEmma feature as this bundle is not available in all Eclipse distributions.

## Version 2.0.0 (2011/12/18)

The first version of EclEmma that is backed by JaCoCo instead of EMMA. This adds several enhancements and new features to EclEmma.

- Branch Coverage: Branch coverage is shown on the property pages and can be selected in the Coverage view. For the source editors there is a new annotation that marks lines with branches. A new tooltip provides details about branches on a per-line basis.
- No class file instrumentation: With JaCoCo Java classes are instrumented in-memory only, which means modified class files will not be written to the file system anymore. Therefore the "in-place instrumentation" mode and its disadvantages are not required any more (no re-build required, JAR files can be analyzed). Programs do now launch immediately without delay due to instrumentation of all class files.
- Source folders can be selected separately even if their class file output location is the same.

## Version 1.5.3 (2011/05/05)

- SF #3297297: Fixed NullPointerException for class files compiled without line number attributes.
- SF #3297292: Fixed EclEmma plug-ins class file version.

## Version 1.5.2 (2011/04/15)

- SF #3055347: Wrong error message for status `NO_COVERAGE_DATA_ERROR`.
- SF #2881882: Fixed typo with missed blocks NLS key.

## Version 1.5.1 (2010/08/18)

- To ensure integrity and avoid installation warnings distributed EclEmma plug-ins are now signed by Mountainminds GmbH & Co. KG.
- Source highlighting for Groovy code in combination with the Groovy-Eclipse plug-in.
- SF #2934564: Launch configurations aren't modified any more by simply opening the "Coverage" tab in the launch dialog. Save warnings are now only given when the dialog has actually been modified.
- SF #3037143: Remove invalid header from patched emma.jar manifest.

## Version 1.5.0 (2010/06/24)

- SF #2881882: The coverage view and the coverage property page now have a new column showing the number of items not covered.

## Version 1.4.3 (2009/10/18)

- SF #2855643: Fixed handler conflict due to wrong id for SWTBot launch shortcut.

## Version 1.4.2 (2009/08/19)

- SF #2800744: Support for SWTBot test launcher.
- SF #2807365: "Coverage Last Launched" shortcut on Mac is now CTRL+SHIFT+F11 and does not collide with the shortcut for "Run Last Launched" any more.

## Version 1.4.1 (2009/03/05)

- SF #2664838: Fixed exception in analysis of Java source files containing nested parameterized signatures.

## Version 1.4.0 (2009/03/03)

- SF #1823843: Proper identification of methods with type variables and parameterized types in their signatures.
- SF #2495620: Coverage view can be opened from the "Show In" menu, contributed by anonymous.
- SF #2226932, #2080402: Several preferences to specify the class path entries that will get instrumented by default.
- SF #2570132: Support for RAP JUnit launcher, contributed by Holger Staudacher.
- The selected content of the Coverage View can be copied to the clipboard.

## Version 1.3.2 (2008/07/15)

- Native sort indicator used in Coverage View (Eclipse 3.2 and above only).
- SF #1966443: Fixed accelerator for the main "Run" menu, contributed by Alexey Stratonnikov.
- SF #1966764: Proper error message when importing an external session file that does not contain meta data.
- SF #1995077: "Select All" and "Deselect All" buttons in the coverage session import dialog for better support of large projects sets.

## Version 1.3.1 (2008/03/05)

- SF #1899238: New option in session import dialog allows using external Meta data.
- SF #1824465: Report encoding is now UTF-8 to support extended character sets.
- SF #1836551: Ignore classpath entries in sessions that are no longer on the project's classpath.
- SF #1822092: Better labels and sorting for class path entries in the Coverage and Import dialogs.

## Version 1.3.0 (2007/09/11)

- Preferences page for Java code coverage.
- Context sensitive help in all EclEmma views and dialogs.
- New action "Collapse All" in the coverage view.
- Entry object selection moved to the drop-down menu of the coverage view.
- SF #1774547: Added "Link with Current Selection" option to coverage view, contributed by Brock Janiczak.
- SF #1762836: Other plug-ins may add coverage support for custom launch types. Required EclEmma APIs are now exposed. Contributed by John Ruud.
- SF #1764140: Added "Coverage As" to context menus, contributed by Brock Janiczak.
- SF #1774550: Observe JFace open mode in coverage view, contributed by Brock Janiczak.

## Version 1.2.2 (2007/07/03)

- SF #1701683: Fixed abstract method error with Eclipse 3.3 release.

## Version 1.2.1 (2007/06/25)

- SF #1701683: Fixed abstract method error with Eclipse 3.3.
- SF #1725100: Handle text editors without document providers correctly.

## Version 1.2.0 (2007/04/12)

- SF #1618360: EclEmma now ships with a patched version of EMMA to avoid launch failures in certain Eclipse/JDK environments.
- SF #1690088: Support for Equinox OSGi framework launches.
- Coverage property page now filters out counters with zero totals.
- Documentation updates: Available launch modes, coverage property page, coverage decorators.

## Version 1.1.0 (2007/02/25)

- SF #1664476: Filtering option for unused types in the coverage view as proposed by Geoffrey Wiseman.
- SF #1659429: Optional coverage decorators for Java elements, contributed by Benjamin Muskalla.
- SF #1657454: Default key bindings, contributed by heaththegreat.
- New property page "Coverage" for all Java elements.
- Added "Properties" action to the context menu of the coverage view.

## Version 1.0.0 (2007/01/15)

Since EclEmma is now out for more than three month, has been downloaded more than 3,000 times and I've tried to fix many of the reported issues it's time for the first 1.0 version!

- Added EclEmma feature.
- Created Eclipse update site http://update.eclemma.org/.
- SF #1633361: Fixed launch shortcuts for Eclipse 3.3M4.
- SF #1619413: Handle white-spaces in VM arguments correctly.

## Version 0.1.8 (2006/12/18)

- Improved coverage analysis runs much faster.
- SF #1613378: Fixed JUnit plug-in tests on Mac OS X.
- SF #1601699: Fixed broken session export in case of missing *.em files.

## Version 0.1.7 (2006/11/19)

- The coverage view now also has counters for method and class coverage.
- For consistency with other counters line coverage has been redefined. A line is now considered as covered, if it contains at least one covered basic block.
- SF #1595879: Commands are now provided for all coverage launches and can be assigned to keyboard shortcuts in the preferences dialog.

## Version 0.1.6 (2006/10/31)

- SF #1584899: Fixed support for Eclipse application launches
- SF #1584496: Externally terminated processes do not collect coverage information. This fact has been documented and is mentioned in the corresponding error dialog.
- SF #1583900: An error message is shown in the coverage launch dialog when no classes are specified for instrumentation.

## Version 0.1.5 (2006/10/18)

- Documentation: Removed developer documentation (now available on www.eclemma.org).
- Documentation: Added support section.
- Documentation: All examples now shown with Apache Jakarta commons code.
- SF #1574659: The report export wizard shows additional errors and warnings to ensure proper inputs for the destination.
- SF #1576462: Show error when no coverage data file has been written during coverage launch.
- SF #1574682: Fixed JUnit plug-in launches for Eclipse 3.2.x.

## Version 0.1.4 (2006/09/30)

This is the first release after the source tree has moved to SourceForge. The complete source is now available at the SVN repository `https://svn.sourceforge.net/svnroot/eclemma`. The plug-ins themselfs do not include source code anymore.

- SF #1568370: Added the "Coverage" action set to the "J2EE" perspective of the web tools platform.
- Launch Dialog: Added "Select All" and "Deselect All" button for classes to instrument.
- SF #1565364: Fixed NPE when analysing meta data that has only partly no line information.

## Version 0.1.3 (2006/09/18)

- Online Documentation: Updates and new chapters.
- Session Import: Added Import wizard for EMMA coverage files from external launches.
- Session Export: Added export wizard to export session data in the formats supported by EMMA (*.html, *.xml, *.txt, *.es).
- Coverage view: Added context menu.
- Coverage view: Added "Refresh" action to the context menu (F5). Useful to reload coverage data of imported external launches.
- Coverage view: New action "Merge Sessions".
- Added keyboard support: "Delete", "Open Declaration" and "Refresh" in the Coverage view, "Coverage Last Launched" and "Coverage..." can be configured in the keys preferences.
- Fixed internal error in case of parameterized types (Java 1.5).
- Added experimental support for TestNG test runs.

## Version 0.1.2 (2006/08/29)

Preview release with online documentation and some internal clean-up.

- First draft of online help pages.
- Completed NLS support.
- New labels for class path entries in the coverage launch dialog.
- Launching fails with meaningful error message when trying to instrument instrumented classes.

## Version 0.1.1 (2006/08/25)

Preview release with additional features, like support for PDE launches and selection of instrumented classes. Clean-up and clarification of internal structures.

## Version 0.1.0 (2006/08/09)

The initial drop for some friends and colleagues for testing purposes. It has been developed under Eclipse 3.1.1, some successful testing happened with Eclipse 3.2.0.