[MRM-294] Repository purge

- Added RepositoryPurgeConsumer
- Added these other classes used in repo purge: DaysOldRepositoryPurge, RetentionCountRepositoryPurge, ArtifactFilenameFilter and 
RepositoryPurgeException
- Added tests and test data
- Added new fields in configuration.mdo (daysOlder and retentionCount)
- Added repository-purge as a consumer in default-archiva.xml (but currently commented out)



git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/trunk@562766 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Maria Odea B. Ching 2007-08-04 21:46:32 +00:00
parent 8205cd60f9
commit 9dda4d03d3
84 changed files with 2244 additions and 1 deletions

View File

@ -268,6 +268,24 @@
</description>
<defaultValue>0 0 * * * ?</defaultValue>
</field>
<field>
<name>retentionCount</name>
<version>1.0.0+</version>
<type>int</type>
<description>
The total count of the artifact to be retained for each snapshot.
</description>
<defaultValue>2</defaultValue>
</field>
<field>
<name>daysOlder</name>
<version>1.0.0+</version>
<type>int</type>
<description>
The number of days old which will be the basis for removing a snapshot.
</description>
<defaultValue>100</defaultValue>
</field>
</fields>
<codeSegments>
<codeSegment>

View File

@ -11,6 +11,7 @@
<snapshots>false</snapshots>
<indexed>true</indexed>
<refreshCronExpression>0 0 0 * * ?</refreshCronExpression>
<daysOlder>30</daysOlder>
</repository>
<repository>
<id>snapshots</id>
@ -21,6 +22,7 @@
<snapshots>true</snapshots>
<indexed>true</indexed>
<refreshCronExpression>0 0,30 0 * * ?</refreshCronExpression>
<daysOlder>30</daysOlder>
</repository>
<repository>
<id>central</id>
@ -136,6 +138,7 @@
<knownContentConsumer>index-content</knownContentConsumer>
<knownContentConsumer>auto-remove</knownContentConsumer>
<knownContentConsumer>auto-rename</knownContentConsumer>
<!--knownContentConsumer>repository-purge</knownContentConsumer-->
</knownContentConsumers>
<invalidContentConsumers>
<invalidContentConsumer>update-db-bad-content</invalidContentConsumer>

View File

