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 2012/08/19 17:25:55 UTC

svn commit: r1374767 - in /ant/ivy/ivyde/trunk: doc/ org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/ org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/resolve/ org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/...

Author: hibou
Date: Sun Aug 19 15:25:54 2012
New Revision: 1374767

URL: http://svn.apache.org/viewvc?rev=1374767&view=rev
Log:
IVYDE-319, IVYDE-296: let Ivy think the expected artifact get downloaded, but switch to the eclipse project in the result building

Added:
    ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/   (with props)
    ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/.classpath   (with props)
    ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/.project   (with props)
    ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivy.xml   (with props)
    ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivysettings.xml   (with props)
    ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/src/
Modified:
    ant/ivy/ivyde/trunk/doc/release-notes.html
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerMapper.java
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/resolve/IvyResolver.java
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/resolve/ResolveResult.java
    ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/workspaceresolver/WorkspaceResolver.java

Modified: ant/ivy/ivyde/trunk/doc/release-notes.html
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/doc/release-notes.html?rev=1374767&r1=1374766&r2=1374767&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/doc/release-notes.html (original)
+++ ant/ivy/ivyde/trunk/doc/release-notes.html Sun Aug 19 15:25:54 2012
@@ -141,6 +141,7 @@ List of changes since <a href="/ivy/ivyd
     <li>FIX: Incomplete variable substitution for ivysettings.xml (IVYDE-318)</li>
     <li>FIX: In case of a multi-resolve, one fail make them all fail (IVYDE-316)</li>
     <li>FIX: Cannot change retrieve pattern at the workspace level (IVYDE-301)</li>
+    <li>FIX: Resolution failure when workspace has project &amp; artifact sub-element exists (IVYDE-296, IVYDE-319)</li>
 </ul>
     <!-- samples
 <ul>

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerMapper.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerMapper.java?rev=1374767&r1=1374766&r2=1374767&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerMapper.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/cpcontainer/IvyClasspathContainerMapper.java Sun Aug 19 15:25:54 2012
@@ -71,7 +71,7 @@ public class IvyClasspathContainerMapper
 
     private final Collection/* <ArtifactDownloadReport> */all;
 
