SlideShare uma empresa Scribd logo
1 de 115
Baixar para ler offline
Alexis Hassler
Jigsaw
est prêt à tuer le
classpath
octobre 2016
"Classpath is dead!"
Mark Reinhold
JavaOne 2009
Classpath
Classloader
Mort 
?
Succession
Alexis Hassler
Développeur
Formateur
Indépendant
Fondateur
Préparateur de
Classpath
String hello = "Salut à vous tous les zazous";
MyStuff var;
Chercher les classes
CLASSPATH
-classpath
java -cp hello-lib.jar HelloWorld
Manifest
Manifest-Version: 1.0
Class-Path: hello-lib.jar
Main-Class: HelloWorld
Connaître le classpath
System.getProperty("java.class.path");
Erreurs
java.lang.NoClassDefFoundError
java.lang.ClassNotFoundException
https://github.com/hasalex/classpath-demo
Classloader
Classpath
Géré par des classloaders
java.lang.ClassLoader
loadClass(String name) : Class<?>
getResource(String name) : URL
getResources(String name) : Enumeration<URL>
getResourceAsStream(String name) : InputStream
getParent() : ClassLoader
Classloader
sun.misc.Launcher$AppClassLoader
CLASSPATH
MyStuff.class.getClassLoader()
Bootstrap Classloader
null
classloader.getClass().getClassLoader()
Bootstrap Classloader
BootstrapClassLoader
ExtensionClasspath
sun.misc.Launcher$ExtClassLoader
sun.misc.Launcher$AppClassLoader
Délégation
BootstrapClassLoader
Parent
first
Parent
first
System ClassLoader
Extension ClassLoader
Délégation
java -cp hello-lib.jar ...
System.getProperty("java.class.path");
ClasspathSystem ClassLoader
Délégation
java -Djava.ext.dirs=~/.java8/ext ...
System.getProperty("java.ext.dirs");
Extension
Extension ClassLoader
Délégation
java -Xbootclasspath:hello-rt.jar ...
BootstrapClassLoader
System.getProperty("sun.boot.class.path");
bootclasspath
java -Xbootclasspath:hello-rt.jar ...
java -Xbootclasspath/a:hello-lib.jar ...
java -Xbootclasspath/p:hello-lib.jar ...
Endorsed
!= Extension
Endorsed
java -Djava.endorsed.dirs=~/.java8/endorsed ...
Endorsed
BootstrapClassLoader
Endorsed
APIs standards hors JCP
org.omg (CORBA), org.w3c.dom,
org.xml.sax (XML)
APIs standalone
JAXP, JAXB, Scripting, Compiler API,...
https://github.com/hasalex/classpath-demo
example.jar
Démonstration
BootstrapClassLoader
java -cp example.jar fr.sewatech.classpath.Count
System ClassLoader
java.lang.Integer
example.jar
Démonstration
BootstrapClassLoader
java -Xbootclasspath/p:example.jar fr.sewatech.classpath.Count
java.lang.Integer
URLClassloader
java.net.URLClassLoader
sun.misc.Launcher$AppClassLoader
sun.misc.Launcher$ExtClassLoader
URLURLURL
URLClassloader
System ClassLoader
Bootstrap ClassLoader
URL ClassLoader
URL ClassLoader
URL ClassLoader
Parent
first
Parent
first
Parent
first
message-launcher
message-main
message-common
message-printer
message-service
Démonstration
java -cp service.jar:launcher.jar fr.sewatech.classpath.Hello
message-launcher
message-main
message-common
message-printer
message-service
message-launcher
message-common
message-printer
message-service
Démonstration
java -cp service.jar:launcher.jar fr.sewatech.classpath.HelloViaUrl
message-serviceClasspath
URLClassloader
Démonstration
message-launcher
message-common
message-printer
message-service
message-service
System ClassLoader ParentFirst ClassLoader
FLTM Classloader
Fait Le Toi-Même
Usages
Application Servers
JRebel
Javassist, CGLib,...
Tomcat
System
Bootstrap
Common
Webapp1
Webapp2
Webapp3
Local First
JBoss AS 5
System
Bootstrap
Common
Web App
Ent App
Web Module
EJB Module
Local First
Repo First
Erreurs
ClassCastException
org.project.SomeStuff
cannot be cast to
org.project.SomeStuff
Erreurs
URL ClassLoader
URL ClassLoader
MyStuff var = MyStuffFactory.build();
return new MyStuff() ;
≠
https://github.com/hasalex/classpath-demo
Démonstration
message-launcher
message-common
message-printer
message-service
message-service
System ClassLoader LocalFirst ClassLoader
Mort ?
http://www.ironmaidenwallpaper.com/
Dépendances
Maven,
Gradle,
...
Dépendances
Classpath
Runtime
ClasspathA plat
Fichiers jar
juste du stockage
pas ou peu de métadonnée
https://github.com/hasalex/classpath-demo
Démonstration
slf4j-api
1.5.11
slf4j-api
1.7.2
message-launcher
message-main
message-common
message-printer
message-service
Granularité
Sécurité
Apache commons-collections
https://foxglovesecurity.com/
Succession
Modularité
Dépendance
Exposition
Lecture
1999
Java embarqué
Java SE
Java serveur
OSGi
Bundle
Fichier jar
META-INF/MANIFEST.MF
Import / export de packages
Bundle-Name = Simple Bundle
Bundle-SymbolicName = simple-bundle
Bundle-Description = Simple Bundle
Bundle-Version = 1.0.1
Export-Package = fr.sewatech.mystuff.services
Import-Package = org.osgi.framework;version=1.3
OSGi
OSGi
OS + Hardware
Java Execution Environment
Applications
(bundles)
Module
Life Cycle
Services
JBoss Modules
Sous-projet de Wildfy
Inspiré de Jigsaw (version 2010)
Base de JBoss OSGi
JBoss Modules
java -jar jboss-modules.jar -mp path/to/modules
my.main.module.name
Java SE
JBoss Modules
hibernate-infinispan-4.1.6.Final.jar
module.xml
hibernate-core-4.1.6.Final.jar
hibernate-entitymanager-4.1.6.Final.jar
modules
com
fr
org
...
org
hibernate
main
JBoss Modules
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.hibernate">
<resources>
<resource-root path="hibernate-core-4.0.0.Final.jar"/>
<resource-root path="hibernate-commons-annotations-4.0.1.Final.jar"/>
<resource-root path="hibernate-entitymanager-4.0.0.Final.jar"/>
</resources>
...
</module>
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.hibernate">
...
<dependencies>
<module name="javax.api"/>
<module name="javax.persistence.api"/>
<module name="javax.transaction.api"/>
<module name="org.apache.commons.collections"/>
<!-- ... -->
</dependencies>
</module>
JBoss Modules
JBoss Modules
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1"
name="fr.sewatech.message-launcher">
<main-class name="fr.sewatech.classpath.Hello"/>
...
</module>
https://github.com/hasalex/classpath-demo
JBoss Modules
Artefacts ≠ Modules
Notions différentes
Build diffcile
Mauvaise intégration aux outils
Jigsaw
Projet OpenJDK
Intégré au JDK 7 (2008)
9 (2016)
8 (2012)
(2017)
Jigsaw
Modularité du JDK
Corba pour Hello World ?
Swing pour Tomcat ?
Jigsaw
Modularité des applications
module-info.java
module message.service {
requires java.xml.bind;
requires message.common;
exports fr.sewatech.message;
}
Jigsaw
Compilation
javac --module-path modules 
-d target/classes/ 
$(find src/main/java/ -name "*.java")
Jigsaw
Exécution
java --module-path jigsaw-modules 
-m misc.examples/fr.sewatech.example.Main
https://github.com/hasalex/classpath-demo
Jigsaw ++
Demo
Source code
http://github.com/hasalex/classpath-demo
JDK 9
9-ea+138-jigsaw-nightly-h5561-20161003
Demo
Maven
maven-compiler-plugin:3.6-jigsaw-SNAPSHOT
org.ow2.asm:asm:6.0_ALPHA
plexus-compiler-api:2.8.2-SNAPSHOT
plexus-compiler-manager:2.8.2-SNAPSHOT
plexus-compiler-javac:2.8.2-SNAPSHOT
Demo
IDE
Jetbrains IDEA
Eclipse
Netbeans
Specifcations
JSR 376:
Java Platform Module System
JSR 379:
Java SE 9
Specifcations
JEPs
JEP 261: Module System
JEP 200: The Modular JDK
JEP 260: Encapsulate Most Internal APIs
JEP 201: Modular Source Code
JEP 220: Modular Run-Time Images
JEP 282: jlink: The Java Linker
Modular JDK
rt.jar tools.jar
Modular JDK
Modular JDK
Standard APIs
java.*, javax.*
Supported APIs
com.sun.*,
jdk.*
Unsupported
APIs
sun.*
sun.misc.Unsafe,
sun.misc.BASE64Decoder,
sun.misc.BASE64Encoder
https://github.com/hasalex/classpath-demo
Classpath mode
Classpath is NOT dead
java -classpath lib/* fr.sewatech.example.Main
https://github.com/hasalex/classpath-demo
Dependencies
module message.service {
requires message.printer;
requires message.common;
}
message.service
message.printer
message.common
Dependencies
module message.service {
requires message.printer;
}
module message.printer {
requires transitive message.common;
}
message.service
message.printer
message.common
Dependencies
Automatic modules
module message.service {
requires slf4j.api;
}
message.service
slf4j.api
slf4j-api-1.5.2.
Dependencies
Classpath
message.service
message.printer
message.common
unnamed
Dependencies
Optional
Required at compile time
module message.service {
requires static message.printer;
}
Dependencies
module message.service @ 1.0 {
requires message.printer @ 1.0;
requires slf4j.api @ 1.7;
}
Module version
https://github.com/hasalex/classpath-demo
Exports
Java accessibility
public
protected
package private
private
inside a module
Exports
Java accessibility
public for other modules
module message.service {
exports fr.sewatech.message;
}
Exports
Java accessibility
public for some modules
module java.base {
exports sun.reflect to
java.logging,
java.sql,
jdk.scripting.nashorn;
}
Exports
module message.service {
exports private java.security;
}
Encapsulation vs Refection
setAccessible(true)
field.setAccessible(true);
// => java.lang.reflect.InaccessibleObjectException
https://github.com/hasalex/classpath-demo
Classloader
Java
SE
M
odules
PlatformClassLoader
AppClassLoader
BootClassLoader
jdk.internal.loader.ClassLoaders$...
Classloader
jdk.internal.loader.BuiltinClassLoader
AppClassLoader
PlatformClassLoader
BootClassLoader
Classloader
Fait Le Toi-Même
java.net.URLClassLoader
FLTMClassLoader
Classloader
java -Djava.endorsed.dirs=~/.java8/endorsed ...
BootClassLoader
Classloader
java -Xbootclasspath:hello-rt.jar ...
BootClassLoader
System.getProperty("sun.boot.class.path");
Patch
Compile
javac -Xmodule:java.base 
-d ../patch-classes 
src/java/lang/Integer.java
Patch
Run
java --patch-module java.base=../patch-classes 
--module-path jigsaw-modules 
-m misc.examples
https://github.com/hasalex/classpath-demo
Layers
No Version
module message.service @ 1.0 {
requires message.printer @ 1.0;
requires slf4j.api @ 1.7;
}
Layers
Highlander rule #1
« There Can Be
Only One »
slf4j.api
Layers
org.slf4j
slf4j.other
org.slf4j
Layers
Boot Layer
App Loader Platform Loader Boot Loader
message.service slf4j.api java.basejava.xml.bind
Java Module System
Java Virtual Machine
Layers
Boot Layer
Java Module System
Java Virtual Machine
Quand ?
Planning
Java SE 9
Septembre 2017
Planning
Outils ?
Maven, Gradle, IDE
Livrairies ?
Runtimes ?
Java EE, Tomcat,...
Essayer...
https://jdk9.java.net/download/
Exécutable d'installation
https://jdk9.java.net/jigsaw/
Archive
Dernières évolutions de Jigsaw
Apprendre +
JavaOne
http://openjdk.java.net/projects/jigsaw/talks/
Quick-Start Guide
http://openjdk.java.net/projects/jigsaw/quick-start
The State of the Module System
http://openjdk.java.net/projects/jigsaw/spec/sotms/
@AlexisHassler
http://alexis-hassler.com
http://sewatech.fr

Mais conteúdo relacionado

Mais procurados

Java build tool_comparison
Java build tool_comparisonJava build tool_comparison
Java build tool_comparisonManav Prasad
 
JRuby in Java Projects
JRuby in Java ProjectsJRuby in Java Projects
JRuby in Java Projectsjazzman1980
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbtFabio Fumarola
 
Web application development using Play Framework (with Java)
Web application development using Play Framework (with Java)Web application development using Play Framework (with Java)
Web application development using Play Framework (with Java)Saeed Zarinfam
 
JRuby, Ruby, Rails and You on the Cloud
JRuby, Ruby, Rails and You on the CloudJRuby, Ruby, Rails and You on the Cloud
JRuby, Ruby, Rails and You on the CloudHiro Asari
 
Mastering Java Bytecode - JAX.de 2012
Mastering Java Bytecode - JAX.de 2012Mastering Java Bytecode - JAX.de 2012
Mastering Java Bytecode - JAX.de 2012Anton Arhipov
 
55 new things in Java 7 - Devoxx France
55 new things in Java 7 - Devoxx France55 new things in Java 7 - Devoxx France
55 new things in Java 7 - Devoxx FranceDavid Delabassee
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot IntroductionJeevesh Pandey
 
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyConnecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyNick Sieger
 
Fundamentals of java --- version 2
Fundamentals of java --- version 2Fundamentals of java --- version 2
Fundamentals of java --- version 2Uday Sharma
 
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Julian Robichaux
 
Java Bytecode For Discriminating Developers - GeeCON 2011
Java Bytecode For Discriminating Developers - GeeCON 2011Java Bytecode For Discriminating Developers - GeeCON 2011
Java Bytecode For Discriminating Developers - GeeCON 2011Anton Arhipov
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMYuji Kubota
 
It pro dev_birbilis_20101127_en
It pro dev_birbilis_20101127_enIt pro dev_birbilis_20101127_en
It pro dev_birbilis_20101127_enGeorge Birbilis
 
Why Doesn't Java Has Instant Turnaround - Con-FESS 2012
Why Doesn't Java Has Instant Turnaround - Con-FESS 2012Why Doesn't Java Has Instant Turnaround - Con-FESS 2012
Why Doesn't Java Has Instant Turnaround - Con-FESS 2012Anton Arhipov
 
Супер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOSСупер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOSSQALab
 

Mais procurados (20)

Java build tool_comparison
Java build tool_comparisonJava build tool_comparison
Java build tool_comparison
 
Play ja kansai
Play ja kansaiPlay ja kansai
Play ja kansai
 
JRuby in Java Projects
JRuby in Java ProjectsJRuby in Java Projects
JRuby in Java Projects
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbt
 
Web application development using Play Framework (with Java)
Web application development using Play Framework (with Java)Web application development using Play Framework (with Java)
Web application development using Play Framework (with Java)
 
JRuby, Ruby, Rails and You on the Cloud
JRuby, Ruby, Rails and You on the CloudJRuby, Ruby, Rails and You on the Cloud
JRuby, Ruby, Rails and You on the Cloud
 
Mastering Java Bytecode - JAX.de 2012
Mastering Java Bytecode - JAX.de 2012Mastering Java Bytecode - JAX.de 2012
Mastering Java Bytecode - JAX.de 2012
 
Introduction to java programming part 1
Introduction to java programming   part 1Introduction to java programming   part 1
Introduction to java programming part 1
 
55 new things in Java 7 - Devoxx France
55 new things in Java 7 - Devoxx France55 new things in Java 7 - Devoxx France
55 new things in Java 7 - Devoxx France
 
Spring boot Introduction
Spring boot IntroductionSpring boot Introduction
Spring boot Introduction
 
Connecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRubyConnecting the Worlds of Java and Ruby with JRuby
Connecting the Worlds of Java and Ruby with JRuby
 
Fundamentals of java --- version 2
Fundamentals of java --- version 2Fundamentals of java --- version 2
Fundamentals of java --- version 2
 
Simple Build Tool
Simple Build ToolSimple Build Tool
Simple Build Tool
 
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
Connect2017 DEV-1550 Why Java 8? Or, What's a Lambda?
 
Java Bytecode For Discriminating Developers - GeeCON 2011
Java Bytecode For Discriminating Developers - GeeCON 2011Java Bytecode For Discriminating Developers - GeeCON 2011
Java Bytecode For Discriminating Developers - GeeCON 2011
 
Head toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DMHead toward Java 14 and Java 15 #LINE_DM
Head toward Java 14 and Java 15 #LINE_DM
 
Apache Maven basics
Apache Maven basicsApache Maven basics
Apache Maven basics
 
It pro dev_birbilis_20101127_en
It pro dev_birbilis_20101127_enIt pro dev_birbilis_20101127_en
It pro dev_birbilis_20101127_en
 
Why Doesn't Java Has Instant Turnaround - Con-FESS 2012
Why Doesn't Java Has Instant Turnaround - Con-FESS 2012Why Doesn't Java Has Instant Turnaround - Con-FESS 2012
Why Doesn't Java Has Instant Turnaround - Con-FESS 2012
 
Супер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOSСупер быстрая автоматизация тестирования на iOS
Супер быстрая автоматизация тестирования на iOS
 

Destaque

Pourquoi nos 500 membres ont adhéré à l’association
Pourquoi nos  500 membres ont adhéré à l’associationPourquoi nos  500 membres ont adhéré à l’association
Pourquoi nos 500 membres ont adhéré à l’associationdesigners interactifs
 
El almuerzo del cole
El almuerzo del coleEl almuerzo del cole
El almuerzo del coleCRASOMONTANO
 
Les services de données (SQL/NoSQL) sur Azure
Les services de données (SQL/NoSQL) sur AzureLes services de données (SQL/NoSQL) sur Azure
Les services de données (SQL/NoSQL) sur AzureSamir Arezki ☁
 
Winter 1
Winter 1Winter 1
Winter 1Maya981
 
**INSTRUCTIVO REQUERIDO PARA DESARROLLAR PROYECTO ABP DUALISMO
**INSTRUCTIVO REQUERIDO PARA DESARROLLAR PROYECTO ABP DUALISMO**INSTRUCTIVO REQUERIDO PARA DESARROLLAR PROYECTO ABP DUALISMO
**INSTRUCTIVO REQUERIDO PARA DESARROLLAR PROYECTO ABP DUALISMOEdgar Devia Góngora
 
E-Réputation apéri tic 17.04.2014
E-Réputation apéri tic 17.04.2014E-Réputation apéri tic 17.04.2014
E-Réputation apéri tic 17.04.2014elaugier
 
CV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALCV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALYoussouph Barry
 
Une solution transversale pour le développement pharmaceutique
Une solution transversale pour le développement pharmaceutique Une solution transversale pour le développement pharmaceutique
Une solution transversale pour le développement pharmaceutique Hopitaux Universitaires de Genève
 
Cambios producidos por la energia del agua.Primaria. IE N°1198 La Ribera. Aul...
Cambios producidos por la energia del agua.Primaria. IE N°1198 La Ribera. Aul...Cambios producidos por la energia del agua.Primaria. IE N°1198 La Ribera. Aul...
Cambios producidos por la energia del agua.Primaria. IE N°1198 La Ribera. Aul...IE 1198 LA RIBERA
 
Bedienungsanleitung Hotel TV LG 26LH200H
Bedienungsanleitung Hotel TV LG 26LH200HBedienungsanleitung Hotel TV LG 26LH200H
Bedienungsanleitung Hotel TV LG 26LH200HLG Electronics Germany
 
Musicaaltovolumen
MusicaaltovolumenMusicaaltovolumen
Musicaaltovolumenguest8408a1
 
Générer un "Dance Dance Revolution" avec Web Audio API
Générer un "Dance Dance Revolution" avec Web Audio APIGénérer un "Dance Dance Revolution" avec Web Audio API
Générer un "Dance Dance Revolution" avec Web Audio APISann-Remy Chea
 
Sélection d'applications pour les enfants de 6 à 11 ans - Octobre 2014
Sélection d'applications pour les enfants de 6 à 11 ans - Octobre 2014Sélection d'applications pour les enfants de 6 à 11 ans - Octobre 2014
Sélection d'applications pour les enfants de 6 à 11 ans - Octobre 2014Le Cube - Connectons nos Ecoles
 
Eucup2011 de sk
Eucup2011 de skEucup2011 de sk
Eucup2011 de sksteven100
 

Destaque (20)

Pourquoi nos 500 membres ont adhéré à l’association
Pourquoi nos  500 membres ont adhéré à l’associationPourquoi nos  500 membres ont adhéré à l’association
Pourquoi nos 500 membres ont adhéré à l’association
 
El almuerzo del cole
El almuerzo del coleEl almuerzo del cole
El almuerzo del cole
 
Actualización IRA 2010
Actualización IRA 2010Actualización IRA 2010
Actualización IRA 2010
 
Les services de données (SQL/NoSQL) sur Azure
Les services de données (SQL/NoSQL) sur AzureLes services de données (SQL/NoSQL) sur Azure
Les services de données (SQL/NoSQL) sur Azure
 
Enlace Ciudadano Nro. 262 - Artículos Panamá y Colombia
Enlace Ciudadano Nro. 262 - Artículos Panamá y ColombiaEnlace Ciudadano Nro. 262 - Artículos Panamá y Colombia
Enlace Ciudadano Nro. 262 - Artículos Panamá y Colombia
 
deu TELE-audiovision-1311
deu TELE-audiovision-1311deu TELE-audiovision-1311
deu TELE-audiovision-1311
 
Winter 1
Winter 1Winter 1
Winter 1
 
Présentation3
Présentation3Présentation3
Présentation3
 
**INSTRUCTIVO REQUERIDO PARA DESARROLLAR PROYECTO ABP DUALISMO
**INSTRUCTIVO REQUERIDO PARA DESARROLLAR PROYECTO ABP DUALISMO**INSTRUCTIVO REQUERIDO PARA DESARROLLAR PROYECTO ABP DUALISMO
**INSTRUCTIVO REQUERIDO PARA DESARROLLAR PROYECTO ABP DUALISMO
 
E-Réputation apéri tic 17.04.2014
E-Réputation apéri tic 17.04.2014E-Réputation apéri tic 17.04.2014
E-Réputation apéri tic 17.04.2014
 
CV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPALCV_Youssouph_BARRY_DRUPAL
CV_Youssouph_BARRY_DRUPAL
 
Une solution transversale pour le développement pharmaceutique
Une solution transversale pour le développement pharmaceutique Une solution transversale pour le développement pharmaceutique
Une solution transversale pour le développement pharmaceutique
 
Communiquer les données probantes pour soutenir l'implantation des dossiers m...
Communiquer les données probantes pour soutenir l'implantation des dossiers m...Communiquer les données probantes pour soutenir l'implantation des dossiers m...
Communiquer les données probantes pour soutenir l'implantation des dossiers m...
 
Cambios producidos por la energia del agua.Primaria. IE N°1198 La Ribera. Aul...
Cambios producidos por la energia del agua.Primaria. IE N°1198 La Ribera. Aul...Cambios producidos por la energia del agua.Primaria. IE N°1198 La Ribera. Aul...
Cambios producidos por la energia del agua.Primaria. IE N°1198 La Ribera. Aul...
 
Bedienungsanleitung Hotel TV LG 26LH200H
Bedienungsanleitung Hotel TV LG 26LH200HBedienungsanleitung Hotel TV LG 26LH200H
Bedienungsanleitung Hotel TV LG 26LH200H
 
Enlace Ciudadano Nro. 235 - Ahorro vs liquidez
Enlace Ciudadano Nro. 235 -  Ahorro vs liquidezEnlace Ciudadano Nro. 235 -  Ahorro vs liquidez
Enlace Ciudadano Nro. 235 - Ahorro vs liquidez
 
Musicaaltovolumen
MusicaaltovolumenMusicaaltovolumen
Musicaaltovolumen
 
Générer un "Dance Dance Revolution" avec Web Audio API
Générer un "Dance Dance Revolution" avec Web Audio APIGénérer un "Dance Dance Revolution" avec Web Audio API
Générer un "Dance Dance Revolution" avec Web Audio API
 
Sélection d'applications pour les enfants de 6 à 11 ans - Octobre 2014
Sélection d'applications pour les enfants de 6 à 11 ans - Octobre 2014Sélection d'applications pour les enfants de 6 à 11 ans - Octobre 2014
Sélection d'applications pour les enfants de 6 à 11 ans - Octobre 2014
 
Eucup2011 de sk
Eucup2011 de skEucup2011 de sk
Eucup2011 de sk
 

Semelhante a Jigsaw is ready to kill the classpath

DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java
DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath JavaDevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java
DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath JavaAlexis Hassler
 
jbang: Unleash the power of Java for shell scripting
jbang: Unleash the power of Java for shell scriptingjbang: Unleash the power of Java for shell scripting
jbang: Unleash the power of Java for shell scriptingRed Hat Developers
 
Microsoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptx
Microsoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptxMicrosoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptx
Microsoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptxtutorialsruby
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />tutorialsruby
 
Do you really get class loaders?
Do you really get class loaders? Do you really get class loaders?
Do you really get class loaders? guestd56374
 
Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVAHome
 
Xopus Application Framework
Xopus Application FrameworkXopus Application Framework
Xopus Application FrameworkJady Yang
 
Oscon Java Testing on the Fast Lane
Oscon Java Testing on the Fast LaneOscon Java Testing on the Fast Lane
Oscon Java Testing on the Fast LaneAndres Almiray
 
Moving to Module: Issues & Solutions
Moving to Module: Issues & SolutionsMoving to Module: Issues & Solutions
Moving to Module: Issues & SolutionsYuichi Sakuraba
 
Groovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applicationsGroovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applicationsIndicThreads
 
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011Nick Sieger
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing UpDavid Padbury
 
Apache Maven supports all Java (JokerConf 2018)
Apache Maven supports all Java (JokerConf 2018)Apache Maven supports all Java (JokerConf 2018)
Apache Maven supports all Java (JokerConf 2018)Robert Scholte
 
No dark magic - Byte code engineering in the real world
No dark magic - Byte code engineering in the real worldNo dark magic - Byte code engineering in the real world
No dark magic - Byte code engineering in the real worldtcurdt
 
Java programming basics
Java programming basicsJava programming basics
Java programming basicsHamid Ghorbani
 
Frontend JS workflow - Gulp 4 and the like
Frontend JS workflow - Gulp 4 and the likeFrontend JS workflow - Gulp 4 and the like
Frontend JS workflow - Gulp 4 and the likeDamien Seguin
 

Semelhante a Jigsaw is ready to kill the classpath (20)

DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java
DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath JavaDevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java
DevFest Nantes 2016 - Jigsaw est prêt à tuer le classpath Java
 
jbang: Unleash the power of Java for shell scripting
jbang: Unleash the power of Java for shell scriptingjbang: Unleash the power of Java for shell scripting
jbang: Unleash the power of Java for shell scripting
 
Microsoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptx
Microsoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptxMicrosoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptx
Microsoft PowerPoint - &lt;b>jQuery&lt;/b>-1-Ajax.pptx
 
&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />&lt;img src="../i/r_14.png" />
&lt;img src="../i/r_14.png" />
 
jQuery-1-Ajax
jQuery-1-AjaxjQuery-1-Ajax
jQuery-1-Ajax
 
jQuery-1-Ajax
jQuery-1-AjaxjQuery-1-Ajax
jQuery-1-Ajax
 
Mastering Java ByteCode
Mastering Java ByteCodeMastering Java ByteCode
Mastering Java ByteCode
 
Do you really get class loaders?
Do you really get class loaders? Do you really get class loaders?
Do you really get class loaders?
 
Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVA
 
Jet presentation
Jet presentationJet presentation
Jet presentation
 
Xopus Application Framework
Xopus Application FrameworkXopus Application Framework
Xopus Application Framework
 
Oscon Java Testing on the Fast Lane
Oscon Java Testing on the Fast LaneOscon Java Testing on the Fast Lane
Oscon Java Testing on the Fast Lane
 
Moving to Module: Issues & Solutions
Moving to Module: Issues & SolutionsMoving to Module: Issues & Solutions
Moving to Module: Issues & Solutions
 
Groovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applicationsGroovy - Grails as a modern scripting language for Web applications
Groovy - Grails as a modern scripting language for Web applications
 
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
JRuby + Rails = Awesome Java Web Framework at Jfokus 2011
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
 
Apache Maven supports all Java (JokerConf 2018)
Apache Maven supports all Java (JokerConf 2018)Apache Maven supports all Java (JokerConf 2018)
Apache Maven supports all Java (JokerConf 2018)
 
No dark magic - Byte code engineering in the real world
No dark magic - Byte code engineering in the real worldNo dark magic - Byte code engineering in the real world
No dark magic - Byte code engineering in the real world
 
Java programming basics
Java programming basicsJava programming basics
Java programming basics
 
Frontend JS workflow - Gulp 4 and the like
Frontend JS workflow - Gulp 4 and the likeFrontend JS workflow - Gulp 4 and the like
Frontend JS workflow - Gulp 4 and the like
 

Último

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Último (20)

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

Jigsaw is ready to kill the classpath