SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Jigsaw
Modularización en el JDK 9
@SuperSerch
JVM MX
Jigsaw en el tiempo
• Propuesto a finales del 2008 para JDK 7, que
debería estar listo a principios del 2010
• llegó 2009
• JDK 7 sale en 2011 y pospone jigsaw para JDK8,
que debería estar listo a mediados 2013
• JDK 8 sale en 2014 y pospone jigsaw para JDK9,
que deberá estar listo en Septiembre 2016Marzo 2017
JDK Monolítico
• Tamaño del JDK 6 (Oct 2008)
• JRE ~16MB, JDK ~80MB
• Tamaño del JDK 8
• JRE ~60MB, JDK ~160MB
Classpath hell
./activation-1.0.2.jar:./antlr-runtime-4.0.jar:./arq-2.8.5.jar:./arthurdo.jar:./bigdata-1.0.1.jar:./bliki-3.0.6.jar:./bsh-
core-2.0b4.jar:./ChatServer.jar:./chiba-1.4.0.jar:./chiba-web-2.2.0.jar:./cmu_time_awb.jar:./cmu_us_kal.jar:./
cmudict04.jar:./cmulex.jar:./cmutimelex.jar:./colt-1.2.0.jar:./commons-beanutils-1.7.jar:./commons-
codec-1.3.jar:./commons-collections-2.1.jar:./commons-digester-1.7.jar:./commons-email-1.1.jar:./commons-
fileupload-1.2.1.jar:./commons-httpclient-3.0.1.jar:./commons-io-1.3.jar:./commons-jxpath-1.2-chiba-
patched.jar:./commons-logging-1.1.1.jar:./commons-pool-1.5.6.jar:./concurrent.jar:./ctc_utils-5-4-2005.jar:./
cweb-extser-0.1-b2-dev.jar:./dojo.jar:./dom4j-1.6.1.jar:./dsi-utils-1.0.6-020610.jar:./dwr-1.1.1.jar:./en_us.jar:./
facebook-java-api-3.0.0-SNAPSHOT.jar:./facebook-java-api-schema-3.0.0-SNAPSHOT.jar:./fastutil-5.1.5.jar:./
fckeditor-java-core-2.4.1.jar:./fileupload-ext.jar:./fontbox-0.1.0.jar:./freetts.jar:./gnu-crypto.jar:./groovy-
all-1.6.3.jar:./guava-16.0.1.jar:./hadoop-common-2.3.0.jar:./hibernate3.jar:./high-scale-lib-v1.1.2.jar:./
hsqldb.jar:./icu4j-3_6.jar:./iri-0.8.jar:./isorelax.jar:./iText-2.1.5.jar:./iText-rtf-2.1.5.jar:./jasperreports-3.7.0.jar:./
jaxen-core.jar:./jaxen-jdom.jar:./jcommon-1.0.9.jar:./jcr-1.0.jar:./jdom.jar:./jena-2.6.3.jar:./
jfreechart-1.0.13.jar:./json.jar:./jxl.jar:./jython.jar:./lgpl-utils-1.0.6-020610.jar:./log4j-1.2.15.jar:./lucene-
analyzers-3.6.0.jar:./lucene-core-3.6.0.jar:./lucene-spellchecker-3.6.0.jar:./mail-1.3.3.jar:./mongo-2.7.0.jar:./
msv.jar:./mysql-connector-java-5.1.28-bin.jar:./openrdf-sesame-2.3.0-onejar.jar:./PDFBox-0.7.3.jar:./
poi-3.7-20101029.jar:./poi-ooxml-3.7-20101029.jar:./poi-ooxml-schemas-3.7-20101029.jar:./poi-
scratchpad-3.7-20101029.jar:./quercus.jar:./resin-util.jar:./saxon-8.7.jar:./saxon-dom-8.7.jar:./saxpath.jar:./
sdb-1.3.2.jar:./serializer.jar:./slf4j-api-1.5.8.jar:./slf4j-log4j12-1.5.8.jar:./snappy-java-1.1.0.1.jar:./spring.jar:./
stax-api-1.0.1.jar:./SWB3Resources.jar:./SWBAdmin.jar:./SWBBase.jar:./SWBBigDataInt.jar:./
SWBCommunity.jar:./SWBDimensionDataSupport.jar:./SWBJCR170.jar:./SWBModel.jar:./SWBNLP.jar:./
SWBOffice.jar:./SWBOfficeComunicationInterfaces.jar:./SWBOpenSocial.jar:./SWBPlatform.jar:./
SWBPortal.jar:./SWBPortlet.jar:./SWBRepositoryManager.jar:./SWBSearch.jar:./
SWBSemanticFileRepository.jar:./SWBSIP.jar:./SWBTOWB3Compatibility.jar:./SWBTripleStore.jar:./
SWBTripleStoreBase.jar:./SWBTripleStoreLevelDB.jar:./SWBTripleStoreMongo.jar:./SWBVirtuosoInt.jar:./
SWBXMLRPCCommon.jar:./SWBXMRPCServer.jar:./tdb-0.8.7.jar:./twitter4j-2.0.9.jar:./virt_jena.jar:./
virtjdbc3.jar:./wstx-asl-3.2.9.jar:./xalan.jar:./xercesImpl-2.7.1.jar:./xml-apis.jar:./xmlbeans-2.3.0.jar
setAccessible(true)
❌
Modificadores de Acceso
(1995-2015)
• public
• protected
• <package>
• private
Modificadores de Acceso
(2015-…)
• public para todos
• public pero sólo para ciertos módulos
• public pero sólo dentro de un módulo
• protected
• <package>
• private
Tipos de APIs en Java
• Soportados, de uso público
• JCP - java.*, javax.*
• específicos del JDK - com.sun.*, jdk.*
• No Soportados, de uso interno del JDK
• sun.* principalmente
web.archive.org del 15 de febrero de 1998
APIs no soportados mas
utilizados
• sun.misc.BASE64Encoder
• sun.misc.Unsafe
• sun.misc.BASE64Decoder
Encontrando usos de APIs
internos
$ jdeps -jdkinternals archivo.jar
Declarando Módulos
• La información del módulo se escribe en el
archivo module-info.java en el directorio raíz del
código del módulo
• se usan las palabras module, requires, exports,
y requires public para definir las relaciones de
acceso entre módulos
Declarando Módulos
module-info.java
mx/info/swb/datos/Dao.java
mx/info/swb/interno/Mail.java
mx/info/swb/interno/Util.java
mx/info/swb/modelo/Page.java
mx/info/swb/modelo/User.java
mx/info/swb/portal/Portal.java
module-info.java
module mx.info.swb {
}
Declarando Módulos
module-info.java
mx/info/swb/datos/Dao.java
mx/info/swb/interno/Mail.java
mx/info/swb/interno/Util.java
mx/info/swb/modelo/Page.java
mx/info/swb/modelo/User.java
mx/info/swb/portal/Portal.javamodule-info.java
module mx.info.swb {
requires mx.info.base;
requires java.sql;
} mx.info.base
java.sql
Declarando Módulos
package java.sql;
import java.util.logging.Logger;
public class Driver {
public Logger getParentLogger()
{…}
.
.
}
module java.sql {
requires public java.logging;
.
.
}
mx.info.base
java.sql
mx.info.swb
java.logging
Declarando Módulos
module-info.java
mx/info/swb/datos/Dao.java
mx/info/swb/interno/Mail.java
mx/info/swb/interno/Util.java
mx/info/swb/modelo/Page.java
mx/info/swb/modelo/User.java
mx/info/swb/portal/Portal.javamodule-info.java
module mx.info.swb {
exports mx.info.swb.modelo;
exports mx.info.swb.portal;
}
❌
❌
❌
Creando Módulos
$ javac -modulesourcepath src -mp lib -d mods *
$ jar --create --file mlib/mylib.jar -C mods/mylib .
$ jar --create --file mlib/mylib.jar 

