[MRM-1751] include mergedIndexTtl in temporary group index & indexmergerrequest so the repo config for ttl will be used upon clean up instead of the default config

git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1484377 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Maria Odea B. Ching 2013-05-20 06:24:33 +00:00
parent cfaf9559dd
commit 04bb7a29d3
5 changed files with 31 additions and 8 deletions

View File

@ -122,7 +122,7 @@ public class DefaultIndexMerger
indexPacker.packIndex( request ); indexPacker.packIndex( request );
} }
temporaryGroupIndexes.add( temporaryGroupIndexes.add(
new TemporaryGroupIndex( tempRepoFile, tempRepoId, indexMergerRequest.getGroupId() ) ); new TemporaryGroupIndex( tempRepoFile, tempRepoId, indexMergerRequest.getGroupId(), indexMergerRequest.getMergedIndexTtl() ) );
stopWatch.stop(); stopWatch.stop();
log.info( "merged index for repos {} in {} s", indexMergerRequest.getRepositoriesIds(), log.info( "merged index for repos {} in {} s", indexMergerRequest.getRepositoriesIds(),
stopWatch.getTime() ); stopWatch.getTime() );

View File

@ -42,6 +42,8 @@ public class IndexMergerRequest
private String mergedIndexPath = "/.indexer"; private String mergedIndexPath = "/.indexer";
private int mergedIndexTtl;
public IndexMergerRequest( Collection<String> repositoriesIds, boolean packIndex, String groupId ) public IndexMergerRequest( Collection<String> repositoriesIds, boolean packIndex, String groupId )
{ {
this.repositoriesIds = repositoriesIds; this.repositoriesIds = repositoriesIds;
@ -52,13 +54,14 @@ public class IndexMergerRequest
/** /**
* @since 1.4-M4 * @since 1.4-M4
*/ */
public IndexMergerRequest( Collection<String> repositoriesIds, boolean packIndex, String groupId, public IndexMergerRequest(Collection<String> repositoriesIds, boolean packIndex, String groupId,
String mergedIndexPath ) String mergedIndexPath, int mergedIndexTtl)
{ {
this.repositoriesIds = repositoriesIds; this.repositoriesIds = repositoriesIds;
this.packIndex = packIndex; this.packIndex = packIndex;
this.groupId = groupId; this.groupId = groupId;
this.mergedIndexPath = mergedIndexPath; this.mergedIndexPath = mergedIndexPath;
this.mergedIndexTtl = mergedIndexTtl;
} }
public Collection<String> getRepositoriesIds() public Collection<String> getRepositoriesIds()
@ -101,6 +104,14 @@ public class IndexMergerRequest
this.mergedIndexPath = mergedIndexPath; this.mergedIndexPath = mergedIndexPath;
} }
public int getMergedIndexTtl() {
return mergedIndexTtl;
}
public void setMergedIndexTtl(int mergedIndexTtl) {
this.mergedIndexTtl = mergedIndexTtl;
}
@Override @Override
public String toString() public String toString()
{ {
@ -109,6 +120,7 @@ public class IndexMergerRequest
sb.append( ", packIndex=" ).append( packIndex ); sb.append( ", packIndex=" ).append( packIndex );
sb.append( ", groupId='" ).append( groupId ).append( '\'' ); sb.append( ", groupId='" ).append( groupId ).append( '\'' );
sb.append( ", mergedIndexPath='" ).append( mergedIndexPath ).append( '\'' ); sb.append( ", mergedIndexPath='" ).append( mergedIndexPath ).append( '\'' );
sb.append( ", mergedIndexTtl='" ).append( mergedIndexTtl ).append( '\'' );
sb.append( '}' ); sb.append( '}' );
return sb.toString(); return sb.toString();
} }

View File

@ -36,11 +36,14 @@ public class TemporaryGroupIndex
private String groupId; private String groupId;
public TemporaryGroupIndex( File directory, String indexId, String groupId ) private int mergedIndexTtl;
public TemporaryGroupIndex(File directory, String indexId, String groupId, int mergedIndexTtl)
{ {
this.directory = directory; this.directory = directory;
this.indexId = indexId; this.indexId = indexId;
this.groupId = groupId; this.groupId = groupId;
this.mergedIndexTtl = mergedIndexTtl;
} }
public long getCreationTime() public long getCreationTime()
@ -86,6 +89,14 @@ public class TemporaryGroupIndex
this.groupId = groupId; this.groupId = groupId;
} }
public int getMergedIndexTtl() {
return mergedIndexTtl;
}
public void setMergedIndexTtl(int mergedIndexTtl) {
this.mergedIndexTtl = mergedIndexTtl;
}
@Override @Override
public int hashCode() public int hashCode()
{ {

View File

@ -58,7 +58,7 @@ public class TemporaryGroupIndexCleaner
for ( TemporaryGroupIndex temporaryGroupIndex : indexMerger.getTemporaryGroupIndexes() ) for ( TemporaryGroupIndex temporaryGroupIndex : indexMerger.getTemporaryGroupIndexes() )
{ {
// cleanup files older than the ttl // cleanup files older than the ttl
if ( new Date().getTime() - temporaryGroupIndex.getCreationTime() > indexMerger.getGroupMergedIndexTtl() ) if ( new Date().getTime() - temporaryGroupIndex.getCreationTime() > temporaryGroupIndex.getMergedIndexTtl() )
{ {
log.info( "cleanTemporaryIndex for groupId {}", temporaryGroupIndex.getGroupId() ); log.info( "cleanTemporaryIndex for groupId {}", temporaryGroupIndex.getGroupId() );
indexMerger.cleanTemporaryGroupIndex( temporaryGroupIndex ); indexMerger.cleanTemporaryGroupIndex( temporaryGroupIndex );

View File

@ -1240,11 +1240,11 @@ public class ArchivaDavResourceFactory
repositoryGroupConfiguration.getId(), authzRepos ); repositoryGroupConfiguration.getId(), authzRepos );
IndexingContext indexingContext = indexMerger.buildMergedIndex( IndexingContext indexingContext = indexMerger.buildMergedIndex(
new IndexMergerRequest( authzRepos, true, repositoryGroupConfiguration.getId(), new IndexMergerRequest( authzRepos, true, repositoryGroupConfiguration.getId(),
repositoryGroupConfiguration.getMergedIndexPath() ) ); repositoryGroupConfiguration.getMergedIndexPath(), repositoryGroupConfiguration.getMergedIndexTtl() ) );
File mergedRepoDir = indexingContext.getIndexDirectoryFile(); File mergedRepoDir = indexingContext.getIndexDirectoryFile();
TemporaryGroupIndex temporaryGroupIndex = new TemporaryGroupIndex( mergedRepoDir, indexingContext.getId(), TemporaryGroupIndex temporaryGroupIndex = new TemporaryGroupIndex( mergedRepoDir, indexingContext.getId(),
repositoryGroupConfiguration.getId() ).setCreationTime( repositoryGroupConfiguration.getId(),repositoryGroupConfiguration.getMergedIndexTtl() )
new Date().getTime() ); .setCreationTime(new Date().getTime() );
temporaryGroupIndexMap.put( repositoryGroupConfiguration.getId(), temporaryGroupIndex ); temporaryGroupIndexMap.put( repositoryGroupConfiguration.getId(), temporaryGroupIndex );
session.setAttribute( TemporaryGroupIndexSessionCleaner.TEMPORARY_INDEX_SESSION_KEY, session.setAttribute( TemporaryGroupIndexSessionCleaner.TEMPORARY_INDEX_SESSION_KEY,
temporaryGroupIndexMap ); temporaryGroupIndexMap );