Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Seven Simple Reasons to Use AppFuse
Matt Raible Virtuas Open Source Solutions [email protected]
Matt Raible — Seven Simple Reasons to Use AppFuse Page 1 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Introductions Your experience with Java? Your experience with Web Frameworks? What do you hope to learn today? Open Source experience: Ant, Struts, WebWork, Spring, Hibernate, Eclipse, Tomcat? Favorite IDE? Favorite OS? Favorite Server?
Matt Raible — Seven Simple Reasons to Use AppFuse Page 2 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Matt
Matt Raible — Seven Simple Reasons to Use AppFuse Page 3 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Raible
Matt Raible — Seven Simple Reasons to Use AppFuse Page 4 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 5 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 6 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 7 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 8 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 9 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 10 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 11 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 12 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 13 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 14 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 15 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 16 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 17 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Matt Raible — Seven Simple Reasons to Use AppFuse Page 18 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Agenda AppFuse Overview 7 Simple Reasons Competitors Roadmap Pitfalls Q and A
Matt Raible — Seven Simple Reasons to Use AppFuse Page 19 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions AppFuse Overview
Matt Raible — Seven Simple Reasons to Use AppFuse Page 20 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions - What Is It? A directory structure, build file and project classes to get your project started quickly The hard part is getting started and configuring dependencies Uses popular open-source tools: Ant, XDoclet, Spring, Hibernate, Struts (or JSF, Spring MVC, WebWork or Tapestry) Top 5 java.net project in hits, accesses and mail traffic
Matt Raible — Seven Simple Reasons to Use AppFuse Page 21 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions History Started as a sample app for Pro JSP Became a toolkit for starting new projects Lots of community feedback makes it a “best practices” webapp for Agile J2EE Documentation and Tutorials (November 2003) AppGen - CRUD made easy (November 2004) New Committers: Nathan, Ben, David and Sanjiv (2005), Mika and Thomas (2006) AppFuse 2.0: Java 5, Maven 2, Simplicity (2006-7) Matt Raible — Seven Simple Reasons to Use AppFuse Page 22 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Dependencies
Optional Installs
Matt Raible — Seven Simple Reasons to Use AppFuse Page 23 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Directory Structure
Matt Raible — Seven Simple Reasons to Use AppFuse Page 24 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Development Environment Download and install: Ant 1.6.5+ MySQL 4.1.x+ Tomcat 5.0.28+ or Geronimo 1.1+ Eclipse 3.2 (or IDEA 6) AppFuse 1.9.4 http://raibledesigns.com/wiki/DevelopmentEnvironment.html
Matt Raible — Seven Simple Reasons to Use AppFuse Page 25 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Powered by AppFuse
Matt Raible — Seven Simple Reasons to Use AppFuse Page 26 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Demo of Features Acegi Security - makes security more portable between containers Remember Me and Self Registration GZip Compression Built-in Testing environment ready to go, many tutorials, CruiseControl files included http://demo.appfuse.org/appfuse
Matt Raible — Seven Simple Reasons to Use AppFuse Page 27 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Setup Demo
http://demo.appfuse.org/setup.html
Matt Raible — Seven Simple Reasons to Use AppFuse Page 28 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
7 Simple Reasons to use AppFuse
Matt Raible — Seven Simple Reasons to Use AppFuse Page 29 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions 7 Reasons to Use AppFuse 1. Testing 2. Integration 3. Automation 4. Security 5. Code Generation 6. Documentation 7. Community
Matt Raible — Seven Simple Reasons to Use AppFuse Page 30 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions 1. Testing
DbUnit Spring Mocks JUnit
Matt Raible — Seven Simple Reasons to Use AppFuse Page 31 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions 2. Integration
Matt Raible — Seven Simple Reasons to Use AppFuse Page 32 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions 3. Automation
Matt Raible — Seven Simple Reasons to Use AppFuse Page 33 Colorado Software Summit:4. October Security 22 – 27, 2006 Features and© Copyright 2006, Virtuas Open Source Solutions Extensibility
Matt Raible — Seven Simple Reasons to Use AppFuse Page 34 Colorado Software Summit:5. October Code 22 – 27, 2006 Generation with© Copyright 2006, Virtuas Open Source Solutions AppGen
Matt Raible — Seven Simple Reasons to Use AppFuse Page 35 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions AppGen Demo
http://demo.appfuse.org/appgen.html
Matt Raible — Seven Simple Reasons to Use AppFuse Page 36 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions 6. Documentation
Matt Raible — Seven Simple Reasons to Use AppFuse Page 37 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions 7. Community
Matt Raible — Seven Simple Reasons to Use AppFuse Page 38 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Competition
Matt Raible — Seven Simple Reasons to Use AppFuse Page 39 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Similar Projects Trails Grails Ruby on Rails Able Seam RIFE Qwicket
Matt Raible — Seven Simple Reasons to Use AppFuse Page 40 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Roadmap
Matt Raible — Seven Simple Reasons to Use AppFuse Page 41 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions 2.0 Roadmap Milestone 1 Maven 2 integration Migrate from CVS to SVN Get all flavors (WARs) deployed and running on Tomcat and Jetty Maven Plugin Spring 2.0: Upgrade XML to XSDs, annotations where appropriate Upgrade WebWork to Struts 2 Documentation - move to new Confluence or DocBook-based system for 2.0 documentation
Matt Raible — Seven Simple Reasons to Use AppFuse Page 42 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
2.0 Roadmap (Continued) Milestone 2 JDK 5, Annotations and JSP 2.0 Archetypes for creating new AppFuse projects Documentation, including screencasts for tutorials Milestone 3 Integrate CeltiXFire by default Code Generation - replacing AppGen
Matt Raible — Seven Simple Reasons to Use AppFuse Page 43 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions 2.0 Nice to Haves TestNG replacing JUnit Hibernate Validation Annotations (hard part is hooking it into the web frameworks) Tomcat Plugin for Maven (like Jetty's plugin) JPA Support Support for JDK 1.4 using something like Retroweaver Support for using Ant to build/test/deploy
Matt Raible — Seven Simple Reasons to Use AppFuse Page 44 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Pitfalls and Issues
Matt Raible — Seven Simple Reasons to Use AppFuse Page 45 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Learn More From... Comparing Web Frameworks: https://equinox.dev.java.net/framework-comparison What’s new in Spring 2.0 http://www.springframework.org/docs/reference/new-in-2.html Spring 2.0 Kickstart http://springdeveloper.com/presentations/spring-kickstart.html
Matt Raible — Seven Simple Reasons to Use AppFuse Page 46 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Equinox AppFuse Light - designed for quick apps with few requirements (i.e. prototypes) Includes 6 MVC implementations: JSF, Spring MVC, Struts, Struts 2, Tapestry and WebWork Includes 5 Persistence frameworks: Hibernate, iBATIS, JDO, OJB, Spring JDBC 50 combinations available! Located at http://equinox.dev.java.net
Matt Raible — Seven Simple Reasons to Use AppFuse Page 47 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions Questions? AppFuse Project: http://appfuse.org Demos and Videos: http://demo.appfuse.org/demos.html Tutorials: http://appfuse.org/tutorials
Matt Raible — Seven Simple Reasons to Use AppFuse Page 48 Colorado Software Summit: October 22 – 27, 2006 © Copyright 2006, Virtuas Open Source Solutions
Don't forget to fill out your evaluation forms!
Matt Raible — Seven Simple Reasons to Use AppFuse Page 49