code: @Override
  	public void dependenciesLoaded(IDependencies deps, long sequence) {
  		/*
  		 * Aggregate the dependent features from all the modules into a single,
  		 * alphabetically sorted, list of features.
  		 */
  		Set<String> features = new TreeSet<String>();
  		try {
  			for (String mid : deps.getDependencyNames()) {
  				features.addAll(deps.getDependentFeatures(mid));
  			}
  			dependentFeatures = Collections.unmodifiableList(Arrays.asList(features.toArray(new String[features.size()])));
  			depFeatureListResource = createFeatureListResource(dependentFeatures, getFeatureListResourceUri(), deps.getLastModified());
  			generateModuleIdMap(deps);
  			depsInitialized.countDown();
  		} catch (ProcessingDependenciesException e) {
  			if (log.isLoggable(Level.WARNING)) {
  				log.log(Level.WARNING, e.getMessage(), e);
  			}
  			// Don't clear the latch as another call to this method can be expected soon
  		} catch (Throwable t) {
  			if (log.isLoggable(Level.SEVERE)) {
  				log.log(Level.SEVERE, t.getMessage(), t);
  			}
  			// Clear the latch to allow the waiting thread to wake up.  If
  			// dependencies have never been initialized, then NullPointerExceptions
  			// will be thrown for any threads trying to access the uninitialized
  			// dependencies.
  			depsInitialized.countDown();
  
  		}
  	}
docs: /* (non-Javadoc)
  @see com.ibm.jaggr.service.deps.IDependenciesListener#dependenciesLoaded(com.ibm.jaggr.service.deps.IDependencies, long)