code: public static int loadNewVersionOfType(ClassLoader classLoader, String dottedClassname, byte[] newbytes) {
  		try {
  			// Obtain the type registry of interest
  			TypeRegistry typeRegistry = TypeRegistry.getTypeRegistryFor(classLoader);
  			if (typeRegistry == null) {
  				return 1;
  			}
  			// Find the reloadable type
  			ReloadableType reloadableType = typeRegistry.getReloadableType(dottedClassname.replace('.', '/'));
  			if (reloadableType == null) {
  				return 2;
  			}
  			// Create a unique version tag for this reload attempt
  			String tag = Utils.encode(System.currentTimeMillis());
  			boolean reloaded = reloadableType.loadNewVersion(tag, newbytes);
  			return reloaded ? 0 : 3;
  		}
  		catch (Exception e) {
  			e.printStackTrace();
  			return 4;
  		}
  	}
docs: Force a reload of an existing type.
  
  @param classLoader the classloader that was used to load the original form of the type
  @param dottedClassname the dotted name of the type being reloaded, e.g. com.foo.Bar
  @param newbytes the data bytecode data to reload as the new version
  @return int return code: 0 is success. 1 is unknown classloader, 2 is unknown type (possibly not yet loaded). 3
  is reload event failed. 4 is exception occurred.