Bug 167893 [Workbench] [RCP]Create an org.eclipse.ui.ide.application plug-in
M4 We have many situations where people want to use our resource based APIs but cannot due to a required dependency on the IDE application. Likewise we have code in the IDE that would like to use other plug-in but cannot due to a circular dependency (specifically the Common Navigator requires the resource parts of the IDE so we can't use it in the IDE without the circular dependency). Looking at the code in IDE the vast majority of it could be moved to a resources based plug-in with only a small amount left in IDE to support the IDE application and the Resource Perspective. This would allow 1) RCP apps to use our views like the Problems View with thier own application. Right now many are forced to subclass our (internal) application class to get this to work. 2) The resource navigator to rely only on the new org,eclipse.ui.workbench.resources plug-in thereby allowing the IDE to refer to it.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEIdleHelper.java
* garbage collection is enabled.
	 */
	private static final String PROP_GC = "ide.gc"; 
	/**
	 * The name of the integer system property that specifies the minimum time 
	 * interval in milliseconds between garbage collections.
	 */
	private static final String PROP_GC_INTERVAL = "ide.gc.interval"; 
	/**
	 * The name of the integer system property that specifies the maximum 
	 * duration for a garbage collection. If this duration is ever exceeded, the 
	 * explicit gc mechanism is disabled for the remainder of the session.
	 */
	private static final String PROP_GC_MAX = "ide.gc.max"; 
	protected IWorkbenchConfigurer configurer;
	private Listener idleListener;
	/**
	 * The last time we garbage collected.
	 */
	private long lastGC = System.currentTimeMillis();
	/**
	 * The maximum gc duration. If this value is exceeded, the
	 * entire explicit gc mechanism is disabled.
	 */
	private int maxGC = DEFAULT_GC_MAX;
	/**
	 * The minimum time interval until the next garbage collection
	 */
	private int minGCInterval = DEFAULT_GC_INTERVAL;
	/**