Signed-off-by: olivier lamy <olamy@apache.org>pull/30/head
@@ -65,7 +65,11 @@ | |||
<version>${jettyVersion}</version> | |||
<scope>runtime</scope> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.zaxxer</groupId> | |||
<artifactId>HikariCP</artifactId> | |||
<scope>runtime</scope> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.derby</groupId> | |||
<artifactId>derby</artifactId> | |||
@@ -81,16 +85,6 @@ | |||
<artifactId>ant</artifactId> | |||
<scope>runtime</scope> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.tomcat</groupId> | |||
<artifactId>tomcat-jdbc</artifactId> | |||
<scope>runtime</scope> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.tomcat</groupId> | |||
<artifactId>tomcat-juli</artifactId> | |||
<scope>runtime</scope> | |||
</dependency> | |||
</dependencies> | |||
<build> | |||
<plugins> |
@@ -157,31 +157,29 @@ | |||
<New id="users" class="org.eclipse.jetty.plus.jndi.Resource"> | |||
<Arg>jdbc/users</Arg> | |||
<Arg> | |||
<New class="org.apache.tomcat.jdbc.pool.DataSource"> | |||
<New class="com.zaxxer.hikari.HikariDataSource"> | |||
<Set name="driverClassName">org.apache.derby.jdbc.EmbeddedDriver</Set> | |||
<Set name="url">jdbc:derby:<SystemProperty name="appserver.base" default=".."/>/data/databases/users;create=true</Set> | |||
<Set name="jdbcUrl">jdbc:derby:<SystemProperty name="appserver.base" default=".."/>/data/databases/users;create=true</Set> | |||
<Set name="username">sa</Set> | |||
<Set name="maxActive">20</Set> | |||
<Set name="removeAbandoned">true</Set> | |||
<Set name="logAbandoned">true</Set> | |||
<Set name="initialSize">5</Set> | |||
<Set name="testOnBorrow">true</Set> | |||
<Set name="maximumPoolSize">20</Set> | |||
<Set name="minimumIdle">5</Set> | |||
<!-- very rigourous sql query validation --> | |||
<Set name="validationQuery">select 1</Set> | |||
<!--Set name="connectionTestQuery">select 1</Set--> | |||
</New> | |||
</Arg> | |||
</New> | |||
<!-- | |||
<New id="usersShutdown" class="org.eclipse.jetty.plus.jndi.Resource"> | |||
<Arg>jdbc/usersShutdown</Arg> | |||
<Arg> | |||
<New class="org.apache.tomcat.jdbc.pool.DataSource"> | |||
<New class="com.zaxxer.hikari.HikariDataSource"> | |||
<Set name="driverClassName">org.apache.derby.jdbc.EmbeddedDriver</Set> | |||
<Set name="url">jdbc:derby:<SystemProperty name="appserver.base" default=".."/>/data/databases/users</Set> | |||
<Set name="jdbcUrl">jdbc:derby:<SystemProperty name="appserver.base" default=".."/>/data/databases/users</Set> | |||
<Set name="username">sa</Set> | |||
</New> | |||
</Arg> | |||
</New> | |||
--> | |||
</Configure> |
@@ -53,7 +53,7 @@ public class DefaultRepositoryScanner | |||
@Inject | |||
private RepositoryContentConsumers repositoryContentConsumers; | |||
private Set<RepositoryScannerInstance> inProgressScans = new LinkedHashSet<RepositoryScannerInstance>(); | |||
private Set<RepositoryScannerInstance> inProgressScans = new LinkedHashSet<>(); | |||
@Override | |||
public RepositoryScanStatistics scan( ManagedRepository repository, long changesSince ) |
@@ -27,9 +27,11 @@ import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager; | |||
import org.apache.archiva.mock.MockRepositorySessionFactory; | |||
import org.apache.archiva.redback.components.taskqueue.execution.TaskExecutor; | |||
import org.apache.archiva.test.utils.ArchivaSpringJUnit4ClassRunner; | |||
import org.apache.commons.lang.StringUtils; | |||
import org.codehaus.plexus.util.FileUtils; | |||
import org.junit.After; | |||
import org.junit.Before; | |||
import org.junit.BeforeClass; | |||
import org.junit.runner.RunWith; | |||
import org.springframework.test.annotation.DirtiesContext; | |||
import org.springframework.test.context.ContextConfiguration; | |||
@@ -48,7 +50,7 @@ import static org.mockito.Mockito.mock; | |||
@RunWith( ArchivaSpringJUnit4ClassRunner.class ) | |||
@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } ) | |||
@DirtiesContext( classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD ) | |||
public abstract class ArchivaRepositoryScanningTaskExecutorAbstractTest | |||
public abstract class AbstractArchivaRepositoryScanningTaskExecutorTest | |||
extends TestCase | |||
{ | |||
@Inject | |||
@@ -96,12 +98,11 @@ public abstract class ArchivaRepositoryScanningTaskExecutorAbstractTest | |||
// set the timestamps to a time well in the past | |||
Calendar cal = Calendar.getInstance(); | |||
cal.add( Calendar.YEAR, -1 ); | |||
for ( File f : (List<File>) FileUtils.getFiles( repoDir, "**", null ) ) | |||
{ | |||
f.setLastModified( cal.getTimeInMillis() ); | |||
} | |||
FileUtils.getFiles( repoDir, "**", null ) // | |||
.stream().forEach( file -> file.setLastModified( cal.getTimeInMillis() ) ); | |||
// TODO: test they are excluded instead | |||
for ( String dir : (List<String>) FileUtils.getDirectoryNames( repoDir, "**/.svn", null, false ) ) | |||
for ( String dir : FileUtils.getDirectoryNames( repoDir, "**/.svn", null, false ) ) | |||
{ | |||
FileUtils.deleteDirectory( new File( repoDir, dir ) ); | |||
} |
@@ -33,7 +33,7 @@ import java.util.Collection; | |||
*/ | |||
@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } ) | |||
public class ArchivaRepositoryScanningTaskExecutorPhase1Test | |||
extends ArchivaRepositoryScanningTaskExecutorAbstractTest | |||
extends AbstractArchivaRepositoryScanningTaskExecutorTest | |||
{ | |||
// Split of ArchivaRepositoryScanningTaskExecutorTest should be executed first | |||
// to avoid testConsumer in unknown state if member of Phase2 all ready executed |
@@ -34,26 +34,23 @@ import java.util.Date; | |||
/** | |||
* ArchivaRepositoryScanningTaskExecutorPhase2Test | |||
* | |||
* | |||
*/ | |||
@ContextConfiguration( locations = { "classpath*:/META-INF/spring-context.xml", "classpath:/spring-context.xml" } ) | |||
public class ArchivaRepositoryScanningTaskExecutorPhase2Test | |||
extends ArchivaRepositoryScanningTaskExecutorAbstractTest | |||
extends AbstractArchivaRepositoryScanningTaskExecutorTest | |||
{ | |||
@Test | |||
public void testExecutorScanOnlyNewArtifacts() | |||
throws Exception | |||
{ | |||
createAndSaveTestStats(); | |||
RepositoryTask repoTask = new RepositoryTask(); | |||
repoTask.setRepositoryId( TEST_REPO_ID ); | |||
repoTask.setScanAll( false ); | |||
createAndSaveTestStats(); | |||
taskExecutor.executeTask( repoTask ); | |||
// check no artifacts processed | |||
@@ -67,7 +64,7 @@ public class ArchivaRepositoryScanningTaskExecutorPhase2Test | |||
RepositoryStatistics newStats = | |||
repositoryStatisticsManager.getLastStatistics( metadataRepository, TEST_REPO_ID ); | |||
assertEquals( 0, newStats.getNewFileCount() ); | |||
assertEquals( 31, newStats.getTotalFileCount() ); | |||
assertEquals( 41, newStats.getTotalFileCount() ); | |||
// FIXME: can't test these as they weren't stored in the database, move to tests for RepositoryStatisticsManager implementation | |||
// assertEquals( 8, newStats.getTotalArtifactCount() ); | |||
// assertEquals( 3, newStats.getTotalGroupCount() ); | |||
@@ -100,7 +97,7 @@ public class ArchivaRepositoryScanningTaskExecutorPhase2Test | |||
RepositoryStatistics updatedStats = | |||
repositoryStatisticsManager.getLastStatistics( metadataRepository, TEST_REPO_ID ); | |||
assertEquals( 2, updatedStats.getNewFileCount() ); | |||
assertEquals( 33, updatedStats.getTotalFileCount() ); | |||
assertEquals( 43, updatedStats.getTotalFileCount() ); | |||
// FIXME: can't test these as they weren't stored in the database, move to tests for RepositoryStatisticsManager implementation | |||
// assertEquals( 8, newStats.getTotalArtifactCount() ); | |||
// assertEquals( 3, newStats.getTotalGroupCount() ); | |||
@@ -147,7 +144,7 @@ public class ArchivaRepositoryScanningTaskExecutorPhase2Test | |||
RepositoryStatistics newStats = | |||
repositoryStatisticsManager.getLastStatistics( metadataRepository, TEST_REPO_ID ); | |||
assertEquals( 2, newStats.getNewFileCount() ); | |||
assertEquals( 33, newStats.getTotalFileCount() ); | |||
assertEquals( 43, newStats.getTotalFileCount() ); | |||
// FIXME: can't test these as they weren't stored in the database, move to tests for RepositoryStatisticsManager implementation | |||
// assertEquals( 8, newStats.getTotalArtifactCount() ); | |||
// assertEquals( 3, newStats.getTotalGroupCount() ); | |||
@@ -194,7 +191,7 @@ public class ArchivaRepositoryScanningTaskExecutorPhase2Test | |||
RepositoryStatistics newStats = | |||
repositoryStatisticsManager.getLastStatistics( metadataRepository, TEST_REPO_ID ); | |||
assertEquals( 2, newStats.getNewFileCount() ); | |||
assertEquals( 33, newStats.getTotalFileCount() ); | |||
assertEquals( 43, newStats.getTotalFileCount() ); | |||
// FIXME: can't test these as they weren't stored in the database, move to tests for RepositoryStatisticsManager implementation | |||
// assertEquals( 8, newStats.getTotalArtifactCount() ); | |||
// assertEquals( 3, newStats.getTotalGroupCount() ); | |||
@@ -212,8 +209,9 @@ public class ArchivaRepositoryScanningTaskExecutorPhase2Test | |||
repoTask.setScanAll( true ); | |||
Date date = Calendar.getInstance().getTime(); | |||
repositoryStatisticsManager.addStatisticsAfterScan( metadataRepository, TEST_REPO_ID, | |||
new Date( date.getTime() - 1234567 ), date, 8, 8 ); | |||
repositoryStatisticsManager.addStatisticsAfterScan( metadataRepository, TEST_REPO_ID, // | |||
new Date( date.getTime() - 1234567 ), // | |||
date, 8, 8 ); // | |||
taskExecutor.executeTask( repoTask ); | |||
@@ -227,17 +225,9 @@ public class ArchivaRepositoryScanningTaskExecutorPhase2Test | |||
throws MetadataRepositoryException | |||
{ | |||
Date date = Calendar.getInstance().getTime(); | |||
RepositoryStatistics stats = new RepositoryStatistics(); | |||
stats.setScanStartTime( new Date( date.getTime() - 1234567 ) ); | |||
stats.setScanEndTime( date ); | |||
stats.setNewFileCount( 31 ); | |||
stats.setTotalArtifactCount( 8 ); | |||
stats.setTotalFileCount( 31 ); | |||
stats.setTotalGroupCount( 3 ); | |||
stats.setTotalProjectCount( 5 ); | |||
stats.setTotalArtifactFileSize( 38545 ); | |||
repositoryStatisticsManager.addStatisticsAfterScan( metadataRepository, TEST_REPO_ID, | |||
new Date( date.getTime() - 1234567 ), date, 31, 31 ); | |||
repositoryStatisticsManager.addStatisticsAfterScan( metadataRepository, TEST_REPO_ID, // | |||
new Date( date.getTime() - 1234567 ), date, // | |||
41, 41 ); | |||
} | |||
} |
@@ -0,0 +1,38 @@ | |||
<?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. | |||
--> | |||
<configuration> | |||
<appenders> | |||
<Console name="console" target="SYSTEM_OUT"> | |||
<PatternLayout pattern="%d [%t] %-5p %c %x - %m%n"/> | |||
</Console> | |||
</appenders> | |||
<loggers> | |||
<logger name="org.springframework" level="error"/> | |||
<logger name="org.apache.archiva" level="debug"/> | |||
<root level="info"> | |||
<appender-ref ref="console"/> | |||
</root> | |||
</loggers> | |||
</configuration> | |||
@@ -79,7 +79,7 @@ | |||
<jackrabbit.version>2.14.1</jackrabbit.version> | |||
<cxf.version>3.0.3</cxf.version> | |||
<derbyVersion>10.10.1.1</derbyVersion> | |||
<derbyVersion>10.13.1.1</derbyVersion> | |||
<httpclient.version>4.5.2</httpclient.version> | |||
<httpclient.core.version>4.4.4</httpclient.core.version> | |||
<javaxMailVersion>1.4</javaxMailVersion> | |||
@@ -95,7 +95,6 @@ | |||
<plexus-digest.version>1.1</plexus-digest.version> | |||
<plexus-expression-evaluator.version>2.1</plexus-expression-evaluator.version> | |||
<plexus-utils.version>3.0.15</plexus-utils.version> | |||
<tomcat7Version>7.0.54</tomcat7Version> | |||
<htmlUnitVersion>2.27</htmlUnitVersion> | |||
<release.preparationGoals>clean install</release.preparationGoals> | |||
@@ -460,7 +459,13 @@ | |||
<dependency> | |||
<groupId>com.lmax</groupId> | |||
<artifactId>disruptor</artifactId> | |||
<version>3.2.1</version> | |||
<version>3.3.6</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.zaxxer</groupId> | |||
<artifactId>HikariCP</artifactId> | |||
<version>2.6.3</version> | |||
</dependency> | |||
<!-- | |||
@@ -644,16 +649,6 @@ | |||
<artifactId>commons-lang</artifactId> | |||
<version>${commons-lang.version}</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.tomcat</groupId> | |||
<artifactId>tomcat-jdbc</artifactId> | |||
<version>${tomcat7Version}</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.tomcat</groupId> | |||
<artifactId>tomcat-juli</artifactId> | |||
<version>${tomcat7Version}</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.apache.commons</groupId> | |||
<artifactId>commons-compress</artifactId> |