--main-class myapp.Main -C mods/mylib .
--module-version=1.0.1
Ejecutando
$ java -mp mlib:lib -m myapp
Módulos automáticos
• Módulos “reales”
• No se requieren cambios al jar de alguien mas
• El nombre de deriva del nombre del jar
• Exporta todos sus paquetes
• Requiere todos los otros módulos
Linking
$ jlink --modulepath $JDKMODS:mlib --addmods
myapp -output img
$ ls img

bin conf lib release
$ ls img/bin

java keytool myapp
Linking (cont)
$ img/bin/java -listmods

java.base@9.0

java.logging@9.0

java.sql@9.0

java.xml@9.0

myapp@1.0.1
$ img/bin/myapp
¿Preguntas?

Weitere ähnliche Inhalte

Was ist angesagt?

Node.js - Eventos para Todos
Node.js - Eventos para TodosNode.js - Eventos para Todos
Node.js - Eventos para TodosMariano Iglesias
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMiguel Angel Nieto
 
Garbage Collection en el JVM
Garbage Collection en el JVMGarbage Collection en el JVM
Garbage Collection en el JVMsuperserch
 
Optimización Servidor Web
Optimización Servidor WebOptimización Servidor Web
Optimización Servidor Webquaip
 
Aprendiendo REDIS en 20 minutos
Aprendiendo REDIS en 20 minutosAprendiendo REDIS en 20 minutos
Aprendiendo REDIS en 20 minutosGonzalo Chacaltana
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magentoOnestic
 
