2.1.1

@tomball tomball released this Apr 23, 2018 · 51 commits to master since this release

A new release of J2ObjC is available, 2.1.1. This is an update to 2.1 with the following changes:

2.1

@tomball tomball released this Apr 19, 2018 · 54 commits to master since this release

A new release of J2ObjC is available, 2.1. This is an update to 2.0.5 with several bug fixes and the following changes:

Translator

  • The j2objc and cycle_finder tools now run using Java 9. Note: no Java 9 API have been added, since there aren't any Android equivalents.
  • Added option to generate outputs for all specified Java sources to a single .h/.m file pair.
  • Added support for AAR files on the classpath.

Java Runtime Emulation

  • Added java.security digest stream classes.
  • New character encodings: GBK, GB18030, Big5-HK.
  • Removed okio from build, as it was no longer used.

WatchOS Libraries

There are now separate static libraries for watchOS in the distribution in lib/watchos. This avoids Xcode warnings including the equivalent architecture from the default iOS libraries, like is done for macOS (lib/macosx) and tvOS (lib/appletvos).

Example Projects

The example projects are now included in the distribution bundle. These include an iOS "hello world" app, macOS protocol buffer command-line examples, and a Contacts app.

  • The Contacts app demonstrates how to build a J2ObjC project with Bazel.

Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

2.0.5

@tomball tomball released this Oct 24, 2017 · 173 commits to master since this release

A new release of J2ObjC is available, 2.0.5. This is an update to 2.0.4.1 with several bug fixes and the following changes:

Swift Support:

  • Fixed generation of JRE.framework/JRE.h to only include public header files.
  • Updated function prototypes to avoid strict-prototype warnings from Xcode 9.
  • Annotates copyWithZone: argument as nullable.

Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

2.0.4.1

@tomball tomball released this Oct 3, 2017 · 187 commits to master since this release

A new release of J2ObjC is available, 2.0.4.1. The source for this release is unchanged from 2.0.4, but it was rebuilt with the correct protocol buffer library (3.3.0).

2.0.4

@tomball tomball released this Sep 28, 2017 · 187 commits to master since this release

A new release of J2ObjC is available, 2.0.4. This is an update to 2.0.3 with several bug fixes and the following changes:

J2ObjC translator:

  • Eclipse JDT dependencies are removed.
  • Android Library (*.aar) files are now supported in classpath arguments.
  • Runs when Java 9 JDK is system default.
    • NOTE: Java 8 still needs to be installed (both co-exist)

JRE emulation:

  • nil_chk() has been changed to a macro, to provide better stack traces.

JRE sources updated to latest from Android-nougat:

  • java.net
  • XML SAX support: org.xml.sax, XML drivers

Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

2.0.3

@zhouyanggao zhouyanggao released this Aug 28, 2017 · 231 commits to master since this release

A new release of J2ObjC is available, 2.0.3.

Note: -Xuse-jdt is removed in this release and the JDT code will be removed at a later time.

Other changes include:

J2ObjC examples:

  • Adds an example app using Bazel build rules (in /examples/Contacts).

JRE sources updated to latest from Android-nougat:

  • java.nio
  • java.nio.channels
  • java.nio.spi

Bug fixes:

Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

2.0.2

@kstanger kstanger released this Jul 19, 2017 · 291 commits to master since this release

A new release of J2ObjC is available, 2.0.2. This is an update to 2.0.1 with some bug fixes and updates to the JRE runtime.

J2ObjC translator:

  • Passing command arguments with a file using '@' now works for all flags. (previously only worked for source files)
  • Added --no-wrapper-methods flag. Helps to reduce code size by eliminating Objective-C wrappers for static methods and constructors. These can be called via generated C-style functions.

JRE emulation:

  • java.lang.Throwable no longer maps to NSException. Instead JavaLangThrowable extends from NSException.

JRE sources updated to latest from Android-nougat:

  • java.util (most)
  • java.util.concurrent
  • java.util.concurrent.locks
  • javax.net.ssl

Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

2.0.1

@kstanger kstanger released this Jun 7, 2017 · 353 commits to master since this release

A new release of J2ObjC is available, 2.0.1. This is an update to 2.0 with some bug fixes and updates to the JRE runtime.

JRE sources updated to latest from Android-nougat:

  • java.lang.reflect
  • java.lang.ref
  • java.util.concurrent.atomic
  • java.util.jar
  • java.util.logging
  • java.util.regex

Bug fixes:

Protocol Buffers:

  • Updated to build against protobur-3.3.0.
  • Added map field support.

Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

2.0

@tomball tomball released this May 9, 2017 · 399 commits to master since this release

A new release of J2ObjC is available, 2.0. This release uses the javac compiler as its front end, which improves the translator's Java compatibility while improving performance. If the new front end causes any problems with your project, please file a bug and then switch to the old front end using the -Xuse-jdt flag (please do so promptly, as that flag will be removed in a future release once issues requiring have been fixed).

The http://j2objc.org website has joined the Google Developers site at https://developers.google.com/j2objc/. This gives our project better support and will make it easier to keep up to date. In particular, our API Reference is enhanced and easier to use. We'll be redirecting http://j2objc.org to this new site soon.

This release continues the migration to the OpenJDK-based JRE source code in Android's 7.0 Nougat libcore library. Although there are some classes that still need to be migrated, we believe that all classes with Java 8 additions are now ported (please file a bug if you find otherwise).

Other changes include:

  • Updated java.security classes using the Apache Harmony Fortress classes to instead use sun.security packages.
  • Updated date and number formatters to OpenJDK.
  • Updated date, calendar, and timezone support to OpenJDK.
  • Updated character conversion to use the iconv library in iOS.
  • Added protocol buffers oneof support.
  • Integrated several IosHttpURLConnection contributions and bug fixes.
  • j2objc performance improvements:
    • reduced size of several AST node classes,
    • skipped unnecessary validation.

Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

1.3.1

@tomball tomball released this Jan 24, 2017

This release updates 1.3 with two fixes:

  • Issue #828 fix for missing casts for some parameterized type variables, and
  • The j2objc-annotations.jar Maven version number was updated to 1.3.