Difference between revisions of "VT2016 Java9"

From air
Jump to navigation Jump to search
Line 12: Line 12:
   
 
= Synthèse =
 
= Synthèse =
== Toutes les nouveautées ==
+
== Toutes les nouveautés ==
Toutes les nouveautées présentes dans Java 9 sont présentés à ce lien:
+
Toutes les nouveautés présentes dans Java 9 sont présentés à ce lien:
 
[http://openjdk.java.net/projects/jdk9/]
 
[http://openjdk.java.net/projects/jdk9/]
   
Line 47: Line 47:
   
 
== Money API ==
 
== Money API ==
Voici un tout nouveau module qui arrivera dans java 9. Ce module a déjà été réalisé, et il est disponible sur Github, vous pouvez déjà l’utiliser, à condition de l’importer dans votre projet. Ce module permet de gérer les différents format de monnaie rapidement. Voici un exemple d'utilisation:
+
*Voici un tout nouveau module qui arrivera dans java 9. Ce module a déjà été réalisé, et il est disponible sur Github, vous pouvez déjà l’utiliser, à condition de l’importer dans votre projet. Ce module permet de gérer les différents format de monnaie rapidement. Voici un exemple d'utilisation:
   
 
Money money= Money.of(10.12345, "USD");
 
Money money= Money.of(10.12345, "USD");
Line 53: Line 53:
 
System.out.println(germanFormat.format(money));
 
System.out.println(germanFormat.format(money));
   
Lorsque java 9 sera sorti, il ne sera donc plus nécessaire de l’importer et de le compiler, puisque il sera intégré directement dans le compilateur.
+
*Lorsque java 9 sera sorti, il ne sera donc plus nécessaire de l’importer et de le compiler, puisque il sera intégré directement dans le compilateur.
  +
  +
  +
== Datagram Transport Layer Security ==
  +
  +
Ce module est une nouvelle API. Java 9 sera donc accompagné de la version 1.0 de ce module. Ce module fournit une sécurisation des échanges basés sur des protocoles en mode datagramme. Ce protocole, nommé par DTLS, fournit des sécurités similaires au protocole TLS, le successeur du SSL. Ce nouveau module permettra donc de sécuriser de la même manière des transferts de données en TCP, grâce à TLS, qu’en UDP, grâce à DTLS.
  +
  +
== HTTP2 Client ==
  +
  +
Encore une fois, ceci est une nouvelle API. Elle est destinée à permettre d’utiliser le protocole HTTP 2 et remplacer l’API actuel, HttpUrlConnection. Les buts complémentaires de cet API sont:
  +
*être simple d’utilisation pour les cas courants
  +
*la sécurité doit être renforcé par rapport à l’API précédente
  +
*l'API doit supporter les protocoles TLS et DTLS, que je vous ai présenté juste avant.
  +
Aujourd’hui, il est déjà possible d’utiliser ce protocole HTTP2 en java, à condition d’utiliser le plugin Jetty, qui lui gère, entre autre, HTTP2.

Revision as of 19:17, 3 November 2016

Présentation

  • Sujet: Java 9, Modules and Services
  • Auteur: Benjamin LUCIDARME
  • Enseignants: Didier DONSEZ, Georges-Pierre BONNEAU

Java9-281x300.jpg

Résumé

Aujourd’hui plus de 9 millions de développeurs à travers le monde utilisent java, ce qui fait de lui une des premières plateformes de développement. En juillet 2017, une nouvelle version de Java sera disponible, 3 ans après Java 1.8. Quasiment 90 modifications ont été annoncé afin d'offrir aux développeurs plus de simplicité et de possibilités. Parmi toutes ces nouveautés, Oracle a annoncé l'intégration de Jigsaw à Java 9.

Abstract

Today more than 9 million developers worldwide use Java, which makes him one of the first development platforms. In July 2017, a new version of Java will be available 3 years after Java 1.8. Nearly 90 amendments were announced in order to provide developers with greater simplicity and opportunity. Among these innovations, Oracle announced the integration of Jigsaw in Java 9.

Synthèse

Toutes les nouveautés

Toutes les nouveautés présentes dans Java 9 sont présentés à ce lien: [1]

Vous pouvez également les consulter rapidement sur les photos ci-dessous:

JavaFeature1.png JavaFeature2.png JavaFeature3.png

Nous allons en analyser quelques uns plus en profondeur.

Process API Update

  • Pour commencer, je vous présente la mise à jour de l’API Process. Cet API est utile pour contrôler le processus et obtenir des informations sur celui-ci. Dans java 1.8, pour obtenir l’identifiant du processus par exemple, il est nécessaire d’exécuter le code suivant.
public static void main(String[] args) throws Exception
{
Process proc = Runtime.getRuntime().exec(new String[]{ "/bin/sh", "-c", "echo $PPID" });
 
if (proc.waitFor() == 0)
{
InputStream in = proc.getInputStream();
int available = in.available();
byte[] outputBytes = new byte[available];
 
in.read(outputBytes);
String pid = new String(outputBytes);
 
System.out.println("Your pid is " + pid);
}
}
  • Grace à l’udapte de l’API, des fonctions permettant d’obtenir des informations serons inscrites en static et donc accessible depuis n’importe ou. Une seule ligne suffit donc:
System.out.println("Your pid is " + Process.getCurrentPid());

Money API

  • Voici un tout nouveau module qui arrivera dans java 9. Ce module a déjà été réalisé, et il est disponible sur Github, vous pouvez déjà l’utiliser, à condition de l’importer dans votre projet. Ce module permet de gérer les différents format de monnaie rapidement. Voici un exemple d'utilisation:
Money money= Money.of(10.12345, "USD");
MonetaryAmountFormat germanFormat = MonetaryFormats.getAmountFormat(Locale.GERMANY);
System.out.println(germanFormat.format(money));
  • Lorsque java 9 sera sorti, il ne sera donc plus nécessaire de l’importer et de le compiler, puisque il sera intégré directement dans le compilateur.


Datagram Transport Layer Security

Ce module est une nouvelle API. Java 9 sera donc accompagné de la version 1.0 de ce module. Ce module fournit une sécurisation des échanges basés sur des protocoles en mode datagramme. Ce protocole, nommé par DTLS, fournit des sécurités similaires au protocole TLS, le successeur du SSL. Ce nouveau module permettra donc de sécuriser de la même manière des transferts de données en TCP, grâce à TLS, qu’en UDP, grâce à DTLS.

HTTP2 Client

Encore une fois, ceci est une nouvelle API. Elle est destinée à permettre d’utiliser le protocole HTTP 2 et remplacer l’API actuel, HttpUrlConnection. Les buts complémentaires de cet API sont:

   *être simple d’utilisation pour les cas courants
   *la sécurité doit être renforcé par rapport à l’API précédente
   *l'API doit supporter les protocoles TLS et DTLS, que je vous ai présenté juste avant. 

Aujourd’hui, il est déjà possible d’utiliser ce protocole HTTP2 en java, à condition d’utiliser le plugin Jetty, qui lui gère, entre autre, HTTP2.