Cleanup maven-scheduler dependencies

This commit is contained in:
Martin Stockhammer 2020-06-20 16:06:40 +02:00
parent 1bcd7762ac
commit 3988bfa918
5 changed files with 109 additions and 114 deletions

View File

@ -44,6 +44,14 @@
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId> <artifactId>spring-context</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-common</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-storage-api</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.apache.archiva</groupId> <groupId>org.apache.archiva</groupId>
<artifactId>archiva-configuration</artifactId> <artifactId>archiva-configuration</artifactId>
@ -58,11 +66,28 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.archiva.maven</groupId> <groupId>org.apache.archiva.maven</groupId>
<artifactId>archiva-maven-proxy</artifactId> <artifactId>archiva-maven-common</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.archiva</groupId> <groupId>org.apache.archiva</groupId>
<artifactId>archiva-repository-admin-api</artifactId> <artifactId>archiva-repository-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-proxy-api</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva.components</groupId>
<artifactId>archiva-components-spring-taskqueue</artifactId>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
</dependency> </dependency>
<dependency> <dependency>
@ -72,51 +97,44 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.maven.wagon</groupId> <groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-http</artifactId> <artifactId>wagon-http-shared</artifactId>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.maven.wagon</groupId> <groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-http-lightweight</artifactId> <artifactId>wagon-provider-api</artifactId>
<scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- Test dependencies --> <!-- Test dependencies -->
<dependency> <dependency>
<groupId>javax.persistence</groupId> <groupId>org.apache.archiva</groupId>
<artifactId>javax.persistence-api</artifactId> <artifactId>repository-statistics</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.archiva.redback</groupId> <groupId>org.apache.maven.wagon</groupId>
<artifactId>redback-keys-jpa</artifactId> <artifactId>wagon-http</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.archiva.redback</groupId> <groupId>org.apache.maven.wagon</groupId>
<artifactId>redback-keys-cached</artifactId> <artifactId>wagon-http-lightweight</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>javax.transaction</groupId> <groupId>org.apache.archiva.maven</groupId>
<artifactId>javax.transaction-api</artifactId> <artifactId>archiva-maven-proxy</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.archiva.redback</groupId>
<artifactId>redback-common-jpa</artifactId>
<version>${redback.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId> <artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-repository-admin-default</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
@ -135,6 +153,12 @@
<version>${project.version}</version> <version>${project.version}</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<version>${jetty.version}</version>
<scope>test</scope>
</dependency>
<dependency> <dependency>
<groupId>org.eclipse.jetty</groupId> <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId> <artifactId>jetty-server</artifactId>
@ -152,19 +176,6 @@
<artifactId>assertj-core</artifactId> <artifactId>assertj-core</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.apache.archiva</groupId>
<artifactId>archiva-mock</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.archiva.redback</groupId>
<artifactId>redback-rbac-cached</artifactId>
<scope>test</scope>
<version>${redback.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.archiva</groupId> <groupId>org.apache.archiva</groupId>
@ -173,21 +184,11 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.logging.log4j</groupId> <groupId>org.apache.archiva</groupId>
<artifactId>log4j-slf4j-impl</artifactId> <artifactId>archiva-mock</artifactId>
</dependency>
<dependency>
<groupId>org.apache.archiva.redback</groupId>
<artifactId>redback-common-test-resources</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<scope>test</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

@ -22,7 +22,6 @@ import org.apache.archiva.proxy.ProxyRegistry;
import org.apache.archiva.proxy.model.NetworkProxy; import org.apache.archiva.proxy.model.NetworkProxy;
import org.apache.archiva.scheduler.indexing.DownloadRemoteIndexException; import org.apache.archiva.scheduler.indexing.DownloadRemoteIndexException;
import org.apache.archiva.scheduler.indexing.DownloadRemoteIndexScheduler; import org.apache.archiva.scheduler.indexing.DownloadRemoteIndexScheduler;
import org.apache.archiva.admin.model.RepositoryAdminException;
import org.apache.archiva.configuration.ArchivaConfiguration; import org.apache.archiva.configuration.ArchivaConfiguration;
import org.apache.archiva.configuration.ConfigurationEvent; import org.apache.archiva.configuration.ConfigurationEvent;
import org.apache.archiva.configuration.ConfigurationListener; import org.apache.archiva.configuration.ConfigurationListener;

View File

@ -18,10 +18,19 @@ package org.apache.archiva.scheduler.indexing.maven;
* under the License. * under the License.
*/ */
import org.apache.archiva.admin.model.beans.RemoteRepository;
import org.apache.archiva.admin.model.remote.RemoteRepositoryAdmin;
import org.apache.archiva.common.utils.FileUtils; import org.apache.archiva.common.utils.FileUtils;
import org.apache.archiva.indexer.ArchivaIndexManager;
import org.apache.archiva.indexer.IndexCreationFailedException;
import org.apache.archiva.repository.EditableRemoteRepository;
import org.apache.archiva.repository.EditableRepository;
import org.apache.archiva.repository.RemoteRepository;
import org.apache.archiva.repository.RepositoryException;
import org.apache.archiva.repository.RepositoryProvider;
import org.apache.archiva.repository.RepositoryRegistry; import org.apache.archiva.repository.RepositoryRegistry;
import org.apache.archiva.repository.RepositoryType;
import org.apache.archiva.repository.UnsupportedURIException;
import org.apache.archiva.repository.features.IndexCreationFeature;
import org.apache.archiva.repository.features.RemoteIndexFeature;
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner;
import org.apache.maven.index.FlatSearchRequest; import org.apache.maven.index.FlatSearchRequest;
import org.apache.maven.index.FlatSearchResponse; import org.apache.maven.index.FlatSearchResponse;
@ -49,15 +58,14 @@ import org.springframework.test.context.ContextConfiguration;
import javax.inject.Inject; import javax.inject.Inject;
import java.io.IOException; import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.util.Arrays; import java.util.Arrays;
import java.util.Locale;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static org.assertj.core.api.Assertions.assertThat;
/** /**
* @author Olivier Lamy * @author Olivier Lamy
*/ */
@ -73,9 +81,6 @@ public class DownloadRemoteIndexTaskTest
private Logger log = LoggerFactory.getLogger( getClass() ); private Logger log = LoggerFactory.getLogger( getClass() );
@Inject
RemoteRepositoryAdmin remoteRepositoryAdmin;
@Inject @Inject
DefaultDownloadRemoteIndexScheduler downloadRemoteIndexScheduler; DefaultDownloadRemoteIndexScheduler downloadRemoteIndexScheduler;
@ -85,6 +90,9 @@ public class DownloadRemoteIndexTaskTest
@Inject @Inject
RepositoryRegistry repositoryRegistry; RepositoryRegistry repositoryRegistry;
@Inject
RepositoryProvider repositoryProvider;
@Before @Before
public void initialize() public void initialize()
throws Exception throws Exception
@ -94,7 +102,7 @@ public class DownloadRemoteIndexTaskTest
Files.delete(cfgFile); Files.delete(cfgFile);
} }
try { try {
remoteRepositoryAdmin.deleteRemoteRepository("test-repo-re", null); repositoryRegistry.removeRepository( "test-repo-re" );
} catch (Exception e) { } catch (Exception e) {
// Ignore // Ignore
} }
@ -136,9 +144,12 @@ public class DownloadRemoteIndexTaskTest
public void downloadAndMergeRemoteIndexInEmptyIndex() public void downloadAndMergeRemoteIndexInEmptyIndex()
throws Exception throws Exception
{ {
RemoteRepository remoteRepository = getRemoteRepository(); Path repoDirectory = Paths.get( FileUtils.getBasedir( ), "target/repo-" + Long.toString( System.currentTimeMillis( ) ) );
remoteRepositoryAdmin.addRemoteRepository( remoteRepository, null ); RemoteRepository remoteRepository = getRemoteRepository(repoDirectory);
repositoryRegistry.putRepository( remoteRepository);
repositoryRegistry.reload();
downloadRemoteIndexScheduler.startup(); downloadRemoteIndexScheduler.startup();
@ -147,17 +158,17 @@ public class DownloadRemoteIndexTaskTest
( (ThreadPoolTaskScheduler) downloadRemoteIndexScheduler.getTaskScheduler() ).getScheduledExecutor().awaitTermination( ( (ThreadPoolTaskScheduler) downloadRemoteIndexScheduler.getTaskScheduler() ).getScheduledExecutor().awaitTermination(
10, TimeUnit.SECONDS ); 10, TimeUnit.SECONDS );
remoteRepositoryAdmin.deleteRemoteRepository( "test-repo-re", null ); repositoryRegistry.removeRepository( "test-repo-re" );
// search // search
BooleanQuery.Builder iQuery = new BooleanQuery.Builder(); BooleanQuery.Builder iQuery = new BooleanQuery.Builder();
iQuery.add( indexer.constructQuery( MAVEN.GROUP_ID, new StringSearchExpression( "commons-logging" ) ), iQuery.add( indexer.constructQuery( MAVEN.GROUP_ID, new StringSearchExpression( "commons-logging" ) ),
BooleanClause.Occur.SHOULD ); BooleanClause.Occur.SHOULD );
remoteRepositoryAdmin.addRemoteRepository(remoteRepository, null); remoteRepository = getRemoteRepository( repoDirectory );
FlatSearchRequest rq = new FlatSearchRequest( iQuery.build() ); FlatSearchRequest rq = new FlatSearchRequest( iQuery.build() );
rq.setContexts( rq.setContexts(
Arrays.asList( repositoryRegistry.getRemoteRepository(remoteRepository.getId()).getIndexingContext().getBaseContext(IndexingContext.class) ) ); Arrays.asList( remoteRepository.getIndexingContext().getBaseContext(IndexingContext.class) ) );
FlatSearchResponse response = indexer.searchFlat(rq); FlatSearchResponse response = indexer.searchFlat(rq);
@ -166,22 +177,38 @@ public class DownloadRemoteIndexTaskTest
} }
protected RemoteRepository getRemoteRepository() throws IOException protected RemoteRepository getRemoteRepository(Path repoDirectory) throws IOException, URISyntaxException, UnsupportedURIException, RepositoryException
{ {
RemoteRepository remoteRepository = new RemoteRepository( Locale.getDefault());
Path indexDirectory = EditableRemoteRepository remoteRepository = repositoryProvider.createRemoteInstance( "test-repo-re", "foo" );
Paths.get( FileUtils.getBasedir(), "target/index/test-" + Long.toString( System.currentTimeMillis() ) ); Path indexDirectory = repoDirectory.resolve( "index" );
Files.createDirectories( indexDirectory ); Files.createDirectories( indexDirectory );
indexDirectory.toFile().deleteOnExit(); remoteRepository.setLocation( new URI( "http://localhost:" + port ) );
repoDirectory.toFile().deleteOnExit();
remoteRepository.setName( "foo" ); createIndexingContext( remoteRepository );
remoteRepository.setIndexDirectory( indexDirectory.toAbsolutePath().toString() );
remoteRepository.setDownloadRemoteIndex( true );
remoteRepository.setId( "test-repo-re" );
remoteRepository.setUrl( "http://localhost:" + port );
remoteRepository.setRemoteIndexUrl( "http://localhost:" + port + "/index-updates/" );
RemoteIndexFeature rif = remoteRepository.getFeature( RemoteIndexFeature.class ).get();
rif.setDownloadRemoteIndex( true );
rif.setIndexUri( new URI("http://localhost:" + port + "/index-updates/" ) );
IndexCreationFeature icf = remoteRepository.getFeature( IndexCreationFeature.class ).get( );
icf.setLocalIndexPath( remoteRepository.getAsset( "index" ) );
return remoteRepository; return remoteRepository;
} }
private void createIndexingContext( EditableRepository editableRepo) throws RepositoryException
{
if (editableRepo.supportsFeature(IndexCreationFeature.class)) {
ArchivaIndexManager idxManager = getIndexManager(editableRepo.getType());
try {
editableRepo.setIndexingContext(idxManager.createContext(editableRepo));
idxManager.updateLocalIndexPath(editableRepo);
} catch ( IndexCreationFailedException e) {
throw new RepositoryException("Could not create index for repository " + editableRepo.getId() + ": " + e.getMessage(), e);
}
}
}
public ArchivaIndexManager getIndexManager( RepositoryType type ) {
return repositoryRegistry.getIndexManager( type );
}
} }

