[306534] [API] Child modules are ignored for modules with a single root
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/AbstractFlattenParticipant.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/AbstractFlattenParticipant.java
index dac34a8..024f710 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/AbstractFlattenParticipant.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/AbstractFlattenParticipant.java
@@ -31,8 +31,8 @@
 		return false;
 	}
 
-	public void optimize(IVirtualComponent component,
-			FlatComponentTaskModel dataModel, List<IFlatResource> resources) {
+	public void optimize(IVirtualComponent component, FlatComponentTaskModel dataModel, 
+			List<IFlatResource> resources, List<IChildModuleReference> childModules) {
 	}
 
 	public void finalize(IVirtualComponent component,
@@ -59,4 +59,5 @@
 			IVirtualReference referenced, FlatComponentTaskModel dataModel) {
 		return false;
 	}
+
 }
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatVirtualComponent.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatVirtualComponent.java
index ac95a1b..8ce9804 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatVirtualComponent.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/FlatVirtualComponent.java
@@ -115,7 +115,7 @@
 	protected void cacheResources() throws CoreException {
 		runInitializations();
 		if( canOptimize()) {
-			optimize(members);
+			optimize(members, children);
 		} else {
 			treeWalk();
 			runFinalizations(members);
@@ -138,10 +138,10 @@
 		return false;
 	}
 
-	protected void optimize(List<IFlatResource> resources) {
+	protected void optimize(List<IFlatResource> resources, List<IChildModuleReference> children) {
 		for( int i = 0; i < participants.length; i++ ) {
 			if( participants[i].canOptimize(component, dataModel)) {
-				participants[i].optimize(component, dataModel, resources);
+				participants[i].optimize(component, dataModel, resources, children);
 				return;
 			}
 		}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlattenParticipant.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlattenParticipant.java
index 32b17ae..54fd742 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlattenParticipant.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/IFlattenParticipant.java
@@ -69,8 +69,8 @@
 	 * @param original
 	 * @return
 	 */
-	public void optimize(IVirtualComponent component, 
-			FlatComponentTaskModel dataModel, List<IFlatResource> resources);
+	public void optimize(IVirtualComponent component, FlatComponentTaskModel dataModel, 
+			List<IFlatResource> resources, List<IChildModuleReference> children);
 	
 	/**
 	 * Returns true if this participant considers this file to be a child module