Search in sources :

Example 6 with IVirtualReference

use of org.eclipse.wst.common.componentcore.resources.IVirtualReference in project webtools.sourceediting by eclipse.

the class FacetModuleCoreSupportDelegate method getAcceptableRootPaths.

static IPath[] getAcceptableRootPaths(IProject project) {
    if (!ModuleCoreNature.isFlexibleProject(project)) {
        return new IPath[] { project.getFullPath() };
    }
    List paths = new ArrayList();
    IVirtualFolder componentFolder = ComponentCore.createFolder(project, Path.ROOT);
    if (componentFolder != null && componentFolder.exists()) {
        IContainer[] workspaceFolders = componentFolder.getUnderlyingFolders();
        for (int i = 0; i < workspaceFolders.length; i++) {
            if (workspaceFolders[i].getFolder(FacetModuleCoreSupport.META_INF_RESOURCES_PATH).isAccessible())
                paths.add(workspaceFolders[i].getFullPath().append(FacetModuleCoreSupport.META_INF_RESOURCES_PATH));
            else
                paths.add(workspaceFolders[i].getFullPath());
        }
        IVirtualReference[] references = ComponentCore.createComponent(project).getReferences();
        if (references != null) {
            for (int i = 0; i < references.length; i++) {
                IVirtualComponent referencedComponent = references[i].getReferencedComponent();
                if (referencedComponent == null)
                    continue;
                IVirtualComponent component = referencedComponent.getComponent();
                if (component == null)
                    continue;
                IVirtualFolder rootFolder = component.getRootFolder();
                if (rootFolder == null)
                    continue;
                IPath referencedPathRoot = rootFolder.getWorkspaceRelativePath();
                /* http://bugs.eclipse.org/410161 */
                if (referencedPathRoot != null) {
                    /*
						 * See Servlet 3.0, section 4.6 ; this is the only
						 * referenced module/component type we support
						 */
                    IPath resourcesPath = referencedPathRoot.append(FacetModuleCoreSupport.META_INF_RESOURCES);
                    if (resourcesPath != null && component.getProject().findMember(resourcesPath.removeFirstSegments(1)) != null) {
                        paths.add(resourcesPath);
                    }
                }
            }
        }
    } else {
        paths.add(project.getFullPath());
    }
    return (IPath[]) paths.toArray(new IPath[paths.size()]);
}
Also used : IPath(org.eclipse.core.runtime.IPath) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) IVirtualFolder(org.eclipse.wst.common.componentcore.resources.IVirtualFolder) IVirtualReference(org.eclipse.wst.common.componentcore.resources.IVirtualReference) IContainer(org.eclipse.core.resources.IContainer) IVirtualComponent(org.eclipse.wst.common.componentcore.resources.IVirtualComponent)

Example 7 with IVirtualReference

use of org.eclipse.wst.common.componentcore.resources.IVirtualReference in project webtools.sourceediting by eclipse.

the class FacetModuleCoreSupportDelegate method resolveInReferenced.

private static IPath resolveInReferenced(IProject project, IPath runtimeReference) {
    IVirtualReference[] references = ComponentCore.createComponent(project).getReferences();
    if (references != null) {
        for (int i = 0; i < references.length; i++) {
            IVirtualComponent referencedComponent = references[i].getReferencedComponent();
            if (referencedComponent == null)
                continue;
            IVirtualComponent component = referencedComponent.getComponent();
            if (component == null)
                continue;
            IVirtualFolder rootFolder = component.getRootFolder();
            if (rootFolder == null)
                continue;
            IPath referencedPathRoot = rootFolder.getWorkspaceRelativePath();
            /* http://bugs.eclipse.org/410161 */
            if (referencedPathRoot != null) {
                /*
					 * See Servlet 3.0, section 4.6, web fragments as required
					 * projects
					 */
                IPath resolved = referencedPathRoot.append(FacetModuleCoreSupport.META_INF_RESOURCES).append(runtimeReference);
                if (resolved != null && component.getProject().findMember(resolved.removeFirstSegments(1)) != null) {
                    return resolved;
                }
            }
            // overlay?
            IVirtualResource member = rootFolder.findMember(runtimeReference);
            if (member != null) {
                return member.getWorkspaceRelativePath();
            }
        }
    }
    return null;
}
Also used : IPath(org.eclipse.core.runtime.IPath) IVirtualReference(org.eclipse.wst.common.componentcore.resources.IVirtualReference) IVirtualFolder(org.eclipse.wst.common.componentcore.resources.IVirtualFolder) IVirtualComponent(org.eclipse.wst.common.componentcore.resources.IVirtualComponent) IVirtualResource(org.eclipse.wst.common.componentcore.resources.IVirtualResource)

