[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 );
}
temporaryGroupIndexes.add(
new TemporaryGroupIndex( tempRepoFile, tempRepoId, indexMergerRequest.getGroupId() ) );
new TemporaryGroupIndex( tempRepoFile, tempRepoId, indexMergerRequest.getGroupId(), indexMergerRequest.getMergedIndexTtl() ) );
stopWatch.stop();
log.info( "merged index for repos {} in {} s", indexMergerRequest.getRepositoriesIds(),
stopWatch.getTime() );

View File

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

View File

@ -36,11 +36,14 @@ public class TemporaryGroupIndex
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.indexId = indexId;
this.groupId = groupId;
this.mergedIndexTtl = mergedIndexTtl;
}
public long getCreationTime()
@ -86,6 +89,14 @@ public class TemporaryGroupIndex
this.groupId = groupId;
}
public int getMergedIndexTtl() {
return mergedIndexTtl;
}
public void setMergedIndexTtl(int mergedIndexTtl) {
this.mergedIndexTtl = mergedIndexTtl;
}
@Override
public int hashCode()
{

View File

@ -58,7 +58,7 @@ public class TemporaryGroupIndexCleaner
for ( TemporaryGroupIndex temporaryGroupIndex : indexMerger.getTemporaryGroupIndexes() )
{
// 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() );
indexMerger.cleanTemporaryGroupIndex( temporaryGroupIndex );

View File

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