2013-03-28 20 views
45

To wydaje się bardzo podstawowe pytanie, ale szukałem wysokiego i niskiego poziomu i prawie nie znalazłem nigdzie o tym wzmianki. Więc, zapytam o to tutaj.Obsługa Java 8 w GWT

Jaki jest obecny plan wspierania nowych konstrukcji językowych Java 8 w GWT?

Ponadto, jaki podzbiór proponowanych bibliotek Java 8 jest przeznaczony do emulacji po stronie klienta? Stream API? Nowy interfejs API Data/godzina?

I wreszcie, gdzie odbywają się dyskusje dotyczące tego ważnego tematu? Jestem pewien, że jest wielu z nas, którzy chcieliby uczestniczyć i potencjalnie wnieść wkład w ten wysiłek.

Java 8 jest już dostępna od jakiegoś czasu i istnieje wiele artykułów omawiających proponowane interfejsy API. To ma być powiązane w dalszej części tego roku, więc wydaje się, że minęło co najmniej omawianie, w jaki sposób i kiedy pożądane cechy językowe trafią do GWT.

Moje przeprosiny, jeśli na to pytanie udzielono odpowiedzi w innym miejscu lub w przypadku pominięcia ważnych informacji związanych z tym pytaniem. Byłoby to doskonałe miejsce na link do takich informacji, nawet jeśli odpowiedź na nie została udzielona. Dzięki!

Odpowiedz

10

Czas zaktualizować odpowiedź.

UPDATE (październik 2017)

GWT 2.8.2 available here. Release notes.

UPDATE (czerwiec 2017)

Dziennik GWT 2.8.1download lokalizacja.

Release Notes for 2.8.1

UPDATE (październik 2016)

GWT 2.8.0 jest ostatecznie tutaj!

Zespół GWT wydał znacznik 2.8.0 na Github. Oficjalna witryna GWT nie została jeszcze zaktualizowana, ale żądanie pobrania zmian w witrynie GWT to ready and in review process. Tak więc bardzo niedługo skompilowana wersja będzie dostępna do pobrania!

Available for download

UPDATE (wrzesień 2016)

Tymczasem zespół GWT otagował GWT 2.8.0 RC3 na GitHub lustrze.

Zespół GWT (Daniel Kurka) wydał wersję GWT 2.8.0 (RC2) here.

Uwagi do wydania dostępne dla 2.8.0 (RC2) są:

Poprawki

  • Fix nieprawidłowe bezużyteczny po js ostrzeżenia.
  • Napraw problem związany z restartem serwera DevMode (pomost).
  • Napraw problem w trybie super dewelopera, zmieniając opcje kompilatora, nie powodując pełnego przekompilowania.
  • Dodano brakujące parametry wiersza polecenia do punktu wejścia DevMode
  • Naprawiono regresję wydajności w łańcuchu.

Informacje o wersji RC1 są dostępne na stronie official website. Oto najważniejsze zmiany w zakresie Java 8 wsparcie w nadchodzącym GWT 2.8.0:

Highlights

  • Częściowe wsparcie dla Java 8 API biblioteki standardowej (patrz poniżej pełną listę).
  • Napraw wyciek pamięci za pomocą kompilacji Java 8.
  • Ustawienie poziomu źródła na Java 8.
  • Metody statyczne i domyślne w interfejsach nie są widoczne dla generatorów. Jeśli chcesz skorzystać z zalet Java-8isms, zachęcam do przejścia na procesor adnotacji. Może to spowodować uszkodzenie istniejącej kompilacji, jeśli interfejs zostanie zmieniony, aby zmienić domyślną metodę na inną niż domyślna.

JDK 8 emulacji wsparcie

  • Emulate java.io.UncheckedIOException.
  • Emulacja Opcjonalne i jego int, długie, podwójne warianty.
  • Emulacja Objects.requireNonNull() z komunikatem Dostawca.
  • Naprawić emulację Math.min/max (float/double).
  • Emuluj Character.isBmpCodePoint().
  • Emuluj CharSequence.chars().
  • Emuluj wyjątek java.lang.SecurityException.
  • Emulate 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/lists/kolejek,
    • java.util.Map,
    • java.util.logging.Logger,
    • java.util.PrimitiveIterator,
    • java.util.Spliterator,
    • java.util.stream,
    • java.util.StringJoiner

GWT 2.8.0 RC2 nadal ma pewne problemy, które zespół GWT ma wkrótce naprawić. Ostatnie wydanie powinno wkrótce ("jak tylko będzie gotowe").

46

EDIT GWT 2.8.0 został wydany 20 października 2016 r z obsługą Javy 8 konstrukcji języka (lambda, odniesienia metodą) i emulacji niektórych Java 8 API (strumienie przeważnie)

EDIT jako z kwietnia 2014, GWT 2.6 obsługuje Javę 7, a prace nad wersją GWT 2.7 mają zostać uruchomione do lata 2014. GWT 2.7 prawdopodobnie będzie obsługiwał tylko konstrukcje języka Java 8, a nie emulować żadnego nowego API (strumieni, javax.time, itp.)


Plan zakłada obsługę języka Java 7: https://github.com/gwtproject/gwt/labels/java7

Wymaga to aktualizacji JDT, a jest to worked on (lub alternatywnie, przełącz się na coś zupełnie innego; JetBrains proposed używając ich parser, który już obsługuje Java 8, ale GWT również potrzebuje kompilatora i nie wiem, co dokładnie zapewniają). Następnym krokiem jest mapowanie nowych konstrukcji językowych na JavaScript (przychodzi mi na myśl napisy-string-in-switch, ponieważ mogą one bezpośrednio zamapować do JavaScriptu bez usuwania danych z poziomu hashCode, które robiłby kompilator Java).

Dopóki GWT używa JDT do przetwarzania lub kompilowania/kompilowania Java, Java 8 może być obsługiwana tylko wtedy, gdy JDT ją obsługuje (na akceptowalnym poziomie, który jeszcze nie jest AFAICT).

+0

Interesujące! Czy GWT 2.7 użyje parsera JetBrains, czy nowszej wersji JDT? –

+1

JDT. Jeśli chcesz rozpocząć grę, musisz pobrać podgląd: https://github.com/WeTheInternet/gwt-sandbox/tree/java8 –

+0

Jak to teraz jest wsparcie? Odkryłem, że jeśli używasz wyrażeń lambda do implementowania funkcjonalnych interfejsów programów obsługi zdarzeń i kompilujesz zestaw widgetów, widget nie jest poprawnie utworzony (przynajmniej przy użyciu GWT razem z Vaadin 7.3.10). – tonix