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 ?  Your experience with Web Frameworks?  What do you hope to learn today?  Open Source experience: Ant, Struts, WebWork, Spring, , 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    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