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       Romain Manni-Bucau
   Architecte Java EE        Développeur chez Atos
   Committer/PMC Apache      Committer Apache
   EJB 3.2 spec              OS enthusiast
Apache TomEE c’est quoi?
2011

        JEE 6 Web Profile

small

Tomcat + « EE »
             certified

                         Apache stack
Le Web Profile, kézako ?
Introduit en Java EE 6


   Environ la moitié des specs



       Sans les reliques
                 Mais parfois incomplet
Apache TomEE distribs
  JAX-RS
           C
                        Connectors
  JAX-WS
           X
           F
Happy Birthday, TomEE!
Releases
              • JavaOne 2011
1.0.0 beta
    1         • Entrée dans la cours des grands

              • Janvier 2012
1.0.0 beta
    2         • Finalisation

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

              • Septembre 2012
  1.5.0       • 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 …
Finement assemblé et intégré


                               Maven
   Boot time!
                               IDE


Outillage Tomcat
                                     Simple
 Emprunte mémoire maitrisée
                                        Léger
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 ?
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
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…
Let's start standard!
Let's Test !

               EJB 3.1 API to start the
               EJB Embedded container




                                Special tip to get
                                 injected beans,
                                  resources, etc



               Close the container
                   at the end
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 OpenEJB
              http://tomee.apache.org
             http://openejb.apache.org/
    http://openejb.apache.org/apache-tomee.html
             users@openejb.apache.org
http://openejb.apache.org/examples-trunk/index.html
FinistJUG - Apache TomEE

FinistJUG - Apache TomEE

  • 2.
    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
  • 3.
    Qui sommes nous?  Jean-Louis Monteiro  Romain Manni-Bucau  Architecte Java EE  Développeur chez Atos  Committer/PMC Apache  Committer Apache  EJB 3.2 spec  OS enthusiast
  • 4.
  • 5.
    2011 JEE 6 Web Profile small Tomcat + « EE » certified Apache stack
  • 6.
    Le Web Profile,kézako ?
  • 7.
    Introduit en JavaEE 6 Environ la moitié des specs Sans les reliques Mais parfois incomplet
  • 8.
    Apache TomEE distribs JAX-RS C Connectors JAX-WS X F
  • 10.
  • 11.
    Releases • JavaOne 2011 1.0.0 beta 1 • Entrée dans la cours des grands • Janvier 2012 1.0.0 beta 2 • Finalisation • Avril 2012 1.0.0 Final • Prise en comptes des retours utilisateurs • Septembre 2012 1.5.0 • Toujours plus loin et à l’écoute
  • 12.
    Quel est sonsecret ?
  • 13.
  • 14.
    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é)
  • 15.
    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 
  • 16.
  • 17.
    Finement assemblé etintégré Maven Boot time! IDE Outillage Tomcat Simple Emprunte mémoire maitrisée Léger
  • 18.
    Testé … trèslargement • 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
  • 19.
  • 21.
  • 22.
    Démo (toujours des mots…) Le classique « hello world »
  • 23.
    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
  • 24.
  • 25.
    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
  • 26.
    TomEE : configurationriche • 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
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
    Ça donne quoien vrai…
  • 33.
  • 34.
    Let's Test ! EJB 3.1 API to start the EJB Embedded container Special tip to get injected beans, resources, etc Close the container at the end
  • 35.
    And my webtests? - Simple HTTP connector for WS and EJBd - APP_NAME to simulate a servlet context
  • 37.
    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
  • 38.
  • 39.
    JPA et lesbenchs
  • 40.
  • 41.
    … mais aussibeaucoup plus  List ejbs  Deploy/Undeploy an application  Manage Apache TomEE  Configtest  Start  Stop  Run
  • 42.
    Démo … De Mavenà Arquillian
  • 43.
    Interagir en production Commandes Deploy  Undeploy  List  Properties  Script (JSR 223)  Script file  Ls  Part  Help  Cat
  • 44.
    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
  • 45.
    Et encore tellementde choses …
  • 46.
    Autres fonctionnalités • Créerses 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
  • 47.
  • 48.
    Un bean, combiend’erreurs ?
  • 49.
  • 50.
  • 51.
  • 52.
    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
  • 53.
    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
  • 54.
    Dernière démo  Laconsole SSH et le provisionning
  • 55.
    La démo dontvous êtes le héros ? C’est vous qui choisissez !
  • 56.
    Merci ! Apache TomEE and Apache OpenEJB http://tomee.apache.org http://openejb.apache.org/ http://openejb.apache.org/apache-tomee.html users@openejb.apache.org http://openejb.apache.org/examples-trunk/index.html