Details zu den Neuerungen unter https://junit.org/junit5/docs/5.1.0/release-notes/index.html#release-notes-5.1.0
Open Source
GWT 2.8.2 erschienen
http://www.gwtproject.org/release-notes.html#Release_Notes_2_8_2
Highlights
-
Supports running in Java 9. Note that this does not yet mean that GWT can compile Java 9 sources, or support the Java 9 JRE changes, but that a Java 9 JRE can be used to compile a GWT project. Do note that the new
--module-path
flag is not supported, but-classpath
must still be used as in the past. -
Chrome 61 removed functionality that had been used for reading the absolute top/left values. The internal implementation has been updated to reflect modern standards.
-
Uncaught exception handler will now receive all errors on the page, as handled by
window.onerror
. This may potentially be a breaking change if there were misbehaving scripts on the page. To disable this functionality, set the propertygwt.uncaughtexceptionhandler.windowonerror
toIGNORE
:
<set-property name="gwt.uncaughtexceptionhandler.windowonerror" value="IGNORE"/>
For more details, see com.google.gwt.core.Core
.
Bug fixes
- LookupMethodCreator creates too large method
- NativeRegExp should use iframe instance, fixing Edge JIT bug
- JsProperty getter/setter sometimes were reported as incompatible
- Instantiating native JsTypes from JSNI results in InternalCompilerException
- Remove the SUBSIZED characteristic from filtered streams
- Internal compiler exception when using native JsType varargs in a JsMethod
- Regression in String.toLowerCase and toUpperCase for some locales, specifically for Turkish
- Missing bounds check in String.charAt
- Fix AIOOBE when compiling method references involving varargs.
- Apply HtmlUnit workaround ensuring that window.onerror is called correctly
Miscellanous
- Migrated lang/jre emulation JSNI to JsInterop to share with J2CL
- Added ErrorProne to gwt builds
- Improved compliance with CSP
- Added emulation for java.io.Externalizable
- Added emulation for java.lang.reflect.Array
- JSO.equals/hashcode will delegate to the JS object if it has methods with those names
- Removed outdated or unused parts of project
- Migrate guava JRE emulation to GWT
- HtmlUnit tests are now run in batch mode
For more detail, see the issue tracker and the commit log.
Spring 5.0 ist fertig
Ankündigung und Neues unter https://spring.io/blog/2017/09/28/spring-framework-5-0-goes-ga
JUnit 5 ist raus
Alle Details auf der schön gemachten Webseite http://junit.org/junit5/.
Link: Was ist neu in Spring 5.0
Google Guava steigt (endlich) auf Java 8 um
Die News unter https://github.com/google/guava/wiki/Release21:
Significant API additions and changes
common.base
Function
,Predicate
andSupplier
: changed to extend the newjava.util.function
interfaces with the same names.Optional
: addedtoJavaUtil
andfromJavaUtil
methods for easy conversion between Guava’sOptional
andjava.util.Optional
.Objects
: removed deprecatedfirstNonNull
andtoStringHelper
methods (both found onMoreObjects
since Guava 18.0).
common.cache
New default methods on ConcurrentMap
that were added in Java 8 are now implemented and safe to use for Cache.asMap()
views.
common.collect
Many APIs in collect now have better implementations of many of the default
methods added to Collection
and Map
types in Java 8.
New classes
Comparators
: With the addition of many useful methods to theComparator
type in Java 8,Ordering
now provides little benefit.Comparators
is a new location for methods onOrdering
that still don’t have a good equivalent in the JDK.Streams
: Utility class for working withjava.util.stream.Stream
. Includes methods for creating streams (such asstream(Iterable)
,stream(Optional)
andconcat(Stream...)
) and methods that do things with streams (such asfindLast(Stream)
).MoreCollectors
: Factories forjava.util.stream.Collector
objects; note thatCollector
s for Guava’s collection types are generally found on those types themselves rather than here.Interners.InternerBuilder
: Builder forInterner
instances, with options similar to those found onMapMaker
. Created withInterners.newBuilder()
.
Removed classes
MapConstraint
andMapConstraints
: deprecated since 19.0.
Changes
FluentIterable
: addedstream()
method.ForwardingBlockingDeque
: deprecated; moved toutil.concurrent
.Immutable*
types: added methods to all namedtoImmutable[Type]()
(e.g.ImmutableList.toImmutableList()
) which return aCollector
for collecting aStream
into an immutable collection/map object. As with most methods that createCollector
s, these are generally intended to be used as static imports.Multimap
: addedforEach(BiConsumer)
method.Multimaps
: addedtoMultimap
andflatteningToMultimap
methods returningCollector
objects that collect to aMultimap
.Multiset
: addedforEachEntry(ObjIntConsumer)
method.Maps
: addedtoImmutableEnumMap
methods returningCollector
objects that collect to anImmutableMap
withenum
keys.Sets
: addedtoImmutableEnumSet
method returning aCollector
that collects to anImmutableSet
ofenum
s.Tables
: addedtoTable
methods returningCollector
objects that collect to aTable
.RangeSet
: added defaultaddAll(Iterable<Range>)
,removeAll(Iterable<Range>)
andenclosesAll(Iterable<Range>)
methods.ImmutableRangeSet
: addedcopyOf(Iterable<Range>)
,unionOf(Iterable<Range>)
,union(RangeSet)
,intersection(RangeSet)
anddifference(RangeSet)
methods.TreeRangeSet
: addedcreate(Iterable<Range>)
method.- A number of rarely-used methods on concrete implementations of Guava collection types that aren’t present on the interface they implement have been deprecated. These include:
ArrayListMultimap.trimToSize()
,TreeMultimap.keyComparator()
, andTreeBasedTable.row/columnComparator()
.
common.io
MoreFiles
: New class which contains methods similar to those inFiles
, but for use withjava.nio.file.Path
objects.- This includes
deleteRecursively
anddeleteDirectoryContents
methods which are secure against race conditions that Java previously had no way of dealing with provided that theFileSystem
supportsSecureDirectoryStream
(modern Linux versions do; Windows [NTFS at least] does not). For security, these will throw an exception ifSecureDirectoryStream
is not supported unlessRecursiveDeleteOption.ALLOW_INSECURE
is passed when calling the method.
common.primitives
- Most classes: added
constrainToRange([type] value, [type] min, [type] max)
methods which constrain the given value to the closed range defined by themin
andmax
values. They return the value itself if it’s within the range, themin
if it’s below the range and themax
if it’s above the range.
common.util.concurrent
ForwardingBlockingDeque
: added; moved fromcommon.collect
becauseBlockingDeque
is a concurrent type rather than a standard collection (it’s defined injava.util.concurrent
).AtomicLongMap
: added a number of methods such asaccumulateAndGet(K, LongBinaryOperator)
that take advantage of new Java functional types.Monitor
: addednewGuard(BooleanSupplier)
.MoreExecutors
: removedsameThreadExecutor()
; deprecated since 18.0 in favor ofdirectExecutor()
(preferable) ornewDirectExecutorService()
.
GWT 2.8.0 ist raus
Details zu den Änderungen unter http://www.gwtproject.org/release-notes.html. Toll ist die Unterstützung von Java 8.
- Started using ES6 Maps when available for HashMap/HashSet that yields up 3x performance improvements.
- Partial support for Java 8 standard library APIs (see below for full list).
- Source level set to Java 8.
- Static and default methods in interfaces aren’t visible to generators. If you want to take advantage of those Java-8isms, you’re encouraged to switch to an annotation processor. This could break existing build if an interface is changed to turn a non-default method into a default method.
- Emulate
java.io.UncheckedIOException
. - Emulate
Optional<T>
and its int, long, double variants. - Emulate
Objects.requireNonNull()
with message Supplier. - Fix Math.min/max(float/double) emulation behavior.
- Emulate
Character.isBmpCodePoint()
. - Emulate
CharSequence.chars()
. - Emulate
java.lang.SecurityException
. - Emulate Java 8 API of
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/Queues
,java.util.Map
,java.util.logging.Logger
,java.util.PrimitiveIterator
,java.util.Spliterator
,java.util.stream
,java.util.StringJoiner
Update von Retrolambda
Java 8 Sprachfeatures für Java 7, 6, 5 VM. Details unter https://github.com/orfjackal/retrolambda. Die Updates von letzter Woche:
Retrolambda 2.3.0 (2016-04-30)
- Optimize generated code to reduce method count (Issue #81)
- Alter when accessor methods are generated (Pull request #84)
- Remove NEW, DUP instructions when changing NEWINVOKESPECIAL to INVOKESTATIC (Pull request #85)
- Skip access method when lambda body method can be promoted (Pull request #86)
- Fix method reference to protected method in base class in other package failing with IllegalAccessError (Issue #89)
Retrolambda 2.2.0 (2016-04-29)
- Backports calls to
Objects.requireNonNull
, improving JDK 9 support (Issue #75) - Optimize generated code to reduce method count (Issue #81)
- Detect and omit the JVM’s lambda factory method (Pull request #82)
Guava 19 ist fertig
Details unter https://github.com/google/guava/wiki/Release19
WildFly 10 Beta herausgegeben
Detail unter http://wildfly.org/news/2015/08/09/WildFly10-Beta1-Released/ und https://developer.jboss.org/wiki/WildFly1000Beta1ReleaseNotes, kurz zusammengefasst:
-
Continued Java EE7 Support
-
Java 8+ Required
-
ActiveMQ Artemis
-
JavaScript Support with Hot Reloading
-
Offline CLI Support For Domain Mode
-
HA Singleton Deployments
-
Migration Operations for Legacy Subsystems
-
Capabilities and Requirements
-
Hibernate 5
-
Infinispan 8
Guava 19.0-rc1 herausgekommen
Die Änderungen führt https://github.com/google/guava/wiki/Release19 auf.
Von meiner Seite bin ich nicht mehr so scharf auf Guava, ich komme mittlerweile seit Java 8 ganz gut ohne aus. Klar, könnte ich mehr Guava nutzen, doch ich kann auch ohne, auch wenn ich einmal eine Argument mehr an eine Methode setze.
Heiß her geht auch die Diskussion auf einen Java 8-Umstieg (https://groups.google.com/forum/#!topic/guava-discuss/fEdrMyNa8tA). Die Google Entwickler wissen nicht so recht, was der beste Weg ist, da man bemüht ist, mit einer neuen Java 8-Version keinen alten Code zu brechen.
Vaadin 7.5 ist fertig
https://vaadin.com/blog/-/blogs/vaadin-7-5-released
Und tutego hat auch ein Seminar dazu: http://www.tutego.de/seminare/java-schulung/Vaadin-Framework-Kurs.html
com.tutego:jrtf:0.7 released in Maven
Meine jrtf Bibliothek https://github.com/ullenboom/jrtf/blob/master/README.md ist jetzt auch im Maven-Verzeichnis zu finden: https://repo1.maven.org/maven2/com/tutego/jrtf/
Java Open Source Bibliotheken Mai
doppio (Ohne Lizenz). Komplette JVM in Typescript, also JavaScript. Siehe auch Demo
Jolokia (Apache 2). JMX-HTTP Bridge, die JSON nutzt
Metrics (Apache 2). Metriken erfassen und über Reporters (JMX, Console, …) melden
jmh (GPL v2). Verlässliche Benchmarks, siehe auch JMH Samples
Caliper (Apache 2). Java-Microbenchmarks-Bibliothek von Google, weniger perfekte Ergebnisse als jmh, doch mit Visualisierung
UndecoratorBis (Proprietäre Lizenz). Fensterrahmen von JavaFX-Anwendungen verändern
Java-Chronicle (Apache 2). Performant Daten (Messages) aus Dateien lesen und in selbige schreiben. Autor vom bekannten Vanillajava-Blog
gwt-jet (Apache 2). Erzeugt aus Sammlungen von JavaBeans automatisch GWT-Tabellen und schreibt Änderungen zurück, siehe Showcase
Typescript 4J (Lizenz unspezifiziert). Konvertiert Typescript-Programme in JavaScript-Programme, letztes Update schon etwas her
Apache Avro (Apache). Schnelles Serialisierungs-System
RoboVM erreicht Version 1.0
RoboVM erlaubt es, Java-Anwendungen für iOS und auch Android zu compilieren.
Ankündigung unter http://robovm.com/robovm-1-0-released-commercial-licenses-a-look-under-the-hood/.
Gegenüber der alten Version:
- The debugger has received another round of updates. All JDWP functionality is now implemented.
- Support for RAM disk caches. This can help speed up the compilation and linking process on slow HDDs.
- Support for HFS+ file compression. All files put into the cache are now compressed, further speeding up the compilation process and reducing the amount of space used for the RoboVM cache.
- Initial project template and Maven archetype support.
- A new Eclipse project wizard, using the templates project
- Support for invoking tools via robovm.xml. We currently support the TextureAtlas tool, with more to come.
- Cleanup and simplification of Objective-C bindings, see the binding status page
Neu ist eine kommerzielle Lizenz:
Our commercial license scale with the size of your business, covering solo developers, startups, SMEs and big enterprises. Depending on your plan, you’ll get access to the following features and services:
- JDWP compliant debugger for both simulator and on-device debugging
- Improved crash reporting
- Private e-mail support, with and without SLA
- JavaFX support
- Hotfix support
- Alpha channel access to new commercial features
Java Open Source Libs Januar
Mustache (Apache). Sehr performantes Mustache-Templating-System für Java, benötigt Java 8.
Capsule (EPL). “Dead-Simple Packaging and Deployment for JVM Apps”. Im Kern ein Fat-Jar-Builder. Ermöglicht auch ausführbare WARs und Capsules können in Docker-Images konvertier werden. Alaternativ: One-JAR.
Pegdown Doclet (GPL 3). Markdown in Javadoc-Kommentaren statt HTML nutzen, inklusive PlantUML und Syntax Highlighting mit highlight.js.
The Checker Framework (GLP 2/MIT). Hängt sich in den Java-Compiler und führt zusätzliche Typ-Prüfungen (Null-Pointer, SQL-Injections, …) durch. Funktioniert toll mit Java 8, da nun an jeder Deklaration eine Annotation erlaubt ist.
Gradle (Apache). Gradle ist Ant in Groovy 🙂
Groovy erreicht Version 2.4
Änderungen: http://docs.codehaus.org/display/GROOVY/Groovy+2.4+release+notes. Interessanteste Neuerung ist sicherlich:
With Groovy 2.4, you can write Android applications in Groovy!
Hibernate ORM 4.3.8.und 4.2.17 freigegeben
Details wie üblich im Blog http://in.relation.to/Bloggers/HibernateORM438FinalAnd4217FinalReleased. Nicht viel Neues dabei.
Release von Spring 4.1.4, 4.0.9 und 3.2.13
Siehe Details bei Juergen: http://spring.io/blog/2014/12/30/spring-framework-4-1-4-4-0-9-3-2-13-released.
Was neu in der Version 4.1.4 ist, lässt sich bei den Issues ablesen unter https://jira.spring.io/issues/?jql=project+%3D+SPR+AND+fixVersion+%3D+4.1.4.
JUnit 4.12 freigegeben
Es gibt Software, die ist so stabil, dass Änderungen sehr selten sind. Dazu zählt JUnit, was nun in der Version 4.12 erschienen ist. Die Änderungen listet die Github-Seite (ja, auch JUnit ist bei Git gelandet) auf: https://github.com/junit-team/junit/blob/master/doc/ReleaseNotes4.12.md. Das allermeiste ist sehr speziell.