Presentation is loading. Please wait.

Presentation is loading. Please wait.

Vincent Massol, 1 st December 2006 Quality with Maven2.

Similar presentations


Presentation on theme: "Vincent Massol, 1 st December 2006 Quality with Maven2."— Presentation transcript:

1 Vincent Massol, 1 st December 2006 Quality with Maven2

2 Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)

3 Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)

4 Active quality = before the fact

5 Passive quality = after the fact

6 Active and Passive quality checks are both required… … but moving to active is the direction to take

7 Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)

8 Surefire JUnit and TestNG PMD Checkstyle Verifier Clover Changelog Changes In MavenIn MojoIn Mojo Sandbox Quality-related plugins Cargo Jetty QALab Clirr Cobertura Jalopy JDepend JavaNCSS JDiff Selenium JBoss DBUnit Jardiff JCoverage FindBugs Simian Emma Fit Tomcat WebLogic Elsewhere

9 Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)

10 Local Maven Repo Build Tools Module Module to be checked build-tools.jar Depends on build-tools.jar Coding conventions with Checkstyle

11

12 Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)

13 Binary compatibility with Clirr Automatically compares previous version API with current sources To try it quickly: mvn clirr:check Can generate reports too: Strategy: Exclude files that have voluntary violations

14 Binary compatibility with Clirr

15 Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)

16 Automated functional tests with Cargo Cargo: A Java API to manipulate containers (install, configure, start, stop, deploy) Cargo Has extensions for Ant, Maven1, Maven2, IntelliJ IDEA*, Netbeans* Currently support J2EE containers Tomcat, Orion, Resin, Jetty, WebLogic, OC4J, Geronimo, Jboss, jo! Upcoming: Glassfish, WebSphere Upcoming: database support

17 Automated functional tests with Cargo Install distribution Configure container Deploy Start container Run tests Stop container Install from URL Ex: http://www.caucho.com/download/resin-3.0.19.zip Either created by Cargo or use an existing configuration Deploy WAR, EAR, EJBs, etc Use any tool: JUnit, TestNG, Selenium, etc Its also possible to deploy to an already started container

18 Automated functional tests with Cargo Demo!

19 Full build automation Library builds Generate JARs Components builds Generate WARs, EARs, etc Databases build Generate databases with schema and data loaded (output is typically ZIP files) Containers build Generate fully configured containers with deployed components (output is typically ZIP files) Applications build Generate fully working applications (includes both containers and databases build outputs) Unit tests Functional tests Integration tests

20 Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)

21 Test coverage with Clover Module 1 Module 2 Module 3 Depends on Local Repository module1-clover.jar module2-clover.jar module3-clover.jar Build Dependency Depends on Build

22 Test coverage with Clover ReportingVerification Demo!

23 Agenda Active Quality vs Passive Quality Review of Quality-related plugins Coding conventions with Checkstyle Binary compatibility with Clirr Automated functional tests with Cargo Test coverage with Clover Project documentation with a wiki (Demo of XWiki)

24 Project documentation with a wiki Pros Easier participation and collaboration of everyone Even non-committers Always published WYSIWYG Dynamic pages Get code snippets from SVN Mini-Applications like on the fly charts for development metrics, etc Cons Versioned separately from the sources More complex to package Difficult to send patches/diffs Cannot work offline

25 XWiki demo

26 Me Questions

27 Example: http://www.bestventes.com

28 Example: http://www.curriki.org

29 Example: http://www.capdigital.com

30 Example: http://www.agrospheres.eu

31 Example: http://new.uaic.ro

32 Example: http://wiki.bonita.objectweb.org/


Download ppt "Vincent Massol, 1 st December 2006 Quality with Maven2."

Similar presentations


Ads by Google