You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by hi...@apache.org on 2010/08/20 10:31:29 UTC
svn commit: r987402 - in /ant/ivy/ivyde/trunk: CHANGES.txt
org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyResolveJobThread.java
Author: hibou
Date: Fri Aug 20 08:31:28 2010
New Revision: 987402
URL: http://svn.apache.org/viewvc?rev=987402&view=rev
Log:
IVYDE-27: let IvyDE refresh the folder containing the retrieved artifacts (thanks to Clint Burghduff)
Modified:
ant/ivy/ivyde/trunk/CHANGES.txt
ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyResolveJobThread.java
Modified: ant/ivy/ivyde/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/CHANGES.txt?rev=987402&r1=987401&r2=987402&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/CHANGES.txt (original)
+++ ant/ivy/ivyde/trunk/CHANGES.txt Fri Aug 20 08:31:28 2010
@@ -1,5 +1,10 @@
- IvyDE
- ============================================
+ IvyDE
+ ============================================
+
+ version 2.2.0
+==========================
+
+- IMPROVE: let IvyDE refresh workspace after a resolve (IVYDE-27) (thanks to Clint Burghduff)
version 2.1.0
==========================
Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyResolveJobThread.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyResolveJobThread.java?rev=987402&r1=987401&r2=987402&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyResolveJobThread.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyResolveJobThread.java Fri Aug 20 08:31:28 2010
@@ -31,6 +31,7 @@ import java.util.Map;
import java.util.Set;
import org.apache.ivy.Ivy;
+import org.apache.ivy.core.IvyPatternHelper;
import org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor;
import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
import org.apache.ivy.core.module.id.ModuleRevisionId;
@@ -48,6 +49,9 @@ import org.apache.ivy.util.Message;
import org.apache.ivy.util.filter.ArtifactTypeFilter;
import org.apache.ivyde.eclipse.FakeProjectManager;
import org.apache.ivyde.eclipse.IvyPlugin;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.MultiStatus;
@@ -337,7 +341,20 @@ public class IvyResolveJobThread extends
c.setArtifactFilter(new ArtifactTypeFilter(IvyClasspathUtil
.split(inheritedRetrieveTypes)));
}
- ivy.retrieve(md.getModuleRevisionId(), pattern, c);
+ int numberOfItemsRetrieved = ivy.retrieve(md.getModuleRevisionId(), pattern, c);
+ try {
+ if (numberOfItemsRetrieved > 0 ){
+ // Only refresh if we actually retrieved a file.
+ monitor.setTaskName("refreshing after retrieve for pattern: " + pattern);
+ String refreshPath = IvyPatternHelper.getTokenRoot(conf.getInheritedRetrievePattern());
+ IFolder folder = conf.getJavaProject().getProject().getFolder(refreshPath);
+ folder.refreshLocal(IResource.DEPTH_INFINITE, monitor);
+ }
+ } catch (CoreException e) {
+ // we shouldn't get any conflict in resource changes notifications, the job running
+ // this thread should be started with proper exclude rules
+ throw new RuntimeException("Refresh after resolve is conflicting with another job", e);
+ }
}
private Map/* <ModuleRevisionId, Artifact[]> */getArtifactsByDependency(ResolveReport r) {