7.
What do the version numbers mean? 7.0.22 • 7 major version • 0 minor version • 22 build number Build Number • Incremented with each build/SVN tag • Not all builds become release • Historically .18 has been the magic number • Stability • Bug fixes • Ready for enterprises 7

8.
When to upgrade? Starts with application developers Need new features in Java Need new features in Servlet specification Need new features in a framework built for later versions 8

11.
New version of Java Less invasive as technology matures 1.5 to 1.6 should be seamless Moving to 1.6 is beneficial from performance perspective 11

12.
Asynchronous Servlets No more thread per request model Servlet API still uses blocking programming model • Async is more complex, non blocking would have made it too complex Well suited for ‘Web 2.0’ applications API for developers, does not affect operations teams 12

13.
Annotations Alternative to XML configuration Requires scanning of libraries Will slow down startup time • Performance can be improved by documenting JAR files not to be scanned • tomcat.util.scan.DefaultJarScanner.jarsToSkip system property • Defined in conf/catalina.properties 13

14.
Web Fragments Libraries can ship with its partial web.xml configuration • Eases including frameworks Requires scanning of libraries Will slow down startup time • Performance can be improved by documenting JAR files not to be scanned • tomcat.util.scan.DefaultJarScanner.jarsToSkip system property • Defined in conf/catalina.properties 14

24.
Deployment Support parallel deployment Existing sessions go to the original applications New users go to the new application Defer undeployment DEMO 24

25.
Deployment Copying of  /META-INF/context.xml to  $CATALINA_BASE/<engine>/<host>/contextname.xml now optional and disabled by default One of the most confusing features in old version Often resulted in administrators unaware of accidental deployment Natural behaviour is that no files get created outside of application 25