You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by xa...@apache.org on 2008/01/09 08:40:40 UTC
svn commit: r610291 - in /ant/ivy/core/trunk: ./ doc/resolver/
src/java/org/apache/ivy/plugins/resolver/ src/java/org/apache/ivy/util/url/
test/java/org/apache/ivy/plugins/resolver/
test/java/org/apache/ivy/util/url/ test/repositories/m2/org/apache/tes...
Author: xavier
Date: Tue Jan 8 23:40:34 2008
New Revision: 610291
URL: http://svn.apache.org/viewvc?rev=610291&view=rev
Log:
IMPROVEMENT: Make IBiblio resolver compatible with maven proxy (IVY-466)
Added:
ant/ivy/core/trunk/src/java/org/apache/ivy/util/url/ContextualSAXHandler.java (with props)
ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/Maven2LocalTest.java (with props)
ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/archiva-listing.html (with props)
ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/fixed-archiva-listing.html (with props)
ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/maven-proxy-listing.html (with props)
ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/
ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.0/
ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.0/test-metadata-1.0.jar (with props)
ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.0/test-metadata-1.0.pom (with props)
ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.1/
ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.1/test-metadata-1.1.jar (with props)
ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.1/test-metadata-1.1.pom (with props)
ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.2/
ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.2/test-metadata-1.2.jar (with props)
ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.2/test-metadata-1.2.pom (with props)
ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/maven-metadata.xml (with props)
Modified:
ant/ivy/core/trunk/CHANGES.txt
ant/ivy/core/trunk/doc/resolver/ibiblio.html
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java
ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/RepositoryResolver.java
ant/ivy/core/trunk/src/java/org/apache/ivy/util/url/ApacheURLLister.java
ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/ApacheURLListerTest.java
Modified: ant/ivy/core/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/CHANGES.txt?rev=610291&r1=610290&r2=610291&view=diff
==============================================================================
--- ant/ivy/core/trunk/CHANGES.txt (original)
+++ ant/ivy/core/trunk/CHANGES.txt Tue Jan 8 23:40:34 2008
@@ -60,6 +60,7 @@
=====================================
- NEW: Introduce RepositoryManagementEngine (IVY-665 - not completed yet)
+- IMPROVEMENT: Make IBiblio resolver compatible with maven proxy (IVY-466)
- IMPROVEMENT: Use namespace aware validation (IVY-553)
- IMPROVEMENT: use ModuleRevisionId instead of ModuleId in IvySettings#getResolver (IVY-691)
- IMPROVEMENT: Flexible cache management (IVY-399 - not completed yet)
Modified: ant/ivy/core/trunk/doc/resolver/ibiblio.html
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/doc/resolver/ibiblio.html?rev=610291&r1=610290&r2=610291&view=diff
==============================================================================
--- ant/ivy/core/trunk/doc/resolver/ibiblio.html (original)
+++ ant/ivy/core/trunk/doc/resolver/ibiblio.html Tue Jan 8 23:40:34 2008
@@ -42,6 +42,8 @@
</url>
</code>
+<span class="since">since 2.0</span> When used in m2compatible mode with the default pattern, this resolver uses maven-metadata.xml files if present to list the revisions available on the repository. This is especially useful when using a maven specific proxy, which does not serve directory listing. This can be disable by using the useMavenMetadata flag.
+
<h1>Attributes</h1>
This resolver shares the <a href="../configuration/resolvers.html#common">common attributes</a> of standard resolvers.
<table class="ivy-attributes">
@@ -56,6 +58,8 @@
<tr><td>m2compatible</td><td>True if this resolver should be maven2 compatible, false otherwise <span class="since">since 1.3</span></td>
<td>No, defaults to false</td></tr>
<tr><td>usepoms</td><td>True if this resolver should use maven poms when it is already in m2compatible mode, false otherwise <span class="since">since 1.4</span></td>
+ <td>No, defaults to true</td></tr>
+ <tr><td>useMavenMetadata</td><td>True if this resolver should use maven-metadata.xml files to list available revisions, false to use directory listing <span class="since">since 2.0</span></td>
<td>No, defaults to true</td></tr>
</tbody>
</table>
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java?rev=610291&r1=610290&r2=610291&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/IBiblioResolver.java Tue Jan 8 23:40:34 2008
@@ -18,12 +18,18 @@
package org.apache.ivy.plugins.resolver;
import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
import java.text.ParseException;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import javax.xml.parsers.ParserConfigurationException;
+
import org.apache.ivy.core.IvyPatternHelper;
import org.apache.ivy.core.module.descriptor.Artifact;
import org.apache.ivy.core.module.descriptor.DefaultArtifact;
@@ -36,8 +42,13 @@
import org.apache.ivy.core.search.ModuleEntry;
import org.apache.ivy.core.search.OrganisationEntry;
import org.apache.ivy.core.search.RevisionEntry;
+import org.apache.ivy.plugins.repository.Repository;
+import org.apache.ivy.plugins.repository.Resource;
import org.apache.ivy.plugins.resolver.util.ResolvedResource;
import org.apache.ivy.util.Message;
+import org.apache.ivy.util.XMLHelper;
+import org.apache.ivy.util.url.ContextualSAXHandler;
+import org.xml.sax.SAXException;
/**
* IBiblioResolver is a resolver which can be used to resolve dependencies found in the ibiblio
@@ -47,6 +58,9 @@
* {@link org.apache.ivy.plugins.resolver.URLResolver}.
*/
public class IBiblioResolver extends URLResolver {
+ private static final String M2_PATTERN
+ = "[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]";
+
public static final String DEFAULT_PATTERN = "[module]/[type]s/[artifact]-[revision].[ext]";
public static final String DEFAULT_ROOT = "http://www.ibiblio.org/maven/";
@@ -57,6 +71,9 @@
// use poms if m2 compatible is true
private boolean usepoms = true;
+
+ // use maven-metadata.xml is exists to list revisions
+ private boolean useMavenMetadata = true;
public IBiblioResolver() {
}
@@ -81,8 +98,7 @@
root = "http://repo1.maven.org/maven2/";
}
if (pattern == null) {
- pattern =
- "[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]";
+ pattern = M2_PATTERN;
}
updateWholePattern();
}
@@ -194,6 +210,75 @@
ensureConfigured(getSettings());
return super.listRevisions(mod);
}
+
+ protected ResolvedResource[] listResources(
+ Repository repository, ModuleRevisionId mrid, String pattern, Artifact artifact) {
+ if (isUseMavenMetadata() && isM2compatible() && pattern.endsWith(M2_PATTERN)) {
+ // use maven-metadata.xml if it exists
+ InputStream metadataStream = null;
+ try {
+ String metadataLocation = IvyPatternHelper.substitute(
+ root + "[organisation]/[module]/maven-metadata.xml", mrid);
+ Resource metadata = repository.getResource(metadataLocation);
+ if (metadata.exists()) {
+ Message.verbose("\tlisting revisions from maven-metadata: " + metadata);
+ final List revs = new ArrayList();
+ metadataStream = metadata.openStream();
+ XMLHelper.parse(metadataStream, null, new ContextualSAXHandler() {
+ public void endElement(String uri, String localName, String qName)
+ throws SAXException {
+ if ("metadata/versioning/versions/version".equals(getContext())) {
+ revs.add(getText().trim());
+ }
+ super.endElement(uri, localName, qName);
+ }
+ }, null);
+ Message.debug("\tfound revs: " + revs);
+ List rres = new ArrayList();
+ for (Iterator iter = revs.iterator(); iter.hasNext();) {
+ String rev = (String) iter.next();
+ String resolvedPattern = IvyPatternHelper.substitute(
+ pattern, ModuleRevisionId.newInstance(mrid, rev), artifact);
+ try {
+ Resource res = repository.getResource(resolvedPattern);
+ if ((res != null) && res.exists()) {
+ rres.add(new ResolvedResource(res, rev));
+ }
+ } catch (IOException e) {
+ Message.warn(
+ "impossible to get resource from name listed by maven-metadata.xml:"
+ + rres + ": " + e.getMessage());
+ }
+ }
+ return (ResolvedResource[]) rres.toArray(new ResolvedResource[rres.size()]);
+ } else {
+ Message.verbose("\tmaven-metadata not available: " + metadata);
+ }
+ } catch (IOException e) {
+ Message.verbose(
+ "impossible to access maven metadata file, ignored: " + e.getMessage());
+ } catch (SAXException e) {
+ Message.verbose(
+ "impossible to parse maven metadata file, ignored: " + e.getMessage());
+ } catch (ParserConfigurationException e) {
+ Message.verbose(
+ "impossible to parse maven metadata file, ignored: " + e.getMessage());
+ } finally {
+ if (metadataStream != null) {
+ try {
+ metadataStream.close();
+ } catch (IOException e) {
+ // ignored
+ }
+ }
+ }
+ // maven metadata not available or something went wrong, use default listing capability
+ return super.listResources(repository, mrid, pattern, artifact);
+ } else {
+ return super.listResources(repository, mrid, pattern, artifact);
+ }
+ }
+
public String getTypeName() {
return "ibiblio";
@@ -235,11 +320,20 @@
updateWholePattern();
}
+ public boolean isUseMavenMetadata() {
+ return useMavenMetadata;
+ }
+
+ public void setUseMavenMetadata(boolean useMavenMetadata) {
+ this.useMavenMetadata = useMavenMetadata;
+ }
+
public void dumpSettings() {
ensureConfigured(getSettings());
super.dumpSettings();
Message.debug("\t\troot: " + getRoot());
Message.debug("\t\tpattern: " + getPattern());
Message.debug("\t\tusepoms: " + usepoms);
+ Message.debug("\t\tuseMavenMetadata: " + useMavenMetadata);
}
}
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/RepositoryResolver.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/RepositoryResolver.java?rev=610291&r1=610290&r2=610291&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/RepositoryResolver.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/plugins/resolver/RepositoryResolver.java Tue Jan 8 23:40:34 2008
@@ -120,7 +120,7 @@
Date date) {
logAttempt(IvyPatternHelper.substitute(pattern, ModuleRevisionId.newInstance(mrid,
IvyPatternHelper.getTokenString(IvyPatternHelper.REVISION_KEY)), artifact));
- ResolvedResource[] rress = ResolverHelper.findAll(repository, mrid, pattern, artifact);
+ ResolvedResource[] rress = listResources(repository, mrid, pattern, artifact);
if (rress == null) {
Message.debug("\t" + name + ": unable to list resources for " + mrid + ": pattern="
+ pattern);
@@ -134,6 +134,26 @@
}
return found;
}
+ }
+
+ /**
+ * List all revisions as resolved resources for the given artifact in the given repository using
+ * the given pattern, and using the given mrid except its revision.
+ *
+ * @param repository
+ * the repository in which revisions should be located
+ * @param mrid
+ * the module revision id to look for (except revision)
+ * @param pattern
+ * the pattern to use to locate the revisions
+ * @param artifact
+ * the artifact to find
+ * @return an array of ResolvedResource, all pointing to a different revision of the given
+ * Artifact.
+ */
+ protected ResolvedResource[] listResources(
+ Repository repository, ModuleRevisionId mrid, String pattern, Artifact artifact) {
+ return ResolverHelper.findAll(repository, mrid, pattern, artifact);
}
protected long get(Resource resource, File dest) throws IOException {
Modified: ant/ivy/core/trunk/src/java/org/apache/ivy/util/url/ApacheURLLister.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/util/url/ApacheURLLister.java?rev=610291&r1=610290&r2=610291&view=diff
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/util/url/ApacheURLLister.java (original)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/util/url/ApacheURLLister.java Tue Jan 8 23:40:34 2008
@@ -132,6 +132,11 @@
href = href.substring(slashIndex + 1);
}
+ // relative to current href: convert to simple relative one
+ if (href.startsWith("./")) {
+ href = href.substring("./".length());
+ }
+
// exclude those where they do not match
// href will never be truncated, text may be truncated by apache
// may have a '.' from either the extension (.jar) or "..>"
Added: ant/ivy/core/trunk/src/java/org/apache/ivy/util/url/ContextualSAXHandler.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/src/java/org/apache/ivy/util/url/ContextualSAXHandler.java?rev=610291&view=auto
==============================================================================
--- ant/ivy/core/trunk/src/java/org/apache/ivy/util/url/ContextualSAXHandler.java (added)
+++ ant/ivy/core/trunk/src/java/org/apache/ivy/util/url/ContextualSAXHandler.java Tue Jan 8 23:40:34 2008
@@ -0,0 +1,65 @@
+/*
+ * 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.util.url;
+
+import java.util.Iterator;
+import java.util.Stack;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
+
+public class ContextualSAXHandler extends DefaultHandler {
+
+ private Stack contextStack = new Stack();
+
+ private StringBuffer buffer = new StringBuffer();
+
+ public void characters(char[] ch, int start, int length) throws SAXException {
+ buffer.append(ch, start, length);
+ }
+
+ public void startElement(String uri, String localName, String qName, Attributes attributes)
+ throws SAXException {
+ contextStack.push(qName);
+ buffer.setLength(0);
+ }
+
+ public void endElement(String uri, String localName, String qName) throws SAXException {
+ contextStack.pop();
+ buffer.setLength(0);
+ }
+
+
+ protected String getContext() {
+ StringBuffer buf = new StringBuffer();
+ for (Iterator iter = contextStack.iterator(); iter.hasNext();) {
+ String ctx = (String) iter.next();
+ buf.append(ctx).append("/");
+ }
+ if (buf.length() > 0) {
+ buf.setLength(buf.length() - 1);
+ }
+ return buf.toString();
+ }
+
+ protected String getText() {
+ return buffer.toString();
+ }
+
+}
Propchange: ant/ivy/core/trunk/src/java/org/apache/ivy/util/url/ContextualSAXHandler.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/Maven2LocalTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/Maven2LocalTest.java?rev=610291&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/Maven2LocalTest.java (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/Maven2LocalTest.java Tue Jan 8 23:40:34 2008
@@ -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.
+ *
+ */
+package org.apache.ivy.plugins.resolver;
+
+import java.io.File;
+import java.net.MalformedURLException;
+
+import junit.framework.TestCase;
+
+import org.apache.ivy.core.event.EventManager;
+import org.apache.ivy.core.module.descriptor.DefaultDependencyDescriptor;
+import org.apache.ivy.core.module.id.ModuleRevisionId;
+import org.apache.ivy.core.resolve.ResolveData;
+import org.apache.ivy.core.resolve.ResolveEngine;
+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.core.sort.SortEngine;
+import org.apache.ivy.util.CacheCleaner;
+
+public class Maven2LocalTest extends TestCase {
+ private IvySettings settings;
+
+ private ResolveEngine engine;
+
+ private ResolveData data;
+
+ private File cache;
+
+ protected void setUp() throws Exception {
+ settings = new IvySettings();
+ engine = new ResolveEngine(settings, new EventManager(), new SortEngine(settings));
+ cache = new File("build/cache");
+ data = new ResolveData(engine, new ResolveOptions());
+ cache.mkdirs();
+ settings.setDefaultCache(cache);
+ }
+
+ protected void tearDown() throws Exception {
+ CacheCleaner.deleteDir(cache);
+ }
+
+ public void testUseMetadataForListing() throws Exception {
+ IBiblioResolver resolver = maven2Resolver();
+
+ ResolvedModuleRevision m = resolver.getDependency(
+ new DefaultDependencyDescriptor(
+ ModuleRevisionId.newInstance(
+ "org.apache", "test-metadata", "latest.integration"),
+ false), data);
+
+ assertNotNull(m);
+ // should trust the metadata (latest=1.1) instead of listing revisions (latest=1.2)
+ assertEquals(ModuleRevisionId.newInstance(
+ "org.apache", "test-metadata", "1.1"), m.getId());
+ }
+
+ public void testNotUseMetadataForListing() throws Exception {
+ IBiblioResolver resolver = maven2Resolver();
+ resolver.setUseMavenMetadata(false);
+
+ ResolvedModuleRevision m = resolver.getDependency(
+ new DefaultDependencyDescriptor(
+ ModuleRevisionId.newInstance(
+ "org.apache", "test-metadata", "latest.integration"),
+ false), data);
+
+ assertNotNull(m);
+ // should trust listing revisions (latest=1.2) instead of the metadata (latest=1.1)
+ assertEquals(ModuleRevisionId.newInstance(
+ "org.apache", "test-metadata", "1.2"), m.getId());
+ }
+
+ private IBiblioResolver maven2Resolver() throws MalformedURLException {
+ IBiblioResolver resolver = new IBiblioResolver();
+ resolver.setSettings(settings);
+ resolver.setName("maven2");
+ resolver.setM2compatible(true);
+ resolver.setRoot(new File("test/repositories/m2").toURL().toExternalForm());
+ return resolver;
+ }
+}
Propchange: ant/ivy/core/trunk/test/java/org/apache/ivy/plugins/resolver/Maven2LocalTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/ApacheURLListerTest.java
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/ApacheURLListerTest.java?rev=610291&r1=610290&r2=610291&view=diff
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/ApacheURLListerTest.java (original)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/ApacheURLListerTest.java Tue Jan 8 23:40:34 2008
@@ -70,4 +70,33 @@
assertNotNull(files);
assertTrue(files.size() > 0);
}
+
+ public void testRetrieveArchivaListing() throws Exception {
+ ApacheURLLister lister = new ApacheURLLister();
+
+ List d = lister.listDirectories(ApacheURLListerTest.class
+ .getResource("archiva-listing.html"));
+ assertNotNull(d);
+ // archiva listing is not valid html at all currently (1.0, unclosed a tags),
+ // and we don't want to adapt to this
+// assertEquals(3, d.size());
+ }
+
+ public void testRetrieveFixedArchivaListing() throws Exception {
+ ApacheURLLister lister = new ApacheURLLister();
+
+ List d = lister.listDirectories(ApacheURLListerTest.class
+ .getResource("fixed-archiva-listing.html"));
+ assertNotNull(d);
+ assertEquals(3, d.size());
+ }
+
+ public void testRetrieveMavenProxyListing() throws Exception {
+ ApacheURLLister lister = new ApacheURLLister();
+
+ List d = lister.listDirectories(ApacheURLListerTest.class
+ .getResource("maven-proxy-listing.html"));
+ assertNotNull(d);
+ assertEquals(3, d.size());
+ }
}
Added: ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/archiva-listing.html
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/archiva-listing.html?rev=610291&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/archiva-listing.html (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/archiva-listing.html Tue Jan 8 23:40:34 2008
@@ -0,0 +1,17 @@
+<html>
+<head>
+<title>Collection: /ant/ant/</title>
+</head>
+<body>
+<h2>Collection: /ant/ant/</h2>
+<ul>
+<li><a href="../">ant/</a> <i><small>(Parent)</small></i></li>
+</ul>
+<ul>
+<li><a href="./1.6.2/">1.6.2/</li>
+
+<li><a href="./1.6.5/">1.6.5/</li>
+<li><a href="./1.6/">1.6/</li>
+</ul>
+</body>
+</html>
Propchange: ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/archiva-listing.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/fixed-archiva-listing.html
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/fixed-archiva-listing.html?rev=610291&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/fixed-archiva-listing.html (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/fixed-archiva-listing.html Tue Jan 8 23:40:34 2008
@@ -0,0 +1,17 @@
+<html>
+<head>
+<title>Collection: /ant/ant/</title>
+</head>
+<body>
+<h2>Collection: /ant/ant/</h2>
+<ul>
+<li><a href="../">ant/</a> <i><small>(Parent)</small></i></li>
+</ul>
+<ul>
+<li><a href="./1.6.2/">1.6.2/</a></li>
+
+<li><a href="./1.6.5/">1.6.5/</a></li>
+<li><a href="./1.6/">1.6/</a></li>
+</ul>
+</body>
+</html>
Propchange: ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/fixed-archiva-listing.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/maven-proxy-listing.html
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/maven-proxy-listing.html?rev=610291&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/maven-proxy-listing.html (added)
+++ ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/maven-proxy-listing.html Tue Jan 8 23:40:34 2008
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <title>maven-proxy - /ant/ant/</title>
+ <link type="text/css" rel="stylesheet" href="/maven-proxy/style.css"/>
+ <link rel="shortcut icon" href="../../../images/favicon.png"/>
+ </head>
+ <body>
+ <table class="page-header">
+ <tr>
+
+ <th class="page-header-left">
+ maven-proxy
+ </th>
+ <th class="page-header-middle"></th>
+ <th class="page-header-right">
+
+ Unversioned
+ </th>
+ </tr>
+</table>
+
+<div class="top-level-menu">
+
+ <a href="../../../servlets/Config" accesskey="c"><span class="u">C</span>ONFIG</a>
+ <a href="../../../servlets/Search" accesskey="s"><span class="u">S</span>EARCH</a>
+ <a href="../../../repository" class="selected" accesskey="r"><span class="u">R</span>EPOSITORY</a>
+ <a href="../../../servlets/Admin" accesskey="a"><span class="u">A</span>DMIN</a>
+</div>
+
+
+<h1>Browsing /ant/ant/</h1>
+
+<div class="h1">
+<table width="100%">
+ <colgroup>
+ <col width='20px'>
+ <col width='50px'>
+ <col width='180px'>
+ <col width='*'>
+
+ <col width='*'>
+ <col width='5*'>
+ </colgroup>
+
+ <tr class="a">
+ <th></th>
+ <th>Size (bytes)</th>
+ <th>Last Modified</th>
+ <th>Name</th>
+
+ <th>Repository</th>
+ <th></th>
+ </tr>
+
+
+
+
+
+
+
+
+ <tr class="b">
+ <td>
+ <a href="1.6/"><img src="../../../images/folder.png" alt=""/></a>
+ </td>
+ <td style='text-align:right'></td>
+
+ <td></td>
+ <td><a href="1.6/">1.6/</a></td>
+ <td>Super Secret Custom Repository</td>
+ <td></td>
+ </tr>
+
+
+
+
+ <tr class="a">
+ <td>
+ <a href="1.6.2/"><img src="../../../images/folder.png" alt=""/></a>
+
+ </td>
+ <td style='text-align:right'></td>
+ <td></td>
+ <td><a href="1.6.2/">1.6.2/</a></td>
+ <td>Super Secret Custom Repository</td>
+ <td></td>
+ </tr>
+
+
+
+
+ <tr class="b">
+
+ <td>
+ <a href="1.6.5/"><img src="../../../images/folder.png" alt=""/></a>
+ </td>
+ <td style='text-align:right'></td>
+ <td></td>
+ <td><a href="1.6.5/">1.6.5/</a></td>
+ <td>Super Secret Custom Repository</td>
+ <td></td>
+
+ </tr>
+ </table>
+ </div>
+ </body>
+</html>
\ No newline at end of file
Propchange: ant/ivy/core/trunk/test/java/org/apache/ivy/util/url/maven-proxy-listing.html
------------------------------------------------------------------------------
svn:eol-style = native
Added: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.0/test-metadata-1.0.jar
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.0/test-metadata-1.0.jar?rev=610291&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.0/test-metadata-1.0.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.0/test-metadata-1.0.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.0/test-metadata-1.0.pom?rev=610291&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.0/test-metadata-1.0.pom (added)
+++ ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.0/test-metadata-1.0.pom Tue Jan 8 23:40:34 2008
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+ 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>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache</groupId>
+ <artifactId>test-metadata</artifactId>
+ <name>Test Module for Ivy M2 parsing</name>
+ <version>1.0</version>
+</project>
Propchange: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.0/test-metadata-1.0.pom
------------------------------------------------------------------------------
svn:eol-style = native
Added: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.1/test-metadata-1.1.jar
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.1/test-metadata-1.1.jar?rev=610291&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.1/test-metadata-1.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.1/test-metadata-1.1.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.1/test-metadata-1.1.pom?rev=610291&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.1/test-metadata-1.1.pom (added)
+++ ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.1/test-metadata-1.1.pom Tue Jan 8 23:40:34 2008
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+ 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>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache</groupId>
+ <artifactId>test-metadata</artifactId>
+ <name>Test Module for Ivy M2 parsing</name>
+ <version>1.1</version>
+</project>
Propchange: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.1/test-metadata-1.1.pom
------------------------------------------------------------------------------
svn:eol-style = native
Added: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.2/test-metadata-1.2.jar
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.2/test-metadata-1.2.jar?rev=610291&view=auto
==============================================================================
Binary file - no diff available.
Propchange: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.2/test-metadata-1.2.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.2/test-metadata-1.2.pom
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.2/test-metadata-1.2.pom?rev=610291&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.2/test-metadata-1.2.pom (added)
+++ ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.2/test-metadata-1.2.pom Tue Jan 8 23:40:34 2008
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+ 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>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache</groupId>
+ <artifactId>test-metadata</artifactId>
+ <name>Test Module for Ivy M2 parsing</name>
+ <version>1.2</version>
+</project>
Propchange: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/1.2/test-metadata-1.2.pom
------------------------------------------------------------------------------
svn:eol-style = native
Added: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/maven-metadata.xml
URL: http://svn.apache.org/viewvc/ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/maven-metadata.xml?rev=610291&view=auto
==============================================================================
--- ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/maven-metadata.xml (added)
+++ ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/maven-metadata.xml Tue Jan 8 23:40:34 2008
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?><metadata>
+ <groupId>org.apache</groupId>
+ <artifactId>test-metadata</artifactId>
+ <version>1.1</version>
+ <versioning>
+ <release>1.1</release>
+ <versions>
+ <version>1.0</version>
+ <version>1.1</version>
+ </versions>
+ <lastUpdated>20070310164929</lastUpdated>
+ </versioning>
+</metadata>
\ No newline at end of file
Propchange: ant/ivy/core/trunk/test/repositories/m2/org/apache/test-metadata/maven-metadata.xml
------------------------------------------------------------------------------
svn:eol-style = native