http://www.golem.de/news/it-sicherheit-zero-day-luecke-in-java-1-8-entdeckt-1507-115202.html
Autor: Christian Ullenboom
Java-API gehört Oracle
Eclipse 4.5 (Mars)
https://www.eclipse.org/org/press-release/20150624_mars_release.php Downloads unter https://www.eclipse.org/downloads/, die alte Version Luna ist damit verdrängt.
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/
Jetzt bekommt auch JavaScript seinen Bytecode?
Eine Diskussion unter https://brendaneich.com/2015/06/from-asm-js-to-webassembly/.
Java EE 7 Tutorial auf github
Java EE 7 Hands-on Lab gibt es hier: https://github.com/javaee-samples/javaee7-hol. Das ganze aufbereitet: https://htmlpreview.github.io/?https://github.com/javaee-samples/javaee7-hol/blob/master/docs/javaee7-hol.html. Das Tutorial ist von Arun Gupta, der sicherlich auf GitHub Erweiterungen gerne annimmt.
Neuer Editor/Mini-IDE von Microsoft
https://code.visualstudio.com/ hat MS neu vorgestellt. Prima für Webentwickler. Inklusive Git-Zugriff. Für Win, Linux und Mac OS X.
Eclipse Mars RC1
Die 267 MiB voller Spaß und Freude gibt es hier: https://eclipse.org/downloads/packages/release/Mars/RC1.
Töröööö, Java ist 20 Jahre alt …
Inselupdate: Suchen und Ersetzen mit Mustern
Für den Suchfall mit Java RegEx gibt es noch eine Erweiterung, dass nämlich die Pattern-Klasse die Fundstellen nicht nur ermittelt, sondern sie auch durch etwas anderes ersetzen kann.
Beispiel: In einem String sollen alle Nicht-JVM-Sprachen ausgepiept werden:
String text = „Ich mag Java, Groovy und ObjectiveC und PHP.“;
Matcher matcher = Pattern.compile(„ObjectiveC|PHP“ ).matcher( text );
StringBuffer sb = new StringBuffer();
while ( matcher.find() )
matcher.appendReplacement( sb, „[PIEP]“ );
matcher.appendTail( sb );
System.out.println( sb ); // Ich mag Java, Groovy und [PIEP] und [PIEP].
Um mit dem Mechanismus „Suchen und Ersetzen“ zu arbeiten, wird zunächst ein Container vom Typ StringBuffer aufgebaut, denn in dem echten String kann Pattern die Fundstellen nicht ersetzen. (Leider ist ein StringBuffer nötig, die API akzeptiert keinen StringBuilder.) Erkennt der Matcher ein Muster, macht appendReplacement(…) zwei Dinge:
1. Die Methode füllt den Container mit allen Zeichen vom letzten Fund bis zur jetzigen Fundstelle auf. Beim ersten Aufruf ist das „Ich mag Java, Groovy und “, dann folgt „ und “.
2. In den StringBuffer können wir unsere Ersetzung, in diesem Falle „[PIEP]“, setzen.
So wächst der StringBuffer von Schritt zu Schritt. Nach der letzten Fundstelle setzt appendTail(…) das noch verbleibende Teilstück von der letzten Funstelle bis zum Stringende in den StringBuffer-Container.
Im Prinzip können wir in der while-Schleife mit matcher.group(…) auf das Fundstück zurückgreifen und es in die Ersetzung einbauen. Doch toll an appendReplacement(…) ist, dass der Ersetzungsstring ein $ enthalten darf – mit dem Problem, dass ein vorkommendes Dollar-Zeichen ausmaskiert werden muss –, der Zugriff auf die Suchgruppe bietet. Damit lassen sich sehr elegante Lösungen bauen. Nehmen wir an, wir müssen in einer Zeichenkette alle URLs in HTML-Hyperlinks konvertieren. Dann rahmen wir einfach jede Fundstelle in die nötigen HTML-Tags ein. In Quellcode sieht das so aus:
Listing 2.7: RegExSearchAndReplace.java, main()
String text = „Hi, schau mal bei http://stackoverflow.com/ “ +
„oder http://www.tutego.de/ vorbei.“;
String regex = „http://[a-zA-Z0-9\\\]+\\.[a-zA-Z]{2,3}(\\S*)?“;
Matcher matcher = Pattern.compile( regex ).matcher( text );
StringBuffer sb = new StringBuffer( text.length() );
while ( matcher.find() )
matcher.appendReplacement( sb, „<a href=\“$0\“>$0</a>“ );
matcher.appendTail( sb );
System.out.println( sb );
Der StringBuffer enthält dann zum Schluss „Hi, schau mal bei <a href=“http://stackoverflow.com/“>http://stackoverflow.com/</a> oder <a href=“http://www.tutego.de/“>http://www.tutego.de/</a> vorbei.“. (Der gewählte reguläre Ausdruck für URLs ist kurz, aber nicht vollständig. Für das Beispiel spielt das aber keine Rolle.)
Tipp: Die String-Methoden replaceAll(…) und replaceFirst(…) ersetzen direkt, und arbeiten im Hintergrund genauso. Zum Einsatz kommt die replaceAll(.,.)-Methode vom Matcher.
Hinweis: Der Ersetzungsausdruck „<a href=\“$0\“>$0</a>“ enthält mit $ Steuerzeichen für den Matcher. Wenn die Ersetzung aber überhaupt nicht mit $n auf das gefundene Wort zurückgreift, sollten die beiden Sonderzeichen \ und $ ausmaskiert werden. Auf diese Weise werden merkwürdige Fehler vermieden, wenn doch in der Ersetzung ein Dollar-Zeichen oder ein Backslash vorkommt. Das Ausmaskieren übernimmt die Methode quoteReplacement(…), sodass sich zum Beispiel Folgendes ergibt:
matcher.appendReplacement( sb, Matcher.quoteReplacement( replacement ) );
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
JEP 247: Compile for Older Platform Versions für Java 9
Für den Java 9 Compiler soll eine neue Option hinzukommen, der mit Hilfe von Meta-Daten prüft, ob ein Programm niedrigere Bibliotheken (Java 8, Java 7) nutzten soll. Details unter http://openjdk.java.net/jeps/247.
Wohlwollende Insel2-Rezension bei der iX
Zeitplan für Java 9 bekannt
2015-12-10 Feature Complete 2016-02-04 All Tests Run 2016-02-25 Rampdown Start 2016-04-21 Zero Bug Bounce 2016-06-16 Rampdown Phase 2 2016-07-21 Final Release Candidate 2016-09-22 General Availability
http://mail.openjdk.java.net/pipermail/jdk9-dev/2015-May/002172.html
Java SE 8u45 verfügbar
Wie man schon gewohnt ist mit Sicherheitsupdates. Details und Download unter http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html, http://www.oracle.com/technetwork/java/javase/documentation/8u-relnotes-2225394.html, http://www.oracle.com/technetwork/java/javase/8u45-relnotes-2494160.html, http://www.oracle.com/technetwork/java/javase/2col/8u45-bugfixes-2494164.html.
So viel ist vom Bug-Fixing aber nicht passiert.
Keine (öffentlichen) Oracle JDK 7 Updates mehr
So wie es Oracle schreibt: http://www.oracle.com/technetwork/java/javase/overview/index.html:
Coincident with the January 2015 CPU release users with the auto-update feature enabled will be migrated from Oracle JRE 7 to Oracle JRE 8. Also, please note the April 2015 CPU release will be the last Oracle JDK 7 publicly available update. For more information, and details on how to receive longer term support for Oracle JDK 7, please see the Oracle Java SE Support Roadmap.
DemoFX: Demoprogrammierung mit JavaFX
https://www.youtube.com/watch?v=N1rihYA8c2M
https://www.youtube.com/watch?v=WZf0j4GUFYM
Nett gemacht, voll 80er, Code unter https://github.com/chriswhocodes/DemoFX.
Java in den Sony-EMails
Ich habe einmal in den https://wikileaks.org/sony/emails/ nach Java gesucht und (auf den ersten Blick) nichts interessantes gefunden.
EMails Search
Viele Werbe-EMails stammen von Azul (“Zing® now available for Java 8”, “Azul Zulu now available for Java 8”), einige Reiseplanungen, doch das hat mich zum Lachen gebracht:
Couple hundred dollars for Cambodia and Java (not sure what the dollar is called in Java. Maybe it’s the same?)
Und echt banales wie
you’ve been on my mind…
When things quite down (ha!) I’ll come by for a cup of morning java.
Sending you much love.
XXXXXXXXXXXXXXXX
Documents Search
Das ergibt nach Java satte 30.287 Ergebnisse. Darunter Dokumente wie https://wikileaks.org/sony/docs/05/docs/eBooks/Hacking_The_Next_Generation.pdf (Hier sind viele PDFs von O’Reilly verlinkt, wer also “günstig” an Ebooks kommen will …)
Viele Dokumente sind Specs aus diversen Quellen zusammengesammelt.
Findet ihr was Spannendes?