Поддержка Java 8 в GWT

Это похоже на очень простой вопрос, но я искал высоко и низко и почти нигде не упоминал об этом. Итак, я спрошу его здесь.

Каков текущий план поддержки новых языковых конструкций Java 8 в GWT?

Кроме того, какое подмножество предлагаемых библиотек Java 8 планируется для эмуляции на стороне клиента? Stream API? Новый API Дата/Время?

И наконец, где обсуждаются обсуждения этой важной темы? Я уверен, что многие из нас желают участвовать и, возможно, вносить свой вклад в это усилие.

Бета-версии Java 8 уже давно существуют, и есть множество статей, в которых обсуждаются предлагаемые API. Предполагается, что он будет связан позже в этом году, поэтому кажется, что в прошлый раз, по крайней мере, нужно было обсудить, как и когда в GWT будут внесены столь желанные функции языка.

Мои извинения, если на этот вопрос ответят где-то в другом месте, или если я пропустил какую-то важную информацию, связанную с этим. Это было бы отличным местом для ссылки на такую ​​информацию, даже если на нее был дан ответ. Спасибо!

Ответ 1

Время для обновления ответа.

ОБНОВЛЕНИЕ (октябрь 2017 г.)

GWT 2.8.2 доступно здесь. Примечания к выпуску.

ОБНОВЛЕНИЕ (июнь 2017 г.)

Официальное GWT 2.8.1 download.

Примечания к выпуску для 2.8.1

ОБНОВЛЕНИЕ (октябрь 2016 года)

GWT 2.8.0, наконец, здесь!

Команда GWT выпустила тег 2.8.0 на Github. Официальный веб-сайт GWT еще не обновлен, но запрос на перенос изменений на веб-сайте GWT готов и в процессе просмотра. Так очень скоро компилируемая версия будет доступна для скачивания!

Доступно для загрузки

ОБНОВЛЕНИЕ (сентябрь 2016 г.)

Между тем, команда GWT отметила GWT 2.8.0 RC3 на зеркале GitHub.

Команда GWT (Daniel Kurka) выпустила версию GWT 2.8.0 (RC2) здесь.

Замечания по выпуску доступны для 2.8.0 (RC2):

Исправления ошибок

  • Исправить неправильное предупреждение о невозможности использования.
  • Устранить проблему при перезагрузке сервера сервера (Jetty).
  • Исправить проблему в режиме супер-dev с изменением параметров компилятора, не вызывая полного перекомпиляции.
  • Добавлены отсутствующие параметры командной строки в точку входа DevMode
  • Исправлена ​​регрессия производительности в String.

Примечания к релизу от RC1 доступны на официальном сайте . Вот наиболее важные изменения в поддержке Java 8 в предстоящем GWT 2.8.0:

Основные

  • Частичная поддержка стандартных API-интерфейсов Java 8 (см. полный список).
  • Исправить утечку памяти с помощью компиляции Java 8.
  • Уровень источника установлен на Java 8.
  • Статические и стандартные методы в интерфейсах arent видны генераторам. Если вы хотите воспользоваться преимуществами Java-8isms, вам предлагается переключиться на процессор аннотаций. Это может сломать существующую сборку, если интерфейс изменен, чтобы превратить метод, отличный от метода по умолчанию, в метод по умолчанию.

Поддержка эмуляции JDK 8

  • Эмуляция java.io.UncheckedIOException.
  • Эмуляция Необязательный и его int, long, double варианты.
  • Emulate Objects.requireNonNull() с сообщением поставщика.
  • Исправлено поведение эмуляции Math.min/max (float/double).
  • Эмуляция Character.isBmpCodePoint().
  • Эмуляция CharSequence.chars().
  • Эмуляция java.lang.SecurityException.
  • Эмуляция Java 8 API
    • java.util.Arrays,
    • java.util.ArrayDeque,
    • java.math.BigInteger,
    • java.util.BitSet,
    • java.util.Comparator,
    • java.util.function,
    • java.util.Iterator,
    • java.lang.Iterable,
    • java.util.IntSummaryStatistics/LongSummaryStatistics/DoubleSummaryStatistics
    • java.util.Collection/списки/Очереди,
    • java.util.Map,
    • java.util.logging.Logger,
    • java.util.PrimitiveIterator,
    • java.util.Spliterator,
    • java.util.stream,
    • java.util.StringJoiner

У GWT 2.8.0 RC2 все еще есть некоторые проблемы, которые команда GWT, как ожидается, исправит в ближайшее время. Окончательный релиз должен скоро появиться ( "как только он будет готов" ).

Ответ 2

EDIT GWT 2.8.0 был выпущен 20 октября 2016 года с поддержкой Java-языковых конструкций (lambdas, ссылок на методы) и эмуляции некоторых API Java 8 (в основном потоков)

EDIT по состоянию на апрель 2014 года, GWT 2.6 поддерживает Java 7, и в настоящее время ведется работа по поддержке Java 8 в GWT 2.7, которая должна быть выпущена летом 2014 года. GWT 2.7, скорее всего, будет поддерживать только Java 8 языковых конструкций, но не эмулируют какой-либо новый API (потоки, javax.time и т.д.).


План состоит в том, чтобы сначала поддерживать Java 7: https://github.com/gwtproject/gwt/labels/java7

Это включает в себя обновление JDT, и это работало (или, альтернативно, полностью переключиться на что-то другое; предложенные JetBrains, используя их парсер, который уже поддерживает Java 8, но GWT также нуждается в компиляторе, и я не знаю, что именно они предоставляют). Следующие шаги состоят в том, чтобы сопоставить новые языковые конструкции с JavaScript (приведение в действие строк-в-переключателе, поскольку они могут непосредственно сопоставляться с JavaScript без дескрипции на основе hashCode, которая будет выполняться компилятором Java).

Пока GWT использует JDT для его разбора/компиляции Java, Java 8 может поддерживаться только при поддержке JDT (на приемлемом уровне, которого еще нет в AFAICT).