Modular Java Platform



Documents pareils
Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Module d anonymisation

CONFIGURATION DE LA LIBRAIRIE WEBUTIL (10g) Oracle Forms 10g

Java pour le Web. Cours Java - F. Michel

Construction et déploiement d applications Java avec Maven, Archiva, Groovy et Jenkins

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

TP1 : Initiation à Java et Eclipse


Bases Java - Eclipse / Netbeans

I. Instalation de l environnement JDK et JRE : II. Configuration outil Reporting : Pentaho... 4

Environnements de développement (intégrés)

Oracle WebLogic Server (WLS) 11gR1 ( et ) Installation sur Oracle Linux 5 et 6 Hypothèses Installation Oracle Linux 5 (OL5)

Machine virtuelle Java pour Palm TX

Java - la plateforme

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Projet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn

Hudson Serveur d Intégration Continue. Adrien Lecharpentier IR3 Ingénieurs2000, Université de Marne la Vallée

JOnAS Day 5.1. Outils de développements

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Java DataBaseConnectivity

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

S T L - C P S - L e s p l u g i n s E c l i p s e. - Une Introduction , Frédéric Peschanski

TP1. Outils Java Eléments de correction

TD/TP 1 Introduction au SDK d Android

La technologie Java Card TM

Projet de développement

Java Licence professionnelle CISII,

Initiation à JAVA et à la programmation objet.

Vulgarisation Java EE Java EE, c est quoi?

Open Source Job Scheduler. Installation(s)

Plan du cours. Historique du langage Nouveautés de Java 7

Déploiement d une architecture Hadoop pour analyse de flux. françois-xavier.andreu@renater.fr

Annexe 10 - Procédure pour créer un Jar

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

TP1 : Initiation à Java et Eclipse

as Architecture des Systèmes d Information

Création d un service web avec NetBeans 5.5 et SJAS 9

Web Tier : déploiement de servlets

Curriculum Vitae de Michel Casabianca

La base de données XML exist. A. Belaïd

DOSSIER DEVELOPPEUR Projet CAR

Utilisation de Jakarta Tomcat

CloudBees AnyCloud : Valeur, Architecture et Technologie cloud pour l entreprise


Titre: Version: Dernière modification: Auteur: Statut: Licence:

Installer Enterprise Miner 5.1 en SAS environnement Windows

Famille IBM WebSphere Application Server

Introduction à Java. Philippe Genoud.

SGDN. Projet: JAVASEC

Eclipse atelier Java

Installation et prise en main

Quick Start Installation de MDweb version 2.3

TP Programmation Java / JDBC / Oracle

I-JVM: une machine virtuelle Java pour l isolation de composants dans OSGi

Sommaire: 1. Introduction 2. Objectif 3. Les applications 4. Installation _Java _Applications lourdes _Applications légères _Remarques générales

Votre premier projet Android

DotNet. Plan. Les outils de développement

Remote Method Invocation (RMI)

Titre: Version: Dernière modification: Auteurs: Statut: Remplace: Licence:

IBM SPSS Collaboration and Deployment Services Deployment Manager 5 - Instructions d installation

Notice d installation du patch Lia 8.20

ELO Office / Pro Les avantages : Archivage et gestion documentaire

bbc Launch Pad Juillet 2011 Version 10.0

WORKSHOP OBIEE 11g (version ) PRE-REQUIS:

Livrer chaque jour ce qui est prêt! Points clés du développement d un produit avec une livrasion par jour.

Manuel d installation de l application Dimona New via SMS

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Cours 1: Java et les objets

JAHIA CMS ET PORTAL SERVER

MANUEL D INSTALLATION de GEONETWORK sur un serveur LINUX CentOS 4

SOA Open Source Intégration des services et business process dans une architecture SOA Open Source. Bruno Georges JBoss, a Division of Red Hat

Java au cœur de la base de données Oracle

Introduction à Eclipse

Guide des Développeurs SITools2 V3

JOnAS Day 5.1. Clustering

ECLIPSE RCP. Introduction

Déployer les Fonts, Icones, et Images avec Forms Services 11G

Experts en technologies Open Source et méthodes Agiles

Logiciels Open Sources et le Secteur Privé

Java Licence Professionnelle CISII,

EJBCA PKI Open Source

GUIDE ADMINISTRATEUR. Open Source Job Scheduler. Version Solutions Open Source Paris Septembre 2012

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Applications distribuées: le retour du client "riche"

Configuration Interface for MEssage ROuting

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

