[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; }