-    private final Map/* <ModuleRevisionId, Artifact[]> */artifactsByDependency;
+    private final Map/* <ModuleRevisionId, List<Artifact>> */artifactsByDependency;
 
     private final Map/*
                       * <ArtifactDownloadReport , Set<String>>
@@ -215,12 +215,12 @@ public class IvyClasspathContainerMapper
         // we haven't found source artifact in resolved artifacts,
         // let's look in the module declaring the artifact
         ModuleRevisionId mrid = artifact.getId().getModuleRevisionId();
-        Artifact[] artifacts = (Artifact[]) artifactsByDependency.get(mrid);
+        List artifacts = (List/*<Artifact>*/) artifactsByDependency.get(mrid);
         if (artifacts != null) {
             Artifact foundArtifact = null;
             int nbFound = 0;
-            for (int i = 0; i < artifacts.length; i++) {
-                Artifact metaArtifact = artifacts[i];
+            for (int i = 0; i < artifacts.size(); i++) {
+                Artifact metaArtifact = (Artifact) artifacts.get(i);
                 if (matcher.match(metaArtifact)) {
                     if (matcher.matchName(artifact, metaArtifact.getName())) {
                         // we've found a matching artifact, let's provision it

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/resolve/IvyResolver.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/resolve/IvyResolver.java?rev=1374767&r1=1374766&r2=1374767&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/resolve/IvyResolver.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/resolve/IvyResolver.java Sun Aug 19 15:25:54 2012
@@ -27,23 +27,27 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.ivy.Ivy;
+import org.apache.ivy.core.IvyContext;
 import org.apache.ivy.core.IvyPatternHelper;
-import org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor;
+import org.apache.ivy.core.event.download.PrepareDownloadEvent;
+import org.apache.ivy.core.module.descriptor.Artifact;
 import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
-import org.apache.ivy.core.module.id.ModuleRevisionId;
-import org.apache.ivy.core.report.ConfigurationResolveReport;
+import org.apache.ivy.core.report.ArtifactDownloadReport;
+import org.apache.ivy.core.report.DownloadReport;
+import org.apache.ivy.core.report.DownloadStatus;
 import org.apache.ivy.core.report.ResolveReport;
+import org.apache.ivy.core.resolve.DownloadOptions;
 import org.apache.ivy.core.resolve.IvyNode;
-import org.apache.ivy.core.resolve.ResolveData;
 import org.apache.ivy.core.resolve.ResolveOptions;
-import org.apache.ivy.core.resolve.ResolvedModuleRevision;
 import org.apache.ivy.core.retrieve.RetrieveOptions;
 import org.apache.ivy.plugins.report.XmlReportParser;
 import org.apache.ivy.plugins.resolver.DependencyResolver;
 import org.apache.ivy.util.Message;
 import org.apache.ivy.util.filter.ArtifactTypeFilter;
+import org.apache.ivy.util.filter.Filter;
 import org.apache.ivyde.eclipse.IvyPlugin;
 import org.apache.ivyde.eclipse.cpcontainer.IvyClasspathUtil;
+import org.apache.ivyde.eclipse.workspaceresolver.WorkspaceResolver;
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -167,6 +171,8 @@ public class IvyResolver {
         } catch (Throwable e) {
             return new Status(IStatus.ERROR, IvyPlugin.ID, IStatus.ERROR, "The resolve job of "
                     + toString() + " has unexpectedly stopped", e);
+        } finally {
+            ivy.popContext();
         }
     }
 
@@ -200,7 +206,6 @@ public class IvyResolver {
                     XmlReportParser parser = new XmlReportParser();
                     parser.parse(report);
                     result.addArtifactReports(parser.getArtifactReports());
-                    findAllArtifactOnRefresh(ivy, parser, result);
                 } catch (ParseException e) {
                     Message.info("\n\nIVYDE: Error while parsing the report " + report
                             + ". Falling back by doing a resolve again.");
@@ -220,60 +225,29 @@ public class IvyResolver {
         resolveOption.setValidate(ivy.getSettings().doValidate());
         resolveOption.setUseCacheOnly(useCacheOnly);
         resolveOption.setResolveId(IvyClasspathUtil.buildResolveId(useExtendedResolveId, md));
-        ResolveReport report = ivy.resolve(md, resolveOption);
+        ResolveReport report = ivy.getResolveEngine().resolve(md, resolveOption);
 
         ResolveResult result = new ResolveResult(report);
 
-        for (int i = 0; i < confs.length; i++) {
-            ConfigurationResolveReport configurationReport = report
-                    .getConfigurationReport(confs[i]);
-            Set revisions = configurationReport.getModuleRevisionIds();
-            for (Iterator it = revisions.iterator(); it.hasNext();) {
-                ModuleRevisionId revId = (ModuleRevisionId) it.next();
-                result.addArtifactReports(configurationReport.getDownloadReports(revId));
-            }
-        }
-
-        confs = report.getConfigurations();
-        collectArtifactsByDependency(report, result);
-
-        return result;
-    }
+        ArtifactDownloadReport[] artifactReports = report.getArtifactsReports(null, false);
 
-    /**
-     * Populate the map of artifact. The map should be populated by metadata in cache as this is
-     * called in the refresh process.
-     * 
-     * @param parser
-     * @throws ParseException
-     */
-    private void findAllArtifactOnRefresh(Ivy ivy, XmlReportParser parser, ResolveResult result)
-            throws ParseException {
-        ModuleRevisionId[] dependencyMrdis = parser.getDependencyRevisionIds();
-        for (int iDep = 0; iDep < dependencyMrdis.length; iDep++) {
-            DependencyResolver depResolver = ivy.getSettings().getResolver(dependencyMrdis[iDep]);
-            DefaultDependencyDescriptor depDescriptor = new DefaultDependencyDescriptor(
-                    dependencyMrdis[iDep], false);
-            ResolveOptions options = new ResolveOptions();
-            options.setRefresh(true);
-            options.setUseCacheOnly(true);
-            ResolvedModuleRevision dependency = depResolver.getDependency(depDescriptor,
-                new ResolveData(ivy.getResolveEngine(), options));
-            if (dependency != null) {
-                result.putArtifactsForDep(dependencyMrdis[iDep], dependency.getDescriptor()
-                        .getAllArtifacts());
+        Map/* <Artifact, ArtifactDownloadReport> */workspaceArtifacts = (Map) IvyContext
+                .getContext().get(WorkspaceResolver.IVYDE_WORKSPACE_ARTIFACT_REPORTS);
+        if (workspaceArtifacts != null) {
+            // some artifact were 'forced' by the dependency declaration, whereas they should be
+            // switch by the eclipse project reference
+            for (int i = 0; i < artifactReports.length; i++) {
+                ArtifactDownloadReport eclipseArtifactReport = (ArtifactDownloadReport) workspaceArtifacts
+                        .get(artifactReports[i].getArtifact());
+                if (eclipseArtifactReport != null) {
+                    // let's switch.
+                    artifactReports[i] = eclipseArtifactReport;
+                }
             }
         }
-    }
+        result.addArtifactReports(artifactReports);
 
-    private void collectArtifactsByDependency(ResolveReport r, ResolveResult result) {
-        for (Iterator it = r.getDependencies().iterator(); it.hasNext();) {
-            IvyNode node = (IvyNode) it.next();
-            if (node.getDescriptor() != null) {
-                result.putArtifactsForDep(node.getResolvedId(), node.getDescriptor()
-                        .getAllArtifacts());
-            }
-        }
+        return result;
     }
 
     private IStatus maybeRetrieve(Ivy ivy, ModuleDescriptor md, ResolveResult result,

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/resolve/ResolveResult.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/resolve/ResolveResult.java?rev=1374767&r1=1374766&r2=1374767&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/resolve/ResolveResult.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/resolve/ResolveResult.java Sun Aug 19 15:25:54 2012
@@ -17,17 +17,20 @@
  */
 package org.apache.ivyde.eclipse.resolve;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
 import org.apache.ivy.core.module.descriptor.Artifact;
-import org.apache.ivy.core.module.id.ModuleRevisionId;
 import org.apache.ivy.core.report.ArtifactDownloadReport;
+import org.apache.ivy.core.report.DownloadStatus;
 import org.apache.ivy.core.report.ResolveReport;
+import org.eclipse.core.runtime.MultiStatus;
 
 /**
  * Container of result of an Ivy resolve and maybe retrieve
@@ -42,7 +45,7 @@ public class ResolveResult {
 
     private final ResolveReport report;
 
-    private Map/* <ModuleRevisionId, Artifact[]> */artifactsByDependency = new HashMap();
+    private Map/* <ModuleRevisionId, List<Artifact>> */artifactsByDependency = new HashMap();
 
     /**
      * Mapping of resolved artifact to their retrieved path, <code>null</code> if there were no
@@ -97,6 +100,18 @@ public class ResolveResult {
 
     void addArtifactReports(ArtifactDownloadReport[] reports) {
         artifactReports.addAll(Arrays.asList(reports));
+        for (int i = 0; i < reports.length; i++) {
+            if (reports[i].getDownloadStatus() != DownloadStatus.FAILED) {
+                Artifact a = reports[i].getArtifact();
+                List/* <Artifact> */artifacts = (List) artifactsByDependency.get(a
+                        .getModuleRevisionId());
+                if (artifacts == null) {
+                    artifacts = new ArrayList();
+                    artifactsByDependency.put(a.getModuleRevisionId(), artifacts);
+                }
+                artifacts.add(a);
+            }
+        }
     }
 
     /**
@@ -107,15 +122,11 @@ public class ResolveResult {
         return artifactReports;
     }
 
-    void putArtifactsForDep(ModuleRevisionId mrid, Artifact[] artifacts) {
-        artifactsByDependency.put(mrid, artifacts);
-    }
-
     /**
      * 
      * @return the reports of the artifacts by dependency
      */
-    public Map /* <ModuleRevisionId, Artifact[]> */getArtifactsByDependency() {
+    public Map /* <ModuleRevisionId, List<Artifact>> */getArtifactsByDependency() {
         return artifactsByDependency;
     }
 

Modified: ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/workspaceresolver/WorkspaceResolver.java
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/workspaceresolver/WorkspaceResolver.java?rev=1374767&r1=1374766&r2=1374767&view=diff
==============================================================================
--- ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/workspaceresolver/WorkspaceResolver.java (original)
+++ ant/ivy/ivyde/trunk/org.apache.ivyde.eclipse/src/java/org/apache/ivyde/eclipse/workspaceresolver/WorkspaceResolver.java Sun Aug 19 15:25:54 2012
@@ -20,6 +20,7 @@ package org.apache.ivyde.eclipse.workspa
 import java.io.File;
 import java.io.IOException;
 import java.text.ParseException;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -31,9 +32,11 @@ import org.apache.ivy.core.module.descri
 import org.apache.ivy.core.module.descriptor.Configuration;
 import org.apache.ivy.core.module.descriptor.DefaultArtifact;
 import org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor;
+import org.apache.ivy.core.module.descriptor.DependencyArtifactDescriptor;
 import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
 import org.apache.ivy.core.module.descriptor.ExcludeRule;
 import org.apache.ivy.core.module.descriptor.License;
+import org.apache.ivy.core.module.descriptor.MDArtifact;
 import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
 import org.apache.ivy.core.module.id.ModuleId;
 import org.apache.ivy.core.module.id.ModuleRevisionId;
@@ -100,6 +103,10 @@ public class WorkspaceResolver extends A
 
     public static final String CACHE_NAME = "__ivyde-workspace-resolver-cache";
 
+    public static final String IVYDE_WORKSPACE_ARTIFACTS = "IvyDEWorkspaceArtifacts";
+
+    public static final String IVYDE_WORKSPACE_ARTIFACT_REPORTS = "IvyDEWorkspaceArtifactReports";
+
     private IProject[] projects;
 
     private boolean ignoreBranchOnWorkspaceProjects;
@@ -122,21 +129,39 @@ public class WorkspaceResolver extends A
     }
 
     public DownloadReport download(Artifact[] artifacts, DownloadOptions options) {
+        IvyContext context = IvyContext.getContext();
+        Map/* <Artifact, Artifact> */workspaceArtifacts = (Map) context
+                .get(IVYDE_WORKSPACE_ARTIFACTS);
+        Map/* <String, ArtifactDownloadReport> */workspaceReports = null;
+        if (workspaceArtifacts != null) {
+            workspaceReports = new HashMap();
+            context.set(IVYDE_WORKSPACE_ARTIFACT_REPORTS, workspaceReports);
+        }
+
         // Not much to do here - downloads are not required for workspace projects.
         DownloadReport dr = new DownloadReport();
         for (int i = 0; i < artifacts.length; i++) {
-            final ArtifactDownloadReport adr = new ArtifactDownloadReport(artifacts[i]);
+            ArtifactDownloadReport adr = new ArtifactDownloadReport(artifacts[i]);
             dr.addArtifactReport(adr);
-
             // Only report java projects as downloaded
             if (artifacts[i].getType().equals(ECLIPSE_PROJECT_TYPE)) {
+                adr.setDownloadStatus(DownloadStatus.NO);
+                adr.setSize(0);
                 Message.verbose("\t[IN WORKSPACE] " + artifacts[i]);
+            } else if (workspaceArtifacts != null && workspaceArtifacts.containsKey(artifacts[i])) {
                 adr.setDownloadStatus(DownloadStatus.NO);
                 adr.setSize(0);
+                // there is some 'forced' artifact by the dependency descriptor
+                Artifact eclipseArtifact = (Artifact) workspaceArtifacts.get(artifacts[i]);
+                ArtifactDownloadReport eclipseAdr = new ArtifactDownloadReport(eclipseArtifact);
+                eclipseAdr.setDownloadStatus(DownloadStatus.NO);
+                eclipseAdr.setSize(0);
+                workspaceReports.put(artifacts[i], eclipseAdr);
+                Message.verbose("\t[IN WORKSPACE] " + eclipseArtifact);
             } else {
+                adr.setDownloadStatus(DownloadStatus.FAILED);
                 Message.verbose("\t[Eclipse Workspace resolver] "
                         + "cannot download non-project artifact: " + artifacts[i]);
-                adr.setDownloadStatus(DownloadStatus.FAILED);
             }
         }
         return dr;
@@ -144,14 +169,16 @@ public class WorkspaceResolver extends A
 
     public ResolvedModuleRevision getDependency(DependencyDescriptor dd, ResolveData data)
             throws ParseException {
+        IvyContext context = IvyContext.getContext();
+
         String contextId = "ivyde.workspaceresolver." + getName() + "." + dd.getDependencyRevisionId().toString();
-        DependencyDescriptor parentDD = (DependencyDescriptor) IvyContext.getContext().get(contextId);
+        DependencyDescriptor parentDD = (DependencyDescriptor) context.get(contextId);
         if (parentDD != null && parentDD.getDependencyRevisionId().equals(dd.getDependencyRevisionId())) {
             // this very workspace resolver has been already called for the same dependency
             // we are going into a circular dependency, let's return 'not found'
             return null;
         }
-        IvyContext.getContext().set(contextId, dd);
+        context.set(contextId, dd);
 
         ModuleRevisionId dependencyMrid = dd.getDependencyRevisionId();
 
@@ -214,6 +241,35 @@ public class WorkspaceResolver extends A
                             md.getPublicationDate(), p.getFullPath().toString(),
                             ECLIPSE_PROJECT_TYPE, ECLIPSE_PROJECT_EXTENSION);
 
+                    DependencyArtifactDescriptor[] dArtifacts = dd.getAllDependencyArtifacts();
+                    if (dArtifacts != null) {
+                        // the dependency is declaring explicitely some artifacts to download
+                        // we need to trick to and map these requested artifact by the Eclipse
+                        // project
+
+                        // we need the context which is used when downloading data, which is the
+                        // parent
+                        // of the current one
+                        // so let's hack: popContext (the child), getContext (the parent), setVar,
+                        // pushContext (child)
+                        IvyContext currentContext = IvyContext.popContext();
+                        IvyContext parentContext = IvyContext.getContext();
+                        Map/* <Artifact, Artifact> */workspaceArtifacts = (Map) parentContext
+                                .get(IVYDE_WORKSPACE_ARTIFACTS);
+                        if (workspaceArtifacts == null) {
+                            workspaceArtifacts = new HashMap();
+                            parentContext.set(IVYDE_WORKSPACE_ARTIFACTS, workspaceArtifacts);
+                        }
+                        for (int j = 0; j < dArtifacts.length; j++) {
+                            Artifact artifact = new MDArtifact(md, dArtifacts[j].getName(),
+                                    dArtifacts[j].getType(), dArtifacts[j].getExt(),
+                                    dArtifacts[j].getUrl(),
+                                    dArtifacts[j].getQualifiedExtraAttributes());
+                            workspaceArtifacts.put(artifact, af);
+                        }
+                        IvyContext.pushContext(currentContext);
+                    }
+
                     DefaultModuleDescriptor workspaceMd = cloneMd(md, af);
 
                     MetadataArtifactDownloadReport madr = new MetadataArtifactDownloadReport(af);

Propchange: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sun Aug 19 15:25:54 2012
@@ -0,0 +1 @@
+bin

Added: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/.classpath
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/.classpath?rev=1374767&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/.classpath
------------------------------------------------------------------------------
    svn:mime-type = application/xml

Added: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/.project
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/.project?rev=1374767&view=auto
==============================================================================
--- ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/.project (added)
+++ ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/.project Sun Aug 19 15:25:54 2012
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>ivydetest-workspaceresolver-artifact</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.apache.ivyde.eclipse.ivynature</nature>
+	</natures>
+</projectDescription>

Propchange: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/.project
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/.project
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/.project
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivy.xml
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivy.xml?rev=1374767&view=auto
==============================================================================
--- ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivy.xml (added)
+++ ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivy.xml Sun Aug 19 15:25:54 2012
@@ -0,0 +1,33 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.    
+-->
+<ivy-module version="1.0">
+    <info organisation="org.apache.ivyde" module="ivydetest-workspaceresolver-artifact" revision="1.1">
+        <description>
+            Project using the resolve in workspace feature, with a dependency with an artifact declared
+        </description>
+    </info>
+    <configurations>
+        <conf name="default" />
+    </configurations>
+    <dependencies>
+    	<dependency org="org.apache.ivyde" name="ivydetest-workspaceresolver-common" rev="1.1">
+    		<artifact name="ivydetest-workspaceresolver-common" />
+    	</dependency>
+    </dependencies>
+</ivy-module>

Propchange: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivy.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivy.xml
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivy.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivysettings.xml
URL: http://svn.apache.org/viewvc/ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivysettings.xml?rev=1374767&view=auto
==============================================================================
--- ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivysettings.xml (added)
+++ ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivysettings.xml Sun Aug 19 15:25:54 2012
@@ -0,0 +1,33 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one
+   or more contributor license agreements.  See the NOTICE file
+   distributed with this work for additional information
+   regarding copyright ownership.  The ASF licenses this file
+   to you under the Apache License, Version 2.0 (the
+   "License"); you may not use this file except in compliance
+   with the License.  You may obtain a copy of the License at
+
+     http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing,
+   software distributed under the License is distributed on an
+   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+   KIND, either express or implied.  See the License for the
+   specific language governing permissions and limitations
+   under the License.    
+-->
+<ivysettings>
+    <caches defaultCacheDir="${ivy.settings.dir}/../cache-fakerepo" useOrigin="false" checkUpToDate="true" />
+    <settings defaultResolver="chain" />
+    <resolvers>
+        <filesystem name="fakerepo" checkmodified="true">
+            <ivy pattern="${ivy.settings.dir}/../fakerepo/[organisation]/[module]/ivy-[revision].xml"/>
+            <artifact pattern="${ivy.settings.dir}/../fakerepo/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]"/>
+        </filesystem>
+        <ibiblio name="ibiblio" m2compatible="true" />
+        <chain name="chain">
+        	<resolver ref="fakerepo" />
+        	<resolver ref="ibiblio" />
+        </chain>
+    </resolvers>
+</ivysettings>

Propchange: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivysettings.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivysettings.xml
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: ant/ivy/ivyde/trunk/test/workspaceresolver-artifact/ivysettings.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml