Author: rob.stryker(a)jboss.com
Date: 2008-09-19 16:55:21 -0400 (Fri, 19 Sep 2008)
New Revision: 10384
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/GenerateArchivesTask.java
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ArchiveBuildDelegate.java
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java
trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/actions/BuildAction.java
trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesCommonView.java
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelTruezipBridgeTest.java
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE1406Test.java
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2099Test.java
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2311Test.java
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2315Test.java
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2439Test.java
Log:
JBIDE-475 - archives progress monitors added
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/eclipse/org/jboss/ide/eclipse/archives/core/project/ArchivesBuilder.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -50,25 +50,25 @@
/**
* This builder is responsible for building the archives
- * It delegates to a delegate.
+ * It delegates to a delegate.
* @author Rob Stryker (rob.stryker(a)redhat.com)
*
*/
public class ArchivesBuilder extends IncrementalProjectBuilder {
public static final String BUILDER_ID =
"org.jboss.ide.eclipse.archives.core.archivesBuilder";
-
+
/**
- * Build.
+ * Build.
* @see IncrementalProjectBuilder#build(int, Map, IProgressMonitor)
- * @see IProject#build(int, String, Map, IProgressMonitor)
+ * @see IProject#build(int, String, Map, IProgressMonitor)
*/
protected IProject[] build(int kind, Map args, IProgressMonitor monitor) throws
CoreException {
-
+
// if we're not to build, get out of here
- if(
!ArchivesCore.getInstance().getPreferenceManager().isBuilderEnabled(getProject().getLocation()))
+ if(
!ArchivesCore.getInstance().getPreferenceManager().isBuilderEnabled(getProject().getLocation()))
return new IProject[]{};
-
+
IProject[] interestingProjects = getInterestingProjectsInternal();
final TreeSet<IPath> addedChanged = createPathTreeSet();
@@ -77,20 +77,19 @@
ArchiveBuildDelegate delegate = new ArchiveBuildDelegate();
if (kind == IncrementalProjectBuilder.INCREMENTAL_BUILD || kind ==
IncrementalProjectBuilder.AUTO_BUILD) {
fillDeltas(interestingProjects, addedChanged, removed);
- delegate.incrementalBuild(null,addedChanged, removed,true);
-
+ delegate.incrementalBuild(null,addedChanged, removed,true, monitor);
} else if (kind == IncrementalProjectBuilder.FULL_BUILD){
// build each package fully
IProject p = getProject();
- delegate.fullProjectBuild(p.getLocation());
+ delegate.fullProjectBuild(p.getLocation(), monitor);
}
-
+
return interestingProjects;
}
-
+
/**
* Delete all archives that were created or represented by this
- * project's archive model.
+ * project's archive model.
*/
protected void clean(IProgressMonitor monitor) throws CoreException {
IPath p = getProject().getLocation();
@@ -106,7 +105,7 @@
/**
* Browse through the deltas and fill the treesets with
- * affected resources.
+ * affected resources.
* @param projects The interesting projects
* @param addedChanged A collection of resources that have been added or changed
* @param removed A collection of resources that have been removed.
@@ -117,20 +116,20 @@
IResourceDelta delta = getDelta(proj);
if( delta == null ) continue;
try {
- delta.accept(new IResourceDeltaVisitor () {
+ delta.accept(new IResourceDeltaVisitor () {
public boolean visit(IResourceDelta delta) throws CoreException {
if (delta.getResource().getType() == IResource.FILE) {
- if( (delta.getKind() & IResourceDelta.ADDED) > 0
+ if( (delta.getKind() & IResourceDelta.ADDED) > 0
|| (delta.getKind() & IResourceDelta.CHANGED) > 0) {
-
- // ignore the packages project. that will it's own build call,
+
+ // ignore the packages project. that will it's own build call,
// or will handle the change in some other way
- if(
!delta.getResource().equals(proj.findMember(IArchiveModel.DEFAULT_PACKAGES_FILE)))
+ if(
!delta.getResource().equals(proj.findMember(IArchiveModel.DEFAULT_PACKAGES_FILE)))
addedChanged.add(delta.getResource().getFullPath());
} else if( (delta.getKind() & IResourceDelta.REMOVED ) > 0 ) {
removed.add(delta.getResource().getFullPath());
}
- }
+ }
return true;
}
});
@@ -138,17 +137,17 @@
}
}
}
-
+
/**
- * Get any projects that the current project may depend on
- * (regarding it's archive model, if any filesets match files in
+ * Get any projects that the current project may depend on
+ * (regarding it's archive model, if any filesets match files in
* another project).
* @return The list of projects that matter
*/
protected IProject[] getInterestingProjectsInternal() {
final TreeSet<IProject> set = createProjectTreeSet();
set.add(getProject());
-
+
final IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();
IArchiveModelRootNode root =
ArchivesModel.instance().getRoot(getProject().getLocation());
@@ -160,7 +159,7 @@
IPath p = PathUtils.getGlobalLocation(fileset);
if( p != null ) {
IContainer[] containers = workspaceRoot.findContainersForLocation(p);
- for( int i = 0; i < containers.length; i++ ) {
+ for( int i = 0; i < containers.length; i++ ) {
set.add(containers[i].getProject());
}
}
@@ -173,8 +172,8 @@
return new IProject[0];
}
}
-
- /**
+
+ /**
* Default treeset with default comparator
* @return
*/
@@ -184,15 +183,15 @@
if (o1.equals(o2)) return 0;
else return -1;
}
- });
+ });
}
-
+
protected TreeSet<IPath> createPathTreeSet() {
return new TreeSet<IPath>(new Comparator<IPath> () {
public int compare(IPath o1, IPath o2) {
if (o1.equals(o2)) return 0;
else return -1;
}
- });
+ });
}
}
\ No newline at end of file
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/GenerateArchivesTask.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/GenerateArchivesTask.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/ant/GenerateArchivesTask.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -33,7 +33,6 @@
import org.jboss.ide.eclipse.archives.core.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.build.ArchiveBuildDelegate;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
-import org.jboss.ide.eclipse.archives.core.model.IArchivesLogger;
/**
* @author rob.stryker <rob.stryker(a)redhat.com>
@@ -72,7 +71,7 @@
Thread.currentThread().setContextClassLoader(myCL);
if( ArchivesModel.instance().canReregister(projectPath)) {
ArchivesModel.instance().registerProject(projectPath, monitor);
- new ArchiveBuildDelegate().fullProjectBuild(projectPath);
+ new ArchiveBuildDelegate().fullProjectBuild(projectPath, new NullProgressMonitor());
} else {
getCore().getLogger().log(IStatus.ERROR, "Project \"" + projectPath +
"\" does not exist or has no .packages file. Skipping.", null);
}
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ArchiveBuildDelegate.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ArchiveBuildDelegate.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ArchiveBuildDelegate.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -27,13 +27,15 @@
import java.util.Set;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubProgressMonitor;
import org.jboss.ide.eclipse.archives.core.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.model.ArchivesModel;
import org.jboss.ide.eclipse.archives.core.model.EventManager;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
-import org.jboss.ide.eclipse.archives.core.model.IArchiveAction;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelRootNode;
@@ -64,7 +66,7 @@
* A full project build has been requested.
* @param project The project containing the archive model
*/
- public void fullProjectBuild(IPath project) {
+ public void fullProjectBuild(IPath project, IProgressMonitor monitor) {
EventManager.cleanProjectBuild(project);
EventManager.startedBuild(project);
@@ -72,15 +74,21 @@
if( root == null ) {
IStatus s = new Status(IStatus.ERROR, ArchivesCore.PLUGIN_ID, "An error occurred
locating the root node for " + project.toOSString(), null);
EventManager.error(null, new IStatus[]{s});
+ monitor.done();
} else {
IArchiveNode[] nodes = root.getChildren(IArchiveNode.TYPE_ARCHIVE);
ArrayList<IStatus> errors = new ArrayList<IStatus>();
+
+ monitor.beginTask("Building project " +
ArchivesCore.getInstance().getVFS().getProjectName(project), nodes.length * 1000);
+
for( int i = 0; i < nodes.length; i++ ) {
- errors.addAll(Arrays.asList(fullArchiveBuild(((IArchive)nodes[i]), false)));
+ errors.addAll(Arrays.asList(fullArchiveBuild(((IArchive)nodes[i]),
+ new SubProgressMonitor(monitor, 1000), false)));
}
EventManager.finishedBuild(project);
EventManager.error(null, errors.toArray(new IStatus[errors.size()]));
+ monitor.done();
}
}
@@ -88,17 +96,18 @@
* Builds an archive entirely, overwriting whatever was in the output destination.
* @param pkg The archive to build
*/
- public IStatus[] fullArchiveBuild(IArchive pkg) {
- return fullArchiveBuild(pkg, true);
+ public IStatus[] fullArchiveBuild(IArchive pkg, IProgressMonitor monitor) {
+ return fullArchiveBuild(pkg, monitor, true);
}
- protected IStatus[] fullArchiveBuild(IArchive pkg, boolean log) {
+ protected IStatus[] fullArchiveBuild(IArchive pkg, IProgressMonitor monitor, boolean
log) {
if( !pkg.canBuild() ) {
IStatus s = new Status(IStatus.ERROR, ArchivesCore.PLUGIN_ID,
"Cannot Build archive \"" + pkg.getName() +
"\" due to a problem in the archive's configuration.", null);
if( log )
EventManager.error(pkg, new IStatus[]{s});
- return new IStatus[]{};
+ monitor.done();
+ return new IStatus[]{s};
}
EventManager.cleanArchiveBuild(pkg);
@@ -114,52 +123,70 @@
" is not writeable", null);
if( log )
EventManager.error(pkg, new IStatus[]{s});
- return new IStatus[]{};
+ monitor.done();
+ return new IStatus[]{s};
}
}
ArrayList<IStatus> errors = new ArrayList<IStatus>();
+ /* 3 steps:
+ * create file: 200
+ * create folders: 800
+ * build filesets: 7000
+ */
+ monitor.beginTask("Building Archive " + pkg.toString(), 8000);
+
// Run the pre actions
- IArchiveAction[] actions = pkg.getActions();
- for( int i = 0; i < actions.length; i++ ) {
- if( actions[i].getTime().equals(IArchiveAction.PRE_BUILD)) {
- actions[i].execute();
- }
- }
+// IArchiveAction[] actions = pkg.getActions();
+// for( int i = 0; i < actions.length; i++ ) {
+// if( actions[i].getTime().equals(IArchiveAction.PRE_BUILD)) {
+// actions[i].execute();
+// }
+// }
+
if( !ModelTruezipBridge.createFile(pkg) ) {
IStatus e = new Status(IStatus.ERROR, ArchivesCore.PLUGIN_ID, "Error creating
output file for node " + pkg.toString());
errors.add(e);
}
+ monitor.worked(200);
// force create all folders
IArchiveFolder[] folders = ModelUtil.findAllDescendentFolders(pkg);
+ IProgressMonitor folderMonitor = new SubProgressMonitor(monitor, 800);
+ folderMonitor.beginTask("Creating folders", folders.length * 100);
for( int i = 0; i < folders.length; i++ ) {
if( !ModelTruezipBridge.createFile(folders[i])) {
IStatus e = new Status(IStatus.ERROR, ArchivesCore.PLUGIN_ID, "Error creating
output file for node " + folders[i].toString());
errors.add(e);
}
+ folderMonitor.worked(100);
}
+ folderMonitor.done();
// build the filesets
IArchiveFileSet[] filesets = ModelUtil.findAllDescendentFilesets(pkg);
+ IProgressMonitor filesetMonitor = new SubProgressMonitor(monitor, 7000);
+ filesetMonitor.beginTask("Building filesets", filesets.length * 1000);
for( int i = 0; i < filesets.length; i++ ) {
- IStatus[] errors2 = fullFilesetBuild(filesets[i], pkg);
+ IStatus[] errors2 = fullFilesetBuild(filesets[i], new
SubProgressMonitor(filesetMonitor, 1000), pkg);
errors.addAll(Arrays.asList(errors2));
}
+ filesetMonitor.done();
- // Run the post actions
- for( int i = 0; i < actions.length; i++ ) {
- if( actions[i].getTime().equals(IArchiveAction.POST_BUILD)) {
- actions[i].execute();
- }
- }
+// // Run the post actions
+// for( int i = 0; i < actions.length; i++ ) {
+// if( actions[i].getTime().equals(IArchiveAction.POST_BUILD)) {
+// actions[i].execute();
+// }
+// }
EventManager.finishedBuildingArchive(pkg);
IStatus[] errors2 = errors.toArray(new IStatus[errors.size()]);
if( log )
EventManager.error(pkg, errors2 );
+ monitor.done();
return errors2;
}
@@ -168,14 +195,14 @@
* @param fileset The fileset to match
* @param topLevel The top level archive that the fileset belongs to
*/
- protected IStatus[] fullFilesetBuild(IArchiveFileSet fileset, IArchive topLevel) {
+ protected IStatus[] fullFilesetBuild(IArchiveFileSet fileset, IProgressMonitor monitor,
IArchive topLevel) {
EventManager.startedCollectingFileSet(fileset);
// reset the scanner. It *is* a full build afterall
fileset.resetScanner();
FileWrapper[] paths = fileset.findMatchingPaths();
- FileWrapperStatusPair result = ModelTruezipBridge.fullFilesetBuild(fileset, true);
+ FileWrapperStatusPair result = ModelTruezipBridge.fullFilesetBuild(fileset, monitor,
true);
EventManager.filesUpdated(topLevel, fileset, paths);
EventManager.finishedCollectingFileSet(fileset);
@@ -191,9 +218,13 @@
* @param removed A list of removed resource paths
*/
public void incrementalBuild(IArchive archive, Set<IPath> addedChanged,
- Set<IPath> removed, boolean workspaceRelative) {
+ Set<IPath> removed, boolean workspaceRelative, IProgressMonitor monitor) {
ArrayList<IStatus> errors = new ArrayList<IStatus>();
+ // removed get more work because all filesets are being rescanned before handling the
removed
+ int totalWork = (addedChanged.size()*100) + (removed.size()*200) + 50;
+ monitor.beginTask("Project Archives Incremental Build", totalWork);
+
// find any and all filesets that match each file
Iterator<IPath> i;
IPath path, globalPath;
@@ -212,13 +243,16 @@
matchingFilesets = ModelUtil.getMatchingFilesets(archive, path, workspaceRelative);
localFireAffectedTopLevelPackages(topPackagesChanged, matchingFilesets);
for( int j = 0; j < matchingFilesets.length; j++ ) {
- IStatus[] errors2 = ModelTruezipBridge.deleteFiles(matchingFilesets[j],
matchingFilesets[j].getMatches(globalPath), true);
+ IStatus[] errors2 = ModelTruezipBridge.deleteFiles(
+ matchingFilesets[j], matchingFilesets[j].getMatches(globalPath),
+ new NullProgressMonitor(), true);
errors.addAll(Arrays.asList(errors2));
if( !seen.contains(matchingFilesets[j])) {
seen.add(matchingFilesets[j]);
}
}
EventManager.fileRemoved(path, matchingFilesets);
+ monitor.worked(100);
}
// reset all of the filesets that have already matched
@@ -238,15 +272,17 @@
seen.add(matchingFilesets[j]);
matchingFilesets[j].resetScanner();
}
- IStatus[] errors2 = ModelTruezipBridge.copyFiles(matchingFilesets[j],
matchingFilesets[j].getMatches(globalPath), true);
+ IStatus[] errors2 = ModelTruezipBridge.copyFiles(matchingFilesets[j],
+ matchingFilesets[j].getMatches(globalPath),
+ new NullProgressMonitor(), true);
errors.addAll(Arrays.asList(errors2));
}
EventManager.fileUpdated(path, matchingFilesets);
+ monitor.worked(200);
}
TrueZipUtil.sync();
-
Iterator<IArchive> i2 = topPackagesChanged.iterator();
while(i2.hasNext()) {
EventManager.finishedBuildingArchive(i2.next());
@@ -254,6 +290,9 @@
if( errors.size() > 0 )
EventManager.error(null, errors.toArray(new IStatus[errors.size()]));
+
+ monitor.worked(50);
+ monitor.done();
}
private void localFireAffectedTopLevelPackages(ArrayList<IArchive> affected,
IArchiveFileSet[] filesets) {
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/build/ModelChangeListener.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -21,8 +21,13 @@
*/
package org.jboss.ide.eclipse.archives.core.build;
+import java.util.ArrayList;
+import java.util.Arrays;
+
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
import org.jboss.ide.eclipse.archives.core.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.model.EventManager;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
@@ -32,7 +37,6 @@
import org.jboss.ide.eclipse.archives.core.model.IArchiveModelRootNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeDelta;
-import org.jboss.ide.eclipse.archives.core.model.IArchivesLogger;
import
org.jboss.ide.eclipse.archives.core.model.DirectoryScannerFactory.DirectoryScannerExtension.FileWrapper;
import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
import org.jboss.ide.eclipse.archives.core.util.internal.ModelTruezipBridge;
@@ -61,11 +65,15 @@
if(
!ArchivesCore.getInstance().getPreferenceManager().isBuilderEnabled(delta.getPostNode().getProjectPath()))
return;
+ IStatus[] errors;
try {
- handle(delta);
+ errors = handle(delta);
} catch( Exception e ) {
- ArchivesCore.getInstance().getLogger().log(IStatus.ERROR, "Error updating model
changes", e);
+ IStatus er = new Status(IStatus.ERROR, ArchivesCore.PLUGIN_ID, "Error updating
model changes", e);
+ errors = new IStatus[] { er };
}
+ IArchiveNode node = delta.getPreNode() == null ? delta.getPostNode() :
delta.getPreNode();
+ EventManager.error(node, errors);
}
/**
@@ -80,36 +88,37 @@
*
* @param delta
*/
- private void handle(IArchiveNodeDelta delta) {
+ private IStatus[] handle(IArchiveNodeDelta delta) {
+ ArrayList<IStatus> errors = new ArrayList<IStatus>();
if( isTopLevelArchive(delta.getPostNode())) {
EventManager.startedBuildingArchive((IArchive)delta.getPostNode());
}
if( (delta.getKind() & (IArchiveNodeDelta.NODE_REGISTERED |
IArchiveNodeDelta.UNKNOWN_CHANGE)) != 0 ) {
- nodeRemoved(delta.getPreNode());
- nodeAdded(delta.getPostNode());
+ errors.addAll(Arrays.asList(nodeRemoved(delta.getPreNode())));
+ errors.addAll(Arrays.asList(nodeAdded(delta.getPostNode())));
} if( (delta.getKind() & IArchiveNodeDelta.REMOVED) != 0 ) {
- nodeRemoved(delta.getPreNode());
+ errors.addAll(Arrays.asList(nodeRemoved(delta.getPreNode())));
} else if( (delta.getKind() & IArchiveNodeDelta.ADDED) != 0 ) {
- nodeAdded(delta.getPostNode());
+ errors.addAll(Arrays.asList(nodeAdded(delta.getPostNode())));
} else if( (delta.getKind() & IArchiveNodeDelta.ATTRIBUTE_CHANGED) != 0) {
boolean shouldHandleChildren = handleAttributeChange(delta);
if( shouldHandleChildren ) {
IArchiveNodeDelta[] children = delta.getAllAffectedChildren();
for( int i = 0; i < children.length; i++ ) {
- handle(children[i]);
+ errors.addAll(Arrays.asList(handle(children[i])));
}
}
} else if( descendentChanged(delta.getKind()) ) {
IArchiveNodeDelta[] children = delta.getAllAffectedChildren();
for( int i = 0; i < children.length; i++ ) {
- handle(children[i]);
+ errors.addAll(Arrays.asList(handle(children[i])));
}
}
if( isTopLevelArchive(delta.getPostNode()))
EventManager.finishedBuildingArchive((IArchive)delta.getPostNode());
-
+ return errors.toArray(new IStatus[errors.size()]);
}
protected boolean descendentChanged(int kind) {
return (kind & IArchiveNodeDelta.DESCENDENT_CHANGED) != 0 ||
@@ -163,19 +172,20 @@
- private void nodeAdded(IArchiveNode added) {
- if( added == null ) return;
+ private IStatus[] nodeAdded(IArchiveNode added) {
+ ArrayList<IStatus> errors = new ArrayList<IStatus>();
+ if( added == null )
+ return new IStatus[]{};
if( added.getNodeType() == IArchiveNode.TYPE_MODEL_ROOT) {
IArchiveNode[] archives =
((IArchiveModelRootNode)added).getChildren(IArchiveNode.TYPE_ARCHIVE);
for( int i = 0; i < archives.length; i++ ) {
- nodeAdded(archives[i]);
+ errors.addAll(Arrays.asList(nodeAdded(archives[i])));
}
} else if( added.getNodeType() == IArchiveNode.TYPE_ARCHIVE) {
// create the package
if( ((IArchive)added).isTopLevel() && !added.canBuild() ) {
- logCannotBuildError((IArchive)added);
- return;
+ return new IStatus[] { logCannotBuildError((IArchive)added)};
}
ModelTruezipBridge.createFile(added);
} else if( added.getNodeType() == IArchiveNode.TYPE_ARCHIVE_FOLDER ) {
@@ -184,51 +194,55 @@
}
IArchiveFileSet[] filesets = ModelUtil.findAllDescendentFilesets(added);
for( int i = 0; i < filesets.length; i++ ) {
- FileWrapperStatusPair result = ModelTruezipBridge.fullFilesetBuild(filesets[i],
true);
+ FileWrapperStatusPair result = ModelTruezipBridge.fullFilesetBuild(filesets[i], new
NullProgressMonitor(), true);
+ errors.addAll(Arrays.asList(result.s));
FileWrapper[] files = filesets[i].findMatchingPaths();
- EventManager.error(filesets[i], result.s);
EventManager.filesUpdated(filesets[i].getRootArchive(), filesets[i], files);
}
postChange(added);
+ return errors.toArray(new IStatus[errors.size()]);
}
- private void nodeRemoved(IArchiveNode removed) {
- if( removed == null ) return;
+ private IStatus[] nodeRemoved(IArchiveNode removed) {
+ ArrayList<IStatus> errors = new ArrayList<IStatus>();
+ if( removed == null )
+ return new IStatus[] {};
if( removed.getNodeType() == IArchiveNode.TYPE_MODEL_ROOT ) {
// remove all top level items
IArchiveNode[] kids = removed.getChildren(IArchiveNode.TYPE_ARCHIVE);
for( int i = 0; i < kids.length; i++ ) {
- nodeRemoved(kids[i]);
+ errors.addAll(Arrays.asList(nodeRemoved(kids[i])));
}
postChange(removed);
- return;
+ return errors.toArray(new IStatus[errors.size()]);
} else if( removed.getNodeType() == IArchiveNode.TYPE_ARCHIVE) {
if( ((IArchive)removed).isTopLevel() && !removed.canBuild() ) {
- logCannotBuildError((IArchive)removed);
- return;
+ return new IStatus[] {logCannotBuildError((IArchive)removed)};
}
ModelTruezipBridge.deleteArchive((IArchive)removed);
postChange(removed);
- return;
+ return new IStatus[] {};
} else if( removed.getNodeType() == IArchiveNode.TYPE_ARCHIVE_FOLDER ){
IArchiveFileSet[] filesets =
ModelUtil.findAllDescendentFilesets(((IArchiveFolder)removed));
for( int i = 0; i < filesets.length; i++ ) {
- // TODO report IO Errors
- FileWrapperStatusPair result = ModelTruezipBridge.fullFilesetRemove(filesets[i],
false);
+ FileWrapperStatusPair result = ModelTruezipBridge.fullFilesetRemove(filesets[i], new
NullProgressMonitor(), false);
+ errors.addAll(Arrays.asList(result.s));
EventManager.filesRemoved(convertToPath(result.f), ((IArchiveFileSet)filesets[i]));
}
postChange(removed);
- return;
+ return errors.toArray(new IStatus[errors.size()]);
}
IArchiveFileSet[] filesets = ModelUtil.findAllDescendentFilesets(removed);
for( int i = 0; i < filesets.length; i++ ) {
FileWrapperStatusPair result = ModelTruezipBridge.fullFilesetRemove(
- ((IArchiveFileSet)removed), false);
+ ((IArchiveFileSet)removed), new NullProgressMonitor(), false);
EventManager.filesRemoved(convertToPath(result.f), ((IArchiveFileSet)removed));
+ errors.addAll(Arrays.asList(result.s));
}
postChange(removed);
+ return errors.toArray(new IStatus[errors.size()]);
}
protected IPath[] convertToPath(FileWrapper[] wrappers) {
@@ -241,10 +255,10 @@
protected void postChange(IArchiveNode node) {
}
- protected void logCannotBuildError(IArchive archive) {
- ArchivesCore.getInstance().getLogger().log(IStatus.WARNING,
+ protected IStatus logCannotBuildError(IArchive archive) {
+ IStatus s = new Status(IStatus.WARNING, ArchivesCore.PLUGIN_ID,
"Cannot Build archive \"" + archive.getName() +
"\" due to a problem in the archive's configuration.", null);
- return;
+ return s;
}
}
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/internal/ModelTruezipBridge.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -25,9 +25,12 @@
import java.util.Arrays;
import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.SubProgressMonitor;
import org.jboss.ide.eclipse.archives.core.ArchivesCore;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
@@ -64,9 +67,9 @@
this.s = statuses;
}
}
- public static FileWrapperStatusPair fullFilesetBuild(final IArchiveFileSet fileset,
boolean sync) {
+ public static FileWrapperStatusPair fullFilesetBuild(final IArchiveFileSet fileset,
IProgressMonitor monitor, boolean sync) {
FileWrapper[] files = fileset.findMatchingPaths();
- IStatus[] s = copyFiles(fileset, files, false);
+ IStatus[] s = copyFiles(fileset, files, monitor, false);
if( sync )
TrueZipUtil.sync();
return new FileWrapperStatusPair( files, s );
@@ -79,19 +82,24 @@
* IStatus[] errors
* }
*/
- public static FileWrapperStatusPair fullFilesetRemove(final IArchiveFileSet fileset,
boolean sync) {
+ public static FileWrapperStatusPair fullFilesetRemove(final IArchiveFileSet fileset,
IProgressMonitor monitor, boolean sync) {
+ monitor.beginTask("Removing fileset: " + fileset.toString(), 2500);
FileWrapper[] files = fileset.findMatchingPaths();
final ArrayList<IStatus> errors = new ArrayList<IStatus>();
final ArrayList<FileWrapper> list = new ArrayList<FileWrapper>();
list.addAll(Arrays.asList(files));
+ IProgressMonitor filesMonitor = new SubProgressMonitor(monitor, 2000);
+ filesMonitor.beginTask("Removing " + files.length + " files",
files.length * 100);
for( int i = 0; i < files.length; i++ ) {
if( !ModelUtil.otherFilesetMatchesPathAndOutputLocation(fileset, files[i])) {
// remove
- errors.addAll(Arrays.asList(deleteFiles(fileset, new FileWrapper[] {files[i]},
false)));
+ errors.addAll(Arrays.asList(deleteFiles(fileset, new FileWrapper[] {files[i]}, new
NullProgressMonitor(), false)));
} else {
list.remove(files[i]);
}
+ filesMonitor.worked(100);
}
+ filesMonitor.done();
// kinda ugly here. delete all empty folders beneath
File folder = getFile(fileset);
@@ -99,6 +107,7 @@
IStatus e = new Status(IStatus.ERROR, ArchivesCore.PLUGIN_ID, "Error emptying
folder " + folder.toString());
errors.add(e);
}
+ monitor.worked(250);
// now ensure all mandatory child folders are still there
fileset.getParent().accept(new IArchiveNodeVisitor() {
@@ -119,45 +128,16 @@
if( sync )
TrueZipUtil.sync();
+ monitor.worked(250);
+ monitor.done();
+
IStatus[] errorsArr = errors.toArray(new IStatus[errors.size()]);
FileWrapper[] files2 = list.toArray(new FileWrapper[list.size()]);
return new FileWrapperStatusPair( files2, errorsArr);
}
- public static boolean deleteArchive(IArchive archive) {
- final File file = getFile(archive);
- boolean b = file.deleteAll();
- TrueZipUtil.sync();
- return b;
- }
-
- public static boolean cleanFolder(IArchiveFolder folder) {
- return cleanFolder(getFile(folder), true);
- }
-
- public static boolean cleanFolder(java.io.File folder, boolean sync) {
- boolean b = TrueZipUtil.deleteEmptyChildren(folder);
- if( sync )
- TrueZipUtil.sync();
- return b;
- }
-
-
- public static IStatus[] copyFiles(IArchiveFileSet[] filesets, FileWrapper[] files) {
- return copyFiles(filesets, files, true);
- }
-
- public static IStatus[] copyFiles(final IArchiveFileSet[] filesets, final FileWrapper[]
files, boolean sync) {
- ArrayList<IStatus> list = new ArrayList<IStatus>();
- for( int i = 0; i < filesets.length; i++ ) {
- list.addAll(Arrays.asList(copyFiles(filesets[i], files, false)));
- }
- if( sync )
- TrueZipUtil.sync();
- return list.toArray(new IStatus[list.size()]);
- }
-
- public static IStatus[] copyFiles(IArchiveFileSet fileset, final FileWrapper[] files,
boolean sync) {
+ public static IStatus[] copyFiles(IArchiveFileSet fileset, final FileWrapper[] files,
IProgressMonitor monitor, boolean sync) {
+ monitor.beginTask("Copying " + files.length + " files",
files.length * 100);
boolean b = true;
ArrayList<IStatus> list = new ArrayList<IStatus>();
final File[] destFiles = getFiles(files, fileset);
@@ -166,21 +146,19 @@
if( b == false ) {
list.add(new Status(IStatus.ERROR, ArchivesCore.PLUGIN_ID, "File copy failed.
Source=" + files[i].getAbsolutePath() + ", dest=" + destFiles[i]));
}
+ monitor.worked(100);
}
if( sync )
TrueZipUtil.sync();
+ monitor.done();
return list.toArray(new IStatus[list.size()]);
}
-
/*
* Deleting files
*/
-
- public static IStatus[] deleteFiles(IArchiveFileSet fileset, final FileWrapper[] paths )
{
- return deleteFiles(fileset, paths, true);
- }
- public static IStatus[] deleteFiles(IArchiveFileSet fileset, final FileWrapper[] files,
boolean sync ) {
+ public static IStatus[] deleteFiles(IArchiveFileSet fileset, final FileWrapper[] files,
IProgressMonitor monitor, boolean sync ) {
+ monitor.beginTask("Deleting " + files.length + " files",
files.length * 100);
final File[] destFiles = getFiles(files, fileset);
ArrayList<IStatus> list = new ArrayList<IStatus>();
for( int i = 0; i < files.length; i++ ) {
@@ -188,13 +166,33 @@
IStatus e = new Status(IStatus.ERROR, ArchivesCore.PLUGIN_ID, "Error deleting
file " + destFiles[i].toString());
list.add(e);
}
+ monitor.worked(100);
}
if( sync )
TrueZipUtil.sync();
+ monitor.done();
return list.toArray(new IStatus[list.size()]);
}
+ public static boolean deleteArchive(IArchive archive) {
+ final File file = getFile(archive);
+ boolean b = file.deleteAll();
+ TrueZipUtil.sync();
+ return b;
+ }
+
+ public static boolean cleanFolder(IArchiveFolder folder) {
+ return cleanFolder(getFile(folder), true);
+ }
+
+ public static boolean cleanFolder(java.io.File folder, boolean sync) {
+ boolean b = TrueZipUtil.deleteEmptyChildren(folder);
+ if( sync )
+ TrueZipUtil.sync();
+ return b;
+ }
+
/**
* Creates the file, folder, or archive represented by the node.
* Does nothing for filesets
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/actions/BuildAction.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/actions/BuildAction.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/actions/BuildAction.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -25,7 +25,7 @@
}
public void run(IAction action) {
- if( selectedProject != null )
+ if( selectedProject != null )
buildSelectedNode(selectedProject);
}
@@ -39,25 +39,26 @@
if( o instanceof IAdaptable ) {
IResource res = (IResource) ((IAdaptable)o).getAdapter(IResource.class);
if( res != null ) {
- selectedProject = res.getProject();
+ selectedProject = res.getProject();
return;
}
}
}
selectedProject = null;
}
-
+
private void buildSelectedNode(final Object selected) {
new Job("Build Archive Node") {
+ // TODO actually get the status object
protected IStatus run(IProgressMonitor monitor) {
if( selected == null ) return Status.OK_STATUS;
- if (selected instanceof IArchiveNode &&
+ if (selected instanceof IArchiveNode &&
((IArchiveNode)selected).getNodeType() == IArchiveNode.TYPE_ARCHIVE) {
- new ArchiveBuildDelegate().fullArchiveBuild((IArchive)selected);
+ new ArchiveBuildDelegate().fullArchiveBuild((IArchive)selected, monitor);
} else if( selected != null && selected instanceof IProject ){
- new
ArchiveBuildDelegate().fullProjectBuild(((IProject)selected).getProject().getLocation());
+ new
ArchiveBuildDelegate().fullProjectBuild(((IProject)selected).getProject().getLocation(),
monitor);
} else {
- new
ArchiveBuildDelegate().fullArchiveBuild(((IArchiveNode)selected).getRootArchive());
+ new
ArchiveBuildDelegate().fullArchiveBuild(((IArchiveNode)selected).getRootArchive(),
monitor);
}
return Status.OK_STATUS;
}
Modified:
trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesCommonView.java
===================================================================
---
trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesCommonView.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/plugins/org.jboss.ide.eclipse.archives.ui/src/main/org/jboss/ide/eclipse/archives/ui/views/ProjectArchivesCommonView.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -4,10 +4,6 @@
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
@@ -22,12 +18,11 @@
import org.eclipse.ui.navigator.CommonNavigator;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.PropertySheetPage;
-import org.jboss.ide.eclipse.archives.core.build.ArchiveBuildDelegate;
-import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.ui.ArchivesSharedImages;
import org.jboss.ide.eclipse.archives.ui.PrefsInitializer;
import org.jboss.ide.eclipse.archives.ui.PrefsInitializer.IArchivesPreferenceListener;
+import org.jboss.ide.eclipse.archives.ui.actions.BuildAction;
import
org.jboss.ide.eclipse.archives.ui.providers.ArchivesContentProviderDelegate.WrappedProject;
public class ProjectArchivesCommonView extends CommonNavigator implements
IArchivesPreferenceListener {
@@ -44,18 +39,18 @@
currentProject = null;
return ResourcesPlugin.getWorkspace().getRoot();
}
-
+
public void createPartControl(Composite aParent) {
super.createPartControl(aParent);
addBuildActionToSite();
PrefsInitializer.addListener(this);
}
-
+
public void init(IViewSite site) throws PartInitException {
super.init(site);
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().addPostSelectionListener(selectionListener);
}
-
+
public void dispose() {
super.dispose();
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getSelectionService().removePostSelectionListener(selectionListener);
@@ -65,11 +60,11 @@
protected ISelectionListener createSelectionListener() {
return new INullSelectionListener() {
public void selectionChanged(IWorkbenchPart part, ISelection selection) {
- if( part == instance )
+ if( part == instance )
return;
if (!(selection instanceof IStructuredSelection))
return;
-
+
Object element = ((IStructuredSelection)selection).getFirstElement();
IProject project = getProject(element);
if( project != null && project != currentProject ) {
@@ -77,18 +72,18 @@
jiggleViewerInput();
}
}
-
+
public IProject getProject (Object element) {
if( element instanceof IStructuredSelection)
element = ((IStructuredSelection)element).getFirstElement();
-
+
if (element instanceof IAdaptable) {
IAdaptable adaptable = (IAdaptable)element;
IResource resource = (IResource) adaptable.getAdapter(IResource.class);
if( resource != null )
return resource.getProject();
}
- if( element instanceof WrappedProject )
+ if( element instanceof WrappedProject )
return ((WrappedProject)element).getElement();
if( element instanceof IArchiveNode ) {
String projName = ((IArchiveNode)element).getProjectName();
@@ -99,14 +94,14 @@
};
}
-
- public IProject getCurrentProject() {
+
+ public IProject getCurrentProject() {
return currentProject;
}
-
+
protected void jiggleViewerInput() {
if( showProjectRoot()) {
- // if we're showing all projects, then the view is already set.
+ // if we're showing all projects, then the view is already set.
if( !showAllProjects() ||
!getCommonViewer().getInput().equals(ResourcesPlugin.getWorkspace().getRoot()))
getCommonViewer().setInput(ResourcesPlugin.getWorkspace().getRoot());
} else {
@@ -131,24 +126,9 @@
IActionBars bars = ((IViewSite)getSite()).getActionBars();
bars.getToolBarManager().add(buildAction);
}
-
+
private void buildSelection(final Object selected) {
- new Job("Build Archive Node") {
- protected IStatus run(IProgressMonitor monitor) {
- if( selected == null ) return Status.OK_STATUS;
- if( selected instanceof IProject ) {
- new ArchiveBuildDelegate().fullProjectBuild(((IProject)selected).getLocation());
- } else if (selected instanceof IArchiveNode &&
- ((IArchiveNode)selected).getNodeType() == IArchiveNode.TYPE_ARCHIVE) {
- new ArchiveBuildDelegate().fullArchiveBuild((IArchive)selected);
- } else if( selected != null && selected instanceof IProject ){
- new
ArchiveBuildDelegate().fullProjectBuild(((IProject)selected).getProject().getLocation());
- } else {
- new
ArchiveBuildDelegate().fullArchiveBuild(((IArchiveNode)selected).getRootArchive());
- }
- return Status.OK_STATUS;
- }
- }.schedule();
+ new BuildAction().run(selected);
}
private Object getSelectedObject() {
@@ -157,7 +137,7 @@
return selection.getFirstElement();
return null;
}
-
+
public Object getAdapter(Class adapter) {
if( adapter == IPropertySheetPage.class )
return new PropertySheetPage();
Modified:
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelTruezipBridgeTest.java
===================================================================
---
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelTruezipBridgeTest.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/model/ModelTruezipBridgeTest.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -227,7 +227,7 @@
IArchiveFileSet fs = createFileSet("**/*.gif", new
Path(proj.getName()).makeAbsolute().toString());
fs.setInWorkspace(true);
zipped.addChild(fs);
- ModelTruezipBridge.fullFilesetBuild(fs, true);
+ ModelTruezipBridge.fullFilesetBuild(fs, new NullProgressMonitor(), true);
assertEquals(19, countEntries(zippedF));
}
@@ -244,7 +244,7 @@
fs.setInWorkspace(true);
fs.setFlattened(true);
zipped.addChild(fs);
- ModelTruezipBridge.fullFilesetBuild(fs, true);
+ ModelTruezipBridge.fullFilesetBuild(fs, new NullProgressMonitor(), true);
// should be two less files and 3 less folders created
assertEquals(14, countEntries(zippedF));
Modified:
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE1406Test.java
===================================================================
---
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE1406Test.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE1406Test.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -15,12 +15,12 @@
import org.jboss.tools.common.test.util.TestProjectProvider;
/**
- * This class tests first and foremost
+ * This class tests first and foremost
* the presence of a ${archives_current_project}
- * extension to allow the currently building
+ * extension to allow the currently building
* project to be agnostic
- *
- * During this JIRA, workspace paths became conscious of
+ *
+ * During this JIRA, workspace paths became conscious of
* their absolute / relative status and are now interpreted
* differently according to their status.
* @author rob
@@ -32,15 +32,15 @@
private IPath outputDir;
private IPath propsFile;
protected void setUp() throws Exception {
- provider = new TestProjectProvider(ArchivesTest.PLUGIN_ID,
+ provider = new TestProjectProvider(ArchivesTest.PLUGIN_ID,
"inputs" + Path.SEPARATOR + "projects" + Path.SEPARATOR +
"JBIDE1406",
- null, true);
+ null, true);
project = provider.getProject();
project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
outputDir =
project.getLocation().append("output").append("JBIDE1406.jar");
propsFile = outputDir.append("src").append("in.properties");
}
-
+
protected void tearDown() throws Exception {
provider.dispose();
}
@@ -48,7 +48,7 @@
public void testJBIDE1406() {
ArchiveBuildDelegate delegate = new ArchiveBuildDelegate();
try {
- delegate.fullProjectBuild(project.getLocation());
+ delegate.fullProjectBuild(project.getLocation(), new NullProgressMonitor());
assertTrue(outputDir.toFile().isDirectory());
assertTrue(propsFile.toFile().exists());
assertTrue(propsFile.toFile().isFile());
@@ -58,14 +58,14 @@
fail(re.getMessage());
}
}
-
+
/*
* Time to test that this commit has not ruined other things.
- * Specifically, with an older archives descriptor
+ * Specifically, with an older archives descriptor
* all workspace paths should still be interpreted as
* absolute paths even if they're not visibly absolute.
*/
-
+
public void testJBIDE1406_descriptor_path_utils() {
// These 3 should work regardless of version.
// they are "", ".", and anything absolute "/proj/out"
@@ -75,7 +75,7 @@
PathUtils.getAbsoluteLocation(".", "JBIDE1406", true, 1.0));
assertEquals(new
Path("JBIDE1406").append("output").makeAbsolute().toString(),
PathUtils.getAbsoluteLocation("/JBIDE1406/output", "JBIDE1406",
true, 1.0));
-
+
// Test 1.2
assertEquals(new Path("JBIDE1406").makeAbsolute().toString(),
PathUtils.getAbsoluteLocation("", "JBIDE1406", true, 1.2));
@@ -84,15 +84,15 @@
assertEquals(new
Path("JBIDE1406").append("output").makeAbsolute().toString(),
PathUtils.getAbsoluteLocation("/JBIDE1406/output", "JBIDE1406",
true, 1.2));
-
+
// in 1.0, a leading slash does not matter
assertEquals(new
Path("JBIDE1406").append("output").makeAbsolute().toString(),
PathUtils.getAbsoluteLocation("JBIDE1406/output", "JBIDE1406",
true, 1.0));
-
+
assertEquals(
PathUtils.getAbsoluteLocation("JBIDE1406/output", "JBIDE1406",
true, 1.0),
PathUtils.getAbsoluteLocation("/JBIDE1406/output", "JBIDE1406",
true, 1.0));
-
+
// In 1.2 the leading slash matters
assertEquals(new
Path("JBIDE1406").append("output").makeAbsolute().toString(),
PathUtils.getAbsoluteLocation("output", "JBIDE1406", true,
1.2));
Modified:
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2099Test.java
===================================================================
---
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2099Test.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2099Test.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -17,15 +17,15 @@
private IProject project;
private IPath outputWar;
protected void setUp() throws Exception {
- provider = new TestProjectProvider(ArchivesTest.PLUGIN_ID,
+ provider = new TestProjectProvider(ArchivesTest.PLUGIN_ID,
"inputs" + Path.SEPARATOR + "projects" + Path.SEPARATOR +
"JBIDE2099",
- null, true);
+ null, true);
project = provider.getProject();
project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
outputWar = project.getLocation().append("output").append("dist")
.append("unified-http-invoker.sar").append("unified-invoker.war");
}
-
+
protected void tearDown() throws Exception {
provider.dispose();
}
@@ -33,7 +33,7 @@
public void testJBIDE2099() {
ArchiveBuildDelegate delegate = new ArchiveBuildDelegate();
try {
- delegate.fullProjectBuild(project.getLocation());
+ delegate.fullProjectBuild(project.getLocation(), new NullProgressMonitor());
assertTrue(outputWar.toFile().isDirectory());
} catch( AssertionFailedError afe) {
throw afe;
Modified:
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2311Test.java
===================================================================
---
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2311Test.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2311Test.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -16,13 +16,13 @@
private IProject project;
protected void setUp() throws Exception {
- provider = new TestProjectProvider(ArchivesTest.PLUGIN_ID,
+ provider = new TestProjectProvider(ArchivesTest.PLUGIN_ID,
"inputs" + Path.SEPARATOR + "projects" + Path.SEPARATOR +
"JBIDE2311",
- null, true);
+ null, true);
project = provider.getProject();
project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
}
-
+
protected void tearDown() throws Exception {
provider.dispose();
}
@@ -30,7 +30,7 @@
public void testJBIDE2311() {
ArchiveBuildDelegate delegate = new ArchiveBuildDelegate();
try {
- delegate.fullProjectBuild(project.getLocation());
+ delegate.fullProjectBuild(project.getLocation(), new NullProgressMonitor());
} catch( AssertionFailedError afe ) {
throw afe;
} catch( RuntimeException re ) {
Modified:
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2315Test.java
===================================================================
---
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2315Test.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2315Test.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -16,13 +16,13 @@
private IProject project;
protected void setUp() throws Exception {
- provider = new TestProjectProvider(ArchivesTest.PLUGIN_ID,
+ provider = new TestProjectProvider(ArchivesTest.PLUGIN_ID,
"inputs" + Path.SEPARATOR + "projects" + Path.SEPARATOR +
"JBIDE2315",
- null, true);
+ null, true);
project = provider.getProject();
project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
}
-
+
protected void tearDown() throws Exception {
provider.dispose();
}
@@ -30,7 +30,7 @@
public void testJBIDE2311() {
ArchiveBuildDelegate delegate = new ArchiveBuildDelegate();
try {
- delegate.fullProjectBuild(project.getLocation());
+ delegate.fullProjectBuild(project.getLocation(), new NullProgressMonitor());
} catch( AssertionFailedError afe ) {
throw afe;
} catch( RuntimeException re ) {
Modified:
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2439Test.java
===================================================================
---
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2439Test.java 2008-09-19
19:48:39 UTC (rev 10383)
+++
trunk/archives/tests/org.jboss.ide.eclipse.archives.test/src/org/jboss/ide/eclipse/archives/test/projects/JBIDE2439Test.java 2008-09-19
20:55:21 UTC (rev 10384)
@@ -22,19 +22,19 @@
private IProject aProject, bProject;
protected void setUp() throws Exception {
- aProjectProvider = new TestProjectProvider(ArchivesTest.PLUGIN_ID,
+ aProjectProvider = new TestProjectProvider(ArchivesTest.PLUGIN_ID,
"inputs" + Path.SEPARATOR + "projects" + Path.SEPARATOR +
"JBIDE2439a",
- null, true);
+ null, true);
aProject = aProjectProvider.getProject();
aProject.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
-
-
- bProjectProvider = new TestProjectProvider(ArchivesTest.PLUGIN_ID,
+
+
+ bProjectProvider = new TestProjectProvider(ArchivesTest.PLUGIN_ID,
"inputs" + Path.SEPARATOR + "projects" + Path.SEPARATOR +
"JBIDE2439b",
- null, true);
+ null, true);
bProject = bProjectProvider.getProject();
bProject.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
-
+
IResource folder = bProject.findMember("linked");
if( folder != null ) {
String linkedLocation = folder.getLocation().toString();
@@ -43,8 +43,8 @@
aProject.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
}
}
-
-
+
+
protected void tearDown() throws Exception {
aProjectProvider.dispose();
bProjectProvider.dispose();
@@ -53,19 +53,19 @@
public void testJBIDE2439() {
ArchiveBuildDelegate delegate = new ArchiveBuildDelegate();
try {
- delegate.fullProjectBuild(aProject.getLocation());
+ delegate.fullProjectBuild(aProject.getLocation(), new NullProgressMonitor());
aProject.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
IResource outs = aProject.getFolder("outputs");
final ArrayList<IResource> list = new ArrayList<IResource>();
outs.accept(new IResourceVisitor() {
-
+
public boolean visit(IResource resource) throws CoreException {
if( resource instanceof IFile ) {
if( !resource.getFullPath().toString().contains(".svn"))
list.add(resource);
}
return true;
- }
+ }
});
assertEquals(5, list.size());
} catch( AssertionFailedError afe ) {