Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Building JBoss AS 7 for Fedora

902 views

Published on

Slides of http://fosdem.org/2012/schedule/event/building_jboss_as7_for_fedora

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Building JBoss AS 7 for Fedora

  1. 2. Java EE without boundaries Carlo de Wolf JBoss by Red Hat January 2012
  2. 3. Agenda <ul><li>JBoss Everywhere
  3. 4. JBoss AS 7 Overview
  4. 5. What is Free and Open Source Software?
  5. 6. How do we build AS 7?
  6. 7. How can we improve the process? </li></ul>
  7. 8. JBoss Everywhere <ul><li>A single platform for a wide variety of deployments
  8. 9. Single machine deployment are a restricted case
  9. 10. Cloud is a byproduct </li></ul>
  10. 11. Fabric for Mobile
  11. 12. Fabric for Middle-ware
  12. 13. Fabric for Enterprise
  13. 14. AS 7 Overview Unparalleled speed Modular design Exceptionally Lightweight Elegant Administration <ul><li>Strict Compliance
  14. 15. Easily Testable
  15. 16. First class, modern components </li></ul>
  16. 17. Unparalleled speed <ul><li>Focus on developer turn-around
  17. 18. Boots within 2 seconds
  18. 19. Enterprise Application Server focuses on request latency </li></ul>
  19. 20. Modular Design <ul><li>Concurrent class loading
  20. 21. In isolation </li></ul>
  21. 22. Exceptionally Lightweight
  22. 23. Elegant Administration <ul><li>Full featured web based console
  23. 24. Domain server managing multiple Host servers </li></ul>
  24. 25. AS 7 Services
  25. 26. <ul><li>Easily Testable </li></ul><ul><li>How do I create an archive?
  26. 27. How do I deploy an archive?
  27. 28. How do I run my test? </li></ul>
  28. 29. ShrinkWrap <ul><li>Easily build an archive </li></ul>JavaArchive jar = ShrinkWrap. create (JavaArchive. class , &quot;test.jar&quot; ) .addClasses(GreetingsBean. class , Greetings. class ); File tempFile = File. createTempFile ( &quot;test&quot; , &quot;.jar&quot; ); jar.as(ZipExporter. class ).exportZip(tempFile, true ); URL url = tempFile.toURI().toURL();
  29. 30. Arquillian <ul><li>Leave it to the aliens @RunWith (Arquillian. class ) </li></ul>public class GreetingManagerTest { @Deployment public static JavaArchive createDeployment() { return ShrinkWrap. create (JavaArchive. class , &quot;test.jar&quot; ) .addClasses(GreetingsBean. class , Greetings. class ); } @EJB private Greetings alien ; @Test public void shouldGreetUser() throws Exception { String name = &quot;Earthlings&quot; ; assertEquals ( &quot;Hello, &quot; + name, alien .greet(name)); } }
  30. 31. Demo Arquillian
  31. 32. Enterprise Application Platform 6 <ul><li>AS 7 + </li></ul><ul><ul><li>Functional patches
  32. 33. Performance patches
  33. 34. Support </li></ul></ul>http://www.redhat.com/products/jbossenterprisemiddleware/
  34. 35. What is FOSS? <ul><li>“ Free and open-source software (F/OSS, FOSS) or free/libre/open-source software (FLOSS) is software that is both free and open source . It is liberally licensed to grant users the right to use, copy, study, change, and improve its design through the availability of its source code . [ citation needed ] ” </li></ul>
  35. 36. Free
  36. 37. Open Source Software <ul><li>Good software is like a beautiful woman </li></ul>Edit: due to popular request I have replaced the picture with a kitten
  37. 38. Build Tools <ul><li>Can I build it without a special license? </li><ul><li>Need to buy one? </li></ul><li>Applesauce license
  38. 39. Where is my Gradle? </li></ul>
  39. 40. Dependencies <ul><li>Can I run it without a special license?
  40. 41. Are the versions I need available? </li></ul>
  41. 42. Transitive Dependencies
  42. 43. How do we build AS 7? <ul><li>Maven
  43. 44. Maven on Fedora
  44. 45. mvn-rpmbuild on Fedora
  45. 46. MEAD on RHEL 6 </li><ul><li>Vman & BOM </li></ul></ul>
  46. 47. Maven <ul><li>Consume the world
  47. 48. Targets either infinity or nothing </li></ul>
  48. 49. Mvn-rpmbuild (on Fedora) <ul><li>Consume pre-installed (JPP) artifacts
  49. 50. Targets the current installation
  50. 51. Ignores the version you want (/ need!) </li></ul>
  51. 52. MEAD on RHEL 6 <ul><li>Produces EAP 6
  52. 53. Let vman dictate the Bill Of Materials </li></ul>
  53. 54. Improving the process <ul><li>Everybody, packagers and upstream, should see the same target </li></ul>
  54. 55. Fedora / FOSS Repo Extension <ul><li>Consume sanctioned artifacts
  55. 56. Targets a well known runtime </li></ul>
  56. 57. Mindset <ul><li>Do not consume the world
  57. 58. Focus on the target platform </li></ul>
  58. 59. Let's start here <ul><li>on </li></ul>
  59. 60. Q & A <ul><li>http://www.jboss.org/jbossas
  60. 61. http://fedoraproject.org/wiki/JBossAS7
  61. 62. http://www.jboss.org/projects/matrix </li></ul>

×