Search in sources :

Example 1 with ModuleDelegate

use of org.eclipse.wst.server.core.model.ModuleDelegate in project sling by apache.

the class SlingContentModuleAdapterTest method projectMembersContainContentXmlFirst.

@Test
public void projectMembersContainContentXmlFirst() throws Exception {
    // create faceted project
    IProject contentProject = projectRule.getProject();
    ProjectAdapter project = new ProjectAdapter(contentProject);
    project.addNatures(JavaCore.NATURE_ID, "org.eclipse.wst.common.project.facet.core.nature");
    // install bundle facet
    project.installFacet("sling.content", "1.0");
    project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/1_file.txt"), new ByteArrayInputStream(new byte[0]));
    project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/2_folder/filler.txt"), new ByteArrayInputStream(new byte[0]));
    project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/3_file.txt"), new ByteArrayInputStream(new byte[0]));
    project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/4_folder/filler.txt"), new ByteArrayInputStream(new byte[0]));
    project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/5_file.txt"), new ByteArrayInputStream(new byte[0]));
    project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/.content.xml"), new ByteArrayInputStream(new byte[0]));
    IModule module = ServerUtil.getModule(contentProject);
    SlingContentModuleFactory moduleFactory = new SlingContentModuleFactory();
    ModuleDelegate moduleDelegate = moduleFactory.getModuleDelegate(module);
    IModuleResource[] members = moduleDelegate.members();
    assertThat("members[0].path", members[0].getModuleRelativePath().toPortableString(), equalTo(""));
    assertThat("members[1].path", members[1].getModuleRelativePath().toPortableString(), equalTo("content"));
    assertThat("members[2].path", members[2].getModuleRelativePath().toPortableString(), equalTo("content/.content.xml"));
}
Also used : IModuleResource(org.eclipse.wst.server.core.model.IModuleResource) IModule(org.eclipse.wst.server.core.IModule) ByteArrayInputStream(java.io.ByteArrayInputStream) ProjectAdapter(org.apache.sling.ide.test.impl.helpers.ProjectAdapter) ModuleDelegate(org.eclipse.wst.server.core.model.ModuleDelegate) IProject(org.eclipse.core.resources.IProject) SlingContentModuleFactory(org.apache.sling.ide.eclipse.core.internal.SlingContentModuleFactory) Test(org.junit.Test)

Example 2 with ModuleDelegate

use of org.eclipse.wst.server.core.model.ModuleDelegate in project webtools.servertools by eclipse.

the class ModulePublishInfo method getDelta.

protected IModuleResourceDelta[] getDelta(IModule[] module) {
    if (module == null)
        return EMPTY_MODULE_RESOURCE_DELTA;
    if (useCache) {
        fillCache(module);
        return delta;
    }
    IModule m = module[module.length - 1];
    ModuleDelegate pm = (ModuleDelegate) m.loadAdapter(ModuleDelegate.class, null);
    if (pm == null || (m.getProject() != null && !m.getProject().isAccessible()))
        return EMPTY_MODULE_RESOURCE_DELTA;
    IModuleResource[] resources2 = null;
    try {
        resources2 = pm.members();
        printModule(resources2, "delta:");
    } catch (CoreException ce) {
        if (Trace.WARNING) {
            Trace.trace(Trace.STRING_WARNING, "Possible failure in getDelta", ce);
        }
    }
    if (resources2 == null)
        resources2 = EMPTY_MODULE_RESOURCE;
    return ServerPublishInfo.getDelta(getResources(), resources2);
}
Also used : IModuleResource(org.eclipse.wst.server.core.model.IModuleResource) IModule(org.eclipse.wst.server.core.IModule) ModuleDelegate(org.eclipse.wst.server.core.model.ModuleDelegate)

Example 3 with ModuleDelegate

use of org.eclipse.wst.server.core.model.ModuleDelegate in project webtools.servertools by eclipse.

the class ModulePublishInfo method hasDelta.

protected boolean hasDelta(IModule[] module) {
    if (module == null)
        return false;
    if (useCache) {
        fillCache(module);
        return hasDelta;
    }
    IModule m = module[module.length - 1];
    ModuleDelegate pm = (ModuleDelegate) m.loadAdapter(ModuleDelegate.class, null);
    IModuleResource[] resources2 = null;
    if (pm == null || (m.getProject() != null && !m.getProject().isAccessible()))
        return false;
    try {
        resources2 = pm.members();
    } catch (CoreException ce) {
        if (Trace.WARNING) {
            Trace.trace(Trace.STRING_WARNING, "Possible failure in hasDelta", ce);
        }
    }
    if (resources2 == null)
        resources2 = EMPTY_MODULE_RESOURCE;
    return ServerPublishInfo.hasDelta(getResources(), resources2);
}
Also used : IModuleResource(org.eclipse.wst.server.core.model.IModuleResource) IModule(org.eclipse.wst.server.core.IModule) ModuleDelegate(org.eclipse.wst.server.core.model.ModuleDelegate)