@ -83,7 +83,7 @@ public interface RepositoryContentConsumer extends BaseConsumer
* </p>
*
* <p>
* NOTE: If the consumer opted to batch up processing requests in the {@link #processFile(BaseFile)} event
* NOTE: If the consumer opted to batch up processing requests in the {@link #processFile(String)} event
* this would be the last opportunity to drain any processing queue's.
* </p>
*/

View File

@ -29,6 +29,14 @@
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.apache.maven.archiva</groupId>
<artifactId>archiva-database</artifactId>
</dependency>
<dependency>
<groupId>org.apache.maven.archiva</groupId>
<artifactId>archiva-indexer</artifactId>
</dependency>
<dependency>
<groupId>org.apache.maven.archiva</groupId>
<artifactId>archiva-configuration</artifactId>
@ -45,5 +53,12 @@
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-digest</artifactId>
</dependency>
<!-- test dependencies -->
<!--dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<scope>test</scope>
</dependency-->
</dependencies>
</project>

View File

@ -0,0 +1,185 @@
package org.apache.maven.archiva.consumers.core.repository;
/*
* 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.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.model.ArchivaRepository;
import org.apache.maven.archiva.model.ArchivaArtifact;
import org.apache.maven.archiva.repository.layout.FilenameParts;
import org.apache.maven.archiva.repository.layout.RepositoryLayoutUtils;
import org.apache.maven.archiva.repository.layout.LayoutException;
import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
import org.apache.maven.archiva.database.ArchivaDatabaseException;
import org.apache.maven.archiva.database.ArtifactDAO;
import org.apache.maven.archiva.indexer.RepositoryContentIndex;
import org.apache.maven.archiva.indexer.RepositoryIndexException;
import org.apache.maven.archiva.indexer.filecontent.FileContentRecord;
import org.apache.commons.lang.StringUtils;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.List;
/**
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
*/
public abstract class AbstractRepositoryPurge
implements RepositoryPurge
{
private ArchivaRepository repository;
private BidirectionalRepositoryLayout layout;
private RepositoryContentIndex index;
private ArtifactDAO artifactDao;
/**
* Get all files from the directory that matches the specified filename.
*
* @param dir the directory to be scanned
* @param filename the filename to be matched
* @return
*/
protected File[] getFiles( File dir, String filename )
throws RepositoryPurgeException
{
FilenameFilter filter = new ArtifactFilenameFilter( filename );
if ( !dir.isDirectory() )
{
throw new RepositoryPurgeException( "Parent file " + dir.getPath() + " is not a directory." );
}
File[] files = dir.listFiles( filter );
return files;
}
public abstract void process( String path, Configuration configuration )
throws RepositoryPurgeException;
/**
* Purge the repo. Update db and index of removed artifacts.
*
* @param artifactFiles
* @throws RepositoryIndexException
*/
protected void purge( File[] artifactFiles )
throws RepositoryIndexException
{
List records = new ArrayList();
for ( int i = 0; i < artifactFiles.length; i++ )
{
artifactFiles[i].delete();
String[] artifactPathParts = artifactFiles[i].getAbsolutePath().split( getRepository().getUrl().getPath() );
String artifactPath = artifactPathParts[artifactPathParts.length - 1];
if ( !artifactPath.toUpperCase().endsWith( "SHA1" ) && !artifactPath.toUpperCase().endsWith( "MD5" ) )
{
updateDatabase( artifactPath );
}
FileContentRecord record = new FileContentRecord();
record.setRepositoryId( this.repository.getId() );
record.setFilename( artifactPath );
records.add( record );
}
//index.deleteRecords( records );
}
private void updateDatabase( String path )
{
try
{
ArchivaArtifact artifact = layout.toArtifact( path );
ArchivaArtifact queriedArtifact = artifactDao.getArtifact( artifact.getGroupId(), artifact.getArtifactId(),
artifact.getVersion(), artifact.getClassifier(),
artifact.getType() );
artifactDao.deleteArtifact( queriedArtifact );
}
catch ( ArchivaDatabaseException ae )
{
}
catch ( LayoutException le )
{
}
}
protected void updateMetadata()
{
}
/**
* Get the artifactId, version, extension and classifier from the path parameter
*
* @param path
* @return
* @throws LayoutException
*/
protected FilenameParts getFilenameParts( String path )
throws LayoutException
{
String normalizedPath = StringUtils.replace( path, "\\", "/" );
String pathParts[] = StringUtils.split( normalizedPath, '/' );
FilenameParts parts = RepositoryLayoutUtils.splitFilename( pathParts[pathParts.length - 1], null );
return parts;
}
public void setRepository( ArchivaRepository repository )
{
this.repository = repository;
}
public void setLayout( BidirectionalRepositoryLayout layout )
{
this.layout = layout;
}
public void setIndex( RepositoryContentIndex index )
{
this.index = index;
}
public void setArtifactDao( ArtifactDAO artifactDao )
{
this.artifactDao = artifactDao;
}
protected ArchivaRepository getRepository()
{
return repository;
}
protected BidirectionalRepositoryLayout getLayout()
{
return layout;
}
}

View File

@ -0,0 +1,50 @@
package org.apache.maven.archiva.consumers.core.repository;
/*
* 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 java.io.FilenameFilter;
import java.io.File;
/**
* Filename filter for getting all the files related to a specific artifact.
*
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
*/
public class ArtifactFilenameFilter
implements FilenameFilter
{
private String filename;
public ArtifactFilenameFilter()
{
}
public ArtifactFilenameFilter( String filename )
{
this.filename = filename;
}
public boolean accept( File dir, String name )
{
return ( name.startsWith( filename ) );
}
}

View File

@ -0,0 +1,79 @@
package org.apache.maven.archiva.consumers.core.repository;
/*
* 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.maven.archiva.repository.layout.FilenameParts;
import org.apache.maven.archiva.repository.layout.LayoutException;
import org.apache.maven.archiva.common.utils.VersionUtil;
import org.apache.maven.archiva.configuration.RepositoryConfiguration;
import org.apache.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.indexer.RepositoryIndexException;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.io.File;
/**
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
* @plexus.component role="org.apache.maven.archiva.consumers.core.repository.RepositoryPurge"
* role-hint="days-old"
* instantiation-strategy="per-lookup"
*/
public class DaysOldRepositoryPurge
extends AbstractRepositoryPurge
{
public void process( String path, Configuration configuration )
throws RepositoryPurgeException
{
try
{
FilenameParts parts = getFilenameParts( path );
if ( VersionUtil.isSnapshot( parts.version ) )
{
RepositoryConfiguration repoConfig = configuration.findRepositoryById( getRepository().getId() );
Calendar olderThanThisDate = new GregorianCalendar();
olderThanThisDate.add( Calendar.DATE, ( -1 * repoConfig.getDaysOlder() ) );
File artifactFile = new File( getRepository().getUrl().getPath(), path );
if ( artifactFile.lastModified() < olderThanThisDate.getTimeInMillis() )
{
String[] fileParts = artifactFile.getName().split( "." + parts.extension );
File[] artifactFiles = getFiles( artifactFile.getParentFile(), fileParts[0] );
purge( artifactFiles );
}
}
}
catch ( LayoutException le )
{
throw new RepositoryPurgeException( le.getMessage() );
}
catch ( RepositoryIndexException re )
{
throw new RepositoryPurgeException( re.getMessage() );
}
}
}

View File

@ -0,0 +1,73 @@
package org.apache.maven.archiva.consumers.core.repository;
/*
* 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.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.model.ArchivaRepository;
import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
import org.apache.maven.archiva.database.ArchivaDAO;
import org.apache.maven.archiva.database.ArtifactDAO;
import org.apache.maven.archiva.indexer.RepositoryContentIndex;
/**
*
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
* @version
*/
public interface RepositoryPurge
{
/**
* Perform checking on artifact for repository purge
*
* @param path path to the scanned artifact
* @param configuration the configuration for the repository currently being scanned
*/
public void process( String path, Configuration configuration )
throws RepositoryPurgeException;
/**
* Set the repository to be purged
*
* @param repository
*/
public void setRepository( ArchivaRepository repository );
/**
* Set the layout of the repository to be purged
*
* @param layout
*/
public void setLayout( BidirectionalRepositoryLayout layout );
/**
* Set the index of the repository
*
* @param index
*/
public void setIndex( RepositoryContentIndex index );
/**
* Set the artifact dao used for updating the database of the changes in the repo
*
* @param artifactDao
*/
public void setArtifactDao( ArtifactDAO artifactDao );
}

View File

@ -0,0 +1,211 @@
package org.apache.maven.archiva.consumers.core.repository;
/*
* 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.maven.archiva.consumers.KnownRepositoryContentConsumer;
import org.apache.maven.archiva.consumers.ConsumerException;
import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer;
import org.apache.maven.archiva.model.ArchivaRepository;
import org.apache.maven.archiva.repository.layout.LayoutException;
import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout;
import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayoutFactory;
import org.apache.maven.archiva.configuration.ArchivaConfiguration;
import org.apache.maven.archiva.configuration.FileTypes;
import org.apache.maven.archiva.database.ArchivaDAO;
import org.apache.maven.archiva.indexer.RepositoryContentIndexFactory;
import org.apache.maven.archiva.indexer.RepositoryContentIndex;
import org.codehaus.plexus.registry.RegistryListener;
import org.codehaus.plexus.registry.Registry;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable;
import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import java.util.List;
import java.util.ArrayList;
/**
* Consumer for removing old snapshots in the repository based on the criteria
* specified by the user.
*
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
* @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
* role-hint="repository-purge"
* instantiation-strategy="per-lookup
*/
public class RepositoryPurgeConsumer
extends AbstractMonitoredConsumer
implements KnownRepositoryContentConsumer, RegistryListener, Initializable
{
/**
* @plexus.configuration default-value="repository-purge"
*/
private String id;
/**
* @plexus.configuration default-value="Purge repository of old snapshots"
*/
private String description;
/**
* @plexus.requirement
*/
private ArchivaConfiguration configuration;
/**
* @plexus.requirement
*/
private BidirectionalRepositoryLayoutFactory layoutFactory;
private ArchivaRepository repository;
private BidirectionalRepositoryLayout repositoryLayout;
private List includes = new ArrayList();
private List propertyNameTriggers = new ArrayList();
private RepositoryPurge repoPurge;
private RepositoryContentIndex index;
/**
* @plexus.requirement role-hint="lucene"
*/
private RepositoryContentIndexFactory indexFactory;
/**
* @plexus.requirement role-hint="jdo"
*/
private ArchivaDAO dao;
/**
* @plexus.requirement
*/
private FileTypes filetypes;
public String getId()
{
return this.id;
}
public String getDescription()
{
return this.description;
}
public boolean isPermanent()
{
return false;
}
public List getExcludes()
{
return null;
}
public List getIncludes()
{
return this.includes;
}
public void beginScan( ArchivaRepository repository )
throws ConsumerException
{
if ( !repository.isManaged() )
{
throw new ConsumerException( "Consumer requires managed repository." );
}
this.repository = repository;
this.index = indexFactory.createFileContentIndex( repository );
try
{
this.repositoryLayout = layoutFactory.getLayout( this.repository.getLayoutType() );
}
catch ( LayoutException e )
{
throw new ConsumerException(
"Unable to initialize consumer due to unknown repository layout: " + e.getMessage(), e );
}
// @todo check the repo configuration first which purge was set by the user
// temporarily default to DaysOldRepositoryPurge
repoPurge = new DaysOldRepositoryPurge();
repoPurge.setLayout( repositoryLayout );
repoPurge.setRepository( repository );
repoPurge.setIndex( index );
repoPurge.setArtifactDao( dao.getArtifactDAO() );
}
public void processFile( String path )
throws ConsumerException
{
try
{
repoPurge.process( path, configuration.getConfiguration() );
}
catch ( RepositoryPurgeException rpe )
{
throw new ConsumerException( rpe.getMessage() );
}
}
public void completeScan()
{
/* do nothing */
}
public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue )
{
if ( propertyNameTriggers.contains( propertyName ) )
{
initIncludes();
}
}
public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue )
{
/* do nothing */
}
private void initIncludes()
{
includes.clear();
includes.addAll( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) );
}
public void initialize()
throws InitializationException
{
propertyNameTriggers = new ArrayList();
propertyNameTriggers.add( "repositoryScanning" );
propertyNameTriggers.add( "fileTypes" );
propertyNameTriggers.add( "fileType" );
propertyNameTriggers.add( "patterns" );
propertyNameTriggers.add( "pattern" );
configuration.addChangeListener( this );
initIncludes();
}
}

