57

FinistJUG - Apache TomEE

Embed Size (px)

DESCRIPTION

Séance du 11/10/2012

Citation preview

Page 1: FinistJUG - Apache TomEE
Page 2: FinistJUG - Apache TomEE

Objectifs

Comprendre ce qu’est TomEE

… et ce que ce n’est pas !

Comprendre ce qu’il apporte au développement

… et ce qu’il apporte en production

Page 3: FinistJUG - Apache TomEE

Qui sommes nous ? Jean-Louis Monteiro Architecte Java EE Committer/PMC

Apache EJB 3.2 spec

Romain Manni-Bucau

Développeur chez Atos

Committer Apache OS enthusiast

Page 4: FinistJUG - Apache TomEE

Apache TomEE c’est quoi?

Page 5: FinistJUG - Apache TomEE

2011

JEE 6 Web Profile

Tomcat + « EE »certified

small

Apache stack

Page 6: FinistJUG - Apache TomEE

Le Web Profile, kézako ?

Page 7: FinistJUG - Apache TomEE

Introduit en Java EE 6

Sans les reliquesMais parfois incomplet

Environ la moitié des specs

Page 8: FinistJUG - Apache TomEE

Apache TomEE distribs

JAX-RS

JAX-WS

CXFConnectors

Page 9: FinistJUG - Apache TomEE
Page 10: FinistJUG - Apache TomEE

Happy Birthday, TomEE!

Page 11: FinistJUG - Apache TomEE

Releases1.0.0 beta 1 •JavaOne 2011

•Entrée dans la cours des grands

1.0.0 beta 2 •Janvier 2012•Finalisation

1.0.0 Final •Avril 2012•Prise en comptes des retours utilisateurs

1.5.0 •Septembre 2012•Toujours plus loin et à l’écoute

Page 12: FinistJUG - Apache TomEE

Quel est son secret ?

Page 13: FinistJUG - Apache TomEE

Fichiers ajoutés

Page 14: FinistJUG - Apache TomEE

Fichiers modifiés• conf/server.xml

• Gestion du cycle de vie

• conf/tomcat-users.xml• Optionnel – sécurisation de la GUI webapps/tomee/

• bin/catalina.sh• Optionnel – OpenJPA ou EclipseLink load-time

enhancement

• bin/setclasspath.sh• Optionnel (java 7 endorsed dir supprimé)

Page 15: FinistJUG - Apache TomEE

Fichiers supprimés• lib/annotations-api.jar

• Non-compliance, remplacé par endorsed/annotations-api.jar

• lib/el-api.jar• Non nécessaire, remplacé par lib/javaee-api.jar

• webapps/examples/• Pas vraiment nécessaire

Page 16: FinistJUG - Apache TomEE

Et le résultat est …

Page 17: FinistJUG - Apache TomEE

Boot time!Maven

IDE

Léger

SimpleEmprunte mémoire

maitrisée

Finement assemblé et intégré

Outillage TomcatC’est ça TomEE !

Page 18: FinistJUG - Apache TomEE

Testé … très largement• Dans nos tests (plus d’une heure)

• Arquillian• Chaque test s’exécute 3 ou 5 fois

• TCK sur Amazon EC2 (> 100 machines)• t1.micro linux images• 100 spot instances• 613MB memory max• Web Profile TCK avec paramètre JVM par défaut

• OSs certifiés• Amazon Linux AMI 2011.09, EBS boot, 32-bit EC2 t1.micro• Amazon Linux AMI 2011.09, EBS boot, 32-bit EC2 m1.small• Amazon Linux AMI 2011.09, EBS boot, 32-bit EC2 c1.medium

Page 19: FinistJUG - Apache TomEE

Des doutes ?

Page 20: FinistJUG - Apache TomEE

Try it yourself

And let us know!

Page 21: FinistJUG - Apache TomEE

Encore des doutes ?

Page 22: FinistJUG - Apache TomEE

Démo(toujours des mots …)Le classique « hello world »

Page 23: FinistJUG - Apache TomEE

Résultats• TomEE

• Facile à utiliser (comme Tomcat)• Rapide (comme Tomcat)• Mais beaucoup plus riche que Tomcat

• Et l’application• Très light – le container fournit les services• Pas de configuration inutile

Ready to run!

Page 24: FinistJUG - Apache TomEE

Configuration

Page 25: FinistJUG - Apache TomEE

Tomcat toujours valide• Pas de changement ni suppression• System

• conf/server.xml

• Application• META-INF/context.xml

• Configuration standard va continuer de fonctionner• Ressources disponibles dans tous les composants (EJB, CDI,

JSF)

