ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hi...@apache.org
Subject svn commit: r1036848 [6/8] - in /ant/ivy/core/trunk: example/ example/.settings/ example/java/ example/java/src/ example/java/src/com/ example/java/src/com/acme/ example/java/src/com/acme/speedy/ examples/ examples/eclipse-plugin/ examples/eclipse-plug...
Date Fri, 19 Nov 2010 14:06:12 GMT
Added: ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/repo/BundleRepoResolverTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/repo/BundleRepoResolverTest.java?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/repo/BundleRepoResolverTest.java (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/repo/BundleRepoResolverTest.java Fri Nov 19 14:06:06 2010
@@ -0,0 +1,298 @@
+/*
+ *  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.
+ *
+ */
+package org.apache.ivy.osgi.repo;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.text.ParseException;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.jar.JarInputStream;
+
+import org.apache.ivy.Ivy;
+import org.apache.ivy.core.cache.RepositoryCacheManager;
+import org.apache.ivy.core.module.descriptor.Artifact;
+import org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor;
+import org.apache.ivy.core.module.descriptor.DefaultModuleDescriptor;
+import org.apache.ivy.core.module.id.ModuleRevisionId;
+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.ResolveData;
+import org.apache.ivy.core.resolve.ResolveOptions;
+import org.apache.ivy.core.resolve.ResolvedModuleRevision;
+import org.apache.ivy.core.settings.IvySettings;
+import org.apache.ivy.osgi.core.BundleInfo;
+import org.apache.ivy.osgi.core.ManifestParser;
+import org.apache.ivy.osgi.repo.BundleInfoAdapter;
+import org.apache.ivy.osgi.repo.BundleRepoResolver;
+import org.apache.ivy.osgi.repo.BundleRepoResolver.RequirementStrategy;
+import org.apache.ivy.plugins.resolver.DependencyResolver;
+import org.apache.ivy.plugins.resolver.DualResolver;
+import org.apache.ivy.plugins.resolver.FileSystemResolver;
+import org.junit.Before;
+import org.junit.Test;
+
+
+public class BundleRepoResolverTest {
+
+    private static final ModuleRevisionId MRID_TEST_BUNDLE = ModuleRevisionId.newInstance("", "org.apache.ivy.osgitestbundle",
+            "1.2.3", BundleInfoAdapter.OSGI_BUNDLE);
+
+    private static final ModuleRevisionId MRID_TEST_BUNDLE_IMPORTING = ModuleRevisionId.newInstance("",
+            "org.apache.ivy.osgi.testbundle.importing", "3.2.1", BundleInfoAdapter.OSGI_BUNDLE);
+
+    private static final ModuleRevisionId MRID_TEST_BUNDLE_IMPORTING_VERSION = ModuleRevisionId.newInstance("",
+            "org.apache.ivy.osgi.testbundle.importing.version", "3.2.1", BundleInfoAdapter.OSGI_BUNDLE);
+
+    private static final ModuleRevisionId MRID_TEST_BUNDLE_IMPORTING_OPTIONAL = ModuleRevisionId.newInstance("",
+            "org.apache.ivy.osgi.testbundle.importing.optional", "3.2.1", BundleInfoAdapter.OSGI_BUNDLE);
+
+    private static final ModuleRevisionId MRID_TEST_BUNDLE_USE = ModuleRevisionId.newInstance("",
+            "org.apache.ivy.osgi.testbundle.use", "2.2.2", BundleInfoAdapter.OSGI_BUNDLE);
+
+    private static final ModuleRevisionId MRID_TEST_BUNDLE_EXPORTING_AMBIGUITY = ModuleRevisionId.newInstance("",
+            "org.apache.ivy.osgi.testbundle.exporting.ambiguity", "3.3.3", BundleInfoAdapter.OSGI_BUNDLE);
+
+    private IvySettings settings;
+    private File cache;
+    private ResolveData data;
+    private Ivy ivy;
+    private BundleRepoResolver bundleResolver;
+    private BundleRepoResolver bundleUrlResolver;
+    private DualResolver dualResolver;
+
+    @Before
+    public void setUp() throws Exception {
+        settings = new IvySettings();
+
+        bundleResolver = new BundleRepoResolver();
+        bundleResolver.setRepoXmlFile(new File("java/test-repo/bundlerepo/repo.xml").getAbsolutePath());
+        bundleResolver.setName("bundle");
+        bundleResolver.setSettings(settings);
+        settings.addResolver(bundleResolver);
+
+        bundleUrlResolver = new BundleRepoResolver();
+        bundleUrlResolver
+                .setRepoXmlURL(new File("java/test-repo/bundlerepo/repo.xml").toURI().toURL().toExternalForm());
+        bundleUrlResolver.setName("bundleurl");
+        bundleUrlResolver.setSettings(settings);
+        settings.addResolver(bundleUrlResolver);
+
+        dualResolver = new DualResolver();
+        BundleRepoResolver resolver = new BundleRepoResolver();
+        resolver.setRepoXmlFile("java/test-repo/ivyrepo/repo.xml");
+        resolver.setName("dual-bundle");
+        resolver.setSettings(settings);
+        dualResolver.add(resolver);
+        dualResolver.setName("dual");
+        File ivyrepo = new File("java/test-repo/ivyrepo");
+        FileSystemResolver fileSystemResolver = new FileSystemResolver();
+        fileSystemResolver.addIvyPattern(ivyrepo.getAbsolutePath() + "/[organisation]/[module]/[revision]/ivy.xml");
+        fileSystemResolver.addArtifactPattern(ivyrepo.getAbsolutePath()
+                + "/[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]");
+        fileSystemResolver.setName("dual-file");
+        fileSystemResolver.setSettings(settings);
+        dualResolver.add(fileSystemResolver);
+        settings.addResolver(dualResolver);
+
+        settings.setDefaultResolver("bundle");
+
+        cache = new File("build/cache");
+        cache.mkdirs();
+        settings.setDefaultCache(cache);
+
+        ivy = new Ivy();
+        ivy.setSettings(settings);
+        ivy.bind();
+
+        ivy.getResolutionCacheManager().clean();
+        RepositoryCacheManager[] caches = settings.getRepositoryCacheManagers();
+        for (int i = 0; i < caches.length; i++) {
+            caches[i].clean();
+        }
+
+        data = new ResolveData(ivy.getResolveEngine(), new ResolveOptions());
+    }
+
+    @Test
+    public void testSimpleResolve() throws Exception {
+        ModuleRevisionId mrid = ModuleRevisionId.newInstance("", "org.apache.ivy.osgi.testbundle", "1.2.3",
+                BundleInfoAdapter.OSGI_BUNDLE);
+        genericTestResolveDownload(bundleResolver, mrid);
+    }
+
+    @Test
+    public void testSimpleUrlResolve() throws Exception {
+        ModuleRevisionId mrid = ModuleRevisionId.newInstance("", "org.apache.ivy.osgi.testbundle", "1.2.3",
+                BundleInfoAdapter.OSGI_BUNDLE);
+        genericTestResolveDownload(bundleUrlResolver, mrid);
+    }
+
+    @Test
+    public void testResolveDual() throws Exception {
+        ModuleRevisionId mrid = ModuleRevisionId.newInstance("", "org.apache.ivy.osgi.testbundle", "1.2.3",
+                BundleInfoAdapter.OSGI_BUNDLE);
+        genericTestResolveDownload(dualResolver, mrid);
+    }
+
+    private void genericTestResolveDownload(DependencyResolver resolver, ModuleRevisionId mrid) throws ParseException {
+        ResolvedModuleRevision rmr = resolver.getDependency(new DefaultDependencyDescriptor(mrid, false), data);
+        assertNotNull(rmr);
+        assertEquals(mrid, rmr.getId());
+
+        Artifact artifact = rmr.getDescriptor().getAllArtifacts()[0];
+        DownloadReport report = resolver.download(new Artifact[] { artifact }, new DownloadOptions());
+        assertNotNull(report);
+
+        assertEquals(1, report.getArtifactsReports().length);
+
+        ArtifactDownloadReport ar = report.getArtifactReport(artifact);
+        assertNotNull(ar);
+
+        assertEquals(artifact, ar.getArtifact());
+        assertEquals(DownloadStatus.SUCCESSFUL, ar.getDownloadStatus());
+
+        // test to ask to download again, should use cache
+        report = resolver.download(new Artifact[] { artifact }, new DownloadOptions());
+        assertNotNull(report);
+
+        assertEquals(1, report.getArtifactsReports().length);
+
+        ar = report.getArtifactReport(artifact);
+        assertNotNull(ar);
+
+        assertEquals(artifact, ar.getArtifact());
+        assertEquals(DownloadStatus.NO, ar.getDownloadStatus());
+    }
+
+    @Test
+    public void testResolveImporting() throws Exception {
+        String jarName = "org.apache.ivy.osgi.testbundle.importing_3.2.1.jar";
+        genericTestResolve(jarName, "default", MRID_TEST_BUNDLE);
+    }
+
+    @Test
+    public void testResolveImportingOptional() throws Exception {
+        String jarName = "org.apache.ivy.osgi.testbundle.importing.optional_3.2.1.jar";
+        genericTestResolve(jarName, "default");
+        genericTestResolve(jarName, "optional", MRID_TEST_BUNDLE);
+        genericTestResolve(jarName, "transitive-optional", MRID_TEST_BUNDLE);
+    }
+
+    @Test
+    public void testResolveImportingTransitiveOptional() throws Exception {
+        String jarName = "org.apache.ivy.osgi.testbundle.importing.transitiveoptional_3.2.1.jar";
+        genericTestResolve(jarName, "default");
+        genericTestResolve(jarName, "optional", MRID_TEST_BUNDLE_IMPORTING_OPTIONAL);
+        genericTestResolve(jarName, "transitive-optional", MRID_TEST_BUNDLE, MRID_TEST_BUNDLE_IMPORTING_OPTIONAL);
+    }
+
+    @Test
+    public void testResolveImportingVersion() throws Exception {
+        String jarName = "org.apache.ivy.osgi.testbundle.importing.version_3.2.1.jar";
+        genericTestResolve(jarName, "default", MRID_TEST_BUNDLE);
+    }
+
+    @Test
+    public void testResolveImportingRangeVersion() throws Exception {
+        String jarName = "org.apache.ivy.osgi.testbundle.importing.rangeversion_3.2.1.jar";
+        genericTestResolve(jarName, "default", MRID_TEST_BUNDLE);
+    }
+
+    @Test
+    public void testResolveUse() throws Exception {
+        String jarName = "org.apache.ivy.osgi.testbundle.use_2.2.2.jar";
+        genericTestResolve(jarName, "default");
+    }
+
+    @Test
+    public void testResolveImportingUse() throws Exception {
+        String jarName = "org.apache.ivy.osgi.testbundle.importing.use_3.2.1.jar";
+        genericTestResolve(jarName, "default", MRID_TEST_BUNDLE_USE, MRID_TEST_BUNDLE_IMPORTING, MRID_TEST_BUNDLE);
+    }
+
+    @Test
+    public void testResolveRequire() throws Exception {
+        String jarName = "org.apache.ivy.osgi.testbundle.require_1.1.1.jar";
+        genericTestResolve(jarName, "default", MRID_TEST_BUNDLE, MRID_TEST_BUNDLE_IMPORTING_VERSION);
+    }
+
+    @Test
+    public void testResolveOptionalConf() throws Exception {
+        String jarName = "org.apache.ivy.osgi.testbundle.require_1.1.1.jar";
+        genericTestResolve(jarName, "optional", MRID_TEST_BUNDLE, MRID_TEST_BUNDLE_IMPORTING_VERSION);
+    }
+
+    @Test
+    public void testResolveImportAmbiguity() throws Exception {
+        String jarName = "org.apache.ivy.osgi.testbundle.importing.ambiguity_3.2.1.jar";
+        bundleResolver.setImportPackageStrategy(RequirementStrategy.first);
+        genericTestResolve(jarName, "default", MRID_TEST_BUNDLE_EXPORTING_AMBIGUITY);
+    }
+
+    @Test
+    public void testResolveImportNoAmbiguity() throws Exception {
+        String jarName = "org.apache.ivy.osgi.testbundle.importing.ambiguity_3.2.1.jar";
+        bundleResolver.setImportPackageStrategy(RequirementStrategy.noambiguity);
+        genericTestFailingResolve(jarName, "default");
+    }
+
+    @Test
+    public void testResolveRequireAmbiguity() throws Exception {
+        String jarName = "org.apache.ivy.osgi.testbundle.require.ambiguity_1.1.1.jar";
+        bundleResolver.setImportPackageStrategy(RequirementStrategy.noambiguity);
+        genericTestResolve(jarName, "default", MRID_TEST_BUNDLE, MRID_TEST_BUNDLE_IMPORTING_VERSION);
+    }
+
+    private void genericTestResolve(String jarName, String conf, ModuleRevisionId... expectedMrids) throws Exception {
+        JarInputStream in = new JarInputStream(new FileInputStream("java/test-repo/bundlerepo/" + jarName));
+        BundleInfo bundleInfo = ManifestParser.parseManifest(in.getManifest());
+        DefaultModuleDescriptor md = BundleInfoAdapter.toModuleDescriptor(bundleInfo, null);
+        ResolveReport resolveReport = ivy.resolve(md, new ResolveOptions().setConfs(new String[] { conf })
+                .setOutputReport(false));
+        assertFalse("resolve failed " + resolveReport.getProblemMessages(), resolveReport.hasError());
+        Set<ModuleRevisionId> actual = new HashSet<ModuleRevisionId>();
+        @SuppressWarnings("unchecked")
+        List<Artifact> artifacts = resolveReport.getArtifacts();
+        for (Artifact artfact : artifacts) {
+            actual.add(artfact.getModuleRevisionId());
+        }
+        Set<ModuleRevisionId> expected = new HashSet<ModuleRevisionId>(Arrays.asList(expectedMrids));
+        assertEquals(expected, actual);
+    }
+
+    private void genericTestFailingResolve(String jarName, String conf) throws Exception {
+        JarInputStream in = new JarInputStream(new FileInputStream("java/test-repo/bundlerepo/" + jarName));
+        BundleInfo bundleInfo = ManifestParser.parseManifest(in.getManifest());
+        DefaultModuleDescriptor md = BundleInfoAdapter.toModuleDescriptor(bundleInfo, null);
+        ResolveReport resolveReport = ivy.resolve(md, new ResolveOptions().setConfs(new String[] { conf })
+                .setOutputReport(false));
+        assertTrue(resolveReport.hasError());
+    }
+
+}

Added: ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/repo/BundleRepoTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/repo/BundleRepoTest.java?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/repo/BundleRepoTest.java (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/repo/BundleRepoTest.java Fri Nov 19 14:06:06 2010
@@ -0,0 +1,112 @@
+/*
+ *  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.
+ *
+ */
+package org.apache.ivy.osgi.repo;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.text.ParseException;
+
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import javax.xml.transform.sax.TransformerHandler;
+import javax.xml.transform.stream.StreamResult;
+
+import junit.framework.TestCase;
+
+import org.apache.ivy.core.settings.IvySettings;
+import org.apache.ivy.osgi.obr.xml.OBRXMLParser;
+import org.apache.ivy.osgi.obr.xml.OBRXMLWriter;
+import org.apache.ivy.osgi.repo.BundleRepo;
+import org.apache.ivy.osgi.repo.FSManifestIterable;
+import org.apache.ivy.osgi.repo.RepositoryManifestIterable;
+import org.apache.ivy.osgi.repo.ResolverManifestIterable;
+import org.apache.ivy.plugins.repository.file.FileRepository;
+import org.apache.ivy.plugins.resolver.FileSystemResolver;
+import org.apache.tools.ant.BuildException;
+import org.xml.sax.SAXException;
+
+
+public class BundleRepoTest extends TestCase {
+
+    public void testFS() throws Exception {
+        FSManifestIterable it = new FSManifestIterable(new File("java/test-repo/bundlerepo"), "");
+        BundleRepo repo = new BundleRepo();
+        repo.populate(it);
+
+        BundleRepo repo2 = OBRXMLParser.parse(new FileInputStream("java/test-repo/bundlerepo/repo.xml"));
+
+        assertEquals(repo, repo2);
+    }
+
+    public void testFileRepo() throws Exception {
+        RepositoryManifestIterable it = new RepositoryManifestIterable(new FileRepository(new File(
+                "java/test-repo/bundlerepo")));
+        BundleRepo repo = new BundleRepo();
+        repo.populate(it);
+
+        BundleRepo repo2 = OBRXMLParser.parse(new FileInputStream("java/test-repo/bundlerepo/repo.xml"));
+
+        assertEquals(repo, repo2);
+    }
+
+    public void testResolver() throws Exception {
+        FileSystemResolver fileSystemResolver = new FileSystemResolver();
+        fileSystemResolver.setName("test");
+        File ivyrepo = new File("java/test-repo/ivyrepo");
+        fileSystemResolver.addIvyPattern(ivyrepo.getAbsolutePath() + "/[organisation]/[module]/[revision]/ivy.xml");
+        fileSystemResolver.addArtifactPattern(ivyrepo.getAbsolutePath()
+                + "/[organisation]/[module]/[revision]/[type]s/[artifact]-[revision].[ext]");
+        fileSystemResolver.setSettings(new IvySettings());
+        ResolverManifestIterable it = new ResolverManifestIterable(fileSystemResolver);
+        BundleRepo repo = new BundleRepo();
+        repo.populate(it);
+
+        BundleRepo repo2 = OBRXMLParser.parse(new FileInputStream("java/test-repo/ivyrepo/repo.xml"));
+
+        assertEquals(repo, repo2);
+    }
+
+    public void testXMLSerialisation() throws SAXException, ParseException, IOException {
+        FSManifestIterable it = new FSManifestIterable(new File("java/test-repo/bundlerepo"), "");
+        BundleRepo repo = new BundleRepo();
+        repo.populate(it);
+
+        SAXTransformerFactory tf = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
+        TransformerHandler hd;
+        try {
+            hd = tf.newTransformerHandler();
+        } catch (TransformerConfigurationException e) {
+            throw new BuildException("Sax configuration error: " + e.getMessage(), e);
+        }
+
+        ByteArrayOutputStream out = new ByteArrayOutputStream();
+        StreamResult stream = new StreamResult(out);
+        hd.setResult(stream);
+
+        OBRXMLWriter.writeBundles(repo.getBundles(), hd);
+
+        ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
+        BundleRepo repo2 = OBRXMLParser.parse(in);
+
+        assertEquals(repo, repo2);
+    }
+
+}

Added: ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/ArtifactTokensTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/ArtifactTokensTest.java?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/ArtifactTokensTest.java (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/ArtifactTokensTest.java Fri Nov 19 14:06:06 2010
@@ -0,0 +1,84 @@
+/*
+ *  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.
+ *
+ */
+package org.apache.ivy.osgi.util;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.ivy.osgi.util.ArtifactTokens;
+import org.junit.Test;
+
+public class ArtifactTokensTest {
+
+    @Test
+    public void testGoodMatching() {
+        final String repoResource = "java/test-ivy/osgi/eclipse/plugins/org.eclipse.datatools.connectivity.ui_1.0.1.v200808121010";
+        final ArtifactTokens tokens = new ArtifactTokens(repoResource);
+        assertEquals("java/test-ivy/osgi/eclipse/plugins/", tokens.prefix);
+        assertEquals("org.eclipse.datatools.connectivity.ui", tokens.module);
+        assertEquals("1.0.1", tokens.version.numbersAsString());
+        assertEquals("v200808121010", tokens.version.qualifier());
+        assertFalse(tokens.isJar);
+    }
+
+    @Test
+    public void testGoodMatching2() {
+        final String repoResource = "java/test-ivy/osgi/eclipse/plugins/org.eclipse.datatools.connectivity.ui_1.0.1";
+        final ArtifactTokens tokens = new ArtifactTokens(repoResource);
+        assertEquals("java/test-ivy/osgi/eclipse/plugins/", tokens.prefix);
+        assertEquals("org.eclipse.datatools.connectivity.ui", tokens.module);
+        assertEquals("1.0.1", tokens.version.numbersAsString());
+        assertEquals("", tokens.version.qualifier());
+        assertFalse(tokens.isJar);
+    }
+
+    @Test
+    public void testGoodMatching3() {
+        final String repoResource = "java/test-ivy/osgi/eclipse/plugins/org.myorg.module.one_3.21.100.v20070530";
+        final ArtifactTokens tokens = new ArtifactTokens(repoResource);
+        assertEquals("java/test-ivy/osgi/eclipse/plugins/", tokens.prefix);
+        assertEquals("org.myorg.module.one", tokens.module);
+        assertEquals("3.21.100", tokens.version.numbersAsString());
+        assertEquals("v20070530", tokens.version.qualifier());
+        assertFalse(tokens.isJar);
+    }
+
+    @Test
+    public void testGoodMatching4() {
+        final String repoResource = "java/test-ivy/osgi/eclipse/plugins/org.eclipse.mylyn.tasks.ui_3.0.1.v20080721-2100-e33.jar";
+        // String repoResource = "java/test-ivy/osgi/eclipse/plugins/org.eclipse.mylyn.tasks.ui_3.0.1.v20080721.jar";
+        final ArtifactTokens tokens = new ArtifactTokens(repoResource);
+        assertEquals("java/test-ivy/osgi/eclipse/plugins/", tokens.prefix);
+        assertEquals("org.eclipse.mylyn.tasks.ui", tokens.module);
+        assertEquals("3.0.1", tokens.version.numbersAsString());
+        assertEquals("v20080721-2100-e33", tokens.version.qualifier());
+        assertTrue(tokens.isJar);
+    }
+
+    @Test
+    public void testBadMatching() {
+        final String repoResource = "java/test-ivy/osgi/eclipse/plugins/fake";
+        final ArtifactTokens tokens = new ArtifactTokens(repoResource);
+        assertNull(tokens.prefix);
+        assertNull(tokens.module);
+        assertNull(tokens.version);
+    }
+
+}

Added: ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/NameUtilTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/NameUtilTest.java?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/NameUtilTest.java (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/NameUtilTest.java Fri Nov 19 14:06:06 2010
@@ -0,0 +1,78 @@
+/*
+ *  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.
+ *
+ */
+package org.apache.ivy.osgi.util;
+
+import static org.junit.Assert.*;
+
+import org.apache.ivy.osgi.util.NameUtil;
+import org.apache.ivy.osgi.util.NameUtil.OrgAndName;
+import org.junit.*;
+
+
+public class NameUtilTest {
+
+    @Before
+    public void setUp() throws Exception {
+    }
+
+    @After
+    public void tearDown() throws Exception {
+    }
+
+    @Test
+    public void testAsOrgAndName() {
+        OrgAndName oan;
+        
+        oan = NameUtil.instance().asOrgAndName("foo");
+        assertEquals("foo", oan.org);
+        assertEquals("foo", oan.name);
+        
+        oan = NameUtil.instance().asOrgAndName("java.foo");
+        assertEquals("java", oan.org);
+        assertEquals("foo", oan.name);
+        
+        oan = NameUtil.instance().asOrgAndName("java.foo.bar");
+        assertEquals("java", oan.org);
+        assertEquals("foo.bar", oan.name);
+        
+        oan = NameUtil.instance().asOrgAndName("javax.foo");
+        assertEquals("javax", oan.org);
+        assertEquals("foo", oan.name);
+        
+        oan = NameUtil.instance().asOrgAndName("javax.foo.bar");
+        assertEquals("javax", oan.org);
+        assertEquals("foo.bar", oan.name);
+        
+        oan = NameUtil.instance().asOrgAndName("org.eclipse.foo");
+        assertEquals("org.eclipse", oan.org);
+        assertEquals("foo", oan.name);
+        
+        oan = NameUtil.instance().asOrgAndName("org.eclipse.foo.bar");
+        assertEquals("org.eclipse", oan.org);
+        assertEquals("foo.bar", oan.name);
+        
+        oan = NameUtil.instance().asOrgAndName("com.eclipse.foo.bar");
+        assertEquals("com.eclipse", oan.org);
+        assertEquals("foo.bar", oan.name);
+        
+        oan = NameUtil.instance().asOrgAndName("net.eclipse.foo.bar");
+        assertEquals("net.eclipse", oan.org);
+        assertEquals("foo.bar", oan.name);
+    }
+
+}

Added: ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/ParseUtilTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/ParseUtilTest.java?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/ParseUtilTest.java (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/ParseUtilTest.java Fri Nov 19 14:06:06 2010
@@ -0,0 +1,37 @@
+/*
+ *  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.
+ *
+ */
+package org.apache.ivy.osgi.util;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import org.apache.ivy.osgi.util.ParseUtil;
+import org.junit.Test;
+
+public class ParseUtilTest {
+
+    @Test
+    public void testParse() {
+        final String[] result = ParseUtil.parseDelimitedString("bravo;bundle-version=\"1.0.0\", delta;bundle-version=\"1.0.0\"", ",");
+        assertNotNull(result);
+        assertEquals(2, result.length);
+        assertEquals("bravo;bundle-version=\"1.0.0\"", result[0]);
+        assertEquals("delta;bundle-version=\"1.0.0\"", result[1]);
+    }
+
+}

Added: ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/VersionRangeTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/VersionRangeTest.java?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/VersionRangeTest.java (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/VersionRangeTest.java Fri Nov 19 14:06:06 2010
@@ -0,0 +1,96 @@
+/*
+ *  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.
+ *
+ */
+package org.apache.ivy.osgi.util;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.ivy.osgi.util.Version;
+import org.apache.ivy.osgi.util.VersionRange;
+import org.junit.Test;
+
+public class VersionRangeTest {
+
+    @Test
+    public void testParse() throws Exception {
+        assertEquals(new VersionRange(false, new Version("1.0.0"), false, null), new VersionRange("1.0.0"));
+        assertEquals(new VersionRange(false, new Version("1.0.0"), false, null), new VersionRange(" 1.0.0 "));
+
+        assertEquals(new VersionRange(false, new Version("1.0.0"), false, new Version("2.0.0")), new VersionRange(
+                "[1.0.0,2.0.0]"));
+        assertEquals(new VersionRange(false, new Version("1.0.0"), false, new Version("2.0.0")), new VersionRange(
+                "[1.0.0 , 2.0.0]"));
+        assertEquals(new VersionRange(false, new Version("1.0.0"), false, new Version("2.0.0")), new VersionRange(
+                " [1.0.0,2.0.0] "));
+        assertEquals(new VersionRange(false, new Version("1.0.0"), false, new Version("2.0.0")), new VersionRange(
+                "[ 1.0.0,2.0.0 ]"));
+
+        assertEquals(new VersionRange(false, new Version("1.0.0.A"), false, null), new VersionRange("1.0.0.A"));
+    }
+
+    @Test
+    public void testContains() throws Exception {
+        assertFalse(new VersionRange("1").contains("0.9"));
+        assertTrue(new VersionRange("1").contains("1"));
+        assertTrue(new VersionRange("1").contains("1.0"));
+        assertTrue(new VersionRange("1").contains("1.0.0"));
+        assertTrue(new VersionRange("1").contains("2"));
+        assertTrue(new VersionRange("1").contains("1.0.1"));
+
+        assertFalse(new VersionRange("1.2.3").contains("1.0.0"));
+        assertTrue(new VersionRange("1.2.3").contains("1.2.3"));
+        assertTrue(new VersionRange("1.2.3").contains("1.2.4"));
+        assertTrue(new VersionRange("1.2.3").contains("1.2.3.A"));
+
+        assertFalse(new VersionRange("[1.0.0,2.0.0]").contains("0.9.0"));
+        assertTrue(new VersionRange("[1.0.0,2.0.0]").contains("1.0.0"));
+        assertTrue(new VersionRange("[1.0.0,2.0.0]").contains("1.999.999"));
+        assertTrue(new VersionRange("[1.0.0,2.0.0]").contains("2.0.0"));
+        assertFalse(new VersionRange("[1.0.0,2.0.0]").contains("2.1.0"));
+        assertFalse(new VersionRange("[1.0.0,2.0.0]").contains("2.0.1"));
+
+        assertFalse(new VersionRange("[1.0.0,2]").contains("0.9.0"));
+        assertTrue(new VersionRange("[1.0.0,2]").contains("1.0.0"));
+        assertTrue(new VersionRange("[1.0.0,2]").contains("1.999.999"));
+        assertTrue(new VersionRange("[1.0.0,2]").contains("2.0.0"));
+        assertFalse(new VersionRange("[1.0.0,2]").contains("2.1.0"));
+        assertFalse(new VersionRange("[1.0.0,2]").contains("2.0.1"));
+
+        assertFalse(new VersionRange("(1.0.0,2.0.0)").contains("0.9.0"));
+        assertFalse(new VersionRange("(1.0.0,2.0.0)").contains("1.0.0"));
+        assertTrue(new VersionRange("(1.0.0,2.0.0)").contains("1.999.999"));
+        assertFalse(new VersionRange("(1.0.0,2.0.0)").contains("2.0.0"));
+        assertFalse(new VersionRange("(1.0.0,2.0.0)").contains("2.1.0"));
+        assertFalse(new VersionRange("(1.0.0,2.0.0)").contains("2.0.1"));
+
+        assertFalse(new VersionRange("(1.0.0,)").contains("0.9.0"));
+        assertFalse(new VersionRange("(1.0.0,)").contains("1.0.0"));
+        assertTrue(new VersionRange("(1.0.0,)").contains("1.999.999"));
+        assertTrue(new VersionRange("(1.0.0,)").contains("2.0.0"));
+        assertTrue(new VersionRange("(1.0.0,)").contains("2.1.0"));
+        assertTrue(new VersionRange("(1.0.0,)").contains("2.0.1"));
+
+        assertFalse(new VersionRange("(1.0.0,]").contains("0.9.0"));
+        assertFalse(new VersionRange("(1.0.0,]").contains("1.0.0"));
+        assertTrue(new VersionRange("(1.0.0,]").contains("1.999.999"));
+        assertTrue(new VersionRange("(1.0.0,]").contains("2.0.0"));
+        assertTrue(new VersionRange("(1.0.0,]").contains("2.1.0"));
+        assertTrue(new VersionRange("(1.0.0,]").contains("2.0.1"));
+    }
+}

Added: ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/VersionTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/VersionTest.java?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/VersionTest.java (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/osgi/util/VersionTest.java Fri Nov 19 14:06:06 2010
@@ -0,0 +1,66 @@
+/*
+ *  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.
+ *
+ */
+package org.apache.ivy.osgi.util;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.apache.ivy.osgi.util.Version;
+import org.junit.Test;
+
+public class VersionTest {
+
+    @Test
+    public void testParsing() {
+        Version v;
+
+        v = new Version("1");
+        assertEquals("1.0.0", v.numbersAsString());
+        assertEquals("", v.qualifier());
+
+        v = new Version("1.2");
+        assertEquals("1.2.0", v.numbersAsString());
+        assertEquals("", v.qualifier());
+
+        v = new Version("1.2.3");
+        assertEquals("1.2.3", v.numbersAsString());
+        assertEquals("", v.qualifier());
+
+        v = new Version("1.2.3.abc");
+        assertEquals("1.2.3.abc", v.toString());
+        assertEquals("abc", v.qualifier());
+    }
+
+    @Test
+    public void testCompareTo() {
+        assertTrue(new Version("1.2.3").compareTo(new Version("1.2.3")) == 0);
+
+        assertTrue(new Version("1.2.3").compareTo(new Version("1.2.2")) > 0);
+        assertTrue(new Version("1.2.3").compareTo(new Version("1.1.3")) > 0);
+        assertTrue(new Version("1.2.3").compareTo(new Version("0.2.3")) > 0);
+        assertTrue(new Version("1.2.3.xyz").compareTo(new Version("1.2.3")) > 0);
+        assertTrue(new Version("1.2.3.xyz").compareTo(new Version("1.2.3.abc")) > 0);
+
+        assertTrue(new Version("1.2.3").compareTo(new Version("1.2.4")) < 0);
+        assertTrue(new Version("1.2.3").compareTo(new Version("1.3.3")) < 0);
+        assertTrue(new Version("1.2.3").compareTo(new Version("2.2.3")) < 0);
+        assertTrue(new Version("1.2.3").compareTo(new Version("1.2.3.xyz")) < 0);
+        assertTrue(new Version("1.2.3.abc").compareTo(new Version("1.2.3.xyz")) < 0);
+    }
+
+}

Added: ant/ivy/core/trunk/test/test-bundles/alpha/.settings/org.eclipse.jdt.core.prefs
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/alpha/.settings/org.eclipse.jdt.core.prefs?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/alpha/.settings/org.eclipse.jdt.core.prefs (added)
+++ ant/ivy/core/trunk/test/test-bundles/alpha/.settings/org.eclipse.jdt.core.prefs Fri Nov 19 14:06:06 2010
@@ -0,0 +1,25 @@
+#	 ***************************************************************
+#	 * 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.
+#	 ***************************************************************
+#Thu Aug 07 12:00:41 BST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5

Propchange: ant/ivy/core/trunk/test/test-bundles/alpha/.settings/org.eclipse.jdt.core.prefs
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/alpha/.settings/org.eclipse.pde.core.prefs
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/alpha/.settings/org.eclipse.pde.core.prefs?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/alpha/.settings/org.eclipse.pde.core.prefs (added)
+++ ant/ivy/core/trunk/test/test-bundles/alpha/.settings/org.eclipse.pde.core.prefs Fri Nov 19 14:06:06 2010
@@ -0,0 +1,23 @@
+#	 ***************************************************************
+#	 * 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.
+#	 ***************************************************************
+#Thu Aug 07 12:00:50 BST 2008
+eclipse.preferences.version=1
+pluginProject.equinox=false
+pluginProject.extensions=false
+resolve.requirebundle=false

Propchange: ant/ivy/core/trunk/test/test-bundles/alpha/.settings/org.eclipse.pde.core.prefs
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/alpha/src/com/acme/alpha/Alpha.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/alpha/src/com/acme/alpha/Alpha.java?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/alpha/src/com/acme/alpha/Alpha.java (added)
+++ ant/ivy/core/trunk/test/test-bundles/alpha/src/com/acme/alpha/Alpha.java Fri Nov 19 14:06:06 2010
@@ -0,0 +1,22 @@
+/*
+ *  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.
+ *
+ */
+package com.acme.alpha;
+
+public class Alpha {
+
+}

Propchange: ant/ivy/core/trunk/test/test-bundles/alpha/src/com/acme/alpha/Alpha.java
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/bravo/.settings/org.eclipse.jdt.core.prefs
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/bravo/.settings/org.eclipse.jdt.core.prefs?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/bravo/.settings/org.eclipse.jdt.core.prefs (added)
+++ ant/ivy/core/trunk/test/test-bundles/bravo/.settings/org.eclipse.jdt.core.prefs Fri Nov 19 14:06:06 2010
@@ -0,0 +1,25 @@
+#	 ***************************************************************
+#	 * 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.
+#	 ***************************************************************
+#Thu Aug 07 12:01:28 BST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5

Propchange: ant/ivy/core/trunk/test/test-bundles/bravo/.settings/org.eclipse.jdt.core.prefs
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/bravo/.settings/org.eclipse.pde.core.prefs
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/bravo/.settings/org.eclipse.pde.core.prefs?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/bravo/.settings/org.eclipse.pde.core.prefs (added)
+++ ant/ivy/core/trunk/test/test-bundles/bravo/.settings/org.eclipse.pde.core.prefs Fri Nov 19 14:06:06 2010
@@ -0,0 +1,23 @@
+#	 ***************************************************************
+#	 * 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.
+#	 ***************************************************************
+#Thu Aug 07 12:01:28 BST 2008
+eclipse.preferences.version=1
+pluginProject.equinox=false
+pluginProject.extensions=false
+resolve.requirebundle=false

Propchange: ant/ivy/core/trunk/test/test-bundles/bravo/.settings/org.eclipse.pde.core.prefs
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/bravo/src/com/acme/bravo/Bravo.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/bravo/src/com/acme/bravo/Bravo.java?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/bravo/src/com/acme/bravo/Bravo.java (added)
+++ ant/ivy/core/trunk/test/test-bundles/bravo/src/com/acme/bravo/Bravo.java Fri Nov 19 14:06:06 2010
@@ -0,0 +1,22 @@
+/*
+ *  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.
+ *
+ */
+package com.acme.bravo;
+
+public class Bravo {
+
+}

Propchange: ant/ivy/core/trunk/test/test-bundles/bravo/src/com/acme/bravo/Bravo.java
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/build.xml
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/build.xml?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/build.xml (added)
+++ ant/ivy/core/trunk/test/test-bundles/build.xml Fri Nov 19 14:06:06 2010
@@ -0,0 +1,97 @@
+<!--
+   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.    
+-->
+<project xmlns:ivy="antlib:org.apache.ivy.ant" default="build-all">
+
+    <property name="jars.dir" value="${basedir}/jars" />
+    <property name="dirs.dir" value="${basedir}/dirs" />
+
+    <target name="build-all">
+        <mkdir dir="${jars.dir}" />
+        <mkdir dir="${dirs.dir}" />
+
+        <antcall target="build" inheritall="false">
+            <param name="bundle.name" value="alpha" />
+            <param name="bundle.version" value="1.0.0.20080101" />
+        </antcall>
+
+        <antcall target="build" inheritall="false">
+            <param name="bundle.name" value="bravo" />
+            <param name="bundle.version" value="2.0.0.20080202" />
+        </antcall>
+
+        <antcall target="build" inheritall="false">
+            <param name="bundle.name" value="charlie" />
+            <param name="bundle.version" value="3.0.0.20080303" />
+        </antcall>
+
+        <antcall target="build" inheritall="false">
+            <param name="bundle.name" value="delta" />
+            <param name="bundle.version" value="4.0.0" />
+        </antcall>
+
+        <antcall target="build" inheritall="false">
+            <param name="bundle.name" value="echo" />
+            <param name="bundle.version" value="5.0.0" />
+        </antcall>
+    </target>
+
+    <target name="clean">
+        <delete>
+            <fileset dir="${jars.dir}">
+                <include name="**/*" />
+            </fileset>
+            <fileset dir="${dirs.dir}">
+                <include name="**/*" />
+            </fileset>
+        </delete>
+    </target>
+
+    <target name="build">
+        <fail message="Requires 'bundle.name'." unless="bundle.name" />
+        <fail message="Requires 'bundle.version'." unless="bundle.version" />
+
+        <property name="bundle.dir" value="${basedir}/${bundle.name}" />
+        <property name="bundle.src" value="${bundle.dir}/src" />
+        <property name="bundle.bin" value="${bundle.dir}/bin" />
+        <property name="bundle.manifest" value="${bundle.dir}/META-INF/MANIFEST.MF" />
+
+        <javac destdir="${bundle.bin}" srcdir="${bundle.src}" />
+
+        <jar destfile="${jars.dir}/com.acme.${bundle.name}-${bundle.version}.jar" basedir="${bundle.bin}" manifest="${bundle.manifest}" />
+        <jar destfile="${jars.dir}/com.acme.${bundle.name}.source-${bundle.version}.jar" basedir="${bundle.src}" manifest="${bundle.manifest}" />
+        
+        <mkdir dir="${dirs.dir}/com.acme.${bundle.name}-${bundle.version}/"/>
+        <copy todir="${dirs.dir}/com.acme.${bundle.name}-${bundle.version}">
+            <fileset dir="${bundle.bin}" includes="**/*"/>
+            <fileset dir="${bundle.dir}" includes="META-INF/*"/>
+        </copy>
+    </target>
+
+    <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant">
+        <classpath>
+            <pathelement location="${basedir}/../../lib/ivy*.jar"/>
+        </classpath>
+    </taskdef>
+
+    <target name="ivy">
+        <ivy:settings file="${basedir}/../test-ivy/acme-ivysettings.xml" />
+        <ivy:resolve file="${basedir}/../test-ivy/acme-ivy.xml" />
+        <ivy:retrieve pattern="${basedir}/../../target/test-data/bundles/[artifact]-[revision].[ext]"/>
+    </target>
+</project>
\ No newline at end of file

Added: ant/ivy/core/trunk/test/test-bundles/charlie/.settings/org.eclipse.jdt.core.prefs
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/charlie/.settings/org.eclipse.jdt.core.prefs?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/charlie/.settings/org.eclipse.jdt.core.prefs (added)
+++ ant/ivy/core/trunk/test/test-bundles/charlie/.settings/org.eclipse.jdt.core.prefs Fri Nov 19 14:06:06 2010
@@ -0,0 +1,25 @@
+#	 ***************************************************************
+#	 * 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.
+#	 ***************************************************************
+#Thu Aug 07 12:01:53 BST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5

Propchange: ant/ivy/core/trunk/test/test-bundles/charlie/.settings/org.eclipse.jdt.core.prefs
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/charlie/.settings/org.eclipse.pde.core.prefs
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/charlie/.settings/org.eclipse.pde.core.prefs?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/charlie/.settings/org.eclipse.pde.core.prefs (added)
+++ ant/ivy/core/trunk/test/test-bundles/charlie/.settings/org.eclipse.pde.core.prefs Fri Nov 19 14:06:06 2010
@@ -0,0 +1,23 @@
+#	 ***************************************************************
+#	 * 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.
+#	 ***************************************************************
+#Thu Aug 07 12:01:53 BST 2008
+eclipse.preferences.version=1
+pluginProject.equinox=false
+pluginProject.extensions=false
+resolve.requirebundle=false

Propchange: ant/ivy/core/trunk/test/test-bundles/charlie/.settings/org.eclipse.pde.core.prefs
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/charlie/src/com/acme/charlie/Charlie.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/charlie/src/com/acme/charlie/Charlie.java?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/charlie/src/com/acme/charlie/Charlie.java (added)
+++ ant/ivy/core/trunk/test/test-bundles/charlie/src/com/acme/charlie/Charlie.java Fri Nov 19 14:06:06 2010
@@ -0,0 +1,22 @@
+/*
+ *  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.
+ *
+ */
+package com.acme.charlie;
+
+public class Charlie {
+
+}

Propchange: ant/ivy/core/trunk/test/test-bundles/charlie/src/com/acme/charlie/Charlie.java
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/delta/.settings/org.eclipse.jdt.core.prefs
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/delta/.settings/org.eclipse.jdt.core.prefs?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/delta/.settings/org.eclipse.jdt.core.prefs (added)
+++ ant/ivy/core/trunk/test/test-bundles/delta/.settings/org.eclipse.jdt.core.prefs Fri Nov 19 14:06:06 2010
@@ -0,0 +1,25 @@
+#	 ***************************************************************
+#	 * 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.
+#	 ***************************************************************
+#Thu Aug 07 12:02:12 BST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5

Propchange: ant/ivy/core/trunk/test/test-bundles/delta/.settings/org.eclipse.jdt.core.prefs
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/delta/.settings/org.eclipse.pde.core.prefs
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/delta/.settings/org.eclipse.pde.core.prefs?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/delta/.settings/org.eclipse.pde.core.prefs (added)
+++ ant/ivy/core/trunk/test/test-bundles/delta/.settings/org.eclipse.pde.core.prefs Fri Nov 19 14:06:06 2010
@@ -0,0 +1,23 @@
+#	 ***************************************************************
+#	 * 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.
+#	 ***************************************************************
+#Thu Aug 07 12:02:12 BST 2008
+eclipse.preferences.version=1
+pluginProject.equinox=false
+pluginProject.extensions=false
+resolve.requirebundle=false

Propchange: ant/ivy/core/trunk/test/test-bundles/delta/.settings/org.eclipse.pde.core.prefs
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/delta/src/com/acme/delta/Delta.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/delta/src/com/acme/delta/Delta.java?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/delta/src/com/acme/delta/Delta.java (added)
+++ ant/ivy/core/trunk/test/test-bundles/delta/src/com/acme/delta/Delta.java Fri Nov 19 14:06:06 2010
@@ -0,0 +1,22 @@
+/*
+ *  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.
+ *
+ */
+package com.acme.delta;
+
+public class Delta {
+
+}

Propchange: ant/ivy/core/trunk/test/test-bundles/delta/src/com/acme/delta/Delta.java
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/echo/.settings/org.eclipse.jdt.core.prefs
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/echo/.settings/org.eclipse.jdt.core.prefs?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/echo/.settings/org.eclipse.jdt.core.prefs (added)
+++ ant/ivy/core/trunk/test/test-bundles/echo/.settings/org.eclipse.jdt.core.prefs Fri Nov 19 14:06:06 2010
@@ -0,0 +1,25 @@
+#	 ***************************************************************
+#	 * 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.
+#	 ***************************************************************
+#Thu Aug 07 12:02:35 BST 2008
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5

Propchange: ant/ivy/core/trunk/test/test-bundles/echo/.settings/org.eclipse.jdt.core.prefs
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/echo/.settings/org.eclipse.pde.core.prefs
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/echo/.settings/org.eclipse.pde.core.prefs?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/echo/.settings/org.eclipse.pde.core.prefs (added)
+++ ant/ivy/core/trunk/test/test-bundles/echo/.settings/org.eclipse.pde.core.prefs Fri Nov 19 14:06:06 2010
@@ -0,0 +1,23 @@
+#	 ***************************************************************
+#	 * 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.
+#	 ***************************************************************
+#Thu Aug 07 12:02:35 BST 2008
+eclipse.preferences.version=1
+pluginProject.equinox=false
+pluginProject.extensions=false
+resolve.requirebundle=false

Propchange: ant/ivy/core/trunk/test/test-bundles/echo/.settings/org.eclipse.pde.core.prefs
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-bundles/echo/src/com/acme/echo/Echo.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-bundles/echo/src/com/acme/echo/Echo.java?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-bundles/echo/src/com/acme/echo/Echo.java (added)
+++ ant/ivy/core/trunk/test/test-bundles/echo/src/com/acme/echo/Echo.java Fri Nov 19 14:06:06 2010
@@ -0,0 +1,22 @@
+/*
+ *  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.
+ *
+ */
+package com.acme.echo;
+
+public class Echo {
+
+}

Propchange: ant/ivy/core/trunk/test/test-bundles/echo/src/com/acme/echo/Echo.java
------------------------------------------------------------------------------
    svn:executable = *

Added: ant/ivy/core/trunk/test/test-ivy/acme-ivysettings.xml
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-ivy/acme-ivysettings.xml?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-ivy/acme-ivysettings.xml (added)
+++ ant/ivy/core/trunk/test/test-ivy/acme-ivysettings.xml Fri Nov 19 14:06:06 2010
@@ -0,0 +1,47 @@
+<!--
+   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>
+    <typedef name="osgi-parser" classname="org.apache.ivy.osgi.ivy.OsgiManifestParser" />
+    <typedef name="osgi-file-resolver" classname="org.apache.ivy.osgi.ivy.OsgiFileResolver" />
+    <typedef name="osgi-latest" classname="org.apache.ivy.osgi.ivy.OsgiRevisionStrategy" />
+    <settings defaultResolver="default" defaultLatestStrategy="osgi-latest-revision" />
+    <parsers>
+        <osgi-parser />
+    </parsers>
+    <caches default="localcache">
+        <cache name="localcache" basedir="target/test-data/cache">
+            <ttl duration="0d" />
+        </cache>
+    </caches>
+    <resolvers>
+        <chain name="default" returnFirst="true">
+            <osgi-file-resolver name="repo1">
+                <ivy pattern="java/test-bundles/dirs/[organisation].[module]-[revision]" />
+                <artifact pattern="java/test-bundles/dirs/[organisation].[module]-[revision]" />
+            </osgi-file-resolver>
+            <osgi-file-resolver name="repo2">
+                <ivy pattern="java/test-bundles/jars/[organisation].[module]-[revision].jar" />
+                <artifact pattern="java/test-bundles/jars/[organisation].[module]-[revision].jar" />
+            </osgi-file-resolver>
+        </chain>
+    </resolvers>
+    <latest-strategies>
+        <osgi-latest name="osgi-latest-revision" />
+    </latest-strategies>
+</ivysettings>
\ No newline at end of file

Added: ant/ivy/core/trunk/test/test-ivy/include/MANIFEST.MF
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-ivy/include/MANIFEST.MF?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-ivy/include/MANIFEST.MF (added)
+++ ant/ivy/core/trunk/test/test-ivy/include/MANIFEST.MF Fri Nov 19 14:06:06 2010
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.apache.ivy.osgi.testbundle
+Bundle-Version: 1.2.3
+Export-Package: org.apache.ivy.osgi.testbundle;version="1.2.3",org.apache.ivy.osgi.testbundle.util;version="1.2.3"

Added: ant/ivy/core/trunk/test/test-ivy/include/ivy-result.xml
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-ivy/include/ivy-result.xml?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-ivy/include/ivy-result.xml (added)
+++ ant/ivy/core/trunk/test/test-ivy/include/ivy-result.xml Fri Nov 19 14:06:06 2010
@@ -0,0 +1,35 @@
+<!--
+   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="2.0">
+	<info organisation="" module="org.apache.ivy.osgi.testbundle" revision="1.2.3" osgi="bundle">
+	</info>
+	<configurations>
+		<conf name="default" />
+		<conf name="optional" extends="default" />
+		<conf name="transitive-optional" extends="default" />
+		<conf name="use_org.apache.ivy.osgi.testbundle.util" extends="default" />
+		<conf name="use_org.apache.ivy.osgi.testbundle" extends="default" />
+		<conf name="specificconf" exends="default" />
+	</configurations>
+	<publications>
+	</publications>
+	<dependencies>
+		<dependency org="org2" name="mod2" rev="3.4" conf="specificconf->default" />
+	</dependencies>
+</ivy-module>

Added: ant/ivy/core/trunk/test/test-ivy/include/ivy.xml
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-ivy/include/ivy.xml?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-ivy/include/ivy.xml (added)
+++ ant/ivy/core/trunk/test/test-ivy/include/ivy.xml Fri Nov 19 14:06:06 2010
@@ -0,0 +1,29 @@
+<!--
+   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="2.0">
+	<info manifest="MANIFEST.MF" />
+	<configurations>
+		<conf name="specificconf" exends="default" />
+	</configurations>
+	<publications>
+	</publications>
+	<dependencies>
+		<dependency org="org2" name="mod2" rev="3.4" conf="specificconf->default" />
+	</dependencies>
+</ivy-module>

Added: ant/ivy/core/trunk/test/test-ivy/include/ivysettings.xml
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-ivy/include/ivysettings.xml?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-ivy/include/ivysettings.xml (added)
+++ ant/ivy/core/trunk/test/test-ivy/include/ivysettings.xml Fri Nov 19 14:06:06 2010
@@ -0,0 +1,26 @@
+<!--
+   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>
+	<typedef name="include-parser" classname="org.apache.ivy.osgi.ivy.OsgiIvyParser" />
+	<typedef name="manifest-parser" classname="org.apache.ivy.osgi.repo.ManifestMDParser" />
+	<parsers>
+		<include-parser />
+		<manifest-parser />
+	</parsers>
+</ivysettings>
\ No newline at end of file

Added: ant/ivy/core/trunk/test/test-ivy/ivysettings.xml
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-ivy/ivysettings.xml?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-ivy/ivysettings.xml (added)
+++ ant/ivy/core/trunk/test/test-ivy/ivysettings.xml Fri Nov 19 14:06:06 2010
@@ -0,0 +1,37 @@
+<!--
+   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>
+    <!--<classpath url/file="${ivy.custom.lib.dir}/osgi-resolver.jar"/> -->
+    <typedef name="osgi-parser" classname="org.apache.ivy.osgi.ivy.OsgiManifestParser" />
+    <typedef name="osgi-file-resolver" classname="org.apache.ivy.osgi.ivy.OsgiFileResolver" />
+    <parsers>
+        <osgi-parser />
+    </parsers>
+    <caches default="localcache">
+        <cache name="localcache" basedir="target/test-data/cache">            
+            <ttl duration="0d" />            
+        </cache>
+    </caches>
+    <resolvers>
+        <osgi-file-resolver name="osgi-rep">
+            <ivy pattern="java/test-ivy/osgi/eclipse/plugins/[organisation].[module]" />
+            <ivy pattern="java/test-ivy/osgi/eclipse/features/[organisation].[module]" />
+        </osgi-file-resolver>
+    </resolvers>
+</ivysettings>
\ No newline at end of file

Added: ant/ivy/core/trunk/test/test-ivy/test-full-ivy.xml
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-ivy/test-full-ivy.xml?rev=1036848&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/test-ivy/test-full-ivy.xml (added)
+++ ant/ivy/core/trunk/test/test-ivy/test-full-ivy.xml Fri Nov 19 14:06:06 2010
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   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.eclipse"
+		module="datatools.connectivity.ui"
+        revision="1.0.1.200708231"
+		status="release"
+		publication="19700101011640"
+	/>
+	<configurations>
+		<conf name="default" visibility="public"/>
+		<conf name="optional" visibility="public"/>
+	</configurations>
+	<publications>
+		<artifact name="datatools.connectivity.ui" type="jar" ext="jar" conf="default"/>
+	</publications>
+	<dependencies>
+		<dependency org="org.eclipse" name="core.runtime" rev="[3.2.0,4.0.0)" conf="default->default"/>
+		<dependency org="org.eclipse" name="core.resources" rev="[3.2.0,4.0.0)" conf="default->default"/>
+		<dependency org="org.eclipse" name="ui" rev="[3.2.0,4.0.0)" conf="default->default"/>
+		<dependency org="org.eclipse" name="ui.views" rev="[3.2.0,4.0.0)" conf="default->default"/>
+		<dependency org="org.eclipse" name="datatools.connectivity" rev="[0.9.1,1.5.0)" conf="default->default"/>
+		<dependency org="org.eclipse" name="ui.navigator" rev="[3.2.0,4.0.0)" conf="default->default"/>
+		<dependency org="org.eclipse" name="core.expressions" rev="[3.2.0,4.0.0)" conf="optional->optional"/>
+		<dependency org="com.ibm" name="icu" rev="[3.4.0,4.0.0)" conf="default->default"/>
+		<dependency org="org.eclipse" name="ltk.core.refactoring" rev="[3.2.0,4.0.0)" conf="default->default"/>
+		<dependency org="org.eclipse" name="datatools.help" rev="[1.0.0,2.0.0)" conf="default->default"/>
+		<dependency org="org.eclipse" name="help" rev="[3.2.0,4.0.0)" conf="default->default"/>
+		<dependency org="org.eclipse" name="help.base" rev="[3.2.0,4.0.0)" conf="default->default"/>
+	</dependencies>
+</ivy-module>

Added: ant/ivy/core/trunk/test/test-ivy/test-full.jar
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-ivy/test-full.jar?rev=1036848&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ant/ivy/core/trunk/test/test-ivy/test-full.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: ant/ivy/core/trunk/test/test-ivy/test-simple.jar
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/test-ivy/test-simple.jar?rev=1036848&view=auto
==============================================================================
Binary file - no diff available.

Propchange: ant/ivy/core/trunk/test/test-ivy/test-simple.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream



Mime
View raw message