code: private void executeGlobalPreprocessing(List<JoinableResourceBundle> bundlesToBuild, boolean processBundleFlag,
  			StopWatch stopWatch) {
  
  		stopProcessIfNeeded();
  
  		if (resourceTypePreprocessor != null) {
  			if (stopWatch != null) {
  				stopWatch.start("Global preprocessing");
  			}
  			GlobalPreprocessingContext ctx = new GlobalPreprocessingContext(config, resourceHandler, processBundleFlag);
  			resourceTypePreprocessor.processBundles(ctx, bundles);
  
  			// Update the list of bundle to rebuild if new bundles have been
  			// detected as dirty in the global preprocessing phase
  			List<JoinableResourceBundle> currentBundles = getBundlesToRebuild();
  			for (JoinableResourceBundle b : currentBundles) {
  				if (!bundlesToBuild.contains(b)) {
  					bundlesToBuild.add(b);
  				}
  			}
  			if (stopWatch != null) {
  				stopWatch.stop();
  			}
  		}
  	}
docs: Executes the global preprocessing
  
  @param bundlesToBuild
  The list of bundles to rebuild
  
  @param processBundleFlag
  the flag indicating if the bundles needs to be processed
  @param stopWatch
  the stopWatch