mirror of https://github.com/apache/archiva.git
More Work Against Scanner / Layout / Artifact / Database
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/branches/archiva-jpox-database-refactor@519169 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
f5da042413
commit
3331e0fd83
|
@ -0,0 +1,130 @@
|
|||
package org.apache.maven.archiva.common.utils;
|
||||
|
||||
/*
|
||||
* 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.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
|
||||
/**
|
||||
* DateUtil - some (not-so) common date utility methods.
|
||||
*
|
||||
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class DateUtil
|
||||
{
|
||||
public static String getDuration( long duration )
|
||||
{
|
||||
return getDuration( new Date( 0 ), new Date( duration ) );
|
||||
}
|
||||
|
||||
public static String getDuration( long ms1, long ms2 )
|
||||
{
|
||||
return getDuration( new Date( ms1 ), new Date( ms2 ) );
|
||||
}
|
||||
|
||||
public static String getDuration( Date d1, Date d2 )
|
||||
{
|
||||
Calendar cal1 = new GregorianCalendar();
|
||||
cal1.setTime( d1 );
|
||||
|
||||
Calendar cal2 = new GregorianCalendar();
|
||||
cal2.setTime( d2 );
|
||||
|
||||
return getDuration( cal1, cal2 );
|
||||
}
|
||||
|
||||
public static String getDuration( Calendar cal1, Calendar cal2 )
|
||||
{
|
||||
int year1 = cal1.get( Calendar.YEAR );
|
||||
int day1 = cal1.get( Calendar.DAY_OF_YEAR );
|
||||
int hour1 = cal1.get( Calendar.HOUR_OF_DAY );
|
||||
int min1 = cal1.get( Calendar.MINUTE );
|
||||
int sec1 = cal1.get( Calendar.SECOND );
|
||||
int ms1 = cal1.get( Calendar.MILLISECOND );
|
||||
|
||||
int year2 = cal2.get( Calendar.YEAR );
|
||||
int day2 = cal2.get( Calendar.DAY_OF_YEAR );
|
||||
int hour2 = cal2.get( Calendar.HOUR_OF_DAY );
|
||||
int min2 = cal2.get( Calendar.MINUTE );
|
||||
int sec2 = cal2.get( Calendar.SECOND );
|
||||
int ms2 = cal2.get( Calendar.MILLISECOND );
|
||||
|
||||
int leftDays = ( day1 - day2 ) + ( year1 - year2 ) * 365;
|
||||
int leftHours = hour2 - hour1;
|
||||
int leftMins = min2 - min1;
|
||||
int leftSeconds = sec2 - sec1;
|
||||
int leftMilliSeconds = ms2 - ms1;
|
||||
|
||||
if ( leftMilliSeconds < 0 )
|
||||
{
|
||||
leftMilliSeconds += 1000;
|
||||
--leftSeconds;
|
||||
}
|
||||
|
||||
if ( leftSeconds < 0 )
|
||||
{
|
||||
leftSeconds += 60;
|
||||
--leftMins;
|
||||
}
|
||||
|
||||
if ( leftMins < 0 )
|
||||
{
|
||||
leftMins += 60;
|
||||
--leftHours;
|
||||
}
|
||||
|
||||
if ( leftHours < 0 )
|
||||
{
|
||||
leftHours += 24;
|
||||
--leftDays;
|
||||
}
|
||||
|
||||
StringBuffer interval = new StringBuffer();
|
||||
|
||||
appendInterval( interval, leftDays, "Day" );
|
||||
appendInterval( interval, leftHours, "Hour" );
|
||||
appendInterval( interval, leftMins, "Minute" );
|
||||
appendInterval( interval, leftSeconds, "Second" );
|
||||
appendInterval( interval, leftMilliSeconds, "Millisecond" );
|
||||
|
||||
return interval.toString();
|
||||
}
|
||||
|
||||
private static void appendInterval( StringBuffer interval, int count, String type )
|
||||
{
|
||||
if ( count > 0 )
|
||||
{
|
||||
if ( interval.length() > 0 )
|
||||
{
|
||||
interval.append( " " );
|
||||
}
|
||||
|
||||
interval.append( count );
|
||||
interval.append( " " ).append( type );
|
||||
if ( count > 1 )
|
||||
{
|
||||
interval.append( "s" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
package org.apache.maven.archiva.common.utils;
|
||||
|
||||
/*
|
||||
* 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.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
|
||||
import junit.framework.TestCase;
|
||||
|
||||
/**
|
||||
* DateUtilTest
|
||||
*
|
||||
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class DateUtilTest extends TestCase
|
||||
{
|
||||
private void assertDuration( String expectedDuration, String startTimestamp, String endTimestamp )
|
||||
throws ParseException
|
||||
{
|
||||
SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss SSS" );
|
||||
Date startDate = sdf.parse( startTimestamp );
|
||||
Date endDate = sdf.parse( endTimestamp );
|
||||
|
||||
// System.out.println( "Date: " + endTimestamp + " - " + startTimestamp + " = "
|
||||
// + ( endDate.getTime() - startDate.getTime() ) + " ms" );
|
||||
|
||||
assertEquals( expectedDuration, DateUtil.getDuration( startDate, endDate ) );
|
||||
}
|
||||
|
||||
public void testGetDurationDifference() throws ParseException
|
||||
{
|
||||
assertDuration( "2 Seconds", "2006-08-22 13:00:02 0000",
|
||||
"2006-08-22 13:00:04 0000" );
|
||||
|
||||
assertDuration( "12 Minutes 12 Seconds 234 Milliseconds", "2006-08-22 13:12:02 0000",
|
||||
"2006-08-22 13:24:14 0234" );
|
||||
|
||||
assertDuration( "12 Minutes 501 Milliseconds", "2006-08-22 13:12:01 0500",
|
||||
"2006-08-22 13:24:02 0001" );
|
||||
}
|
||||
|
||||
public void testGetDurationDirect() throws ParseException
|
||||
{
|
||||
assertEquals( "2 Seconds", DateUtil.getDuration( 2000 ) );
|
||||
|
||||
assertEquals( "12 Minutes 12 Seconds 234 Milliseconds", DateUtil.getDuration( 732234 ) );
|
||||
|
||||
assertEquals( "12 Minutes 501 Milliseconds", DateUtil.getDuration( 720501 ) );
|
||||
}
|
||||
}
|
|
@ -19,7 +19,8 @@ package org.apache.maven.archiva.consumers;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.maven.archiva.model.ArchivaRepository;
|
||||
import org.apache.maven.archiva.repository.ArchivaRepository;
|
||||
import org.apache.maven.archiva.repository.consumer.Consumer;
|
||||
import org.apache.maven.artifact.factory.ArtifactFactory;
|
||||
import org.codehaus.plexus.logging.AbstractLogEnabled;
|
||||
|
||||
|
|
|
@ -1,91 +0,0 @@
|
|||
package org.apache.maven.archiva.consumers;
|
||||
|
||||
/*
|
||||
* 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.common.utils.BaseFile;
|
||||
import org.apache.maven.archiva.model.ArchivaRepository;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* DiscovererConsumer
|
||||
*
|
||||
* @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public interface Consumer
|
||||
{
|
||||
public static final String ROLE = Consumer.class.getName();
|
||||
|
||||
/**
|
||||
* This is the human readable name for the discoverer.
|
||||
*
|
||||
* @return the human readable discoverer name.
|
||||
*/
|
||||
public String getName();
|
||||
|
||||
/**
|
||||
* This is used to initialize any internals in the consumer before it is used.
|
||||
*
|
||||
* This method is called by the internals of archiva and is not meant to be used by other developers.
|
||||
* This method is called once per repository.
|
||||
*
|
||||
* @param repository the repository to initialize the consumer against.
|
||||
* @return true if the repository is valid for this consumer. false will result in consumer being disabled
|
||||
* for the provided repository.
|
||||
*/
|
||||
public boolean init( ArchivaRepository repository );
|
||||
|
||||
/**
|
||||
* Get the List of excluded file patterns for this consumer.
|
||||
*
|
||||
* @return the list of excluded file patterns for this consumer.
|
||||
*/
|
||||
public List getExcludePatterns();
|
||||
|
||||
/**
|
||||
* Get the List of included file patterns for this consumer.
|
||||
*
|
||||
* @return the list of included file patterns for this consumer.
|
||||
*/
|
||||
public List getIncludePatterns();
|
||||
|
||||
/**
|
||||
* Called by archiva framework to indicate that there is a file suitable for consuming,
|
||||
* This method will only be called if the {@link #init(ArtifactRepository)} and {@link #getExcludePatterns()}
|
||||
* and {@link #getIncludePatterns()} all pass for this consumer.
|
||||
*
|
||||
* @param file the file to process.
|
||||
* @throws ConsumerException if there was a problem processing this file.
|
||||
*/
|
||||
public void processFile( BaseFile file ) throws ConsumerException;
|
||||
|
||||
/**
|
||||
* Called by archiva framework to indicate that there has been a problem detected
|
||||
* on a specific file.
|
||||
*
|
||||
* NOTE: It is very possible for 1 file to have more than 1 problem associated with it.
|
||||
*
|
||||
* @param file the file to process.
|
||||
* @param message the message describing the problem.
|
||||
*/
|
||||
public void processFileProblem( BaseFile file, String message );
|
||||
}
|
|
@ -1,70 +0,0 @@
|
|||
package org.apache.maven.archiva.consumers;
|
||||
|
||||
/*
|
||||
* 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.codehaus.plexus.PlexusConstants;
|
||||
import org.codehaus.plexus.PlexusContainer;
|
||||
import org.codehaus.plexus.context.Context;
|
||||
import org.codehaus.plexus.context.ContextException;
|
||||
import org.codehaus.plexus.logging.AbstractLogEnabled;
|
||||
import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable;
|
||||
|
||||
/**
|
||||
* DiscovererConsumerFactory - factory for consumers.
|
||||
*
|
||||
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
|
||||
* @version $Id$
|
||||
* @plexus.component role="org.apache.maven.archiva.common.consumers.ConsumerFactory"
|
||||
*/
|
||||
public class ConsumerFactory
|
||||
extends AbstractLogEnabled
|
||||
implements Contextualizable
|
||||
{
|
||||
public static final String ROLE = ConsumerFactory.class.getName();
|
||||
|
||||
private PlexusContainer container;
|
||||
|
||||
public Consumer createConsumer( String name )
|
||||
throws ConsumerException
|
||||
{
|
||||
getLogger().info( "Attempting to create consumer [" + name + "]" );
|
||||
|
||||
Consumer consumer;
|
||||
try
|
||||
{
|
||||
consumer = (Consumer) container.lookup( Consumer.ROLE, name, container.getLookupRealm() );
|
||||
}
|
||||
catch ( Throwable t )
|
||||
{
|
||||
String emsg = "Unable to create consumer [" + name + "]: " + t.getMessage();
|
||||
getLogger().warn( t.getMessage(), t );
|
||||
throw new ConsumerException( null, emsg, t );
|
||||
}
|
||||
|
||||
getLogger().info( "Created consumer [" + name + "|" + consumer.getName() + "]" );
|
||||
return consumer;
|
||||
}
|
||||
|
||||
public void contextualize( Context context )
|
||||
throws ContextException
|
||||
{
|
||||
container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY );
|
||||
}
|
||||
}
|
|
@ -24,7 +24,9 @@ import org.apache.maven.archiva.common.artifact.builder.DefaultLayoutArtifactBui
|
|||
import org.apache.maven.archiva.common.artifact.builder.LayoutArtifactBuilder;
|
||||
import org.apache.maven.archiva.common.artifact.builder.LegacyLayoutArtifactBuilder;
|
||||
import org.apache.maven.archiva.common.utils.BaseFile;
|
||||
import org.apache.maven.archiva.model.ArchivaRepository;
|
||||
import org.apache.maven.archiva.repository.ArchivaRepository;
|
||||
import org.apache.maven.archiva.repository.consumer.Consumer;
|
||||
import org.apache.maven.archiva.repository.consumer.ConsumerException;
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
|
||||
|
|
|
@ -20,6 +20,8 @@ package org.apache.maven.archiva.consumers;
|
|||
*/
|
||||
|
||||
import org.apache.maven.archiva.common.utils.BaseFile;
|
||||
import org.apache.maven.archiva.repository.consumer.Consumer;
|
||||
import org.apache.maven.archiva.repository.consumer.ConsumerException;
|
||||
import org.apache.maven.model.Model;
|
||||
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
|
||||
import org.codehaus.plexus.util.IOUtil;
|
||||
|
|
|
@ -21,6 +21,8 @@ package org.apache.maven.archiva.consumers;
|
|||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.maven.archiva.common.utils.BaseFile;
|
||||
import org.apache.maven.archiva.repository.consumer.Consumer;
|
||||
import org.apache.maven.archiva.repository.consumer.ConsumerException;
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
|
||||
|
|
|
@ -19,7 +19,7 @@ package org.apache.maven.archiva.consumers;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.maven.archiva.model.ArchivaRepository;
|
||||
import org.apache.maven.archiva.repository.ArchivaRepository;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
import org.codehaus.plexus.util.FileUtils;
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package org.apache.maven.archiva.consumers;
|
||||
|
||||
import org.apache.maven.archiva.repository.consumer.ConsumerFactory;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
|
|
|
@ -20,7 +20,7 @@ package org.apache.maven.archiva.consumers;
|
|||
*/
|
||||
|
||||
import org.apache.maven.archiva.common.utils.BaseFile;
|
||||
import org.apache.maven.archiva.consumers.ConsumerException;
|
||||
import org.apache.maven.archiva.repository.consumer.ConsumerException;
|
||||
import org.codehaus.plexus.util.StringUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
|
@ -21,7 +21,8 @@ package org.apache.maven.archiva.consumers;
|
|||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.maven.archiva.common.utils.BaseFile;
|
||||
import org.apache.maven.archiva.model.ArchivaRepository;
|
||||
import org.apache.maven.archiva.repository.ArchivaRepository;
|
||||
import org.apache.maven.archiva.repository.consumer.ConsumerException;
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
|
@ -23,12 +23,12 @@ import org.apache.maven.archiva.configuration.ArchivaConfiguration;
|
|||
import org.apache.maven.archiva.configuration.Configuration;
|
||||
import org.apache.maven.archiva.configuration.ConfiguredRepositoryFactory;
|
||||
import org.apache.maven.archiva.configuration.RepositoryConfiguration;
|
||||
import org.apache.maven.archiva.consumers.Consumer;
|
||||
import org.apache.maven.archiva.consumers.ConsumerException;
|
||||
import org.apache.maven.archiva.consumers.ConsumerFactory;
|
||||
import org.apache.maven.archiva.discoverer.Discoverer;
|
||||
import org.apache.maven.archiva.discoverer.DiscovererException;
|
||||
import org.apache.maven.archiva.discoverer.DiscovererStatistics;
|
||||
import org.apache.maven.archiva.repository.consumer.Consumer;
|
||||
import org.apache.maven.archiva.repository.consumer.ConsumerException;
|
||||
import org.apache.maven.archiva.repository.consumer.ConsumerFactory;
|
||||
import org.apache.maven.archiva.scheduler.task.DataRefreshTask;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.codehaus.plexus.logging.AbstractLogEnabled;
|
||||
|
|
|
@ -1,69 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Licensed to the Apache Software Foundation (ASF) under one
|
||||
~ or more contributor license agreements. See the NOTICE file
|
||||
~ distributed with this work for additional information
|
||||
~ regarding copyright ownership. The ASF licenses this file
|
||||
~ to you under the Apache License, Version 2.0 (the
|
||||
~ "License"); you may not use this file except in compliance
|
||||
~ with the License. You may obtain a copy of the License at
|
||||
~
|
||||
~ http://www.apache.org/licenses/LICENSE-2.0
|
||||
~
|
||||
~ Unless required by applicable law or agreed to in writing,
|
||||
~ software distributed under the License is distributed on an
|
||||
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
~ KIND, either express or implied. See the License for the
|
||||
~ specific language governing permissions and limitations
|
||||
~ under the License.
|
||||
-->
|
||||
|
||||
<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.apache.maven.archiva</groupId>
|
||||
<artifactId>archiva</artifactId>
|
||||
<version>1.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>archiva-discoverer</artifactId>
|
||||
<name>Archiva Discoverer</name>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.archiva</groupId>
|
||||
<artifactId>archiva-consumer-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.archiva</groupId>
|
||||
<artifactId>archiva-common</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-utils</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-container-default</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-artifact</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-repository-metadata</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-artifact-manager</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
<artifactId>maven-model</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-lang</groupId>
|
||||
<artifactId>commons-lang</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -1,178 +0,0 @@
|
|||
package org.apache.maven.archiva.discoverer;
|
||||
|
||||
/*
|
||||
* 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.Consumer;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.codehaus.plexus.logging.AbstractLogEnabled;
|
||||
import org.codehaus.plexus.util.DirectoryWalker;
|
||||
import org.codehaus.plexus.util.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Discoverer Implementation.
|
||||
*
|
||||
* @author <a href="mailto:brett@apache.org">Brett Porter</a>
|
||||
* @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
|
||||
* @plexus.component role="org.apache.maven.archiva.discoverer.Discoverer"
|
||||
*/
|
||||
public class DefaultDiscoverer
|
||||
extends AbstractLogEnabled
|
||||
implements Discoverer
|
||||
{
|
||||
/**
|
||||
* Standard patterns to exclude from discovery as they are usually noise.
|
||||
*/
|
||||
private static final String[] STANDARD_DISCOVERY_EXCLUDES = {
|
||||
"bin/**",
|
||||
"reports/**",
|
||||
".index",
|
||||
".reports/**",
|
||||
".maven/**",
|
||||
"**/*snapshot-version",
|
||||
"*/website/**",
|
||||
"*/licences/**",
|
||||
"**/.htaccess",
|
||||
"**/*.html",
|
||||
"**/*.txt",
|
||||
"**/README*",
|
||||
"**/CHANGELOG*",
|
||||
"**/KEYS*" };
|
||||
|
||||
public DefaultDiscoverer()
|
||||
{
|
||||
}
|
||||
|
||||
public DiscovererStatistics walkRepository( ArtifactRepository repository, List consumers, boolean includeSnapshots )
|
||||
throws DiscovererException
|
||||
{
|
||||
return walkRepository( repository, consumers, includeSnapshots, 0, null, null );
|
||||
}
|
||||
|
||||
public DiscovererStatistics walkRepository( ArtifactRepository repository, List consumers,
|
||||
boolean includeSnapshots, long onlyModifiedAfterTimestamp,
|
||||
List extraFileExclusions, List extraFileInclusions )
|
||||
throws DiscovererException
|
||||
{
|
||||
// Sanity Check
|
||||
|
||||
if ( repository == null )
|
||||
{
|
||||
throw new IllegalArgumentException( "Unable to operate on a null repository." );
|
||||
}
|
||||
|
||||
if ( !"file".equals( repository.getProtocol() ) )
|
||||
{
|
||||
throw new UnsupportedOperationException( "Only filesystem repositories are supported." );
|
||||
}
|
||||
|
||||
File repositoryBase = new File( repository.getBasedir() );
|
||||
|
||||
if ( !repositoryBase.exists() )
|
||||
{
|
||||
throw new UnsupportedOperationException( "Unable to scan a repository, directory "
|
||||
+ repositoryBase.getAbsolutePath() + " does not exist." );
|
||||
}
|
||||
|
||||
if ( !repositoryBase.isDirectory() )
|
||||
{
|
||||
throw new UnsupportedOperationException( "Unable to scan a repository, path "
|
||||
+ repositoryBase.getAbsolutePath() + " is not a directory." );
|
||||
}
|
||||
|
||||
// Setup Includes / Excludes.
|
||||
|
||||
List allExcludes = new ArrayList();
|
||||
List allIncludes = new ArrayList();
|
||||
|
||||
// Exclude all of the SCM patterns.
|
||||
allExcludes.addAll( FileUtils.getDefaultExcludesAsList() );
|
||||
|
||||
// Exclude all of the archiva noise patterns.
|
||||
allExcludes.addAll( Arrays.asList( STANDARD_DISCOVERY_EXCLUDES ) );
|
||||
|
||||
if ( !includeSnapshots )
|
||||
{
|
||||
allExcludes.add( "**/*-SNAPSHOT*" );
|
||||
}
|
||||
|
||||
if ( extraFileExclusions != null )
|
||||
{
|
||||
allExcludes.addAll( extraFileExclusions );
|
||||
}
|
||||
|
||||
Iterator it = consumers.iterator();
|
||||
while ( it.hasNext() )
|
||||
{
|
||||
Consumer consumer = (Consumer) it.next();
|
||||
|
||||
/* NOTE: Do not insert the consumer exclusion patterns here.
|
||||
* Exclusion patterns are handled by RepositoryScanner.wantsFile(Consumer, String)
|
||||
*
|
||||
* addUniqueElements( consumer.getExcludePatterns(), allExcludes );
|
||||
*/
|
||||
addUniqueElements( consumer.getIncludePatterns(), allIncludes );
|
||||
}
|
||||
|
||||
if ( extraFileInclusions != null )
|
||||
{
|
||||
allIncludes.addAll( extraFileInclusions );
|
||||
}
|
||||
|
||||
// Setup Directory Walker
|
||||
|
||||
DirectoryWalker dirWalker = new DirectoryWalker();
|
||||
|
||||
dirWalker.setBaseDir( repositoryBase );
|
||||
|
||||
dirWalker.setIncludes( allIncludes );
|
||||
dirWalker.setExcludes( allExcludes );
|
||||
|
||||
// Setup the Scan Instance
|
||||
RepositoryScanner repoScanner = new RepositoryScanner( repository, consumers );
|
||||
repoScanner.setOnlyModifiedAfterTimestamp( onlyModifiedAfterTimestamp );
|
||||
|
||||
repoScanner.setLogger( getLogger() );
|
||||
dirWalker.addDirectoryWalkListener( repoScanner );
|
||||
|
||||
// Execute scan.
|
||||
dirWalker.scan();
|
||||
|
||||
return repoScanner.getStatistics();
|
||||
}
|
||||
|
||||
private void addUniqueElements( List fromList, List toList )
|
||||
{
|
||||
Iterator itFrom = fromList.iterator();
|
||||
while ( itFrom.hasNext() )
|
||||
{
|
||||
Object o = itFrom.next();
|
||||
if ( !toList.contains( o ) )
|
||||
{
|
||||
toList.add( o );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,73 +0,0 @@
|
|||
package org.apache.maven.archiva.discoverer;
|
||||
|
||||
/*
|
||||
* 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.artifact.repository.ArtifactRepository;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Discoverer - generic discoverer of content in an ArtifactRepository.
|
||||
*
|
||||
* @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public interface Discoverer
|
||||
{
|
||||
public static final String ROLE = Discoverer.class.getName();
|
||||
|
||||
/**
|
||||
* Walk the repository, and report to the consumers the files found.
|
||||
*
|
||||
* Report changes to the appropriate Consumer.
|
||||
*
|
||||
* This is just a convenience method to {@link #walkRepository(ArtifactRepository, List, boolean, long, List, List)}
|
||||
* equivalent to calling <code>walkRepository( repository, consumers, includeSnapshots, 0, null, null );</code>
|
||||
*
|
||||
* @param repository the repository to change.
|
||||
* @param consumers use the provided list of consumers.
|
||||
* @param includeSnapshots true to include snapshots in the walking of this repository.
|
||||
* @return the statistics for this scan.
|
||||
* @throws DiscovererException if there was a fundamental problem with getting the discoverer started.
|
||||
*/
|
||||
public DiscovererStatistics walkRepository( ArtifactRepository repository, List consumers, boolean includeSnapshots )
|
||||
throws DiscovererException;
|
||||
|
||||
/**
|
||||
* Walk the repository, and report to the consumers the files found.
|
||||
*
|
||||
* Report changes to the appropriate Consumer.
|
||||
*
|
||||
* @param repository the repository to change.
|
||||
* @param consumers use the provided list of consumers.
|
||||
* @param includeSnapshots true to include snapshots in the scanning of this repository.
|
||||
* @param onlyModifiedAfterTimestamp Only report to the consumers, files that have a {@link File#lastModified()})
|
||||
* after the provided timestamp.
|
||||
* @param extraFileExclusions an optional list of file exclusions on the walk.
|
||||
* @param extraFileInclusions an optional list of file inclusions on the walk.
|
||||
* @return the statistics for this scan.
|
||||
* @throws DiscovererException if there was a fundamental problem with getting the discoverer started.
|
||||
*/
|
||||
public DiscovererStatistics walkRepository( ArtifactRepository repository, List consumers,
|
||||
boolean includeSnapshots, long onlyModifiedAfterTimestamp,
|
||||
List extraFileExclusions, List extraFileInclusions )
|
||||
throws DiscovererException;
|
||||
}
|
|
@ -1,37 +0,0 @@
|
|||
package org.apache.maven.archiva.discoverer;
|
||||
|
||||
/*
|
||||
* 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 Edwin Punzalan
|
||||
*/
|
||||
public class DiscovererException
|
||||
extends Exception
|
||||
{
|
||||
public DiscovererException( String message )
|
||||
{
|
||||
super( message );
|
||||
}
|
||||
|
||||
public DiscovererException( String message, Throwable cause )
|
||||
{
|
||||
super( message, cause );
|
||||
}
|
||||
}
|
|
@ -1,198 +0,0 @@
|
|||
package org.apache.maven.archiva.discoverer;
|
||||
|
||||
/*
|
||||
* 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.commons.lang.math.NumberUtils;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.codehaus.plexus.util.IOUtil;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.Properties;
|
||||
|
||||
/**
|
||||
* DiscovererStatistics
|
||||
*
|
||||
* @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class DiscovererStatistics
|
||||
{
|
||||
private static final String PROP_FILES_CONSUMED = "scan.consumed.files";
|
||||
|
||||
private static final String PROP_FILES_INCLUDED = "scan.included.files";
|
||||
|
||||
private static final String PROP_FILES_SKIPPED = "scan.skipped.files";
|
||||
|
||||
private static final String PROP_TIMESTAMP_STARTED = "scan.started.timestamp";
|
||||
|
||||
private static final String PROP_TIMESTAMP_FINISHED = "scan.finished.timestamp";
|
||||
|
||||
protected long timestampStarted = 0;
|
||||
|
||||
protected long timestampFinished = 0;
|
||||
|
||||
protected long filesIncluded = 0;
|
||||
|
||||
protected long filesConsumed = 0;
|
||||
|
||||
protected long filesSkipped = 0;
|
||||
|
||||
private ArtifactRepository repository;
|
||||
|
||||
public DiscovererStatistics( ArtifactRepository repository )
|
||||
{
|
||||
this.repository = repository;
|
||||
}
|
||||
|
||||
public void load( String filename )
|
||||
throws IOException
|
||||
{
|
||||
File repositoryBase = new File( this.repository.getBasedir() );
|
||||
|
||||
File scanProperties = new File( repositoryBase, filename );
|
||||
FileInputStream fis = null;
|
||||
try
|
||||
{
|
||||
Properties props = new Properties();
|
||||
fis = new FileInputStream( scanProperties );
|
||||
props.load( fis );
|
||||
|
||||
timestampFinished = NumberUtils.toLong( props.getProperty( PROP_TIMESTAMP_FINISHED ), 0 );
|
||||
timestampStarted = NumberUtils.toLong( props.getProperty( PROP_TIMESTAMP_STARTED ), 0 );
|
||||
filesIncluded = NumberUtils.toLong( props.getProperty( PROP_FILES_INCLUDED ), 0 );
|
||||
filesConsumed = NumberUtils.toLong( props.getProperty( PROP_FILES_CONSUMED ), 0 );
|
||||
filesSkipped = NumberUtils.toLong( props.getProperty( PROP_FILES_SKIPPED ), 0 );
|
||||
}
|
||||
catch ( IOException e )
|
||||
{
|
||||
reset();
|
||||
throw e;
|
||||
}
|
||||
finally
|
||||
{
|
||||
IOUtil.close( fis );
|
||||
}
|
||||
}
|
||||
|
||||
public void save( String filename )
|
||||
throws IOException
|
||||
{
|
||||
Properties props = new Properties();
|
||||
props.setProperty( PROP_TIMESTAMP_FINISHED, String.valueOf( timestampFinished ) );
|
||||
props.setProperty( PROP_TIMESTAMP_STARTED, String.valueOf( timestampStarted ) );
|
||||
props.setProperty( PROP_FILES_INCLUDED, String.valueOf( filesIncluded ) );
|
||||
props.setProperty( PROP_FILES_CONSUMED, String.valueOf( filesConsumed ) );
|
||||
props.setProperty( PROP_FILES_SKIPPED, String.valueOf( filesSkipped ) );
|
||||
|
||||
File repositoryBase = new File( this.repository.getBasedir() );
|
||||
File statsFile = new File( repositoryBase, filename );
|
||||
|
||||
FileOutputStream fos = null;
|
||||
try
|
||||
{
|
||||
fos = new FileOutputStream( statsFile );
|
||||
props.store( fos, "Last Scan Information, managed by Archiva. DO NOT EDIT" );
|
||||
fos.flush();
|
||||
}
|
||||
finally
|
||||
{
|
||||
IOUtil.close( fos );
|
||||
}
|
||||
}
|
||||
|
||||
public void reset()
|
||||
{
|
||||
timestampStarted = 0;
|
||||
timestampFinished = 0;
|
||||
filesIncluded = 0;
|
||||
filesConsumed = 0;
|
||||
filesSkipped = 0;
|
||||
}
|
||||
|
||||
public long getElapsedMilliseconds()
|
||||
{
|
||||
return timestampFinished - timestampStarted;
|
||||
}
|
||||
|
||||
public long getFilesConsumed()
|
||||
{
|
||||
return filesConsumed;
|
||||
}
|
||||
|
||||
public long getFilesIncluded()
|
||||
{
|
||||
return filesIncluded;
|
||||
}
|
||||
|
||||
public ArtifactRepository getRepository()
|
||||
{
|
||||
return repository;
|
||||
}
|
||||
|
||||
public long getTimestampFinished()
|
||||
{
|
||||
return timestampFinished;
|
||||
}
|
||||
|
||||
public long getTimestampStarted()
|
||||
{
|
||||
return timestampStarted;
|
||||
}
|
||||
|
||||
public long getFilesSkipped()
|
||||
{
|
||||
return filesSkipped;
|
||||
}
|
||||
|
||||
public void setTimestampFinished( long timestampFinished )
|
||||
{
|
||||
this.timestampFinished = timestampFinished;
|
||||
}
|
||||
|
||||
public void setTimestampStarted( long timestampStarted )
|
||||
{
|
||||
this.timestampStarted = timestampStarted;
|
||||
}
|
||||
|
||||
public void dump( Logger logger )
|
||||
{
|
||||
logger.info( "----------------------------------------------------" );
|
||||
logger.info( "Scan of Repository: " + repository.getId() );
|
||||
logger.info( " Started : " + toHumanTimestamp( this.getTimestampStarted() ) );
|
||||
logger.info( " Finished: " + toHumanTimestamp( this.getTimestampFinished() ) );
|
||||
// TODO: pretty print ellapsed time.
|
||||
logger.info( " Duration: " + this.getElapsedMilliseconds() + "ms" );
|
||||
logger.info( " Files : " + this.getFilesIncluded() );
|
||||
logger.info( " Consumed: " + this.getFilesConsumed() );
|
||||
logger.info( " Skipped : " + this.getFilesSkipped() );
|
||||
}
|
||||
|
||||
private String toHumanTimestamp( long timestamp )
|
||||
{
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat();
|
||||
return dateFormat.format( new Date( timestamp ) );
|
||||
}
|
||||
}
|
|
@ -1,209 +0,0 @@
|
|||
package org.apache.maven.archiva.discoverer;
|
||||
|
||||
/*
|
||||
* 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.commons.lang.SystemUtils;
|
||||
import org.apache.maven.archiva.common.utils.BaseFile;
|
||||
import org.apache.maven.archiva.consumers.Consumer;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.codehaus.plexus.util.DirectoryWalkListener;
|
||||
import org.codehaus.plexus.util.SelectorUtils;
|
||||
import org.codehaus.plexus.util.StringUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* RepositoryScanner - this is an instance of a scan against a repository.
|
||||
*
|
||||
* @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class RepositoryScanner
|
||||
implements DirectoryWalkListener
|
||||
{
|
||||
public static final String ROLE = RepositoryScanner.class.getName();
|
||||
|
||||
private List consumers;
|
||||
|
||||
private ArtifactRepository repository;
|
||||
|
||||
private Logger logger;
|
||||
|
||||
private boolean isCaseSensitive = true;
|
||||
|
||||
private DiscovererStatistics stats;
|
||||
|
||||
private long onlyModifiedAfterTimestamp = 0;
|
||||
|
||||
public RepositoryScanner( ArtifactRepository repository, List consumerList )
|
||||
{
|
||||
this.repository = repository;
|
||||
this.consumers = consumerList;
|
||||
stats = new DiscovererStatistics( repository );
|
||||
|
||||
Iterator it = this.consumers.iterator();
|
||||
while ( it.hasNext() )
|
||||
{
|
||||
Consumer consumer = (Consumer) it.next();
|
||||
|
||||
if ( !consumer.init( this.repository ) )
|
||||
{
|
||||
throw new IllegalStateException( "Consumer [" + consumer.getName() +
|
||||
"] is reporting that it is incompatible with the [" + repository.getId() + "] repository." );
|
||||
}
|
||||
}
|
||||
|
||||
if ( SystemUtils.IS_OS_WINDOWS )
|
||||
{
|
||||
isCaseSensitive = false;
|
||||
}
|
||||
}
|
||||
|
||||
public DiscovererStatistics getStatistics()
|
||||
{
|
||||
return stats;
|
||||
}
|
||||
|
||||
public void directoryWalkStarting( File basedir )
|
||||
{
|
||||
getLogger().info( "Walk Started: [" + this.repository.getId() + "] " + this.repository.getBasedir() );
|
||||
stats.reset();
|
||||
stats.timestampStarted = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
public void directoryWalkStep( int percentage, File file )
|
||||
{
|
||||
getLogger().debug( "Walk Step: " + percentage + ", " + file );
|
||||
|
||||
// Timestamp finished points to the last successful scan, not this current one.
|
||||
if ( file.lastModified() < onlyModifiedAfterTimestamp )
|
||||
{
|
||||
// Skip file as no change has occured.
|
||||
getLogger().debug( "Skipping, No Change: " + file.getAbsolutePath() );
|
||||
stats.filesSkipped++;
|
||||
return;
|
||||
}
|
||||
|
||||
synchronized ( consumers )
|
||||
{
|
||||
stats.filesIncluded++;
|
||||
|
||||
BaseFile basefile = new BaseFile( repository.getBasedir(), file );
|
||||
|
||||
Iterator itConsumers = this.consumers.iterator();
|
||||
while ( itConsumers.hasNext() )
|
||||
{
|
||||
Consumer consumer = (Consumer) itConsumers.next();
|
||||
|
||||
if ( wantsFile( consumer, StringUtils.replace( basefile.getRelativePath(), "\\", "/" ) ) )
|
||||
{
|
||||
try
|
||||
{
|
||||
getLogger().debug( "Sending to consumer: " + consumer.getName() );
|
||||
stats.filesConsumed++;
|
||||
consumer.processFile( basefile );
|
||||
}
|
||||
catch ( Exception e )
|
||||
{
|
||||
/* Intentionally Catch all exceptions.
|
||||
* So that the discoverer processing can continue.
|
||||
*/
|
||||
getLogger().error( "Consumer [" + consumer.getName() + "] had an error when processing file [" +
|
||||
basefile.getAbsolutePath() + "]: " + e.getMessage(), e );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
getLogger().debug(
|
||||
"Skipping consumer " + consumer.getName() + " for file " + basefile.getRelativePath() );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void directoryWalkFinished()
|
||||
{
|
||||
getLogger().info( "Walk Finished: [" + this.repository.getId() + "] " + this.repository.getBasedir() );
|
||||
stats.timestampFinished = System.currentTimeMillis();
|
||||
}
|
||||
|
||||
private boolean wantsFile( Consumer consumer, String relativePath )
|
||||
{
|
||||
Iterator it;
|
||||
|
||||
// Test excludes first.
|
||||
it = consumer.getExcludePatterns().iterator();
|
||||
while ( it.hasNext() )
|
||||
{
|
||||
String pattern = (String) it.next();
|
||||
if ( SelectorUtils.matchPath( pattern, relativePath, isCaseSensitive ) )
|
||||
{
|
||||
// Definately does NOT WANT FILE.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Now test includes.
|
||||
it = consumer.getIncludePatterns().iterator();
|
||||
while ( it.hasNext() )
|
||||
{
|
||||
String pattern = (String) it.next();
|
||||
if ( SelectorUtils.matchPath( pattern, relativePath, isCaseSensitive ) )
|
||||
{
|
||||
// Specifically WANTS FILE.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Not included, and Not excluded? Default to EXCLUDE.
|
||||
return false;
|
||||
}
|
||||
|
||||
public long getOnlyModifiedAfterTimestamp()
|
||||
{
|
||||
return onlyModifiedAfterTimestamp;
|
||||
}
|
||||
|
||||
public void setOnlyModifiedAfterTimestamp( long onlyModifiedAfterTimestamp )
|
||||
{
|
||||
this.onlyModifiedAfterTimestamp = onlyModifiedAfterTimestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Debug method from DirectoryWalker.
|
||||
*/
|
||||
public void debug( String message )
|
||||
{
|
||||
getLogger().debug( "Repository Scanner: " + message );
|
||||
}
|
||||
|
||||
public Logger getLogger()
|
||||
{
|
||||
return logger;
|
||||
}
|
||||
|
||||
public void setLogger( Logger logger )
|
||||
{
|
||||
this.logger = logger;
|
||||
}
|
||||
}
|
|
@ -1,50 +0,0 @@
|
|||
-----
|
||||
Discoverer Design
|
||||
-----
|
||||
Brett Porter
|
||||
-----
|
||||
24 July 2006
|
||||
-----
|
||||
|
||||
~~ 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.
|
||||
|
||||
~~ NOTE: For help with the syntax of this file, see:
|
||||
~~ http://maven.apache.org/guides/mini/guide-apt-format.html
|
||||
|
||||
Discoverer Design
|
||||
|
||||
The artifact discoverer is designed to traverse the paths in the repository and identify files that are part of
|
||||
a legitimate artifact.
|
||||
|
||||
There are two plexus components available:
|
||||
|
||||
* {{{../apidocs/org/apache/maven/archiva/discoverer/ArtifactDiscoverer.html} ArtifactDiscoverer}}
|
||||
|
||||
* {{{../apidocs/org/apache/maven/archiva/discoverer/MetadataDiscoverer.html} MetadataDiscoverer}}
|
||||
|
||||
Each of these components currently have an implementation for the both <<<legacy>>> and <<<default>>> repository
|
||||
layouts.
|
||||
|
||||
The artifact discoverer will find all artifacts in the repository, while metadata discovery finds any
|
||||
<<<maven-metadata.xml>>> files (both remote and local repository formats).
|
||||
|
||||
Note that POMs will be identified as separate artifacts to their related artifacts, as will each
|
||||
individual derivative artifact at present. Currently, it has been decided not to link them - MRM-40 was closed as
|
||||
won't fix as a result.
|
||||
|
||||
* Limitations
|
||||
|
||||
* Currently, deleted artifacts are not tracked. This requires a separate event - see
|
||||
{{{http://jira.codehaus.org/browse/MRM-37} MRM-37}}.
|
|
@ -1,27 +0,0 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<project>
|
||||
<body>
|
||||
<menu name="Design Documentation">
|
||||
<item name="Discoverer Design" href="/design.html"/>
|
||||
</menu>
|
||||
</body>
|
||||
</project>
|
|
@ -1,86 +0,0 @@
|
|||
package org.apache.maven.archiva.discoverer;
|
||||
|
||||
/*
|
||||
* 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.artifact.repository.ArtifactRepository;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepositoryFactory;
|
||||
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
|
||||
import org.codehaus.plexus.PlexusTestCase;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* @author Edwin Punzalan
|
||||
* @author <a href="mailto:joakime@apache.org">Joakim Erdfelt</a>
|
||||
*/
|
||||
public abstract class AbstractDiscovererTestCase
|
||||
extends PlexusTestCase
|
||||
{
|
||||
protected Discoverer discoverer;
|
||||
|
||||
protected void setUp()
|
||||
throws Exception
|
||||
{
|
||||
super.setUp();
|
||||
|
||||
discoverer = (Discoverer) lookup( Discoverer.ROLE );
|
||||
}
|
||||
|
||||
protected void tearDown()
|
||||
throws Exception
|
||||
{
|
||||
release( discoverer );
|
||||
super.tearDown();
|
||||
}
|
||||
|
||||
protected ArtifactRepository getLegacyRepository()
|
||||
throws Exception
|
||||
{
|
||||
File repoBaseDir = new File( getBasedir(), "src/test/legacy-repository" );
|
||||
ArtifactRepository repository = createRepository( repoBaseDir, "legacy" );
|
||||
resetRepositoryState( repository );
|
||||
return repository;
|
||||
}
|
||||
|
||||
protected ArtifactRepository getDefaultRepository()
|
||||
throws Exception
|
||||
{
|
||||
File repoBaseDir = new File( getBasedir(), "src/test/repository" );
|
||||
ArtifactRepository repository = createRepository( repoBaseDir, "default" );
|
||||
resetRepositoryState( repository );
|
||||
return repository;
|
||||
}
|
||||
|
||||
protected void resetRepositoryState( ArtifactRepository repository )
|
||||
{
|
||||
// Implement any kind of repository cleanup.
|
||||
}
|
||||
|
||||
protected ArtifactRepository createRepository( File basedir, String layout )
|
||||
throws Exception
|
||||
{
|
||||
ArtifactRepositoryFactory factory = (ArtifactRepositoryFactory) lookup( ArtifactRepositoryFactory.ROLE );
|
||||
|
||||
ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, layout );
|
||||
|
||||
return factory.createArtifactRepository( "discoveryRepo-" + getName(), "file://" + basedir, repoLayout, null,
|
||||
null );
|
||||
}
|
||||
}
|
|
@ -1,169 +0,0 @@
|
|||
package org.apache.maven.archiva.discoverer;
|
||||
|
||||
/*
|
||||
* 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.commons.lang.StringUtils;
|
||||
import org.apache.maven.archiva.common.utils.BaseFile;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
import org.codehaus.plexus.logging.Logger;
|
||||
import org.codehaus.plexus.logging.console.ConsoleLogger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* DefaultDiscovererTest
|
||||
*
|
||||
* @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
|
||||
* @version $Id$
|
||||
*/
|
||||
public class DefaultDiscovererTest
|
||||
extends AbstractDiscovererTestCase
|
||||
{
|
||||
private MockConsumer createAndAddMockConsumer( List consumers, String includePattern, String excludePattern )
|
||||
{
|
||||
MockConsumer mockConsumer = new MockConsumer();
|
||||
mockConsumer.getIncludePatterns().add( includePattern );
|
||||
if ( StringUtils.isNotBlank( excludePattern ) )
|
||||
{
|
||||
mockConsumer.getExcludePatterns().add( excludePattern );
|
||||
}
|
||||
consumers.add( mockConsumer );
|
||||
return mockConsumer;
|
||||
}
|
||||
|
||||
private void assertFilesProcessed( int expectedFileCount, DiscovererStatistics stats, MockConsumer mockConsumer )
|
||||
{
|
||||
assertNotNull( "Stats should not be null.", stats );
|
||||
assertNotNull( "MockConsumer should not be null.", mockConsumer );
|
||||
assertNotNull( "MockConsumer.filesProcessed should not be null.", mockConsumer.getFilesProcessed() );
|
||||
|
||||
if ( stats.getFilesConsumed() != mockConsumer.getFilesProcessed().size() )
|
||||
{
|
||||
fail( "Somehow, the stats count of files consumed, and the count of actual files "
|
||||
+ "processed by the consumer do not match." );
|
||||
}
|
||||
|
||||
int actualFileCount = mockConsumer.getFilesProcessed().size();
|
||||
|
||||
if ( expectedFileCount != actualFileCount )
|
||||
{
|
||||
stats.dump( new ConsoleLogger( Logger.LEVEL_DEBUG, "test" ) );
|
||||
System.out.println( "Base Dir:" + stats.getRepository().getBasedir() );
|
||||
int num = 0;
|
||||
Iterator it = mockConsumer.getFilesProcessed().iterator();
|
||||
while ( it.hasNext() )
|
||||
{
|
||||
BaseFile file = (BaseFile) it.next();
|
||||
System.out.println( " Processed File [" + num + "]: " + file.getRelativePath() );
|
||||
num++;
|
||||
}
|
||||
|
||||
fail( "Files Processed mismatch: expected:<" + expectedFileCount + ">, actual:<" + actualFileCount + ">" );
|
||||
}
|
||||
}
|
||||
|
||||
public void testLegacyLayoutRepositoryAll()
|
||||
throws Exception
|
||||
{
|
||||
ArtifactRepository repository = getLegacyRepository();
|
||||
List consumers = new ArrayList();
|
||||
MockConsumer mockConsumer = createAndAddMockConsumer( consumers, "**/*", null );
|
||||
|
||||
DiscovererStatistics stats = discoverer.walkRepository( repository, consumers, true );
|
||||
|
||||
assertNotNull( stats );
|
||||
|
||||
assertFilesProcessed( 16, stats, mockConsumer );
|
||||
}
|
||||
|
||||
public void testDefaultLayoutRepositoryAll()
|
||||
throws Exception
|
||||
{
|
||||
ArtifactRepository repository = getDefaultRepository();
|
||||
List consumers = new ArrayList();
|
||||
MockConsumer mockConsumer = createAndAddMockConsumer( consumers, "**/*", null );
|
||||
|
||||
DiscovererStatistics stats = discoverer.walkRepository( repository, consumers, true );
|
||||
|
||||
assertNotNull( stats );
|
||||
|
||||
assertFilesProcessed( 42, stats, mockConsumer );
|
||||
}
|
||||
|
||||
public void testDefaultLayoutRepositoryPomsOnly()
|
||||
throws Exception
|
||||
{
|
||||
ArtifactRepository repository = getDefaultRepository();
|
||||
List consumers = new ArrayList();
|
||||
MockConsumer mockConsumer = createAndAddMockConsumer( consumers, "**/*.pom", null );
|
||||
|
||||
DiscovererStatistics stats = discoverer.walkRepository( repository, consumers, true );
|
||||
|
||||
assertNotNull( stats );
|
||||
|
||||
assertFilesProcessed( 10, stats, mockConsumer );
|
||||
}
|
||||
|
||||
public void testDefaultLayoutRepositoryJarsOnly()
|
||||
throws Exception
|
||||
{
|
||||
ArtifactRepository repository = getDefaultRepository();
|
||||
List consumers = new ArrayList();
|
||||
MockConsumer mockConsumer = createAndAddMockConsumer( consumers, "**/*.jar", null );
|
||||
|
||||
DiscovererStatistics stats = discoverer.walkRepository( repository, consumers, true );
|
||||
|
||||
assertNotNull( stats );
|
||||
|
||||
assertFilesProcessed( 17, stats, mockConsumer );
|
||||
}
|
||||
|
||||
public void testDefaultLayoutRepositoryJarsNoSnapshots()
|
||||
throws Exception
|
||||
{
|
||||
ArtifactRepository repository = getDefaultRepository();
|
||||
List consumers = new ArrayList();
|
||||
MockConsumer mockConsumer = createAndAddMockConsumer( consumers, "**/*.jar", null );
|
||||
|
||||
DiscovererStatistics stats = discoverer.walkRepository( repository, consumers, false );
|
||||
|
||||
assertNotNull( stats );
|
||||
|
||||
assertFilesProcessed( 13, stats, mockConsumer );
|
||||
}
|
||||
|
||||
public void testDefaultLayoutRepositoryJarsNoSnapshotsWithExclusions()
|
||||
throws Exception
|
||||
{
|
||||
ArtifactRepository repository = getDefaultRepository();
|
||||
List consumers = new ArrayList();
|
||||
MockConsumer mockConsumer = createAndAddMockConsumer( consumers, "**/*.jar", null );
|
||||
|
||||
List exclusions = new ArrayList();
|
||||
exclusions.add( "**/*-client.jar" );
|
||||
DiscovererStatistics stats = discoverer.walkRepository( repository, consumers, false, 0, exclusions, null );
|
||||
|
||||
assertNotNull( stats );
|
||||
|
||||
assertFilesProcessed( 12, stats, mockConsumer );
|
||||
}
|
||||
}
|
|
@ -1,75 +0,0 @@
|
|||
/**
|
||||
*
|
||||
*/
|
||||
package org.apache.maven.archiva.discoverer;
|
||||
|
||||
import org.apache.maven.archiva.common.utils.BaseFile;
|
||||
import org.apache.maven.archiva.consumers.Consumer;
|
||||
import org.apache.maven.archiva.consumers.ConsumerException;
|
||||
import org.apache.maven.artifact.repository.ArtifactRepository;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class MockConsumer
|
||||
implements Consumer
|
||||
{
|
||||
private List excludePatterns = new ArrayList();
|
||||
|
||||
private List includePatterns = new ArrayList();
|
||||
|
||||
private List filesProcessed = new ArrayList();
|
||||
|
||||
private int countFileProblems = 0;
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return "MockConsumer (Testing Only)";
|
||||
}
|
||||
|
||||
public boolean init( ArtifactRepository repository )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public void processFile( BaseFile file )
|
||||
throws ConsumerException
|
||||
{
|
||||
filesProcessed.add( file );
|
||||
}
|
||||
|
||||
public void processFileProblem( BaseFile file, String message )
|
||||
{
|
||||
countFileProblems++;
|
||||
}
|
||||
|
||||
public List getExcludePatterns()
|
||||
{
|
||||
return excludePatterns;
|
||||
}
|
||||
|
||||
public void setExcludePatterns( List excludePatterns )
|
||||
{
|
||||
this.excludePatterns = excludePatterns;
|
||||
}
|
||||
|
||||
public List getIncludePatterns()
|
||||
{
|
||||
return includePatterns;
|
||||
}
|
||||
|
||||
public void setIncludePatterns( List includePatterns )
|
||||
{
|
||||
this.includePatterns = includePatterns;
|
||||
}
|
||||
|
||||
public int getCountFileProblems()
|
||||
{
|
||||
return countFileProblems;
|
||||
}
|
||||
|
||||
public List getFilesProcessed()
|
||||
{
|
||||
return filesProcessed;
|
||||
}
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
not a real CVS root - for testing exclusions
|
|
@ -1 +0,0 @@
|
|||
dummy content. sample file only.
|
|
@ -1 +0,0 @@
|
|||
dummy content. sample file only.
|
|
@ -1,28 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>A</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<packaging>war</packaging>
|
||||
</project>
|
|
@ -1 +0,0 @@
|
|||
dummy content. sample file only.
|
|
@ -1,28 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>B</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<packaging>pom</packaging>
|
||||
</project>
|
|
@ -1,28 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>B</artifactId>
|
||||
<version>2.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<packaging>pom</packaging>
|
||||
</project>
|
|
@ -1,28 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>C</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<packaging>war</packaging>
|
||||
</project>
|
|
@ -1 +0,0 @@
|
|||
dummy content. sample file only.
|
|
@ -1,28 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>discovery</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<packaging>pom</packaging>
|
||||
</project>
|
|
@ -1 +0,0 @@
|
|||
dummy content. sample file only.
|
|
@ -1,29 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>C</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<!-- default packaging is jar -->
|
||||
<!--packaging>jar</packaging-->
|
||||
</project>
|
|
@ -1 +0,0 @@
|
|||
dummy content. sample file only.
|
|
@ -1,29 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>C</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<!-- specified packaging -->
|
||||
<packaging>jar</packaging>
|
||||
</project>
|
|
@ -1,28 +0,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 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.apache.testgroup</groupId>
|
||||
<artifactId>discovery</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<packaging>pom</packaging>
|
||||
</project>
|
|
@ -1 +0,0 @@
|
|||
not a real CVS root - for testing exclusions
|
|
@ -1 +0,0 @@
|
|||
test KEYS file
|
|
@ -1,26 +0,0 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<!-- This metdata is intentionally wrong. -->
|
||||
<metadata>
|
||||
<groupId>javax.sql</groupId>
|
||||
<artifactId>jdbc</artifactId>
|
||||
<version>2.0</version>
|
||||
</metadata>
|
|
@ -1,25 +0,0 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<metadata>
|
||||
<groupId>javax.sql</groupId>
|
||||
<artifactId>jdbc</artifactId>
|
||||
<version>2.0</version>
|
||||
</metadata>
|
|
@ -1,30 +0,0 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<metadata>
|
||||
<groupId>javax.sql</groupId>
|
||||
<artifactId>jdbc</artifactId>
|
||||
<version>2.0</version>
|
||||
<versioning>
|
||||
<versions>
|
||||
<version>2.0</version>
|
||||
</versions>
|
||||
</versioning>
|
||||
</metadata>
|
|
@ -1,25 +0,0 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<metadata>
|
||||
<groupId>javax.sql</groupId>
|
||||
<artifactId>jdbc</artifactId>
|
||||
<version>2.0</version>
|
||||
</metadata>
|
|
@ -1,28 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>A</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<packaging>war</packaging>
|
||||
</project>
|
|
@ -1 +0,0 @@
|
|||
dummy content. sample file only.
|
|
@ -1,28 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>B</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<packaging>pom</packaging>
|
||||
</project>
|
|
@ -1,28 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>B</artifactId>
|
||||
<version>2.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<packaging>pom</packaging>
|
||||
</project>
|
|
@ -1,28 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>C</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<packaging>war</packaging>
|
||||
</project>
|
|
@ -1 +0,0 @@
|
|||
dummy content. sample file only.
|
|
@ -1,28 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>discovery</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<packaging>pom</packaging>
|
||||
</project>
|
|
@ -1,23 +0,0 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<metadata>
|
||||
<groupId>org.apache.maven</groupId>
|
||||
</metadata>
|
|
@ -1 +0,0 @@
|
|||
dummy content. sample file only.
|
|
@ -1,29 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>C</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<!-- default packaging is jar -->
|
||||
<!--packaging>jar</packaging-->
|
||||
</project>
|
|
@ -1 +0,0 @@
|
|||
dummy content. sample file only.
|
|
@ -1,29 +0,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 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.apache.maven</groupId>
|
||||
<artifactId>C</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<!-- specified packaging -->
|
||||
<packaging>jar</packaging>
|
||||
</project>
|
|
@ -1 +0,0 @@
|
|||
dummy content. sample file only.
|
|
@ -1,29 +0,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 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.apache.maven.update</groupId>
|
||||
<artifactId>test-not-updated</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<!-- default packaging is jar -->
|
||||
<!--packaging>jar</packaging-->
|
||||
</project>
|
|
@ -1,24 +0,0 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<metadata>
|
||||
<groupId>org.apache.maven.update</groupId>
|
||||
<artifactId>test-not-updated</artifactId>
|
||||
</metadata>
|
|
@ -1 +0,0 @@
|
|||
dummy content. sample file only.
|
|
@ -1,29 +0,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 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.apache.maven.update</groupId>
|
||||
<artifactId>test-updated</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<!-- default packaging is jar -->
|
||||
<!--packaging>jar</packaging-->
|
||||
</project>
|
|
@ -1,24 +0,0 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<metadata>
|
||||
<groupId>org.apache.maven.update</groupId>
|
||||
<artifactId>test-updated</artifactId>
|
||||
</metadata>
|
|
@ -1,28 +0,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 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.apache.testgroup</groupId>
|
||||
<artifactId>discovery</artifactId>
|
||||
<version>1.0</version>
|
||||
<name>Maven Test Repository Artifact Discovery</name>
|
||||
<packaging>pom</packaging>
|
||||
</project>
|
|
@ -1,25 +0,0 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<metadata>
|
||||
<groupId>org.apache.testgroup</groupId>
|
||||
<artifactId>discovery</artifactId>
|
||||
<version>1.0</version>
|
||||
</metadata>
|
|
@ -1,24 +0,0 @@
|
|||
<?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.
|
||||
-->
|
||||
|
||||
<metadata>
|
||||
<groupId>org.apache.testgroup</groupId>
|
||||
<artifactId>discovery</artifactId>
|
||||
</metadata>
|
|
@ -37,6 +37,11 @@
|
|||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-utils</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.jdo</groupId>
|
||||
<artifactId>jdo2-api</artifactId>
|
||||
<version>2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.codehaus.plexus</groupId>
|
||||
<artifactId>plexus-container-default</artifactId>
|
||||
|
|
|
@ -169,6 +169,13 @@
|
|||
<codeSegment>
|
||||
<version>1.0.0+</version>
|
||||
<code>
|
||||
public RepositoryContent( String groupId, String artifactId, String version )
|
||||
{
|
||||
this.setGroupId( groupId );
|
||||
this.setArtifactId( artifactId );
|
||||
this.setVersion( version );
|
||||
}
|
||||
|
||||
public RepositoryContent( String repositoryId, String groupId, String artifactId, String version )
|
||||
{
|
||||
this.setRepositoryId( repositoryId );
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue