JavaEE - Test & Deploy
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

JavaEE - Test & Deploy

on

  • 2,815 views

Formation INSA, le 17 janvier 2012

Formation INSA, le 17 janvier 2012

Statistics

Views

Total Views
2,815
Views on SlideShare
2,474
Embed Views
341

Actions

Likes
3
Downloads
66
Comments
0

4 Embeds 341

http://localhost 301
http://fbertin.integration.scoop.it 38
http://a0.twimg.com 1
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

JavaEE - Test & Deploy Presentation Transcript

  • 1. JavaEE Test & Deploy17 janvier 2012 Alexis Hassler
  • 2. CloudComputing Tests dintégration Arquillian
  • 3. @AlexisHassler
  • 4. Arquillian
  • 5. JavaEEJAX-WS JAX-RS JPAServlet EJB JNDI JSP CDI JMS JSF
  • 6. TestsUnitaire Intégration
  • 7. Test unitaire new mock
  • 8. ✔ EJB
  • 9. Test dintégrationComposant déployé dans sonconteneur– Mode embarqué– Déploiement distant
  • 10. EJB Mode embarquéEJBContainer.createEJBContainer()Context.lookup(...)
  • 11. Spring FrameworkRunner– Démarrer lApplicationContext @RunWith @Autowired
  • 12. CDIWeld SE– Runner maison cf. http://blog.alexis-hassler.com/2011/01/junit-runner-pour-cdi-weld.html @RunWith @Inject
  • 13. JPA Conteneur JPAPersistence.createEntityManagerFactory(...) .createEntityManager()
  • 14. JMS Conteneur autonomenew ActiveMQConnectionFactory( ... ); "vm://localhost?broker.persistent=false"
  • 15. HTTP / Servlet / JSP / ...Conteneur autonome new ServletTester() new HttpTester()
  • 16. ✔ EJB / OpenEJB
  • 17. Problèmes1 conteneur par technologie– Pas de mode embarqué universelMode remote + Maven– pas dans le cycle de vie standardConfigurations spécifiques
  • 18. JavaEEJAX-WS JAX-RS JPAServlet EJB JNDI JSP CDI JMS JSF
  • 19. JavaEE JMS JAX-RS Transaction EJBServlet CDI JPA JSF Bean Validation
  • 20. Tester les composants pas les classes isolées pas toute lapplication
  • 21. Mettre lestests dans le conteneur gérer le conteneur dans les tests plutôt que
  • 22. Structure dun test@RunWith(Arquillian.class)@Deployment@EJB, @Inject, @Resource@Test
  • 23. ✔ EJB / OpenEJB
  • 24. ConteneursJavaEE CDI– JBoss AS, – Weld SE,– GlassFish, – Weld EE,– Websphere AS – OpenWebBeansWeb EJB– Jetty, – Apache OpenEJB– Tomcat
  • 25. Conteneurs DeployableContainerShrinkWrap Arquillian ConteneurTest Case junit-container JUnit
  • 26. ConteneursClasspathProfil maven
  • 27. ✔ EJB / Glassfish Embedded✔ CDI / Glassfish Embedded ✔ CDI / Weld SE
  • 28. ConteneursRemote Managed Embedded
  • 29. Conteneur embarquéDémarrage du conteneur (in-process) Déploiement de larchive Exécution locale du test Retrait de larchive Arrêt du conteneur
  • 30. Conteneur géréDémarrage du conteneur (out-process) Déploiement de larchive Déploiement du service Arquillian Exécution du test dans le conteneur Retrait de larchive Arrêt du conteneur
  • 31. Conteneur distant Conteneurpréalablement démarré Déploiement de larchive Déploiement du service Arquillian Exécution du test dans le conteneur Retrait de larchive
  • 32. Conteneurs Remote Managed EmbeddedJBoss AS 4.2, 5.0, 5.1, 6.0, 7.0 4.2, 5.1, 6.0, 7.0 5.1, 6.0Glassfish 3.1 3.1Websphere AS 7.0 8.0Jetty 6.1, 7.0Tomcat 6.0 6.0Weld SE 1.1, SE 1.0, EE 1.1OpenWebBeans 1.0OpenEJB 3.1
  • 33. ✔ EJB / JBoss AS 7 managed ✔ EJB / JBoss AS 7 remote
  • 34. Shrinkwrap DeployableContainerShrinkWrap Arquillian ConteneurTest Case junit-container JUnit
  • 35. Protocole Servlet ShrinkWrap.create(WebArchive.class) .addClasses(...); Web Archive JUnitArquillian Test case Arquillian Servlet
  • 36. Protocole Servlet 3.0 ShrinkWrap.create(JavaArchive.class) .addClasses(...); Web Archive JUnitArquillian Test case Arquillian Servlet
  • 37. Protocole Servlet 2.5 ShrinkWrap.create(JavaArchive.class) .addClasses(...); Arquillian ear Java Archive JUnitArquillian Test case Arquillian war Arquillian Servlet
  • 38. Protocole Servlet ShrinkWrap.create(EnterpriseArchive.class) .addAsModule(jar); ShrinkWrap.create(JavaArchive.class) .addClasses(...); Enterprise Archive Java Archive JUnitArquillian Test case Arquillian war Arquillian Servlet
  • 39. Protocole JMX-AS7 ShrinkWrap.create(XxxArchive.class) .addClasses(...); JBoss AS 7 Any Archive JUnitArquillian Test case Arquillian Service Arquillian MBean
  • 40. ✔ EJB / deploymentExportPath
  • 41. as-clientWeb, JAX-RS, JAX-WS,RMI, EJB remote,... Web Archive JUnitArquillianTest case
  • 42. as-client@ArquillianResource(MyServlet.class)URL baseURL ;@Deployment(testable=false)public static Archive createDeployment() { ...}@Test @RunAsClientprivate void shouldDoX() { ...}
  • 43. ✔ JAX-RS / JBoss AS 7 managed
  • 44. ArquillianTest dintégrationIn-containerAs-clientMulti-conteneurs
  • 45. Référenceshttp://jboss.org/arquillianhttp://github.com/arquillianhttp://github.com/hasalex/arquillian-demohttp://www.slideshare.net/sewatech
  • 46. CloudComputing Tests dintégration Arquillian
  • 47. Cloud ComputingDéfinition– En libre-service à la demande– Accessible sur lensemble dun réseau– Mutualisation des ressources– Rapidement élastique– Mesurable
  • 48. SaaSVision utilisateur– Fonctionnalités dun logiciel (Mail, CRM, ERP,...)– Pas dinstallation, pas dinvestissement– Montée en charge simple– Software as a Service
  • 49. SaaS Application Runtime / middleware Base de données Système dexploitation VirtualisationMatériel Stockage Réseau
  • 50. IaaSVision sysadmin– Ressources système (processeur, mémoire, bande passante)– Pas dachat de machine– Montée en charge simple– Infrastructure as a Service
  • 51. IaaS Application Runtime / middleware Base de données Système dexploitation VirtualisationMatériel Stockage Réseau
  • 52. Amazon AWScf. http://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf
  • 53. Amazon AWSAmazon EC2– Elastic Compute Cloud– Serveur virtuel– Stockage sur Elastic Block Store (EBS) ● disque dur– Monitoring ● Amazon CloudWatch => Cœur d’AWS
  • 54. Amazon AWSGestion– Console Web– SDK / ligne de commande
  • 55. Amazon EC2✔ Web UI ✔ CLI
  • 56. PaaSNiveaux de service SaaS Software as a Service PaaS Platform as a Service IaaS Infrastructure as a Service
  • 57. PaaS Application Runtime / middleware Base de données Système dexploitation VirtualisationMatériel Stockage Réseau
  • 58. PaaS
  • 59. Cloubees DEV@cloud RUN@cloud Elastic AppSource Elastic App Jenkins Elastic AppControl Build/Test Deploy Push App Project
  • 60. CloubeesDev@Cloud Test Build Deploy
  • 61. 3: checkout2: build 1: push
  • 62. CloubeesRun@Cloud PaaS tools Applications Server JVM
  • 63. CloubeesGestion RUN@cloud Interface Web API RESTful (HTTP / XML) API Java
  • 64. CloudBees ✔ Web UI✔ Java API
  • 65. Cloud SaaS Software as a Service User PaaS Platform as a Service Developer Integration IaaSInfrastructure as a Service Operations
  • 66. Cloud SaaS Software as a Service PaaS IaaS
  • 67. Référenceshttp://aws.amazon.comhttp://www.cloudbees.comhttps://github.com/hasalex/cloudbees-examplehttp://www.slideshare.net/sewatech
  • 68. CloudComputing Tests dintégration Arquillian