tattletale - jboss · • what is tattletale ? • enterprise archives • jboss application server...
TRANSCRIPT
Tattletale
• What is Tattletale ?
• Enterprise archives
• JBoss Application Server 7• Putting it all together
• Roadmap
Problems
• You are faced with a lot of Java archives and you don't know how they relate
• You need to know in which archive(s) a class is located or if it is missing from the class-path
• You need quick access to version identifiers and the OSGi status
• You need help with removing illegal API usage
Goals
• Help identify dependencies– within the project
– on standard APIs
• Help getting an overview of all Java archives– which classes are provided
– which classes are required
– version information
• Help locate class information
Goals
• Generate reports that can help you improve the software quality of your project - f.ex.– splitting your project into the right number of
archives
– removing black listed API usage
– And all this without having access to the source code !!
Features
• Command line tool– java -jar tattletale.jar sourcedir outputdir– uses Javassist for its foundation
• Integrates with Apache Ant– <tattletale:report>
• Integrates with Apache Maven– tattletale-maven/report
Features
• Analyzer records– Archive information
– Archive level dependencies
– Package level dependencies
– Class level dependencies
• Can resolve dependencies against standard profiles– JDK5, JDK6, EE5, EE6, Seam, CDI and Spring
• Ability to filter unwanted results from the reports
Reports
• Three categories of reports– Dependency
– General
– Archive
• Each report focus on a specific area– Severity: INFO, WARNING, ERROR
– Status: GREEN, YELLOW, RED
– Very easy to implement new reports
– All reports are available in HTML
Dependency
• Class: Dependants, Depends On
• Package: Dependants, Depends On
• Jar: Dependants, Depends On
• Graphical Dependencies
• Transitive Dependants
• Transitive Depends On
• Circular Dependency
General
• Class Location
• OSGi
• Sealed information / Signed information
• Eliminate Jar files with different versions
• Invalid version / No version
• Multiple Jar files / Multiple Locations
• Unused Jar
• Black listed API
• JBoss AS7
Tattletale
• What is Tattletale ?
• Enterprise archives
• JBoss Application Server 7• Putting it all together
• Roadmap
Enterprise archives
• Tattletale reports for applications– EAR– WAR
• Remember to enable the profiles you are using– EE5, EE6, ...
Tattletale
• What is Tattletale ?
• Enterprise archives
• JBoss Application Server 7• Putting it all together
• Roadmap
JBoss Application Server 7
• Features– Unparalleled Speed– Modular Design– Exceptionally Lightweight– Elegant Administration– Strict Compliance– Easily Testable– First class, modern components
• JBoss Modules
Creating a shared module
• Create module structure– modules/com/acme/common/main– modules/com/acme/common/<slot>
• Copy resources to the directory• Create module.xml which describes the
module and its dependencies
module.xml
<module xmlns="urn:jboss:module:1.1" name="com.acme.common"> <resources> <resource-root path="lib1.jar"/> <resource-root path="lib2.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies></module>
Declaring dependencies
• Linking our application to modules
• MANIFEST.MF– Dependencies: <module>[,<module>]*
• jboss-deployment-structure.xml– https://docs.jboss.org/author/display/AS71/Class+Loading+in+AS7
Tattletale
• What is Tattletale ?
• Enterprise archives
• JBoss Application Server 7• Putting it all together
• Roadmap
Tattletale
• What is Tattletale ?
• Enterprise archives
• JBoss Application Server 7• Putting it all together
• Roadmap
Roadmap
• Cover the enterprise archives– JBoss specific too
• XML format– HTML, PDF, ...
• Jenkins plugin– Initial release is out– Lead: Vaclav Tunka
JBoss Cake
• Extension developed by Red Hat Consulting
• Helps to migrate applications– Vendor to JBoss– JBoss to JBoss
• Custom reports– Vendor specific code (.java, .jsp, ...)– Deployment metadata
Links
• Latest: Tattletale 1.2.0.Beta2
• Homepage– http://www.jboss.org/tattletale
• Documentation– http://www.jboss.org/tattletale/docs
• Get involved through our forums– New reports– New enterprise archives– ...
Links
• Git repository– https://github.com/jesperpedersen/tattletale
• Jenkins plugin– https://wiki.jenkins-ci.org/display/JENKINS/Tattletale+Plugin