View File

@ -19,13 +19,12 @@
~ under the License. ~ under the License.
--> -->
<beans xmlns="http://www.springframework.org/schema/beans" <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd" http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"
default-lazy-init="true"> default-lazy-init="true">
<context:component-scan base-package="org.apache.archiva.repository.content.maven2,org.apache.archiva.indexer.maven" /> <context:component-scan base-package="org.apache.archiva.indexer.maven" />
<bean name="scheduler" class="org.apache.archiva.components.scheduler.DefaultScheduler"> <bean name="scheduler" class="org.apache.archiva.components.scheduler.DefaultScheduler">
<property name="properties"> <property name="properties">
@ -39,7 +38,6 @@
</property> </property>
</bean> </bean>
<!-- wire up more basic configuration so it doesn't overwrite any config files --> <!-- wire up more basic configuration so it doesn't overwrite any config files -->
<bean name="archivaConfiguration#default" class="org.apache.archiva.configuration.DefaultArchivaConfiguration"> <bean name="archivaConfiguration#default" class="org.apache.archiva.configuration.DefaultArchivaConfiguration">
<property name="registry" ref="registry#default"/> <property name="registry" ref="registry#default"/>
@ -62,38 +60,7 @@
</property> </property>
</bean> </bean>
<alias name="userConfiguration#redback" alias="userConfiguration#default"/>
<!-- ***
JPA settings
*** -->
<bean name="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="jpaVendorAdapter" >
<bean class="org.springframework.orm.jpa.vendor.OpenJpaVendorAdapter" />
</property>
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence-hsqldb.xml" />
<property name="jpaPropertyMap">
<map>
<entry key="openjpa.ConnectionURL" value="jdbc:hsqldb:mem:redback_database" />
<entry key="openjpa.ConnectionDriverName" value="org.hsqldb.jdbcDriver" />
<entry key="openjpa.ConnectionUserName" value="sa" />
<entry key="openjpa.ConnectionPassword" value="" />
<entry key="openjpa.Log" value="${openjpa.Log:DefaultLevel=INFO,Runtime=ERROR,Tool=ERROR,SQL=ERROR,Schema=ERROR,MetaData=ERROR}" />
<entry key="openjpa.jdbc.SynchronizeMappings" value="buildSchema(ForeignKeys=true)" />
<entry key="openjpa.jdbc.MappingDefaults"
value="ForeignKeyDeleteAction=restrict,JoinForeignKeyDeleteAction=restrict"/>
</map>
</property>
</bean>
<bean name="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" >
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven />
<!-- ***
End of JPA settings
*** -->
</beans> </beans>

View File

@ -46,6 +46,7 @@ archiva-modules
archiva-maven-proxy archiva-maven-proxy
archiva-maven-indexer archiva-maven-indexer
archiva-maven-repository archiva-maven-repository
archiva-maven-scheduler