Marcos quesada caching_sf2
Marcos quesada caching_sf2Marcos quesada caching_sf2
Marcos quesada caching_sf2symfony_bcn
 
ROA - Resource Oriented Architecture
ROA - Resource Oriented ArchitectureROA - Resource Oriented Architecture
ROA - Resource Oriented ArchitectureJavier Lafora Rey
 
Ansible + tacos at dev hangout
Ansible + tacos at dev hangoutAnsible + tacos at dev hangout
Ansible + tacos at dev hangoutOscar Gonzalez
 
Etiquetas jsp
Etiquetas jspEtiquetas jsp
Etiquetas jspFaizuly16
 
0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita
0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita
0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesitaGeneXus
 

Was ist angesagt? (19)

Replicacion en mysq
Replicacion en mysqReplicacion en mysq
Replicacion en mysq
 
Ataque por inyección de código sql y sniffing
Ataque por inyección de código sql y sniffingAtaque por inyección de código sql y sniffing
Ataque por inyección de código sql y sniffing
 
Node.js - Eventos para Todos
Node.js - Eventos para TodosNode.js - Eventos para Todos
Node.js - Eventos para Todos
 
Mysql Administracion
Mysql AdministracionMysql Administracion
Mysql Administracion
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - Cluster
 
Garbage Collection en el JVM
Garbage Collection en el JVMGarbage Collection en el JVM
Garbage Collection en el JVM
 
Optimización Servidor Web
Optimización Servidor WebOptimización Servidor Web
Optimización Servidor Web
 
Habilitar Korn Shell Linux
Habilitar Korn Shell LinuxHabilitar Korn Shell Linux
Habilitar Korn Shell Linux
 
Trabajo zabbix
Trabajo zabbixTrabajo zabbix
Trabajo zabbix
 
Tomcat yant
Tomcat yantTomcat yant
Tomcat yant
 
Aprendiendo REDIS en 20 minutos
Aprendiendo REDIS en 20 minutosAprendiendo REDIS en 20 minutos
Aprendiendo REDIS en 20 minutos
 
Rendimiento en magento
Rendimiento en magentoRendimiento en magento
Rendimiento en magento
 
Marcos quesada caching_sf2
Marcos quesada caching_sf2Marcos quesada caching_sf2
Marcos quesada caching_sf2
 