View File

@ -0,0 +1,49 @@
package org.apache.maven.archiva.consumers.core.repository;
/*
* 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.
*/
/**
*
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
* @version
*/
public class RepositoryPurgeException
extends Exception
{
public RepositoryPurgeException()
{
super();
}
public RepositoryPurgeException( String message, Throwable cause )
{
super( message, cause );
}
public RepositoryPurgeException( String message )
{
super( message );
}
public RepositoryPurgeException( Throwable cause )
{
super( cause );
}
}

View File

@ -0,0 +1,121 @@
package org.apache.maven.archiva.consumers.core.repository;
/*
* 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.maven.archiva.configuration.Configuration;
import org.apache.maven.archiva.configuration.RepositoryConfiguration;
import org.apache.maven.archiva.repository.layout.FilenameParts;
import org.apache.maven.archiva.repository.layout.LayoutException;
import org.apache.maven.archiva.common.utils.VersionUtil;
import org.apache.maven.archiva.indexer.RepositoryIndexException;
import java.io.File;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Collections;
/**
* @author <a href="mailto:oching@apache.org">Maria Odea Ching</a>
* @plexus.component role="org.apache.maven.archiva.consumers.core.repository.RepositoryPurge"
* role-hint="retention-count"
* instantiation-strategy="per-lookup"
*/
public class RetentionCountRepositoryPurge
extends AbstractRepositoryPurge
{
public void process( String path, Configuration configuration )
throws RepositoryPurgeException
{
try
{
FilenameParts parts = getFilenameParts( path );
if ( VersionUtil.isSnapshot( parts.version ) )
{
RepositoryConfiguration repoConfig = configuration.findRepositoryById( getRepository().getId() );
File artifactFile = new File( getRepository().getUrl().getPath(), path );
File parentDir = artifactFile.getParentFile();
if ( parentDir.isDirectory() )
{
File[] files = parentDir.listFiles();
List uniqueVersionFilenames = getUniqueVersions( files );
Collections.sort( uniqueVersionFilenames );
if ( uniqueVersionFilenames.size() > repoConfig.getRetentionCount() )
{
int count = uniqueVersionFilenames.size();
for ( Iterator iter = uniqueVersionFilenames.iterator(); iter.hasNext(); )
{
String filename = (String) iter.next();
if ( count > repoConfig.getRetentionCount() )
{
File[] artifactFiles = getFiles( parentDir, filename );
purge( artifactFiles );
count--;
}
}
}
}
}
}
catch ( LayoutException le )
{
throw new RepositoryPurgeException( le.getMessage() );
}
catch ( RepositoryIndexException re )
{
throw new RepositoryPurgeException( re.getMessage() );
}
}
private List getUniqueVersions( File[] files )
{
List uniqueVersions = new ArrayList();
for ( int i = 0; i < files.length; i++ )
{
if ( !( files[i].getName().toUpperCase() ).endsWith( "SHA1" ) &&
!( files[i].getName().toUpperCase() ).endsWith( "MD5" ) )
{
FilenameParts filenameParts = null;
// skip those files that have layout exception (no artifact id/no version/no extension)
try
{
filenameParts = getFilenameParts( files[i].getAbsolutePath() );
}
catch ( LayoutException le )
{
}
if ( filenameParts != null &&
!uniqueVersions.contains( filenameParts.artifactId + "-" + filenameParts.version ) )
{
uniqueVersions.add( filenameParts.artifactId + "-" + filenameParts.version );
}
}
}
return uniqueVersions;
}
}

