Search in sources :

Example 36 with IModuleResource

use of org.eclipse.wst.server.core.model.IModuleResource 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)

Example 37 with IModuleResource

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

the class ModulePublishInfo method saveResource.

protected void saveResource(DataOutput out, IModuleResource[] resources2) throws IOException {
    if (resources2 == null)
        return;
    int size = resources2.length;
    out.writeInt(size);
    for (int i = 0; i < size; i++) {
        if (resources2[i] instanceof IModuleFile) {
            IModuleFile file = (IModuleFile) resources2[i];
            out.writeByte(0);
            out.writeUTF(file.getName());
            out.writeLong(file.getModificationStamp());
        } else {
            IModuleFolder folder = (IModuleFolder) resources2[i];
            out.writeByte(1);
            out.writeUTF(folder.getName());
            IModuleResource[] resources3 = folder.members();
            saveResource(out, resources3);
        }
    }
}
Also used : IModuleFolder(org.eclipse.wst.server.core.model.IModuleFolder) IModuleResource(org.eclipse.wst.server.core.model.IModuleResource) IModuleFile(org.eclipse.wst.server.core.model.IModuleFile)

Example 38 with IModuleResource

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

the class ModulePublishInfo method loadResource.

/**
 * Used only for reading from WTP 1.x workspaces.
 */
protected IModuleResource[] loadResource(IMemento memento, IPath path) {
    if (memento == null)
        return EMPTY_MODULE_RESOURCE;
    List<IModuleResource> list = new ArrayList<IModuleResource>(10);
    // load files
    IMemento[] children = memento.getChildren(FILE);
    if (children != null) {
        int size = children.length;
        for (int i = 0; i < size; i++) {
            String name2 = children[i].getString(NAME);
            long stamp = Long.parseLong(children[i].getString(STAMP));
            ModuleFile file = new ModuleFile(name2, path, stamp);
            list.add(file);
        }
    }
    // load folders
    children = memento.getChildren(FOLDER);
    if (children != null) {
        int size = children.length;
        for (int i = 0; i < size; i++) {
            String name2 = children[i].getString(NAME);
            ModuleFolder folder = new ModuleFolder(null, name2, path);
            folder.setMembers(loadResource(children[i], path.append(name2)));
            list.add(folder);
        }
    }
    IModuleResource[] resources2 = new IModuleResource[list.size()];
    list.toArray(resources2);
    return resources2;
}
Also used : IModuleResource(org.eclipse.wst.server.core.model.IModuleResource) IModuleFile(org.eclipse.wst.server.core.model.IModuleFile) ModuleFile(org.eclipse.wst.server.core.util.ModuleFile) IModuleFolder(org.eclipse.wst.server.core.model.IModuleFolder) ModuleFolder(org.eclipse.wst.server.core.util.ModuleFolder)

Example 39 with IModuleResource

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

the class ModulePublishInfo method loadResource.

private IModuleResource[] loadResource(DataInput in, IPath path) throws IOException {
    int size = in.readInt();
    if (size > 1000000)
        throw new IOException("Folder capacity limit reached");
    IModuleResource[] resources2 = new IModuleResource[size];
    for (int i = 0; i < size; i++) {
        byte b = in.readByte();
        if (b == 0) {
            String name2 = in.readUTF();
            long stamp = in.readLong();
            resources2[i] = new ModuleFile(name2, path, stamp);
        } else if (b == 1) {
            String name2 = in.readUTF();
            ModuleFolder folder = new ModuleFolder(null, name2, path);
            folder.setMembers(loadResource(in, path.append(name2)));
            resources2[i] = folder;
        }
    }
    return resources2;
}
Also used : IModuleResource(org.eclipse.wst.server.core.model.IModuleResource) IModuleFile(org.eclipse.wst.server.core.model.IModuleFile) ModuleFile(org.eclipse.wst.server.core.util.ModuleFile) IOException(java.io.IOException) IModuleFolder(org.eclipse.wst.server.core.model.IModuleFolder) ModuleFolder(org.eclipse.wst.server.core.util.ModuleFolder)

Example 40 with IModuleResource

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

the class PreviewServerBehaviour method publishModule.

/*
	 * Publishes the given module to the server.
	 */
protected void publishModule(int kind, int deltaKind, IModule[] moduleTree, IProgressMonitor monitor) throws CoreException {
    IModule module = moduleTree[moduleTree.length - 1];
    if (isSingleRootStructure(module)) {
        setModulePublishState(moduleTree, IServer.PUBLISH_STATE_NONE);
        return;
    }
    IPath to = getModulePublishDirectory(module);
    if (kind == IServer.PUBLISH_CLEAN || deltaKind == ServerBehaviourDelegate.REMOVED) {
        IStatus[] status = PublishUtil.deleteDirectory(to.toFile(), monitor);
        throwException(status);
    }
    IModuleResource[] res = getResources(moduleTree);
    IStatus[] status = PublishUtil.publishSmart(res, to, monitor);
    throwException(status);
    setModulePublishState(moduleTree, IServer.PUBLISH_STATE_NONE);
}
Also used : IModuleResource(org.eclipse.wst.server.core.model.IModuleResource) IModule(org.eclipse.wst.server.core.IModule) IStatus(org.eclipse.core.runtime.IStatus) IPath(org.eclipse.core.runtime.IPath)

Aggregations

IModuleResource (org.eclipse.wst.server.core.model.IModuleResource)45 IPath (org.eclipse.core.runtime.IPath)24 IModuleFolder (org.eclipse.wst.server.core.model.IModuleFolder)21 IFile (org.eclipse.core.resources.IFile)17 IStatus (org.eclipse.core.runtime.IStatus)17 IModule (org.eclipse.wst.server.core.IModule)12 File (java.io.File)11 IModuleFile (org.eclipse.wst.server.core.model.IModuleFile)10 ModuleFile (org.eclipse.wst.server.core.util.ModuleFile)9 IProject (org.eclipse.core.resources.IProject)8 CoreException (org.eclipse.core.runtime.CoreException)8 IModuleResourceDelta (org.eclipse.wst.server.core.model.IModuleResourceDelta)8 ArrayList (java.util.ArrayList)7 ModuleFolder (org.eclipse.wst.server.core.util.ModuleFolder)7 ModuleDelegate (org.eclipse.wst.server.core.model.ModuleDelegate)5 IContainer (org.eclipse.core.resources.IContainer)4 Path (org.eclipse.core.runtime.Path)4 Status (org.eclipse.core.runtime.Status)4 IOException (java.io.IOException)3 ProjectModule (org.eclipse.wst.server.core.util.ProjectModule)3