ROA - Resource Oriented Architecture
ROA - Resource Oriented ArchitectureROA - Resource Oriented Architecture
ROA - Resource Oriented Architecture
 
Ansible + tacos at dev hangout
Ansible + tacos at dev hangoutAnsible + tacos at dev hangout
Ansible + tacos at dev hangout
 
Etiquetas jsp
Etiquetas jspEtiquetas jsp
Etiquetas jsp
 
Django
DjangoDjango
Django
 
Postgres
PostgresPostgres
Postgres
 
0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita
0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita
0131 tu aplicacion_gene_xus_en_la_nube_lo_que_se_necesita
 

Andere mochten auch

Zed Attack Proxy
Zed Attack ProxyZed Attack Proxy
Zed Attack Proxysuperserch
 
Cloudino workshopcpmx7
Cloudino workshopcpmx7Cloudino workshopcpmx7
Cloudino workshopcpmx7superserch
 
Inyección, XSS, CSRF en ChelaJS
Inyección, XSS, CSRF en ChelaJSInyección, XSS, CSRF en ChelaJS
Inyección, XSS, CSRF en ChelaJSsuperserch
 
Chela stress test
Chela stress testChela stress test
Chela stress testsuperserch
 
Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8superserch
 
Everglades National Park
Everglades National Park Everglades National Park
Everglades National Park ron mader
 
World Energy Outlook 2015: Presentation to Press
World Energy Outlook 2015: Presentation to PressWorld Energy Outlook 2015: Presentation to Press
World Energy Outlook 2015: Presentation to PressInternational Energy Agency
 
