mirror of https://github.com/apache/archiva.git
Adding type for repository group config
This commit is contained in:
parent
6c0afa8b8f
commit
c2bbd80b1b
|
@ -47,6 +47,15 @@ public class RepositoryGroupConfiguration
|
|||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
*
|
||||
* The repository type. Currently only MAVEN type
|
||||
* is known.
|
||||
*
|
||||
*/
|
||||
private String type = "MAVEN";
|
||||
|
||||
|
||||
/**
|
||||
* The path of the merged index.
|
||||
*/
|
||||
|
@ -211,4 +220,12 @@ public class RepositoryGroupConfiguration
|
|||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -731,6 +731,7 @@ public class ConfigurationRegistryReader {
|
|||
value.setId(id);
|
||||
|
||||
value.setName(registry.getString(prefix + "name"));
|
||||
value.setType(registry.getString(prefix + "type"));
|
||||
|
||||
//String mergedIndexPath = registry.getString( prefix + "mergedIndexPath", value.getMergedIndexPath() );
|
||||
|
||||
|
|
|
@ -422,6 +422,9 @@ public class ConfigurationRegistryWriter {
|
|||
if (value.getName() != null) {
|
||||
registry.setString(prefix + "name", value.getName());
|
||||
}
|
||||
if (value.getType() != null) {
|
||||
registry.setString(prefix + "type", value.getType());
|
||||
}
|
||||
if (value.getMergedIndexPath() != null && !value.getMergedIndexPath().equals(".indexer")
|
||||
) {
|
||||
String mergedIndexPath = "mergedIndexPath";
|
||||
|
|
|
@ -18,7 +18,7 @@ package org.apache.archiva.indexer.merger;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.maven.index.context.IndexingContext;
|
||||
import org.apache.archiva.indexer.ArchivaIndexingContext;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
|
@ -33,7 +33,7 @@ public interface IndexMerger
|
|||
* @return a temporary directory with a merge index (directory marked deleteOnExit)
|
||||
* @throws IndexMergerException
|
||||
*/
|
||||
IndexingContext buildMergedIndex( IndexMergerRequest indexMergerRequest )
|
||||
ArchivaIndexingContext buildMergedIndex(IndexMergerRequest indexMergerRequest )
|
||||
throws IndexMergerException;
|
||||
|
||||
void cleanTemporaryGroupIndex( TemporaryGroupIndex temporaryGroupIndex );
|
|
@ -19,7 +19,8 @@ package org.apache.archiva.scheduler;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.archiva.admin.model.beans.RepositoryGroup;
|
||||
|
||||
import org.apache.archiva.repository.RepositoryGroup;
|
||||
|
||||
import java.nio.file.Path;
|
||||
|
||||
|
@ -35,7 +36,7 @@ public interface MergedRemoteIndexesScheduler
|
|||
* remote indexes
|
||||
* @param repositoryGroup
|
||||
*/
|
||||
void schedule( RepositoryGroup repositoryGroup, Path directory );
|
||||
void schedule(RepositoryGroup repositoryGroup, Path directory );
|
||||
|
||||
void unschedule( RepositoryGroup repositoryGroup );
|
||||
|
|
@ -19,7 +19,8 @@ package org.apache.archiva.indexer.merger;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.archiva.admin.model.beans.RepositoryGroup;
|
||||
import org.apache.archiva.repository.ManagedRepository;
|
||||
import org.apache.archiva.repository.RepositoryGroup;
|
||||
import org.apache.archiva.scheduler.MergedRemoteIndexesScheduler;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -35,6 +36,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author Olivier Lamy
|
||||
|
@ -57,25 +59,26 @@ public class DefaultMergedRemoteIndexesScheduler
|
|||
private Map<String, ScheduledFuture> scheduledFutureMap = new ConcurrentHashMap<>();
|
||||
|
||||
@Override
|
||||
public void schedule( RepositoryGroup repositoryGroup, Path directory )
|
||||
public void schedule(RepositoryGroup repositoryGroup, Path directory )
|
||||
{
|
||||
if ( StringUtils.isEmpty( repositoryGroup.getCronExpression() ) )
|
||||
if ( StringUtils.isEmpty( repositoryGroup.getSchedulingDefinition() ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
CronTrigger cronTrigger = new CronTrigger( repositoryGroup.getCronExpression() );
|
||||
CronTrigger cronTrigger = new CronTrigger( repositoryGroup.getSchedulingDefinition() );
|
||||
|
||||
List<String> repositories = repositoryGroup.getRepositories();
|
||||
List<ManagedRepository> repositories = repositoryGroup.getRepositories();
|
||||
|
||||
IndexMergerRequest indexMergerRequest =
|
||||
new IndexMergerRequest( repositories, true, repositoryGroup.getId(), repositoryGroup.getMergedIndexPath(),
|
||||
repositoryGroup.getMergedIndexTtl() ).mergedIndexDirectory( directory );
|
||||
new IndexMergerRequest( repositories.stream().map(r -> r.getId()).collect(Collectors.toList()), true, repositoryGroup.getId(),
|
||||
repositoryGroup.getMergedIndexPath().getFilePath().toString(),
|
||||
repositoryGroup.getMergedIndexTTL() ).mergedIndexDirectory( directory );
|
||||
|
||||
MergedRemoteIndexesTaskRequest taskRequest =
|
||||
new MergedRemoteIndexesTaskRequest( indexMergerRequest, indexMerger );
|
||||
|
||||
logger.info( "schedule merge remote index for group {} with cron {}", repositoryGroup.getId(),
|
||||
repositoryGroup.getCronExpression() );
|
||||
repositoryGroup.getSchedulingDefinition() );
|
||||
|
||||
ScheduledFuture scheduledFuture =
|
||||
taskScheduler.schedule( new MergedRemoteIndexesTask( taskRequest ), cronTrigger );
|
|
@ -19,7 +19,7 @@ package org.apache.archiva.indexer.merger;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.maven.index.context.IndexingContext;
|
||||
import org.apache.archiva.indexer.ArchivaIndexingContext;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -58,7 +58,7 @@ public class MergedRemoteIndexesTask
|
|||
{
|
||||
IndexMerger indexMerger = mergedRemoteIndexesTaskRequest.getIndexMerger();
|
||||
|
||||
IndexingContext indexingContext =
|
||||
ArchivaIndexingContext indexingContext =
|
||||
indexMerger.buildMergedIndex( mergedRemoteIndexesTaskRequest.getIndexMergerRequest() );
|
||||
|
||||
return new MergedRemoteIndexesTaskResult( indexingContext );
|
|
@ -19,7 +19,7 @@ package org.apache.archiva.indexer.merger;
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
import org.apache.maven.index.context.IndexingContext;
|
||||
import org.apache.archiva.indexer.ArchivaIndexingContext;
|
||||
|
||||
/**
|
||||
* @author Olivier Lamy
|
||||
|
@ -27,19 +27,19 @@ import org.apache.maven.index.context.IndexingContext;
|
|||
*/
|
||||
public class MergedRemoteIndexesTaskResult
|
||||
{
|
||||
private IndexingContext indexingContext;
|
||||
private ArchivaIndexingContext indexingContext;
|
||||
|
||||
public MergedRemoteIndexesTaskResult( IndexingContext indexingContext )
|
||||
public MergedRemoteIndexesTaskResult( ArchivaIndexingContext indexingContext )
|
||||
{
|
||||
this.indexingContext = indexingContext;
|
||||
}
|
||||
|
||||
public IndexingContext getIndexingContext()
|
||||
public ArchivaIndexingContext getIndexingContext()
|
||||
{
|
||||
return indexingContext;
|
||||
}
|
||||
|
||||
public void setIndexingContext( IndexingContext indexingContext )
|
||||
public void setIndexingContext( ArchivaIndexingContext indexingContext )
|
||||
{
|
||||
this.indexingContext = indexingContext;
|
||||
}
|
|
@ -19,7 +19,9 @@ package org.apache.archiva.indexer.maven.merger;
|
|||
*/
|
||||
|
||||
import org.apache.archiva.common.utils.FileUtils;
|
||||
import org.apache.archiva.indexer.ArchivaIndexingContext;
|
||||
import org.apache.archiva.indexer.UnsupportedBaseContextException;
|
||||
import org.apache.archiva.indexer.maven.MavenIndexContext;
|
||||
import org.apache.archiva.indexer.merger.IndexMerger;
|
||||
import org.apache.archiva.indexer.merger.IndexMergerException;
|
||||
import org.apache.archiva.indexer.merger.IndexMergerRequest;
|
||||
|
@ -86,7 +88,7 @@ public class DefaultIndexMerger
|
|||
}
|
||||
|
||||
@Override
|
||||
public IndexingContext buildMergedIndex( IndexMergerRequest indexMergerRequest )
|
||||
public ArchivaIndexingContext buildMergedIndex(IndexMergerRequest indexMergerRequest )
|
||||
throws IndexMergerException
|
||||
{
|
||||
String groupId = indexMergerRequest.getGroupId();
|
||||
|
@ -146,7 +148,7 @@ public class DefaultIndexMerger
|
|||
stopWatch.stop();
|
||||
log.info( "merged index for repos {} in {} s", indexMergerRequest.getRepositoriesIds(),
|
||||
stopWatch.getTime() );
|
||||
return mergedCtx;
|
||||
return new MavenIndexContext(repositoryRegistry.getRepositoryGroup(groupId), mergedCtx);
|
||||
}
|
||||
catch ( IOException e)
|
||||
{
|
Loading…
Reference in New Issue