move MavenMetadataReader to a new module to avoid cyclic dependency. git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1299489 13f79535-47bb-0310-9956-ffa450edef68tags/archiva-1.4-M3
@@ -27,7 +27,6 @@ import org.apache.archiva.metadata.repository.RepositorySession; | |||
import org.apache.archiva.repository.events.RepositoryListener; | |||
import org.apache.archiva.common.utils.VersionComparator; | |||
import org.apache.archiva.common.utils.VersionUtil; | |||
import org.apache.archiva.model.ArchivaArtifact; | |||
import org.apache.archiva.model.ArtifactReference; | |||
import org.apache.archiva.model.ProjectReference; | |||
import org.apache.archiva.model.VersionedReference; |
@@ -0,0 +1,49 @@ | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |||
<modelVersion>4.0.0</modelVersion> | |||
<parent> | |||
<artifactId>archiva-base</artifactId> | |||
<groupId>org.apache.archiva</groupId> | |||
<version>1.4-M3-SNAPSHOT</version> | |||
</parent> | |||
<artifactId>archiva-maven2-metadata</artifactId> | |||
<version>1.4-M3-SNAPSHOT</version> | |||
<name>archiva-maven2-metadata</name> | |||
<dependencies> | |||
<dependency> | |||
<groupId>org.apache.archiva</groupId> | |||
<artifactId>archiva-model</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.archiva</groupId> | |||
<artifactId>archiva-xml-tools</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>commons-io</groupId> | |||
<artifactId>commons-io</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>junit</groupId> | |||
<artifactId>junit</artifactId> | |||
<scope>test</scope> | |||
</dependency> | |||
</dependencies> | |||
<build> | |||
<pluginManagement> | |||
<plugins> | |||
<plugin> | |||
<artifactId>maven-compiler-plugin</artifactId> | |||
<configuration> | |||
<source>1.5</source> | |||
<target>1.5</target> | |||
</configuration> | |||
</plugin> | |||
</plugins> | |||
</pluginManagement> | |||
</build> | |||
</project> |
@@ -0,0 +1,114 @@ | |||
package org.apache.archiva.maven2.metadata; | |||
/* | |||
* 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. | |||
*/ | |||
import org.apache.archiva.model.ArchivaRepositoryMetadata; | |||
import org.apache.archiva.model.Plugin; | |||
import org.apache.archiva.model.SnapshotVersion; | |||
import org.apache.archiva.xml.XMLException; | |||
import org.apache.archiva.xml.XMLReader; | |||
import org.apache.commons.lang.math.NumberUtils; | |||
import org.dom4j.Element; | |||
import java.io.File; | |||
import java.util.Date; | |||
/** | |||
* @author Olivier Lamy | |||
* @since 1.4-M3 | |||
*/ | |||
public class MavenMetadataReader | |||
{ | |||
/* | |||
<?xml version="1.0" encoding="UTF-8"?> | |||
<metadata modelVersion="1.1.0"> | |||
<groupId>org.apache.archiva</groupId> | |||
<artifactId>archiva</artifactId> | |||
<version>1.4-M3-SNAPSHOT</version> | |||
<versioning> | |||
<snapshot> | |||
<timestamp>20120310.230917</timestamp> | |||
<buildNumber>2</buildNumber> | |||
</snapshot> | |||
<lastUpdated>20120310230917</lastUpdated> | |||
<snapshotVersions> | |||
<snapshotVersion> | |||
<extension>pom</extension> | |||
<value>1.4-M3-20120310.230917-2</value> | |||
<updated>20120310230917</updated> | |||
</snapshotVersion> | |||
</snapshotVersions> | |||
</versioning> | |||
</metadata> | |||
*/ | |||
/** | |||
* Read and return the {@link org.apache.archiva.model.ArchivaRepositoryMetadata} object from the provided xml file. | |||
* | |||
* @param metadataFile the maven-metadata.xml file to read. | |||
* @return the archiva repository metadata object that represents the provided file contents. | |||
* @throws XMLException | |||
*/ | |||
public static ArchivaRepositoryMetadata read( File metadataFile ) | |||
throws XMLException | |||
{ | |||
XMLReader xml = new XMLReader( "metadata", metadataFile ); | |||
// invoke this to remove namespaces, see MRM-1136 | |||
xml.removeNamespaces(); | |||
ArchivaRepositoryMetadata metadata = new ArchivaRepositoryMetadata(); | |||
metadata.setGroupId( xml.getElementText( "//metadata/groupId" ) ); | |||
metadata.setArtifactId( xml.getElementText( "//metadata/artifactId" ) ); | |||
metadata.setVersion( xml.getElementText( "//metadata/version" ) ); | |||
metadata.setFileLastModified( new Date( metadataFile.lastModified() ) ); | |||
metadata.setFileSize( metadataFile.length() ); | |||
metadata.setLastUpdated( xml.getElementText( "//metadata/versioning/lastUpdated" ) ); | |||
metadata.setLatestVersion( xml.getElementText( "//metadata/versioning/latest" ) ); | |||
metadata.setReleasedVersion( xml.getElementText( "//metadata/versioning/release" ) ); | |||
metadata.setAvailableVersions( xml.getElementListText( "//metadata/versioning/versions/version" ) ); | |||
Element snapshotElem = xml.getElement( "//metadata/versioning/snapshot" ); | |||
if ( snapshotElem != null ) | |||
{ | |||
SnapshotVersion snapshot = new SnapshotVersion(); | |||
snapshot.setTimestamp( snapshotElem.elementTextTrim( "timestamp" ) ); | |||
String tmp = snapshotElem.elementTextTrim( "buildNumber" ); | |||
if ( NumberUtils.isNumber( tmp ) ) | |||
{ | |||
snapshot.setBuildNumber( NumberUtils.toInt( tmp ) ); | |||
} | |||
metadata.setSnapshotVersion( snapshot ); | |||
} | |||
for ( Element plugin : xml.getElementList( "//metadata/plugins/plugin" ) ) | |||
{ | |||
Plugin p = new Plugin(); | |||
p.setPrefix( plugin.elementTextTrim( "prefix" ) ); | |||
p.setArtifactId( plugin.elementTextTrim( "artifactId" ) ); | |||
p.setName( plugin.elementTextTrim( "name" ) ); | |||
metadata.addPlugin( p ); | |||
} | |||
return metadata; | |||
} | |||
} |
@@ -38,7 +38,6 @@ import org.apache.archiva.repository.metadata.RepositoryMetadataWriter; | |||
import org.apache.maven.wagon.TransferFailedException; | |||
import org.custommonkey.xmlunit.DetailedDiff; | |||
import org.custommonkey.xmlunit.Diff; | |||
import org.junit.Before; | |||
import org.junit.Test; | |||
import java.io.File; |
@@ -53,6 +53,10 @@ | |||
<groupId>org.apache.archiva</groupId> | |||
<artifactId>archiva-xml-tools</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.archiva</groupId> | |||
<artifactId>archiva-maven2-metadata</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.springframework</groupId> | |||
<artifactId>spring-context</artifactId> |
@@ -22,11 +22,12 @@ package org.apache.archiva.repository.metadata; | |||
import org.apache.archiva.repository.RepositoryException; | |||
/** | |||
* RepositoryMetadataException | |||
* RepositoryMetadataException | |||
* | |||
* @version $Id$ | |||
*/ | |||
public class RepositoryMetadataException extends RepositoryException | |||
public class RepositoryMetadataException | |||
extends RepositoryException | |||
{ | |||
public RepositoryMetadataException() |
@@ -19,27 +19,24 @@ package org.apache.archiva.repository.metadata; | |||
* under the License. | |||
*/ | |||
import java.io.File; | |||
import java.util.Date; | |||
import org.apache.commons.lang.math.NumberUtils; | |||
import org.apache.archiva.maven2.metadata.MavenMetadataReader; | |||
import org.apache.archiva.model.ArchivaRepositoryMetadata; | |||
import org.apache.archiva.model.Plugin; | |||
import org.apache.archiva.model.SnapshotVersion; | |||
import org.apache.archiva.xml.XMLException; | |||
import org.apache.archiva.xml.XMLReader; | |||
import org.dom4j.Element; | |||
import java.io.File; | |||
/** | |||
* RepositoryMetadataReader - read maven-metadata.xml files. | |||
* | |||
* @version $Id$ | |||
* @deprecated use {@link MavenMetadataReader} | |||
*/ | |||
public class RepositoryMetadataReader | |||
{ | |||
/** | |||
* Read and return the {@link ArchivaRepositoryMetadata} object from the provided xml file. | |||
* | |||
* | |||
* @param metadataFile the maven-metadata.xml file to read. | |||
* @return the archiva repository metadata object that represents the provided file contents. | |||
* @throws RepositoryMetadataException | |||
@@ -49,46 +46,7 @@ public class RepositoryMetadataReader | |||
{ | |||
try | |||
{ | |||
XMLReader xml = new XMLReader( "metadata", metadataFile ); | |||
// invoke this to remove namespaces, see MRM-1136 | |||
xml.removeNamespaces(); | |||
ArchivaRepositoryMetadata metadata = new ArchivaRepositoryMetadata(); | |||
metadata.setGroupId( xml.getElementText( "//metadata/groupId" ) ); | |||
metadata.setArtifactId( xml.getElementText( "//metadata/artifactId" ) ); | |||
metadata.setVersion( xml.getElementText( "//metadata/version" ) ); | |||
metadata.setFileLastModified( new Date( metadataFile.lastModified() ) ); | |||
metadata.setFileSize( metadataFile.length() ); | |||
metadata.setLastUpdated( xml.getElementText( "//metadata/versioning/lastUpdated" ) ); | |||
metadata.setLatestVersion( xml.getElementText( "//metadata/versioning/latest" ) ); | |||
metadata.setReleasedVersion( xml.getElementText( "//metadata/versioning/release" ) ); | |||
metadata.setAvailableVersions( xml.getElementListText( "//metadata/versioning/versions/version" ) ); | |||
Element snapshotElem = xml.getElement( "//metadata/versioning/snapshot" ); | |||
if ( snapshotElem != null ) | |||
{ | |||
SnapshotVersion snapshot = new SnapshotVersion(); | |||
snapshot.setTimestamp( snapshotElem.elementTextTrim( "timestamp" ) ); | |||
String tmp = snapshotElem.elementTextTrim( "buildNumber" ); | |||
if( NumberUtils.isNumber( tmp )) | |||
{ | |||
snapshot.setBuildNumber( NumberUtils.toInt( tmp ) ); | |||
} | |||
metadata.setSnapshotVersion( snapshot ); | |||
} | |||
for ( Element plugin : xml.getElementList( "//metadata/plugins/plugin" ) ) | |||
{ | |||
Plugin p = new Plugin(); | |||
p.setPrefix( plugin.elementTextTrim( "prefix" ) ); | |||
p.setArtifactId( plugin.elementTextTrim( "artifactId" ) ); | |||
p.setName( plugin.elementTextTrim( "name" ) ); | |||
metadata.addPlugin( p ); | |||
} | |||
return metadata; | |||
return MavenMetadataReader.read( metadataFile ); | |||
} | |||
catch ( XMLException e ) | |||
{ |
@@ -19,13 +19,14 @@ package org.apache.archiva.repository.metadata; | |||
* under the License. | |||
*/ | |||
import org.apache.commons.collections.CollectionUtils; | |||
import org.apache.commons.io.IOUtils; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.apache.archiva.model.ArchivaRepositoryMetadata; | |||
import org.apache.archiva.model.Plugin; | |||
import org.apache.archiva.xml.XMLException; | |||
import org.apache.archiva.xml.XMLWriter; | |||
import org.apache.commons.collections.CollectionUtils; | |||
import org.apache.commons.io.FileUtils; | |||
import org.apache.commons.io.IOUtils; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.dom4j.Document; | |||
import org.dom4j.DocumentHelper; | |||
import org.dom4j.Element; | |||
@@ -36,10 +37,9 @@ import java.io.IOException; | |||
import java.io.Writer; | |||
import java.util.Iterator; | |||
import java.util.List; | |||
import org.apache.commons.io.FileUtils; | |||
/** | |||
* RepositoryMetadataWriter | |||
* RepositoryMetadataWriter | |||
* | |||
* @version $Id$ | |||
*/ | |||
@@ -59,15 +59,15 @@ public class RepositoryMetadataWriter | |||
catch ( IOException e ) | |||
{ | |||
thrown = true; | |||
throw new RepositoryMetadataException( "Unable to write metadata file: " + outputFile.getAbsolutePath() | |||
+ " - " + e.getMessage(), e ); | |||
throw new RepositoryMetadataException( | |||
"Unable to write metadata file: " + outputFile.getAbsolutePath() + " - " + e.getMessage(), e ); | |||
} | |||
finally | |||
{ | |||
IOUtils.closeQuietly( writer ); | |||
if (thrown) | |||
if ( thrown ) | |||
{ | |||
FileUtils.deleteQuietly(outputFile); | |||
FileUtils.deleteQuietly( outputFile ); | |||
} | |||
} | |||
} | |||
@@ -80,14 +80,14 @@ public class RepositoryMetadataWriter | |||
Element root = DocumentHelper.createElement( "metadata" ); | |||
doc.setRootElement( root ); | |||
addOptionalElementText( root, "groupId", metadata.getGroupId()); | |||
addOptionalElementText( root, "groupId", metadata.getGroupId() ); | |||
addOptionalElementText( root, "artifactId", metadata.getArtifactId() ); | |||
addOptionalElementText( root, "version", metadata.getVersion() ); | |||
if ( CollectionUtils.isNotEmpty( metadata.getPlugins() ) ) | |||
{ | |||
Element plugins = root.addElement( "plugins" ); | |||
for ( Plugin plugin : (List<Plugin>)metadata.getPlugins() ) | |||
for ( Plugin plugin : (List<Plugin>) metadata.getPlugins() ) | |||
{ | |||
Element p = plugins.addElement( "plugin" ); | |||
p.addElement( "prefix" ).setText( plugin.getPrefix() ); | |||
@@ -96,9 +96,8 @@ public class RepositoryMetadataWriter | |||
} | |||
} | |||
if ( CollectionUtils.isNotEmpty( metadata.getAvailableVersions() ) | |||
|| StringUtils.isNotBlank( metadata.getReleasedVersion() ) | |||
|| StringUtils.isNotBlank( metadata.getLatestVersion() ) | |||
if ( CollectionUtils.isNotEmpty( metadata.getAvailableVersions() ) || StringUtils.isNotBlank( | |||
metadata.getReleasedVersion() ) || StringUtils.isNotBlank( metadata.getLatestVersion() ) | |||
|| StringUtils.isNotBlank( metadata.getLastUpdated() ) || ( metadata.getSnapshotVersion() != null ) ) | |||
{ | |||
Element versioning = root.addElement( "versioning" ); | |||
@@ -113,7 +112,7 @@ public class RepositoryMetadataWriter | |||
addOptionalElementText( snapshot, "buildNumber", bnum ); | |||
addOptionalElementText( snapshot, "timestamp", metadata.getSnapshotVersion().getTimestamp() ); | |||
} | |||
if ( CollectionUtils.isNotEmpty( metadata.getAvailableVersions() ) ) | |||
{ | |||
Element versions = versioning.addElement( "versions" ); |
@@ -16,8 +16,7 @@ | |||
~ KIND, either express or implied. See the License for the | |||
~ specific language governing permissions and limitations | |||
~ under the License. | |||
--> | |||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |||
--><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> | |||
<modelVersion>4.0.0</modelVersion> | |||
<parent> | |||
<groupId>org.apache.archiva</groupId> | |||
@@ -48,5 +47,6 @@ | |||
<module>archiva-repository-scanner</module> | |||
<module>archiva-repository-admin</module> | |||
<module>archiva-security-common</module> | |||
<module>archiva-maven2-metadata</module> | |||
</modules> | |||
</project> |
@@ -53,7 +53,6 @@ import org.apache.archiva.repository.metadata.RepositoryMetadataReader; | |||
import org.apache.archiva.repository.metadata.RepositoryMetadataWriter; | |||
import org.apache.maven.model.Model; | |||
import org.apache.maven.model.io.xpp3.MavenXpp3Writer; | |||
import org.apache.taglibs.standard.tlv.JstlBaseTLV; | |||
import org.codehaus.plexus.taskqueue.TaskQueueException; | |||
import org.codehaus.plexus.util.IOUtil; | |||
import org.springframework.context.annotation.Scope; |
@@ -36,6 +36,10 @@ | |||
<groupId>org.apache.archiva</groupId> | |||
<artifactId>metadata-repository-api</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.archiva</groupId> | |||
<artifactId>archiva-maven2-metadata</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.archiva</groupId> | |||
<artifactId>problem-reports</artifactId> |
@@ -186,8 +186,6 @@ public class DefaultDependencyTreeBuilder | |||
return; | |||
} | |||
File basedir = new File( repository.getLocation() ); | |||
try | |||
{ | |||
// MRM-1411 | |||
@@ -216,7 +214,7 @@ public class DefaultDependencyTreeBuilder | |||
} | |||
Model model = buildProject( | |||
new RepositoryModelResolver( basedir, pathTranslator, wagonFactory, remoteRepositories, networkProxies, | |||
new RepositoryModelResolver( repository, pathTranslator, wagonFactory, remoteRepositories, networkProxies, | |||
repository ), groupId, artifactId, version ); | |||
Map managedVersions = createManagedVersionMap( model ); |
@@ -148,11 +148,11 @@ public class Maven2RepositoryStorage | |||
{ | |||
try | |||
{ | |||
ManagedRepository repositoryConfiguration = managedRepositoryAdmin.getManagedRepository( repoId ); | |||
ManagedRepository managedRepository = managedRepositoryAdmin.getManagedRepository( repoId ); | |||
String artifactVersion = projectVersion; | |||
File basedir = new File( repositoryConfiguration.getLocation() ); | |||
File basedir = new File( managedRepository.getLocation() ); | |||
if ( VersionUtil.isSnapshot( projectVersion ) ) | |||
{ | |||
File metadataFile = | |||
@@ -234,8 +234,8 @@ public class Maven2RepositoryStorage | |||
// MRM-1411 | |||
req.setModelResolver( | |||
new RepositoryModelResolver( basedir, pathTranslator, wagonFactory, remoteRepositories, networkProxies, | |||
repositoryConfiguration ) ); | |||
new RepositoryModelResolver( managedRepository, pathTranslator, wagonFactory, remoteRepositories, networkProxies, | |||
managedRepository ) ); | |||
Model model; | |||
try |
@@ -23,8 +23,10 @@ import org.apache.archiva.admin.model.beans.ManagedRepository; | |||
import org.apache.archiva.admin.model.beans.NetworkProxy; | |||
import org.apache.archiva.admin.model.beans.RemoteRepository; | |||
import org.apache.archiva.common.utils.VersionUtil; | |||
import org.apache.archiva.configuration.RemoteRepositoryConfiguration; | |||
import org.apache.archiva.maven2.metadata.MavenMetadataReader; | |||
import org.apache.archiva.metadata.repository.storage.RepositoryPathTranslator; | |||
import org.apache.archiva.model.ArchivaRepositoryMetadata; | |||
import org.apache.archiva.model.SnapshotVersion; | |||
import org.apache.archiva.proxy.common.WagonFactory; | |||
import org.apache.archiva.proxy.common.WagonFactoryException; | |||
import org.apache.archiva.xml.XMLException; | |||
@@ -72,6 +74,8 @@ public class RepositoryModelResolver | |||
// key/value: remote repo ID/network proxy | |||
Map<String, NetworkProxy> networkProxyMap; | |||
private ManagedRepository managedRepository; | |||
public RepositoryModelResolver( File basedir, RepositoryPathTranslator pathTranslator ) | |||
{ | |||
this.basedir = basedir; | |||
@@ -79,11 +83,11 @@ public class RepositoryModelResolver | |||
this.pathTranslator = pathTranslator; | |||
} | |||
public RepositoryModelResolver( File basedir, RepositoryPathTranslator pathTranslator, WagonFactory wagonFactory, | |||
List<RemoteRepository> remoteRepositories, | |||
public RepositoryModelResolver( ManagedRepository managedRepository, RepositoryPathTranslator pathTranslator, | |||
WagonFactory wagonFactory, List<RemoteRepository> remoteRepositories, | |||
Map<String, NetworkProxy> networkProxiesMap, ManagedRepository targetRepository ) | |||
{ | |||
this( basedir, pathTranslator ); | |||
this( new File( managedRepository.getLocation() ), pathTranslator ); | |||
this.wagonFactory = wagonFactory; | |||
@@ -104,6 +108,41 @@ public class RepositoryModelResolver | |||
if ( !model.exists() ) | |||
{ | |||
// is a SNAPSHOT ? | |||
if ( StringUtils.contains( version, "SNAPSHOT" ) ) | |||
{ | |||
// reading metadata if there | |||
File mavenMetadata = new File( model.getParent(), METADATA_FILENAME ); | |||
if ( mavenMetadata.exists() ) | |||
{ | |||
try | |||
{ | |||
ArchivaRepositoryMetadata archivaRepositoryMetadata = MavenMetadataReader.read( mavenMetadata ); | |||
SnapshotVersion snapshotVersion = archivaRepositoryMetadata.getSnapshotVersion(); | |||
if ( snapshotVersion != null ) | |||
{ | |||
String lastVersion = snapshotVersion.getTimestamp(); | |||
int buildNumber = snapshotVersion.getBuildNumber(); | |||
String snapshotPath = | |||
StringUtils.replaceChars( groupId, '.', '/' ) + '/' + artifactId + '/' + version + '/' | |||
+ artifactId + '-' + StringUtils.remove( version, "-SNAPSHOT" ) + '-' + lastVersion | |||
+ '-' + buildNumber + ".pom"; | |||
model = new File( basedir, snapshotPath ); | |||
//model = pathTranslator.toFile( basedir, groupId, artifactId, lastVersion, filename ); | |||
if ( model.exists() ) | |||
{ | |||
return new FileModelSource( model ); | |||
} | |||
} | |||
} | |||
catch ( XMLException e ) | |||
{ | |||
log.warn( "fail to read {}, {}", mavenMetadata.getAbsolutePath(), e.getCause() ); | |||
} | |||
} | |||
} | |||
for ( RemoteRepository remoteRepository : remoteRepositories ) | |||
{ | |||
try |
@@ -35,7 +35,6 @@ import org.apache.archiva.repository.metadata.RepositoryMetadataException; | |||
import org.apache.archiva.repository.metadata.RepositoryMetadataReader; | |||
import org.apache.archiva.repository.metadata.RepositoryMetadataWriter; | |||
import org.apache.commons.io.IOUtils; | |||
import org.apache.commons.lang.SystemUtils; | |||
import org.slf4j.Logger; | |||
import org.slf4j.LoggerFactory; | |||
import org.springframework.stereotype.Service; |
@@ -151,6 +151,11 @@ | |||
<artifactId>activation</artifactId> | |||
<version>1.1</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.archiva</groupId> | |||
<artifactId>archiva-maven2-metadata</artifactId> | |||
<version>${project.version}</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.archiva</groupId> | |||
<artifactId>archiva-repository-admin-api</artifactId> |