Alles nur heiße Luft?
Nach den in letzten Wochen immer deutlich werdenden Spekulationen zur Zukunft von Java EE hat sich Oracle nun zu seinen Plänen geäußert:
Oracles Pläne sehen für Java EE deutlich „mehr Cloud“ vor.
Alles nur heiße Luft?
Nach den in letzten Wochen immer deutlich werdenden Spekulationen zur Zukunft von Java EE hat sich Oracle nun zu seinen Plänen geäußert:
Oracles Pläne sehen für Java EE deutlich „mehr Cloud“ vor.
Damit beschäftigt sich https://applidium.com/en/news/unbundling_pokemon_go/.
Oracle hat heute das Update 101 der Java 8 SE-Bibliothek veröffentlicht und behebt damit diverse Fehler und Sicherheitslücken.
Auch die Stabilität und Performance soll verbessert worden sein.
Hat ein System beschränkten Speicher, wird es knapp für das gesamte Java SE. Daher gibt es Teilmengen der Java SE, genannt Profiles, die nur knapp über 11 MiB benötigen. Im Moment gibt es drei Profile, also drei Teilmengen der Java SE, die jeweils immer etwas mehr können. compact1 ist die kleinste Teilmenge, wo zum Beispiel die Kernklassen enthalten sind, compact2 nimmt die API für Datenbankverbindungen mit auf, compact3 kann dann XML-Verarbeitung und die komplette Java SE grafische Oberflächen darstellen oder Web-Services deklarieren.
Jede Klasse ist einem Profil zugeordnet, was der Compiler statisch prüfen kann – solange der Klassenname nicht dynamisch bestimmt wird. So lässt sich sicherstellen, dass nur Typen referenziert werden, die auch in einem Profil sind.
Oracle unterstützt mit der Oracle Java Standard Edition Embedded (Oracle Java SE Embedded)[1] Profile. Allerdings laden Entwickler keine einfache Laufzeiumgebung herunter, sondern ein Werkzeug JRECreate, mit dem eine Laufzeitumgebung mit unseren eigenen Paketen für ein bestimmtes System generiert wird. Drei Laufzeitumgebungen sind wählbar: eine Minimal-JVM, Client JVM (schnelle Reaktionsfähigkeit), Server JVM (verbraucht mehr Hauptspeicher). Sehr fein kann dann bestimmt werden, ob JavaFX mit dabei sein soll, oder welche Sprachübersetzungen mit ausgeliefert werden. Am Ende steht ein Verzeichnis mit bin und JRE, lib und Java-Archiven, Konfigurationen und – das darf bei Oracle auf keinen Fall fehlen – Copyright- und Lizenz-Dokumenten.
[1] http://www.oracle.com/technetwork/java/embedded/embedded-se/downloads/index.html
Alle News unter https://www.eclipse.org/eclipse/news/4.6/platform.php.
Interessant sind:
Commands and shortcuts to zoom in text editors | In text editors, you can now use Zoom In (Ctrl++ or Ctrl+=) and Zoom Out (Ctrl+-) commands to increase and decrease the font size.Like a change in the General > Appearance > Colors and Fonts preference page, the commands persistently change the font size in all editors of the same type. If the editor type’s font is configured to use a default font, then that default font will be zoomed. |
Full Screen | The Full Screen feature is now also available on Windows and Linux. You can toggle the mode via shortcut (Alt+F11) or menu (Window > Appearance > Toggle Full Screen).When Full Screen is activated, you’ll see a dialog which tells you how to turn it off again.
On the Mac, Window > Toggle Full Screen (Control+Command+F) still works as before. |
Substring code completion | Content Assist now supports substring patterns. Enter any part of the desired proposal’s text, and Content Assist will find it! For example, completing on selection proposes all results containing selection as a substring.![]() This feature can be disabled using the Show substring matches option on the Java > Editor > Content Assist preference page. |
Clean Up to remove redundant type arguments | A new option to remove redundant type arguments has been added under the „Unnecessary Code“ group of the Clean Up profile.![]() |
Create new fields from method parameters | You can now assign all parameters of a method or constructor to new fields at once using a newQuick Assist (Ctrl+1):![]() |
Quick Fix to configure problem severity | You can now configure the severity of a compiler problem by invoking the new Quick Fix (Ctrl+1) which opens the Java > Compiler > Errors/Warnings preference page and highlights the configurable problem.![]() The Quick Fix icon may look familiar to you. In older Eclipse versions, this was a toolbar button in enriched hovers (i.e., you had to press F2 or move the mouse into the hover to see it). |
Für alle JavaFX-Freunde: Siehe http://gluonhq.com/open-source/scene-builder/ und http://gluonhq.com/scene-builder-8-2-0-now/.
Java 8 Sprachfeatures für Java 7, 6, 5 VM. Details unter https://github.com/orfjackal/retrolambda. Die Updates von letzter Woche:
Objects.requireNonNull
, improving JDK 9 support (Issue #75)Alles News unter http://www.oracle.com/technetwork/java/javase/8all-relnotes-2226344.html.
Interessanbt finde ich unter anderem:
New JVM Options added: ExitOnOutOfMemoryError and CrashOnOutOfMemoryError
Two new JVM flags have been added:
- ExitOnOutOfMemoryError – When you enable this option, the JVM exits on the first occurrence of an out-of-memory error. It can be used if you prefer restarting an instance of the JVM rather than handling out of memory errors.
- CrashOnOutOfMemoryError – If this option is enabled, when an out-of-memory error occurs, the JVM crashes and produces text and binary crash files (if core files are enabled).
See JDK-8138745.
Und:
Disable MD5withRSA signature algorithm in the JSSE provider
The MD5withRSA signature algorithm is now considered insecure and should no longer be used. Accordingly, MD5withRSA has been deactivated by default in the Oracle JSSE implementation by adding „MD5withRSA“ to the „jdk.tls.disabledAlgorithms“ security property. Now, both TLS handshake messages and X.509 certificates signed with MD5withRSA algorithm are no longer acceptable by default. This change extends the previous MD5-based certificate restriction („jdk.certpath.disabledAlgorithms“) to also include handshake messages in TLS version 1.2. If required, this algorithm can be reactivated by removing „MD5withRSA“ from the „jdk.tls.disabledAlgorithms“ security property.JDK-8144773 (not public)
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class BouncingBall { private static class BallPanel extends JPanel { // http://www.iconfinder.com/icondetails/8839/64/beach_ball_tourism_toys_icon private final Icon ball = new ImageIcon( BouncingBall.class.getResource( "ball.png" ) ); private int ballX, ballY, dx = 2, dy = 2; public BallPanel() { new Timer( 10, new ActionListener() { @Override public void actionPerformed( ActionEvent evt ) { ballX += dx; ballY += dy; if ( ballX <= 0 || ballX + ball.getIconWidth() >= getWidth() ) dx = -dx; if ( ballY <= 0 || ballY + ball.getIconHeight() >= getHeight() ) dy = -dy; repaint(); } } ).start(); } @Override public void paint( Graphics g ) { Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON ); g2d.setRenderingHint( RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY ); g2d.setColor( Color.WHITE ); g2d.fill( getBounds() ); ball.paintIcon( null, g2d, ballX, ballY ); } } public static void main( String[] args ) { JFrame f = new JFrame(); f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); f.setIgnoreRepaint( true ); f.add( new BallPanel() ); f.setBounds( 200, 100, 400, 200 ); f.setVisible( true ); } }
Update von von Eclipse 4.5 (MARS.2/Eclipse 4.5.2).
Holt es euch hier: https://eclipse.org/downloads/
Zur Unterstützung unseres Teams suchen wir eine(n)
Junior Software – Entwickler / Developer Java (m/w)
Oracle hat angekündigt, dass das Java-Plugin für Web-Browser mit dem Erscheinen von Java 9 im nächsten Jahr nicht mehr weiterentwickelt wird.
Nachdem Mozilla Firefox und auch Google Chrome ankündigten, das Java-Plugin nicht mehr weiter unterstützen zu wollen, sind das offenbar u. a. Gründe für den Abschied vom Browser-Plugin.
Der Anteil von Java-Applets ist ohnehin kaum noch „messbar“, spätestens mit dem Java 7 Update 51, mit dem die Sicherheitsmechanismen für Java-Applets noch einmal deutlich überarbeitet wurden, sind Java-Applets in „freier Wildbahn“ kaum noch zu finden.
Oracle empfiehlt als Ersatz Java WebStart, das ohne das Plugin auskommt.
http://www.heise.de/newsticker/meldung/Oracle-muss-Java-Updates-nachbessern-3052761.html
Was es für Änderungen gibt? https://poi.apache.org/changes.html
The Apache POI team is pleased to announce the release of 3.14-beta1. Featured are a handful of new areas of functionality – including basic support for the XML Visio format – and numerous bug fixes.
A summary of changes is available in the Release Notes. A full list of changes is available in the change log. People interested should also follow the dev list to track progress.
The POI source release as well as the pre-built binary deployment packages are listed below. Pre-built versions of all POI components are available in the central Maven repository under Group ID „org.apache.poi“ and Version „3.14-beta1“
… zum Weihnachtsfest und einen guten Rutsch ins neue Jahr.
* , _/^\_ < > * /.-.\ * * `/&\` * ,@.*;@, /_o.I %_\ * * (`'--:o(_@; /`;--.,__ `') * ;@`o % O,*`'`&\ * (`'--)_@ ;o %'()\ * /`;--._`''--._O'@; /&*,()~o`;-.,_ `""`) * /`,@ ;+& () o*`;-';\ (`""--.,_0 +% @' &()\ /-.,_ ``''--....-'`) * * /@%;o`:;'--,.__ __.'\ ;*,&(); @ % &^;~`"`o;@(); * /(); o^~; & ().o@*&`;&%O\ jgs `"="==""==,,,.,="=="==="` __.----.(\-''#####---...___...-----._ '` \)_`"""""` .--' ') o( )_-\ `"""` `
https://marketplace.eclipse.org/content/java-9-support-beta-neon. Java 9 muss installiert sein.
Mit einem JColorChooser lassen sich Farben über drei unterschiedliche Reiter auswählen. Der Benutzer hat die Auswahl zwischen vordefinierten Farben, HSB-Werten und RGB-Werten. Um den Farbauswahldialog auf den Bildschirm zu bekommen, genügt ein Aufruf von JColorChooser.showDialog(Component, String, Color) mit drei Argumenten: einem Component-Objekt (dem Vater des Dialogs), dem Titel und einer Anfangsfarbe. Beendet der Benutzer den Dialog, wird als Rückgabewert die ausgewählte Farbe geliefert. Wird der Dialog abgebrochen, so ist der Rückgabewert null:
JFrame f = new JFrame(); f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); JButton b = new JButton( "Farbe ändern" ); f.add( b ); b.addActionListener( new ActionListener() { @Override public void actionPerformed( ActionEvent e ) { Component comp = (Component) e.getSource(); Color newColor = JColorChooser.showDialog( null, "Wähle neue Farbe", comp.getBackground() ); comp.setBackground( newColor ); } } ); f.pack(); f.setVisible( true );
Den Aufruf mit showDialog(…) einzuleiten, ist nicht der einzige Weg. Wir können auch den Konstruktor nutzen und dieses Exemplar später mit JColorChooser.createDialog(…) übergeben und anzeigen.
class javax.swing.JColorChooser
extends JComponent implements Accessible
Neben der statischen Methode showDialog(…) lässt sich auch der Konstruktor nutzen, um ein JColorChooser als spezielles JComponent-Objekt aufzubauen. Das bringt den Vorteil mit sich, dass die Farbauswahl nicht zwingend in einem eigenständigen Dialog stattfinden muss, sondern dass im Fall einer Komponente diese zusammen mit anderen Komponenten auf einen Container gesetzt werden kann. Änderungen an der Auswahl registriert ein ChangeListener, der etwa so angewendet wird:
chooser.getSelectionModel().addChangeListener( new ChangeListener() { @Override public void stateChanged( ChangeEvent e ) { Color c = ((ColorSelectionModel) e.getSource()).getSelectedColor(); } } );
Weitere Beispiele finden sich unter http://www.java2s.com/Code/Java/Swing-JFC/Color-Chooser.htm. Wie ein neuer Reiter mit über 50 Schattierungen in der Graustufenanzeige eingebracht wird, zeigt etwa http://www.java2s.com/Code/Java/Swing-JFC/JColorChooserdialogwiththecustomGrayScalePanelpickertab.htm.