View File

@ -0,0 +1,202 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
~ 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.
-->
<configuration>
<version>1</version>
<repositories>
<repository>
<id>internal</id>
<name>Archiva Managed Internal Repository</name>
<url>file://${appserver.base}/repositories/internal</url>
<layout>default</layout>
<releases>true</releases>
<snapshots>false</snapshots>
<indexed>true</indexed>
<refreshCronExpression>0 0 * * ?</refreshCronExpression>
</repository>
<repository>
<id>snapshots</id>
<name>Archiva Managed Snapshot Repository</name>
<url>file://${appserver.base}/repositories/internal</url>
<layout>default</layout>
<releases>false</releases>
<snapshots>true</snapshots>
<indexed>true</indexed>
<refreshCronExpression>0 0,30 * * ?</refreshCronExpression>
</repository>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>http://repo1.maven.org/maven2</url>
<layout>default</layout>
<releases>true</releases>
<snapshots>false</snapshots>
<indexed>false</indexed>
</repository>
<repository>
<id>maven2-repository.dev.java.net</id>
<name>Java.net Repository for Maven 2</name>
<url>https://maven2-repository.dev.java.net/nonav/repository</url>
<layout>default</layout>
<releases>true</releases>
<snapshots>false</snapshots>
<indexed>false</indexed>
</repository>
<repository>
<id>test-repo</id>
<name>Test Repository</name>
<url>file://${appserver.base}/repositories/test-repo</url>
<layout>default</layout>
<releases>true</releases>
<snapshots>true</snapshots>
<indexed>true</indexed>
<refreshCronExpression>0 0 * * ?</refreshCronExpression>
<retentionCount>2</retentionCount>
</repository>
</repositories>
<proxyConnectors>
<proxyConnector>
<sourceRepoId>internal</sourceRepoId>
<targetRepoId>central</targetRepoId>
<proxyId/>
<snapshotsPolicy>disabled</snapshotsPolicy>
<releasePolicy>never</releasePolicy>
<failurePolicy>not-found</failurePolicy>
</proxyConnector>
<proxyConnector>
<sourceRepoId>internal</sourceRepoId>
<targetRepoId>maven2-repository.dev.java.net</targetRepoId>
<proxyId/>
<snapshotsPolicy>disabled</snapshotsPolicy>
<releasePolicy>never</releasePolicy>
<failurePolicy>not-found</failurePolicy>
<whiteListPatterns>
<whiteListPattern>javax/**</whiteListPattern>
</whiteListPatterns>
</proxyConnector>
</proxyConnectors>
<networkProxies>
<networkProxy>
<id>example</id>
<protocol>http</protocol>
<host>proxy.mycompany.com</host>
<port>8080</port>
<username>myself</username>
<password>mypass</password>
</networkProxy>
</networkProxies>
<repositoryScanning>
<fileTypes>
<fileType>
<id>artifacts</id>
<patterns>
<pattern>**/*.pom</pattern>
<pattern>**/*.jar</pattern>
<pattern>**/*.ear</pattern>
<pattern>**/*.war</pattern>
<pattern>**/*.car</pattern>
<pattern>**/*.sar</pattern>
<pattern>**/*.mar</pattern>
<pattern>**/*.rar</pattern>
<pattern>**/*.dtd</pattern>
<pattern>**/*.tld</pattern>
<pattern>**/*.tar.gz</pattern>
<pattern>**/*.tar.bz2</pattern>
<pattern>**/*.zip</pattern>
</patterns>
</fileType>
<fileType>
<id>indexable-content</id>
<patterns>
<pattern>**/*.txt</pattern>
<pattern>**/*.TXT</pattern>
<pattern>**/*.block</pattern>
<pattern>**/*.config</pattern>
<pattern>**/*.pom</pattern>
<pattern>**/*.xml</pattern>
<pattern>**/*.xsd</pattern>
<pattern>**/*.dtd</pattern>
<pattern>**/*.tld</pattern>
</patterns>
</fileType>
<fileType>
<id>auto-remove</id>
<patterns>
<pattern>**/*.bak</pattern>
<pattern>**/*~</pattern>
<pattern>**/*-</pattern>
</patterns>
</fileType>
<fileType>
<id>ignored</id>
<patterns>
<pattern>**/.htaccess</pattern>
<pattern>**/KEYS</pattern>
<pattern>**/*.rb</pattern>
<pattern>**/*.sh</pattern>
<pattern>**/.svn/**</pattern>
<pattern>**/.DAV/**</pattern>
</patterns>
</fileType>
</fileTypes>
<knownContentConsumers>
<knownContentConsumer>update-db-artifact</knownContentConsumer>
<knownContentConsumer>create-missing-checksums</knownContentConsumer>
<knownContentConsumer>update-db-repository-metadata</knownContentConsumer>
<knownContentConsumer>validate-checksum</knownContentConsumer>
<knownContentConsumer>validate-signature</knownContentConsumer>
<knownContentConsumer>index-content</knownContentConsumer>
<knownContentConsumer>auto-remove</knownContentConsumer>
<knownContentConsumer>auto-rename</knownContentConsumer>
<knownContentConsumer>repository-purge</knownContentConsumer>
</knownContentConsumers>
<invalidContentConsumers>
<invalidContentConsumer>update-db-bad-content</invalidContentConsumer>
</invalidContentConsumers>
</repositoryScanning>
<databaseScanning>
<cronExpression>0 0 * * ?</cronExpression>
<unprocessedConsumers>
<unprocessedConsumer>index-artifact</unprocessedConsumer>
<unprocessedConsumer>update-db-project</unprocessedConsumer>
<unprocessedConsumer>validate-repository-metadata</unprocessedConsumer>
<unprocessedConsumer>index-archive-toc</unprocessedConsumer>
<unprocessedConsumer>update-db-bytecode-stats</unprocessedConsumer>
<unprocessedConsumer>index-public-methods</unprocessedConsumer>
</unprocessedConsumers>
<cleanupConsumers>
<cleanupConsumer>not-present-remove-db-artifact</cleanupConsumer>
<cleanupConsumer>not-present-remove-db-project</cleanupConsumer>
<cleanupConsumer>not-present-remove-indexed</cleanupConsumer>
</cleanupConsumers>
</databaseScanning>
<webapp>
<ui>
<showFindArtifacts>true</showFindArtifacts>
<appletFindEnabled>true</appletFindEnabled>
</ui>
</webapp>
</configuration>

View File

@ -0,0 +1,226 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
~ 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.
-->
<component-set>
<components>
<!-- DaysOldRepositoryPurge -->
<component>
<role>org.apache.maven.archiva.consumers.core.repository.RepositoryPurge</role>
<role-hint>days-old</role-hint>
<implementation>org.apache.maven.archiva.consumers.core.repository.DaysOldRepositoryPurge</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.database.ArchivaDAO</role>
<role-hint>jdo</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.archiva.indexer.RepositoryContentIndexFactory</role>
<role-hint>lucene</role-hint>
</requirement>
</requirements>
</component>
<!-- LuceneRepositoryContentIndexFactory -->
<component>
<role>org.apache.maven.archiva.indexer.RepositoryContentIndexFactory</role>
<role-hint>lucene</role-hint>
<implementation>org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentIndexFactory</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
<role-hint></role-hint>
</requirement>
</requirements>
</component>
<!-- ArchivaConfiguration -->
<component>
<role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
<role-hint>test-configuration</role-hint>
<implementation>org.apache.maven.archiva.configuration.DefaultArchivaConfiguration</implementation>
<requirements>
<requirement>
<role>org.codehaus.plexus.registry.Registry</role>
<role-hint>configured</role-hint>
</requirement>
</requirements>
</component>
<component>
<role>org.codehaus.plexus.registry.Registry</role>
<role-hint>configured</role-hint>
<implementation>org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry</implementation>
<configuration>
<properties>
<system/>
<xml fileName="${basedir}/src/test/conf/repository-manager.xml"
config-name="org.apache.maven.archiva" config-at="org.apache.maven.archiva"/>
</properties>
</configuration>
</component>
<!-- ArchivaDAO -->
<component>
<role>org.apache.maven.archiva.database.ArchivaDAO</role>
<role-hint>jdo</role-hint>
<implementation>org.apache.maven.archiva.database.jdo.JdoArchivaDAO</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
<role-hint>archiva</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.archiva.database.ArtifactDAO</role>
<role-hint>jdo</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.archiva.database.ProjectModelDAO</role>
<role-hint>jdo</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.archiva.database.RepositoryDAO</role>
<role-hint>jdo</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.archiva.database.RepositoryProblemDAO</role>
<role-hint>jdo</role-hint>
</requirement>
</requirements>
</component>
<!-- JdoAccess -->
<component>
<role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
<role-hint>archiva</role-hint>
<implementation>org.apache.maven.archiva.database.jdo.JdoAccess</implementation>
<requirements>
<requirement>
<role>org.codehaus.plexus.jdo.JdoFactory</role>
<role-hint>archiva</role-hint>
</requirement>
</requirements>
</component>
<!-- ArtifactDAO -->
<component>
<role>org.apache.maven.archiva.database.ArtifactDAO</role>
<role-hint>jdo</role-hint>
<implementation>org.apache.maven.archiva.database.jdo.JdoArtifactDAO</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
<role-hint>archiva</role-hint>
</requirement>
</requirements>
</component>
<!-- ProjectModelDAO -->
<component>
<role>org.apache.maven.archiva.database.ProjectModelDAO</role>
<role-hint>jdo</role-hint>
<implementation>org.apache.maven.archiva.database.jdo.JdoProjectModelDAO</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
<role-hint>archiva</role-hint>
</requirement>
</requirements>
</component>
<!-- RepositoryDAO -->
<component>
<role>org.apache.maven.archiva.database.RepositoryDAO</role>
<role-hint>jdo</role-hint>
<implementation>org.apache.maven.archiva.database.jdo.JdoRepositoryDAO</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
<role-hint>archiva</role-hint>
</requirement>
</requirements>
</component>
<!-- RepositoryProblemDAO -->
<component>
<role>org.apache.maven.archiva.database.RepositoryProblemDAO</role>
<role-hint>jdo</role-hint>
<implementation>org.apache.maven.archiva.database.jdo.JdoRepositoryProblemDAO</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
<role-hint>archiva</role-hint>
</requirement>
</requirements>
</component>
<!-- JDO Factory -->
<component>
<role>org.codehaus.plexus.jdo.JdoFactory</role>
<role-hint>archiva</role-hint>
<implementation>org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory</implementation>
<configuration>
<persistenceManagerFactoryClass>org.jpox.PersistenceManagerFactoryImpl</persistenceManagerFactoryClass>
<driverName>org.hsqldb.jdbcDriver</driverName>
<userName>sa</userName>
<password></password>
<url>jdbc:hsqldb:mem:testdb</url>
<otherProperties>
<property>
<name>javax.jdo.PersistenceManagerFactoryClass</name>
<value>org.jpox.PersistenceManagerFactoryImpl</value>
</property>
<!--property>
<name>org.jpox.transactionIsolation</name>
<value>READ_COMMITTED</value>
</property>
<property>
<name>org.jpox.poid.transactionIsolation</name>
<value>READ_COMMITTED</value>
</property>
<property>
<name>org.jpox.autoCreateSchema</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.RetainValues</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.RestoreValues</name>
<value>true</value>
</property>
<property>
<name>org.jpox.validateTables</name>
<value>true</value>
</property>
<property>
<name>org.jpox.validateColumns</name>
<value>true</value>
</property>
<property>
<name>org.jpox.validateConstraints</name>
<value>true</value>
</property-->
</otherProperties>
</configuration>
</component>
</components>
</component-set>

View File

@ -0,0 +1,226 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
~ 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.
-->
<component-set>
<components>
<!-- RetentionCountRepositoryPurge -->
<component>
<role>org.apache.maven.archiva.consumers.core.repository.RepositoryPurge</role>
<role-hint>retention-count</role-hint>
<implementation>org.apache.maven.archiva.consumers.core.repository.RetentionCountRepositoryPurge</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.database.ArchivaDAO</role>
<role-hint>jdo</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.archiva.indexer.RepositoryContentIndexFactory</role>
<role-hint>lucene</role-hint>
</requirement>
</requirements>
</component>
<!-- LuceneRepositoryContentIndexFactory -->
<component>
<role>org.apache.maven.archiva.indexer.RepositoryContentIndexFactory</role>
<role-hint>lucene</role-hint>
<implementation>org.apache.maven.archiva.indexer.lucene.LuceneRepositoryContentIndexFactory</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
<role-hint></role-hint>
</requirement>
</requirements>
</component>
<!-- ArchivaConfiguration -->
<component>
<role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role>
<role-hint>test-configuration</role-hint>
<implementation>org.apache.maven.archiva.configuration.DefaultArchivaConfiguration</implementation>
<requirements>
<requirement>
<role>org.codehaus.plexus.registry.Registry</role>
<role-hint>configured</role-hint>
</requirement>
</requirements>
</component>
<component>
<role>org.codehaus.plexus.registry.Registry</role>
<role-hint>configured</role-hint>
<implementation>org.codehaus.plexus.registry.commons.CommonsConfigurationRegistry</implementation>
<configuration>
<properties>
<system/>
<xml fileName="${basedir}/src/test/conf/repository-manager.xml"
config-name="org.apache.maven.archiva" config-at="org.apache.maven.archiva"/>
</properties>
</configuration>
</component>
<!-- ArchivaDAO -->
<component>
<role>org.apache.maven.archiva.database.ArchivaDAO</role>
<role-hint>jdo</role-hint>
<implementation>org.apache.maven.archiva.database.jdo.JdoArchivaDAO</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
<role-hint>archiva</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.archiva.database.ArtifactDAO</role>
<role-hint>jdo</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.archiva.database.ProjectModelDAO</role>
<role-hint>jdo</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.archiva.database.RepositoryDAO</role>
<role-hint>jdo</role-hint>
</requirement>
<requirement>
<role>org.apache.maven.archiva.database.RepositoryProblemDAO</role>
<role-hint>jdo</role-hint>
</requirement>
</requirements>
</component>
<!-- JdoAccess -->
<component>
<role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
<role-hint>archiva</role-hint>
<implementation>org.apache.maven.archiva.database.jdo.JdoAccess</implementation>
<requirements>
<requirement>
<role>org.codehaus.plexus.jdo.JdoFactory</role>
<role-hint>archiva</role-hint>
</requirement>
</requirements>
</component>
<!-- ArtifactDAO -->
<component>
<role>org.apache.maven.archiva.database.ArtifactDAO</role>
<role-hint>jdo</role-hint>
<implementation>org.apache.maven.archiva.database.jdo.JdoArtifactDAO</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
<role-hint>archiva</role-hint>
</requirement>
</requirements>
</component>
<!-- ProjectModelDAO -->
<component>
<role>org.apache.maven.archiva.database.ProjectModelDAO</role>
<role-hint>jdo</role-hint>
<implementation>org.apache.maven.archiva.database.jdo.JdoProjectModelDAO</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
<role-hint>archiva</role-hint>
</requirement>
</requirements>
</component>
<!-- RepositoryDAO -->
<component>
<role>org.apache.maven.archiva.database.RepositoryDAO</role>
<role-hint>jdo</role-hint>
<implementation>org.apache.maven.archiva.database.jdo.JdoRepositoryDAO</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
<role-hint>archiva</role-hint>
</requirement>
</requirements>
</component>
<!-- RepositoryProblemDAO -->
<component>
<role>org.apache.maven.archiva.database.RepositoryProblemDAO</role>
<role-hint>jdo</role-hint>
<implementation>org.apache.maven.archiva.database.jdo.JdoRepositoryProblemDAO</implementation>
<requirements>
<requirement>
<role>org.apache.maven.archiva.database.jdo.JdoAccess</role>
<role-hint>archiva</role-hint>
</requirement>
</requirements>
</component>
<!-- JDO Factory -->
<component>
<role>org.codehaus.plexus.jdo.JdoFactory</role>
<role-hint>archiva</role-hint>
<implementation>org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory</implementation>
<configuration>
<persistenceManagerFactoryClass>org.jpox.PersistenceManagerFactoryImpl</persistenceManagerFactoryClass>
<driverName>org.hsqldb.jdbcDriver</driverName>
<userName>sa</userName>
<password></password>
<url>jdbc:hsqldb:mem:testdb</url>
<otherProperties>
<property>
<name>javax.jdo.PersistenceManagerFactoryClass</name>
<value>org.jpox.PersistenceManagerFactoryImpl</value>
</property>
<property>
<name>org.jpox.transactionIsolation</name>
<value>READ_COMMITTED</value>
</property>
<property>
<name>org.jpox.poid.transactionIsolation</name>
<value>READ_COMMITTED</value>
</property>
<property>
<name>org.jpox.autoCreateSchema</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.RetainValues</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.RestoreValues</name>
<value>true</value>
</property>
<property>
<name>org.jpox.validateTables</name>
<value>true</value>
</property>
<property>
<name>org.jpox.validateColumns</name>
<value>true</value>
</property>
<property>
<name>org.jpox.validateConstraints</name>
<value>true</value>
</property>
</otherProperties>
</configuration>
</component>
</components>
</component-set>

View File

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?><project>
<parent>
<artifactId>maven-plugins</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<version>4-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-install-plugin</artifactId>
<packaging>maven-plugin</packaging>
<name>Maven Install Plugin</name>
<version>2.2-20061118.060401-2</version>
<prerequisites />
<issueManagement>
<system>jira</system>
<url>http://jira.codehaus.org/browse/MINSTALL</url>
</issueManagement>
<inceptionYear>2004</inceptionYear>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact-manager</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-plugin-testing-harness</artifactId>
<version>1.0-beta-1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.archiva</groupId>
<artifactId>archiva-utils</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<distributionManagement>
<status>deployed</status>
</distributionManagement>
</project>

View File

@ -0,0 +1,71 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--
~ Copyright 2006 The Apache Software Foundation.
~
~ Licensed 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: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' xmlns='http://maven.apache.org/POM/4.0.0'>
<parent>
<artifactId>maven-plugins</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<version>8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-install-plugin</artifactId>
<packaging>maven-plugin</packaging>
<name>Maven Install Plugin</name>
<version>2.2-SNAPSHOT</version>
<inceptionYear>2004</inceptionYear>
<prerequisites>
<maven>2.0</maven>
</prerequisites>
<issueManagement>
<system>jira</system>
<url>http://jira.codehaus.org/browse/MINSTALL</url>
</issueManagement>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact-manager</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-plugin-testing-harness</artifactId>
<version>1.0-beta-1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-digest</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,71 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--
~ Copyright 2006 The Apache Software Foundation.
~
~ Licensed 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: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' xmlns='http://maven.apache.org/POM/4.0.0'>
<parent>
<artifactId>maven-plugins</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<version>8</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>maven-install-plugin</artifactId>
<packaging>maven-plugin</packaging>
<name>Maven Install Plugin</name>
<version>2.2-SNAPSHOT</version>
<inceptionYear>2004</inceptionYear>
<prerequisites>
<maven>2.0</maven>
</prerequisites>
<issueManagement>
<system>jira</system>
<url>http://jira.codehaus.org/browse/MINSTALL</url>
</issueManagement>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact-manager</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-artifact</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-plugin-testing-harness</artifactId>
<version>1.0-beta-1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-digest</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.2-SNAPSHOT</version>
<versioning>
<snapshot />
<lastUpdated>20070509114036</lastUpdated>
</versioning>
</metadata>

View File

@ -0,0 +1,93 @@
<?xml version="1.0"?><project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.codehaus.castor</groupId>
<artifactId>castor-anttasks</artifactId>
<name>Castor</name>
<version>1.1.2-20070427.065136-1</version>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-webdav</artifactId>
<version>1.0-beta-1</version>
</extension>
</extensions>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<configuration>
<attach>true</attach>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.codehaus.castor</groupId>
<artifactId>castor-codegen</artifactId>
<version>1.1.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.codehaus.castor</groupId>
<artifactId>castor-ddlgen</artifactId>
<version>1.1.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.13</version>
<scope>test</scope>
</dependency>
</dependencies>
<distributionManagement>
<repository>
<id>codehaus.org</id>
<name>Castor Central Distribution Repository</name>
<url>dav:https://dav.codehaus.org/repository/castor/</url>
</repository>
<snapshotRepository>
<id>codehaus.org</id>
<name>Castor Central Development Repository</name>
<url>dav:https://dav.codehaus.org/snapshots.repository/castor/</url>
</snapshotRepository>
<site>
<id>codehaus.org</id>
<url>dav:https://dav.codehaus.org/castor/</url>
</site>
<status>deployed</status>
</distributionManagement>
</project>

View File

@ -0,0 +1,93 @@
<?xml version="1.0"?><project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.codehaus.castor</groupId>
<artifactId>castor-anttasks</artifactId>
<name>Castor</name>
<version>1.1.2-20070506.163513-2</version>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-webdav</artifactId>
<version>1.0-beta-1</version>
</extension>
</extensions>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<configuration>
<attach>true</attach>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.codehaus.castor</groupId>
<artifactId>castor-codegen</artifactId>
<version>1.1.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.codehaus.castor</groupId>
<artifactId>castor-ddlgen</artifactId>
<version>1.1.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.13</version>
<scope>test</scope>
</dependency>
</dependencies>
<distributionManagement>
<repository>
<id>codehaus.org</id>
<name>Castor Central Distribution Repository</name>
<url>dav:https://dav.codehaus.org/repository/castor/</url>
</repository>
<snapshotRepository>
<id>codehaus.org</id>
<name>Castor Central Development Repository</name>
<url>dav:https://dav.codehaus.org/snapshots.repository/castor/</url>
</snapshotRepository>
<site>
<id>codehaus.org</id>
<url>dav:https://dav.codehaus.org/castor/</url>
</site>
<status>deployed</status>
</distributionManagement>
</project>

View File

@ -0,0 +1,136 @@
<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>
<groupId>org.codehaus.castor</groupId>
<artifactId>castor-anttasks</artifactId>
<version>1.1.2-SNAPSHOT</version>
<!--
<parent>
<groupId>org.codehaus.castor</groupId>
<artifactId>castor</artifactId>
<version>1.1-M3</version>
</parent>
-->
<packaging>jar</packaging>
<name>Castor</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<!--
<manifestEntries>
<url>${pom.url}</url>
</manifestEntries>
-->
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<configuration>
<attach>true</attach>
</configuration>
</plugin>
<!-- redundant; will be removed once we switch to parent structure -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<!-- redundant; will be removed once we switch to parent structure -->
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-webdav</artifactId>
<version>1.0-beta-1</version>
</extension>
</extensions>
</build>
<dependencies>
<dependency>
<groupId>org.codehaus.castor</groupId>
<artifactId>castor-codegen</artifactId>
<version>1.1.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.codehaus.castor</groupId>
<artifactId>castor-ddlgen</artifactId>
<version>1.1.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.13</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- redundant; will be removed once we switch to parent structure -->
<distributionManagement>
<repository>
<id>codehaus.org</id>
<name>Castor Central Distribution Repository</name>
<url>dav:https://dav.codehaus.org/repository/castor/</url>
</repository>
<snapshotRepository>
<id>codehaus.org</id>
<name>Castor Central Development Repository</name>
<url>dav:https://dav.codehaus.org/snapshots.repository/castor/</url>
</snapshotRepository>
<site>
<id>codehaus.org</id>
<url>dav:https://dav.codehaus.org/castor/</url>
</site>
</distributionManagement>
</project>

View File

@ -0,0 +1,50 @@
<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">
<parent>
<groupId>org.jruby</groupId>
<artifactId>shared</artifactId>
<version>1.0RC1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jruby.plugins</groupId>
<artifactId>jruby-rake-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0RC1-SNAPSHOT</version>
<name>JRuby Rake Plugin</name>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby-complete</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
<configuration>
<!-- Note: This is to allow typing "mvn jruby-rake:[goalname]" without having to type the -->
<!-- fully qualified name on the command line -->
<goalPrefix>jruby-rake</goalPrefix>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,50 @@
<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">
<parent>
<groupId>org.jruby</groupId>
<artifactId>shared</artifactId>
<version>1.0RC1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jruby.plugins</groupId>
<artifactId>jruby-rake-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0RC1-SNAPSHOT</version>
<name>JRuby Rake Plugin</name>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby-complete</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
<configuration>
<!-- Note: This is to allow typing "mvn jruby-rake:[goalname]" without having to type the -->
<!-- fully qualified name on the command line -->
<goalPrefix>jruby-rake</goalPrefix>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,50 @@
<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">
<parent>
<groupId>org.jruby</groupId>
<artifactId>shared</artifactId>
<version>1.0RC1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jruby.plugins</groupId>
<artifactId>jruby-rake-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0RC1-SNAPSHOT</version>
<name>JRuby Rake Plugin</name>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby-complete</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
<configuration>
<!-- Note: This is to allow typing "mvn jruby-rake:[goalname]" without having to type the -->
<!-- fully qualified name on the command line -->
<goalPrefix>jruby-rake</goalPrefix>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,50 @@
<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">
<parent>
<groupId>org.jruby</groupId>
<artifactId>shared</artifactId>
<version>1.0RC1-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jruby.plugins</groupId>
<artifactId>jruby-rake-plugin</artifactId>
<packaging>maven-plugin</packaging>
<version>1.0RC1-SNAPSHOT</version>
<name>JRuby Rake Plugin</name>
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-project</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>org.jruby</groupId>
<artifactId>jruby-complete</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
<configuration>
<!-- Note: This is to allow typing "mvn jruby-rake:[goalname]" without having to type the -->
<!-- fully qualified name on the command line -->
<goalPrefix>jruby-rake</goalPrefix>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>org.jruby.plugins</groupId>
<artifactId>jruby-rake-plugin</artifactId>
<version>1.0RC1-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20070506.090132</timestamp>
<buildNumber>4</buildNumber>
</snapshot>
<lastUpdated>20070506092020</lastUpdated>
</versioning>
</metadata>