Eliminating the Need for Constant Redeploying In Development“The time saving for me is significant. I’d say around 10% of my time in a day, sometimes more, is saved because of JRebel.” – Petri Heinonen, program manager, VaadinAbout the Vaadin Ltd JRebel Case StudyVaadin Ltd is the company behind the popular Vaadin Framework, an open source software development tool for building high-quality web user interfaces for business software.At Vaadin, JRebel is used during the development as well as the services work to create applications and solutions which use Vaadin. It eliminates the need for constant redeploying, providing an instant feedback loop between developing code and testing code.Company Score CardSize of development team: 60 Technologies in use: Jetty, Tomcat, GlassFish, JBoss, WebLogic, WebSphere, Java EE, Spring, Vaadin… and many moreTypes of apps being built: various UI and system apps for customer projects App redeploy time before JRebel: 20s - 1m depending on environmentNumber of redeploys per hour: 2 (because they took time)Number of instant reloads with JRebel per hour: 60Time saved per day using JRebel: at least 10%Company ProfileVaadin Ltd is the company behind the popular Vaadin Framework, an open source software development tool for building high-quality web user interfaces for business software. Since 2000, the technology was originally developed based on the programming challenges in a large-scale health care system. Java was chosen to be the platform and the project was open sourced later in 2002. Today, Vaadin is used daily by thousands of professional software developers in more than 170 countries. While the free technology is used all around the world, the company is headquartered in Turku, Finland. Most of Vaadin’s 60+ developers work here, but the company also has offices in California and Frankfurt.OUR VAADIN EXPERT Vaadin have both a services and a consulting team as well as an R&D/Engineering team which make use of JRebel internally. We caught up with Petri Heinonen, a Vaadin Expert, program manager and team lead who has been with Vaadin for over 4 years. Petri works in services on customer projects, building UI and backend systems for customer projects, as well as consulting and training. He has used JRebel for over 2 years now. Projects he works on can range from anything between a week and a couple of years. As a result, Petri has used JRebel across a wide range of application servers, including Jetty, Tomcat (these two are his preference due to size and speed), JBoss, GlassFish and WebLogic.DEVELOPMENT ENVIRONMENT Petri’s development environment itself also varies. The IDE he uses is Eclipse most of the time, but sometimes the project calls for IntelliJ IDEA. His build environment is usually Maven and Ant-oriented, and less frequently, Gradle. So he uses the JRebel support from the Ant and Maven plugins, so the configuration is all handled automatically on the build side. Time Saved and Benefits GainedThe redeploy time for Petri varies on the environment and application which he is working on at the time, but all environments he has worked on give some kind of productivity hit as redeploys don’t go away easily.I hate them so much, I actually try to architect my development environment to try to avoid them, particularly if the project uses Liferay. When I’m not using JRebel I redeploy and test my code once every 30 minutes or so, but when I use JRebel, I test every minute as my code is reloaded instantly.This instant feedback lowers the number of bugs in your code because you test your features instantly, if you can't test instantly you sometimes forget to test some of the things you’ve effectively ‘coded blindly’.Another area which Vaadin really gain value out of JRebel is in the persistence of state across a class reload. This maintains the point in time which the user is at throughout the reload of the underlying class.State is very important during our testing. To get to a certain place in an application using a more complex UI design, you often have to follow a trail to get into a specific state - sometimes you can get to it easily, in just a few clicks, other times it’s very hard - JRebel you can just refresh and maintain state - this is one of the primary reasons as to why I use JRebel.Time can be saved in many ways using JRebel, whether it’s the easilymeasurable waiting time for a application to redeploy, or the harder to measure early capture of bugs due to the instant testing cycles, or the maintained focus during a class reloadThe time saving for me is significant. I’d say around 10% of my time in a day, sometimes more, is saved because of JRebel, depending on the project.Before Vaadin introduced the Sass (Syntactically Awesome Stylesheets) compiler JRebel also updated the CSS updates in an application, meaning theme changes in an application were seen instantly when they were updated in your IDE.The time saving for me is significant.I’d say around 10% of my time in a day, sometimes more, is saved because of JRebel.”Petri Heinonen, Sr. Vaadin Expert at Vaadin