Skip to content

Releases: paulirwin/JavaToCSharp

v4.0.0-beta2

23 Feb 02:41
ac597a5
Compare
Choose a tag to compare
v4.0.0-beta2 Pre-release
Pre-release

What's Changed

Full Changelog: v4.0.0-beta...v4.0.0-beta2

v4.0.0-beta

17 Feb 23:58
24f31eb
Compare
Choose a tag to compare
v4.0.0-beta Pre-release
Pre-release

This release has some fun new features including a refreshed UI with better small screen support and icons, more Java features like binary literals and basic Java 14 switch expressions, and a few bugs fixed.

The platform has also been updated to use the .NET 8 LTS SDK.

What's Changed

New Contributors

  • @nzdev made their first contribution in #90

Full Changelog: v3.0.0...v4.0.0-beta

v3.0.0

27 Nov 23:31
5d8ee4f
Compare
Choose a tag to compare

🎉 The 3.0 release of Java to C# is here! 🎉

This is perhaps the largest release since this project was created over 10 years ago in October 2013. A lot of dust has been brushed off, a whole bunch of new platforms are now supported, several newer Java language features have been added, a new integration test runner helps protect against regressions, and dark mode is here!

The v3.0.0 release includes:

  • Cross-platform GUI support via Avalonia! This means you can now run the GUI utility on macOS and Linux, in addition to Windows. The GUI is a helpful tool for confirming the conversion and giving a convenient button to copy the output to your clipboard. It previously was written in WPF, so Avalonia was a natural fit. Additionally, this enabled...
  • Dark mode support! You can now toggle between light and dark mode in the UI.
  • The app now runs on .NET 6 LTS. This will be upgraded to .NET 8 LTS in the near future.
  • IKVM has been upgraded to 8.7, which enables support for new platforms like arm64
  • Because of the .NET 6, Avalonia, and IKVM 8.7 support above, we should now support the following platforms for both the GUI and CLI:
    • Windows x64 and arm64
    • macOS x64 and arm64
    • Linux x64 and arm64
  • JavaParser has been upgraded to add support for multiple new Java language features. Additionally, the .jar is now handled by IKVM at build time instead of being included as a .dll.
  • Enabled by the JavaParser upgrade, the following Java features are now supported for translation (and are covered by integration tests):
    • Java 7/9 try-with-resources (#53)
    • Java 9 diamond inner classes don't translate fully, but at least do not error out (#57)
    • Java 9 underscore as reserved keyword (#59)
    • Java 10 type inference (#61)
    • Java 11 lambda parameter type inference (#62)
  • Default and private interface methods are now converted to the C# 8 equivalents (#60)
  • GitHub Actions now automatically builds the app and runs unit tests for all PRs and commits to master
  • A new integration test runner converts test resource Java files to C#, compiles them, and asserts the output matches what is expected. These are automatically run as part of the GitHub Actions pipeline as well. Please try to add a test when adding a Java feature or fixing a bug!
  • Converting the unsigned right shift (>>>) binary operator is now supported.
  • The CLI now uses System.CommandLine for better argument handling, and most converter options are now available as command-line flags (#58)
  • The CLI now uses Microsoft.Extensions.Logging instead of Console.WriteLine.
  • An option has been added to turn off comment translation (#21)
  • Octal int/long literals are now translated correctly (#45)
  • Several common types are now converted automatically for convenience:
    • Set: HashSet
    • Map: Dictionary
    • IAutoCloseable: IDisposable
    • Iterator: IEnumerator
  • Various common exception types are now renamed to their .NET equivalents
  • System.out can now be converted to common Console equivalents (#18)
  • Interface extends are now translated
  • Fixes an issue where extra escaping backslashes were added to strings (#20)
  • Fixes an issue with array creation expressions (#38)
  • Miscellaneous smaller bug fixes and improvements

Special thanks to the following contributors to this release: @maximilien-noal @VahidN @OJacot-Descombes @Niewiarowski

Huge thanks to @wasabii for the IKVM 8.7 release that helped enable this cross-platform/cross-architecture support!

v2.1.0

09 Mar 21:41
Compare
Choose a tag to compare
  • Adds better logging to the CLI app, #35
  • Adds folder conversion to the CLI app, #35
  • Adds simple enum conversion, #33

v2.0.2

07 Jul 17:09
Compare
Choose a tag to compare
  • Fixes #27
  • Adds warning output to CLI project

v2.0.0

25 Jun 00:30
Compare
Choose a tag to compare
  • Updates to .NET 5.0
  • Fixes semicolon issue in lambda generation (#6)