Building the Workforce for the Future: 16 Smart Inside Sales Trends in 2016 [...
Building the Workforce for the Future: 16 Smart Inside Sales Trends in 2016 [...Building the Workforce for the Future: 16 Smart Inside Sales Trends in 2016 [...
Building the Workforce for the Future: 16 Smart Inside Sales Trends in 2016 [...OpenView
 
YieldWise: How the World Can Cut Food Waste and Loss by Half
YieldWise: How the World Can Cut Food Waste and Loss by HalfYieldWise: How the World Can Cut Food Waste and Loss by Half
YieldWise: How the World Can Cut Food Waste and Loss by HalfThe Rockefeller Foundation
 
Presidential Food Facts
Presidential Food FactsPresidential Food Facts
Presidential Food FactsFood Insight
 
Mindtree IMS Offerings
Mindtree IMS OfferingsMindtree IMS Offerings
Mindtree IMS OfferingsKoushik Ramani
 
Dietary Guidelines (For the Real World!)
Dietary Guidelines (For the Real World!)Dietary Guidelines (For the Real World!)
Dietary Guidelines (For the Real World!)Food Insight
 
Jack D. Ryger: Best Colorado Ski Resorts
Jack D. Ryger: Best Colorado Ski ResortsJack D. Ryger: Best Colorado Ski Resorts
Jack D. Ryger: Best Colorado Ski ResortsJack D. Ryger
 
10 Catering Trends for Business Events in 2015
10 Catering Trends for Business Events in 201510 Catering Trends for Business Events in 2015
10 Catering Trends for Business Events in 2015Eason Chan
 
Good Health is Real Wealth at Workplace
Good Health is Real Wealth at WorkplaceGood Health is Real Wealth at Workplace
Good Health is Real Wealth at WorkplaceAnkur Tandon
 
Ensuring Your Weight Loss Survives The Hype
Ensuring Your Weight Loss Survives The HypeEnsuring Your Weight Loss Survives The Hype
Ensuring Your Weight Loss Survives The HypeRudolph Kirkland
 
11 International Road Trips You Can Take From India
11 International Road Trips You Can Take From India11 International Road Trips You Can Take From India
11 International Road Trips You Can Take From Indiaixigo.com
 
Healthy and Frugal Holiday Eats
Healthy and Frugal Holiday EatsHealthy and Frugal Holiday Eats
Healthy and Frugal Holiday EatsExperian_US
 

Andere mochten auch (20)

Zed Attack Proxy
Zed Attack ProxyZed Attack Proxy
Zed Attack Proxy
 
Cloudino workshopcpmx7
Cloudino workshopcpmx7Cloudino workshopcpmx7
Cloudino workshopcpmx7
 
Inyección, XSS, CSRF en ChelaJS
Inyección, XSS, CSRF en ChelaJSInyección, XSS, CSRF en ChelaJS
Inyección, XSS, CSRF en ChelaJS
 
Chela stress test
Chela stress testChela stress test
Chela stress test
 
Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8Workshop: Lambdas y Stream API en Java 8
Workshop: Lambdas y Stream API en Java 8
 
Everglades National Park
Everglades National Park Everglades National Park
Everglades National Park
 
World Energy Outlook 2015: Presentation to Press
World Energy Outlook 2015: Presentation to PressWorld Energy Outlook 2015: Presentation to Press
World Energy Outlook 2015: Presentation to Press
 
Building the Workforce for the Future: 16 Smart Inside Sales Trends in 2016 [...
Building the Workforce for the Future: 16 Smart Inside Sales Trends in 2016 [...Building the Workforce for the Future: 16 Smart Inside Sales Trends in 2016 [...
Building the Workforce for the Future: 16 Smart Inside Sales Trends in 2016 [...
 
YieldWise: How the World Can Cut Food Waste and Loss by Half
YieldWise: How the World Can Cut Food Waste and Loss by HalfYieldWise: How the World Can Cut Food Waste and Loss by Half
YieldWise: How the World Can Cut Food Waste and Loss by Half
 
Presidential Food Facts
Presidential Food FactsPresidential Food Facts
Presidential Food Facts
 
Mindtree IMS Offerings
Mindtree IMS OfferingsMindtree IMS Offerings
Mindtree IMS Offerings
 
Dietary Guidelines (For the Real World!)
Dietary Guidelines (For the Real World!)Dietary Guidelines (For the Real World!)
Dietary Guidelines (For the Real World!)
 
Holiday Travel Survival Guide [Infographic]
Holiday Travel Survival Guide [Infographic]Holiday Travel Survival Guide [Infographic]
Holiday Travel Survival Guide [Infographic]
 
Jack D. Ryger: Best Colorado Ski Resorts
Jack D. Ryger: Best Colorado Ski ResortsJack D. Ryger: Best Colorado Ski Resorts
Jack D. Ryger: Best Colorado Ski Resorts
 
10 Catering Trends for Business Events in 2015
10 Catering Trends for Business Events in 201510 Catering Trends for Business Events in 2015
10 Catering Trends for Business Events in 2015
 
Good Health is Real Wealth at Workplace
Good Health is Real Wealth at WorkplaceGood Health is Real Wealth at Workplace
Good Health is Real Wealth at Workplace
 
Ensuring Your Weight Loss Survives The Hype
Ensuring Your Weight Loss Survives The HypeEnsuring Your Weight Loss Survives The Hype
Ensuring Your Weight Loss Survives The Hype
 
2016 Travel Trends
2016 Travel Trends 2016 Travel Trends
2016 Travel Trends
 
11 International Road Trips You Can Take From India
11 International Road Trips You Can Take From India11 International Road Trips You Can Take From India
11 International Road Trips You Can Take From India
 
Healthy and Frugal Holiday Eats
Healthy and Frugal Holiday EatsHealthy and Frugal Holiday Eats
Healthy and Frugal Holiday Eats
 

Ähnlich wie Jvmmx jigsaw

Java para android developers
Java para android developersJava para android developers
Java para android developersjose diaz
 
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Víctor Leonel Orozco López
 
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Víctor Leonel Orozco López
 
Programación Modular con Java 9
Programación Modular con Java 9Programación Modular con Java 9
Programación Modular con Java 9Software Guru
 
Recorrido por el Content Repository API para Java (JCR), analizando JackRabbit
Recorrido por el Content Repository API para Java (JCR), analizando JackRabbitRecorrido por el Content Repository API para Java (JCR), analizando JackRabbit
Recorrido por el Content Repository API para Java (JCR), analizando JackRabbitMagnolia
 
Spring Fácil: Cambios en el framework con Spring Boot
Spring Fácil: Cambios en el framework con Spring BootSpring Fácil: Cambios en el framework con Spring Boot
Spring Fácil: Cambios en el framework con Spring BootBelatrix Software
 
03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jeeyennylou
 
UDA-Anexo configuración y uso de jackson
UDA-Anexo configuración y uso de jacksonUDA-Anexo configuración y uso de jackson
UDA-Anexo configuración y uso de jacksonAnder Martinez
 
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - ExasolExtendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - ExasolJavier Abadía
 
Curso de javascript y node avanzado
Curso de javascript y node avanzadoCurso de javascript y node avanzado
Curso de javascript y node avanzadobrainybogota
 
Servidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValleyServidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValleyAlvaro García Loaisa
 

Ähnlich wie Jvmmx jigsaw (20)

Java para android developers
Java para android developersJava para android developers
Java para android developers
 
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...
 
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...
Actualizando aplicaciones empresariales en Java desde Java 8 on premise hasta...
 
JRuby al Rescate de J2EE
JRuby al Rescate de J2EEJRuby al Rescate de J2EE
JRuby al Rescate de J2EE
 
Programación Modular con Java 9
Programación Modular con Java 9Programación Modular con Java 9
Programación Modular con Java 9
 
Recorrido por el Content Repository API para Java (JCR), analizando JackRabbit
Recorrido por el Content Repository API para Java (JCR), analizando JackRabbitRecorrido por el Content Repository API para Java (JCR), analizando JackRabbit
Recorrido por el Content Repository API para Java (JCR), analizando JackRabbit
 
Administrando Jboss
Administrando JbossAdministrando Jboss
Administrando Jboss
 
Java 9 - Módulos
Java 9  - MódulosJava 9  - Módulos
Java 9 - Módulos
 
Spring Fácil: Cambios en el framework con Spring Boot
Spring Fácil: Cambios en el framework con Spring BootSpring Fácil: Cambios en el framework con Spring Boot
Spring Fácil: Cambios en el framework con Spring Boot
 
JRuby Al Rescate J2EE
JRuby Al Rescate J2EEJRuby Al Rescate J2EE
JRuby Al Rescate J2EE
 
Curso introductorio a Raptor.js con Node.js
Curso introductorio a Raptor.js con Node.jsCurso introductorio a Raptor.js con Node.js
Curso introductorio a Raptor.js con Node.js
 
Aplicaciones en red ppt
Aplicaciones en red pptAplicaciones en red ppt
Aplicaciones en red ppt
 
Curso Spring Roo Spring Data Jpa Maven
Curso Spring Roo Spring Data Jpa MavenCurso Spring Roo Spring Data Jpa Maven
Curso Spring Roo Spring Data Jpa Maven
 
03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee03. empaquetado de aplicaciones jee
03. empaquetado de aplicaciones jee
 
UDA-Anexo configuración y uso de jackson
UDA-Anexo configuración y uso de jacksonUDA-Anexo configuración y uso de jackson
UDA-Anexo configuración y uso de jackson
 
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - ExasolExtendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
Extendiendo Django: Cómo Escribir Tu Propio Backend de Base de Datos - Exasol
 
Comenzando con GWT
Comenzando con GWTComenzando con GWT
Comenzando con GWT
 
Curso de javascript y node avanzado
Curso de javascript y node avanzadoCurso de javascript y node avanzado
Curso de javascript y node avanzado
 
Mongo Mapper
Mongo MapperMongo Mapper
Mongo Mapper
 
Servidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValleyServidores de mapas en alta disponibilidad CyLiconValley
Servidores de mapas en alta disponibilidad CyLiconValley
 

Jvmmx jigsaw