[395808] Fix for Java EE 6 web model to process artifacts found in web
fragment project.
diff --git a/plugins/org.eclipse.jst.jee/common/org/eclipse/jst/jee/model/internal/common/AbstractAnnotationModelProvider.java b/plugins/org.eclipse.jst.jee/common/org/eclipse/jst/jee/model/internal/common/AbstractAnnotationModelProvider.java
index e2a2ac9..35e00be 100644
--- a/plugins/org.eclipse.jst.jee/common/org/eclipse/jst/jee/model/internal/common/AbstractAnnotationModelProvider.java
+++ b/plugins/org.eclipse.jst.jee/common/org/eclipse/jst/jee/model/internal/common/AbstractAnnotationModelProvider.java
@@ -17,6 +17,7 @@
 
 import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceProxy;
 import org.eclipse.core.resources.IResourceProxyVisitor;
@@ -38,11 +39,15 @@
 import org.eclipse.jst.j2ee.model.IModelProvider;
 import org.eclipse.jst.j2ee.model.IModelProviderEvent;
 import org.eclipse.jst.j2ee.model.IModelProviderListener;
+import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities;
+import org.eclipse.jst.j2ee.project.WebUtilities;
 import org.eclipse.jst.javaee.core.JavaEEObject;
 import org.eclipse.jst.javaee.core.SecurityRole;
 import org.eclipse.jst.javaee.core.SecurityRoleRef;
 import org.eclipse.jst.javaee.ejb.SessionBean;
 import org.eclipse.jst.jee.JEEPlugin;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
 import org.eclipse.wst.common.project.facet.core.IFacetedProject;
 
 /**
@@ -242,6 +247,19 @@
 			return false;
 		else if (javaProject.getProject().equals(facetedProject.getProject()))
 			return true;
+		else if(JavaEEProjectUtilities.isWebFragmentProject(javaProject.getProject()) &&
+				JavaEEProjectUtilities.isDynamicWebProject(facetedProject.getProject()) &&
+				isWebFragmentOf(facetedProject.getProject(), javaProject.getProject()))
+			return true;
+		return false;
+	}
+
+	private boolean isWebFragmentOf(IProject webProject, IProject webFragment) {
+		IVirtualComponent componentWebProject = ComponentCore.createComponent(webProject);
+		IVirtualComponent componentWebFragment = ComponentCore.createComponent(webFragment);
+		if(componentWebProject != null && componentWebFragment != null){
+			return WebUtilities.getWebFragments(componentWebProject).contains(componentWebFragment);	
+		}
 		return false;
 	}