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;
}
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);
}
}
}
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;
}
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;
}
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);
}
Aggregations