code: private boolean _update(final Identification id) throws IOException, ServletException {
  
  	final File newLucee = downloadCore(id);
  	if (newLucee == null) return false;
  
  	if (singelton != null) singelton.reset();
  
  	final Version v = null;
  	try {
  
  	    bundleCollection = BundleLoader.loadBundles(this, getFelixCacheDirectory(), getBundleDirectory(), newLucee, bundleCollection);
  	    final CFMLEngine e = getEngine(bundleCollection);
  	    if (e == null) throw new IOException("can't load engine");
  	    version = e.getInfo().getVersion();
  	    // engine = e;
  	    setEngine(e);
  	    // e.reset();
  	    callListeners(e);
  
  	    ConfigServer cs = getConfigServer(e);
  	    if (cs != null) {
  		Log log = cs.getLog("deploy");
  		log.info("loader", "Lucee Version [" + v + "] installed");
  	    }
  
  	}
  	catch (final Exception e) {
  	    System.gc();
  	    try {
  		newLucee.delete();
  	    }
  	    catch (final Exception ee) {}
  	    log(e);
  	    e.printStackTrace();
  	    return false;
  	}
  
  	log(Logger.LOG_DEBUG, "Version (" + v + ")installed");
  	return true;
      }
docs: updates the engine when a update is available
  
  @return has updated
  @throws IOException
  @throws ServletException