RMI le langage Java XII-1 JMF

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Alfstore workflow framework Spécification technique

Java Avancé. Le langage Java. Rémi Forax

Introduction à JDBC. Accès aux bases de données en Java

1. Installation d'un serveur d'application JBoss:

Annexe : La Programmation Informatique

Catalogue Formation «Vanilla»

Chapitre I Notions de base et outils de travail

Transcription:

Modular Java Platform Date : 9 avril 2015 Format : Conférence Speakers : Brian Goetz, Java Language Architect chez Oracle La prochaine grosse fonctionnalité de Java 9 est la modularisation (connu sous le nom de jigsaw). A ses débuts, Java était petit : 2000 classes. Il a grossit au cours des versions. Le runtime JavaSE est énorme : 55 Mb. C est un problème à la fois pour les devices à la Raspberry Pi et pour les serveurs Sun. Dans JME, il y a un système de profiles : compact1 (11 Mo), compact2 (17 Mo), compact 3 (30Mo). Le problème est que si l on a besoin d une seule classe du compact3, il faut prendre tout le profil compact3. Start performance vs runtime performance La modularisation a un impact sur le système de sécurité de la JVM : la moitié du profil compact1 contient des packages en sun.* et *.internal.* Les développeurs utilisent ces classes qui ne devraient être utilisées que par les classes du JDK. A contrario, il existe des classes que personnes n utilisent. Suite à un sondage de Brian, personne dans l assemblée utilise le système de sécurité (SecurityManager ::checkpackageaccess) Jar Hell : application comportant 100 jars dans le classpath. Comment contrôler qu il n y a pas le même JAR de 2 versions différentes? Le classpath n est plus adapté aux applications

d aujourd hui. Lors de la création de Java, il n avait pas envisagé qu une application puisse comporter plus de 2 ou 3 JARs. La modularisation du JDK doit permettre de résoudre tous les problèmes évoqués. Qu est- ce qu un module? Maitrise de sa visibilité La 1 ière étape consiste à modulariser le JDK. C est l objectif du projet Jigsaw qui comporte 3 JEP et une JSR : JEP 200 : The Modular JDK JEP 201 : Modular source code JEP 220 : Modular Run- Times Image JEP TBD JSR 376 : Java Platform Module System Graphe de dépendances des modules de Java 9 : Légende : Module en orange : module du JRE Module en bleu : modules du JDK Grey arrows : implementation dependencies Blue arrows : runtime dependencies Le module base contiendra les packages java.lang et java.util. Système de dépendance transitive à la maven. Démo en live de la liste des modules du JDK 9. Puis utilisation de Java REPL : shell Java (jshell.sh). Autocomplétion. Méthode getmodule() sur la classe Class.

JEP 201 : Modular Source Code Les fichiers du code source java, C et CPP doivent être repackagées JEP 2220 : Modular Run- Time Images L arborescence du JRE avec ses répertoires lib, endorsed, ext et son rt.jar doit être retravaillé. Les JAR tools.jar et rt.jar vont disparaître.

L appel à ClassLoader.getSystemResource() va renvoyer une URL différente : jrt:/java.base/java/lang/class.class Le module java.sql contient les packages java.sql et javax.sql Afin que le module java.sql puisse utiliser la classe String du module java.lang, ce dernier doit exporter la classe (rendre visible). Le module java.sql a besoin des classes du package sun.reflect également compris dans le module java.base. Pour se faire, java.base n expose ce package que pour le module java.sql jmod est un nouveau format de module. C est également le nom d un outil pour créer des.jmod (comme l exécutable jar) L outil jlink permet de créer une image sur mesure de la JVM avec les modules désirés. Les projets open source utilisant les classes sun.* doivent se préparer à migrer. JEP TBD JSR 376 : Java Platform Module System Permet aux développeurs de définir leurs propres modules S intègre aux outils de builds comme Maven, Gradle et aux IDE Fournit une API de réflexion pour fournir des informations sur les modules S intègre aux systèmes de packaging existant (ex : RPM)

Questions / Réponses Question sur OSGI : pourquoi n avoir pas retenu OSGI pour le JDK? Le groupe d expertise Jigsaw a passé beaucoup de temps à analyser OSGI. Il a été convenu que OSGI était trop grand et trop petit à la fois. Exemple : il a un système de cycle de vie qui dépasse le cadre de la modularisation. Question sur la distribution des modules. Pas de réponse définitive. Ce n est pas dans l ADN d Oracle de fournir un repository à la Maven Central. Ce dernier pourrait faire le job.