소스 검색

[MRM-1956] Replace tomcat-jdbc pool with HikariCP

Signed-off-by: olivier lamy <olamy@apache.org>
pull/30/head
olivier lamy 7 년 전
부모
커밋
8d3f82a479

+ 5
- 11
archiva-jetty/pom.xml 파일 보기

@@ -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>

+ 9
- 11
archiva-jetty/src/main/conf/jetty.xml 파일 보기

@@ -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>

+ 1
- 1
archiva-modules/archiva-base/archiva-repository-scanner/src/main/java/org/apache/archiva/repository/scanner/DefaultRepositoryScanner.java 파일 보기

@@ -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 )

archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorAbstractTest.java → archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/AbstractArchivaRepositoryScanningTaskExecutorTest.java 파일 보기

@@ -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 ) );
}

+ 1
- 1
archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase1Test.java 파일 보기

@@ -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

+ 14
- 24
archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/java/org/apache/archiva/scheduler/repository/ArchivaRepositoryScanningTaskExecutorPhase2Test.java 파일 보기

@@ -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 );
}
}

+ 38
- 0
archiva-modules/archiva-scheduler/archiva-scheduler-repository/src/test/resources/log4j2-test.xml 파일 보기

@@ -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>



+ 8
- 13
pom.xml 파일 보기

@@ -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>

Loading…
취소
저장