

JRebel is the most popular tool in this area, that lets Java developers instantly update code (i.e. In this section I will discuss on certain technique and tools that can be used to minimize the redeployment during development time. Different approaches/technique/tools as solution The JVM loads classes and other resources into the classpath exactly once (unless running in debug mode) from the directories or Jars specified in the CLASSPATH environment variable using classLoader. Once a resource has been loaded by a ClassLoader instance, it remains in memory until the ClassLoader is garbage collected. Requests can only go to a parent class loader they cannot go to a child class loader JVMĪ JVM provides a run-time environment in which Java bytecode can be executed. If none of the parent class loaders can find the class, the original class loader attempts to load the class. Loader usually delegates the request to its parent class loader. Whenever a class needs to be loaded, the class That is, the application module class loaders are children of the WebSphere extensions class loader, which is a child of the CLASSPATH Java class loader. Each class loader is a child of the previous class loader. Web module class loaders are children of application class loaders. Web module class loaders load the contents of the WEB-INF/classes and WEB-INF/lib directories. In order to make updates to classes in a running virtual machine, the class loader that loaded the changed classes must be replaced with a new class loader. Java class loaders do not have any standard mechanism to undeploy or unload a set of classes, nor can they load new versions of classes.

A class loader is a part of the Java virtual machine (JVM) that loads classes into memory a class loader is responsible for finding and loading class files at run time. Java class loaderĬlass loaders are a fundamental module of the Java language. Understanding certain key concept:īefore going to explore different way to solve the problem lets discuss some key concept that will make it easier to understand that how the problem is handled by different tool/technique. Hence every time developer changes the code in workspace, these two above steps need to be performed,though the build process does not take much time but the publish process may be time consuming. Publishing involves copying files (projects, resource files, and server configurations) to the correct location for the server to find and use those. The java builder is notified of changes to the resources in a workspace and can automatically compile java code. Buildīuild command is responsible for compiling the java source code and generating classes. The normal process a developer follows after making any change in the java files of the workspace to make it available to the server, build the project and then publish the project. Normal process in development environment

In this article I will discuss such technologies that enable the developers to, resume it directly from where it was suspended instead of stopping and restarting the server, after modifying and compiling the program. In this blog some of the techniques/tools have been discussed to show how this problem can be resolved or minimized to increase the productivity of the development team. Thus minimizing this wastage of time development productivity can be enhanced significantly. It has been found in several statistical studies that in average 15 mints time get wasted by the developers in every 1hr to redeploy/publish their change. When a developer frequently makes small changes to an application with a long start up time that slows down the development process and especially if the project is using remote machine to de development, it takes considerable time to do redeployment.

Problem of redeploying during developmentĭuring development time of any web based java project the biggest headache for the developers is redeploying the code base to the server every time they make any change.