Example 8 with IVirtualReference

use of org.eclipse.wst.common.componentcore.resources.IVirtualReference in project webtools.sourceediting by eclipse.

the class FacetModuleCoreSupportDelegate method getReferenced.

static IProject[] getReferenced(IProject current) {
    if (!ModuleCoreNature.isFlexibleProject(current))
        return new IProject[0];
    Set projects = new HashSet();
    IVirtualReference[] references = ComponentCore.createComponent(current).getReferences();
    if (references != null) {
        for (int i = 0; i < references.length; i++) {
            IVirtualComponent referencedComponent = references[i].getReferencedComponent();
            if (referencedComponent == null)
                continue;
            IProject project = referencedComponent.getProject();
            if (project == null || project.equals(current))
                continue;
            projects.add(project);
        }
    }
    return (IProject[]) projects.toArray(new IProject[projects.size()]);
}
Also used : Set(java.util.Set) HashSet(java.util.HashSet) IVirtualReference(org.eclipse.wst.common.componentcore.resources.IVirtualReference) IVirtualComponent(org.eclipse.wst.common.componentcore.resources.IVirtualComponent) IProject(org.eclipse.core.resources.IProject) HashSet(java.util.HashSet)

Example 9 with IVirtualReference

use of org.eclipse.wst.common.componentcore.resources.IVirtualReference in project webtools.sourceediting by eclipse.

the class ComponentDeployable method addUtilMembers.

protected void addUtilMembers(IVirtualComponent vc) {
    ArtifactEdit edit = null;
    try {
        edit = getComponentArtifactEditForRead();
        IVirtualReference[] components = vc.getReferences();
        for (int i = 0; i < components.length; i++) {
            IVirtualReference reference = components[i];
            IVirtualComponent virtualComp = reference.getReferencedComponent();
            if (shouldIncludeUtilityComponent(virtualComp, components, edit)) {
                addUtilMember(vc, reference, reference.getRuntimePath());
            }
        }
    } finally {
        if (edit != null)
            edit.dispose();
    }
}
Also used : IVirtualReference(org.eclipse.wst.common.componentcore.resources.IVirtualReference) IVirtualComponent(org.eclipse.wst.common.componentcore.resources.IVirtualComponent) ArtifactEdit(org.eclipse.wst.common.componentcore.ArtifactEdit)

Example 10 with IVirtualReference

use of org.eclipse.wst.common.componentcore.resources.IVirtualReference in project webtools.sourceediting by eclipse.

the class ComponentDeployable method getModules.

public IModule[] getModules() {
    List<IModule> modules = new ArrayList<IModule>();
    if (component != null) {
        IVirtualReference[] components = getReferences(component);
        for (int i = 0; i < components.length; i++) {
            IVirtualReference reference = components[i];
            if (reference != null && reference.getDependencyType() == IVirtualReference.DEPENDENCY_TYPE_USES) {
                IVirtualComponent virtualComp = reference.getReferencedComponent();
                IModule module = gatherModuleReference(component, virtualComp);
                if (module != null && !modules.contains(module))
                    modules.add(module);
            }
        }
    }
    return modules.toArray(new IModule[modules.size()]);
}
Also used : IModule(org.eclipse.wst.server.core.IModule) ArrayList(java.util.ArrayList) IVirtualReference(org.eclipse.wst.common.componentcore.resources.IVirtualReference) IVirtualComponent(org.eclipse.wst.common.componentcore.resources.IVirtualComponent)

Aggregations

IVirtualReference (org.eclipse.wst.common.componentcore.resources.IVirtualReference)12 IVirtualComponent (org.eclipse.wst.common.componentcore.resources.IVirtualComponent)11 IPath (org.eclipse.core.runtime.IPath)6 IVirtualFolder (org.eclipse.wst.common.componentcore.resources.IVirtualFolder)6 ArrayList (java.util.ArrayList)5 List (java.util.List)3 IContainer (org.eclipse.core.resources.IContainer)3 IFile (org.eclipse.core.resources.IFile)3 IVirtualResource (org.eclipse.wst.common.componentcore.resources.IVirtualResource)3 IProject (org.eclipse.core.resources.IProject)2 IClasspathEntry (org.eclipse.jdt.core.IClasspathEntry)2 HashSet (java.util.HashSet)1 Set (java.util.Set)1 IFolder (org.eclipse.core.resources.IFolder)1 WorkspaceJob (org.eclipse.core.resources.WorkspaceJob)1 CoreException (org.eclipse.core.runtime.CoreException)1 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)1 IStatus (org.eclipse.core.runtime.IStatus)1 Path (org.eclipse.core.runtime.Path)1 ClasspathContainerInitializer (org.eclipse.jdt.core.ClasspathContainerInitializer)1