FinistJUG - Apache TomEE

Post on 08-Dec-2014

2.349 views 0 download

description

Séance du 11/10/2012

Transcript of 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

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

Apache TomEE c’est quoi?

2011

JEE 6 Web Profile

Tomcat + « EE »certified

small

Apache stack

Le Web Profile, kézako ?

Introduit en Java EE 6

Sans les reliquesMais parfois incomplet

Environ la moitié des specs

Apache TomEE distribs

JAX-RS

JAX-WS

CXFConnectors

Happy Birthday, 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

Quel est son secret ?

Fichiers ajoutés

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é)

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

Et le résultat est …

Boot time!Maven

IDE

Léger

SimpleEmprunte mémoire

maitrisée

Finement assemblé et intégré

Outillage TomcatC’est ça 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

Des doutes ?

Try it yourself

And let us know!

Encore des doutes ?

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

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!

Configuration

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

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

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

Des fichiers vraiment lisibles

Arf, j’aime pas le XML

conf/system.properties

On peut même mixer

Ça donne quoi en vrai…

Pooling

sample

Let's start standard!

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

And my web tests?

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

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

Outils et monitoring

JPA et les benchs

Maven: TomEE, c’est Tomcat

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

Configtest Start Stop Run

Démo …De Maven à Arquillian

Interagir en production

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

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

Et encore tellement de choses …

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

Validation

Un bean, combien d’erreurs ?

Et là ?

Resultat

Dans le Cloud ?

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

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

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

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

Merci !

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

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

users@openejb.apache.orghttp://openejb.apache.org/examples-trunk/index.html