• Mais Pool de connexions non JTA • Securité Tomcat partout

• EJB• Web service• Utilisez votre propre implémentation de Realm

Page 26: FinistJUG - Apache TomEE

TomEE : configuration riche• Système

• conf/server.xml• conf/tomee.xml• conf/system.properties

• Process• Propriété système « classique » (-Dcle=valeur)

• Application• META-INF/context.xml• META-INF/resources.xml• META-INF/application.properties

Page 27: FinistJUG - Apache TomEE

conf/tomee.xml ou META-INF/resources.xml

Page 28: FinistJUG - Apache TomEE

Des fichiers vraiment lisibles

Page 29: FinistJUG - Apache TomEE

Arf, j’aime pas le XML

Page 30: FinistJUG - Apache TomEE

conf/system.properties

Page 31: FinistJUG - Apache TomEE

On peut même mixer

Page 32: FinistJUG - Apache TomEE

Ça donne quoi en vrai…

Pooling

sample

Page 33: FinistJUG - Apache TomEE

Let's start standard!

Page 34: FinistJUG - Apache TomEE

Let's Test !

EJB 3.1 API to start the EJB Embedded container

Close the container at the end

Special tip to get injected beans, resources, etc

Page 35: FinistJUG - Apache TomEE

And my web tests?

- Simple HTTP connector for WS and EJBd- APP_NAME to simulate a servlet context

Page 36: FinistJUG - Apache TomEE
Page 37: FinistJUG - Apache TomEE

Les adapters• TomEE Remote Adapter

• Comme en vrai• Process TomEE separé

• TomEE Embedded Adapter• TomEE directement dans le test

• Tomcat + TomEE.war webapp• A l’ancienne

• OpenEJB Embedded Adapater• Tout sauf les servlets, JSP, JSF• Mais super rapide

Page 38: FinistJUG - Apache TomEE

Outils et monitoring

Page 39: FinistJUG - Apache TomEE

JPA et les benchs

Page 40: FinistJUG - Apache TomEE

Maven: TomEE, c’est Tomcat

Page 41: FinistJUG - Apache TomEE

… mais aussi beaucoup plus List ejbs Deploy/Undeploy an application Manage Apache TomEE

Configtest Start Stop Run

Page 42: FinistJUG - Apache TomEE

Démo …De Maven à Arquillian

Page 43: FinistJUG - Apache TomEE

Interagir en production

Commandes Deploy Undeploy List Properties Script (JSR 223) Script file Ls Part Help Cat

Page 44: FinistJUG - Apache TomEE

Gestion et monitoring• Déploiement de d’application (tomcat)• Server, conteneurs, stats d’invocations• Queues/topics JMS et broker (ActiveMQ)• Redéploiement persistence unit• Pool de connexions• Servers et nœuds dans un cluster• Et d’autres à venir

Page 45: FinistJUG - Apache TomEE

Et encore tellement de choses …

Page 46: FinistJUG - Apache TomEE

Autres fonctionnalités• Créer ses propres ressources

• Et les avoir dans tous les composants

• Evénements• Possibilités d’étendre le conteneur

• 27 événements côté client• 12 côtés serveurs• Et d’autres dans les cartons

Page 47: FinistJUG - Apache TomEE

Validation

Page 48: FinistJUG - Apache TomEE

Un bean, combien d’erreurs ?

Page 49: FinistJUG - Apache TomEE

Et là ?

Page 50: FinistJUG - Apache TomEE

Resultat

Page 51: FinistJUG - Apache TomEE

Dans le Cloud ?

Page 52: FinistJUG - Apache TomEE

Ce qui existe• TCP et UDP server discovery

• Fonctionnalités Tomcat de base

• EJB client (load-balancing et failover)

• Provisionning Maven sur un nœud• … et un cluster

• CloudFoundry ready

Page 53: FinistJUG - Apache TomEE

Ce qu’il manquerait• Console d’agrégation multi instance

• De monitoring• De déploiement

• Des idées, besoins ?• Envoyez un mail sur la mailling list

Page 54: FinistJUG - Apache TomEE

Dernière démo La console SSH et le provisionning

Page 55: FinistJUG - Apache TomEE

La démo dont vous êtes le héros ?C’est vous qui choisissez !

Page 56: FinistJUG - Apache TomEE

Merci !

Apache TomEE and Apache OpenEJBhttp://tomee.apache.org

http://openejb.apache.org/http://openejb.apache.org/apache-tomee.html

[email protected]://openejb.apache.org/examples-trunk/index.html

Page 57: FinistJUG - Apache TomEE