[94602] fix approved by PMC this insures all .deployables resources are marked derived....peer reviewed. Committing for DFH
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/ComponentStructuralBuilder.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/ComponentStructuralBuilder.java
index 5052348..3a3cd58 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/ComponentStructuralBuilder.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/ComponentStructuralBuilder.java
@@ -195,7 +195,7 @@
         } else if (resourceHasChanged(sourceResource)){
             if(targetResource.exists())
                 targetResource.delete(IResource.FORCE, monitor);
-            sourceResource.copy(absoluteOutputContainer, true, monitor);            
+            sourceResource.copy(absoluteOutputContainer, true, monitor);  
         }  else if (sourceResource.getType() == Resource.FOLDER) {
             IFolder folder = (IFolder) sourceResource;
             IResource[] members = folder.members();
@@ -207,6 +207,21 @@
         }
     }
 
+    public static void markBuilderResourcesDerived(IResource targetResource) throws CoreException{
+        if(targetResource == null)
+            return;
+        targetResource.setDerived(true);
+        if (targetResource.getType() == Resource.FOLDER){
+            IFolder folder = (IFolder) targetResource;
+            IResource[] members = folder.members();
+            if(members != null) {
+                for (int i = 0; i < members.length; i++) {
+                    markBuilderResourcesDerived(members[i]);
+                }
+            }
+        } 
+    }
+
     private static boolean resourceHasChanged(IResource targetResource) {
         for(int i = 0; i<changedResources.size(); i++){
             if(targetResource.equals(changedResources.get(i)))
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/ComponentStructuralBuilderDependencyResolver.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/ComponentStructuralBuilderDependencyResolver.java
index 11676cc..5fcaf06 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/ComponentStructuralBuilderDependencyResolver.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/builder/ComponentStructuralBuilderDependencyResolver.java
@@ -13,11 +13,13 @@
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoableOperation;
+import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IncrementalProjectBuilder;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.wst.common.componentcore.internal.StructureEdit;
 import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
 import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
 
@@ -42,7 +44,9 @@
 	 *      org.eclipse.core.runtime.IProgressMonitor)
 	 */
 	protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws CoreException {
+        IFolder[] outputFolders = null;
 		try {
+            outputFolders = StructureEdit.getOutputContainersForProject(getProject());
 			List delayedOperationDMs = ReferencedComponentBuilderDelayedDataModelCache.getInstance().getCacheList();
 			IDataModel dataModel = null;
 			IUndoableOperation op = null;
@@ -53,11 +57,16 @@
 					op.execute(monitor, null);
 				}
 			}
+            if(outputFolders != null) {
+                for(int i = 0; i<outputFolders.length; i++){
+                    ComponentStructuralBuilder.markBuilderResourcesDerived(outputFolders[i]);
+                }
+            }
 		} catch (ExecutionException e) {
 			Logger.getLogger().log(e.getMessage());
 		} finally {
 			ReferencedComponentBuilderDelayedDataModelCache.getInstance().clearCache();
-		}
+        }
 		return null;
 	}
 }
\ No newline at end of file