Example 4 with ModuleDelegate

use of org.eclipse.wst.server.core.model.ModuleDelegate in project sling by apache.

the class SlingContentModuleAdapterTest method projectMembersContainDotDirFoldersLast.

@Test
public void projectMembersContainDotDirFoldersLast() throws Exception {
    // create faceted project
    IProject contentProject = projectRule.getProject();
    ProjectAdapter project = new ProjectAdapter(contentProject);
    project.addNatures(JavaCore.NATURE_ID, "org.eclipse.wst.common.project.facet.core.nature");
    // install bundle facet
    project.installFacet("sling.content", "1.0");
    project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/testproject/_jcr_content/image/file"), new ByteArrayInputStream(new byte[0]));
    project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/testproject/_jcr_content/image/file.dir/.content.xml"), new ByteArrayInputStream(new byte[0]));
    project.createOrUpdateFile(Path.fromPortableString("jcr_root/content/testproject/_jcr_content/image/file.dir/_jcr_content/_dam_thumbnails/_dam_thumbnail_319.png"), new ByteArrayInputStream(new byte[0]));
    IModule module = ServerUtil.getModule(contentProject);
    SlingContentModuleFactory moduleFactory = new SlingContentModuleFactory();
    ModuleDelegate moduleDelegate = moduleFactory.getModuleDelegate(module);
    IModuleResource[] members = moduleDelegate.members();
    int fileIdx = -1;
    int fileDirIdx = -1;
    for (int i = 0; i < members.length; i++) {
        String memberName = members[i].getModuleRelativePath().lastSegment();
        if (memberName == null) {
            continue;
        } else if (memberName.equals("file.dir")) {
            fileDirIdx = i;
        } else if (memberName.equals("file")) {
            fileIdx = i;
        }
    }
    Assert.assertTrue("file not sorted before file.dir ; file index = " + fileIdx + ", file.dir index = " + fileDirIdx, fileIdx < fileDirIdx);
}
Also used : IModuleResource(org.eclipse.wst.server.core.model.IModuleResource) IModule(org.eclipse.wst.server.core.IModule) ByteArrayInputStream(java.io.ByteArrayInputStream) ProjectAdapter(org.apache.sling.ide.test.impl.helpers.ProjectAdapter) ModuleDelegate(org.eclipse.wst.server.core.model.ModuleDelegate) IProject(org.eclipse.core.resources.IProject) SlingContentModuleFactory(org.apache.sling.ide.eclipse.core.internal.SlingContentModuleFactory) Test(org.junit.Test)

Example 5 with ModuleDelegate

use of org.eclipse.wst.server.core.model.ModuleDelegate in project webtools.servertools by eclipse.

the class ModulePublishInfo method getModuleResources.

protected IModuleResource[] getModuleResources(IModule[] module) {
    if (module == null)
        return EMPTY_MODULE_RESOURCE;
    if (useCache) {
        fillCache(module);
        return currentResources;
    }
    int size = module.length;
    IModule m = module[size - 1];
    ModuleDelegate pm = (ModuleDelegate) m.loadAdapter(ModuleDelegate.class, null);
    if (pm == null || (m.getProject() != null && !m.getProject().isAccessible()))
        return EMPTY_MODULE_RESOURCE;
    try {
        long time = System.currentTimeMillis();
        IModuleResource[] x = pm.members();
        if (ServerPlugin.getInstance().isDebugging())
            printModule(x, "resources: ");
        if (Trace.PERFORMANCE) {
            Trace.trace(Trace.STRING_PERFORMANCE, "Time to get members() for " + module[size - 1].getName() + ": " + (System.currentTimeMillis() - time));
        }
        return x;
    } catch (CoreException ce) {
        if (Trace.WARNING) {
            Trace.trace(Trace.STRING_WARNING, "Possible failure in getModuleResources", ce);
        }
    }
    return EMPTY_MODULE_RESOURCE;
}
Also used : IModuleResource(org.eclipse.wst.server.core.model.IModuleResource) IModule(org.eclipse.wst.server.core.IModule) ModuleDelegate(org.eclipse.wst.server.core.model.ModuleDelegate)

Aggregations

IModule (org.eclipse.wst.server.core.IModule)7 ModuleDelegate (org.eclipse.wst.server.core.model.ModuleDelegate)7 IModuleResource (org.eclipse.wst.server.core.model.IModuleResource)5 ByteArrayInputStream (java.io.ByteArrayInputStream)2 SlingContentModuleFactory (org.apache.sling.ide.eclipse.core.internal.SlingContentModuleFactory)2 ProjectAdapter (org.apache.sling.ide.test.impl.helpers.ProjectAdapter)2 IProject (org.eclipse.core.resources.IProject)2 Test (org.junit.Test)2