This project has retired. For details please refer to its Attic page.
Source code
001package org.apache.archiva.indexer.merger.base;
002/*
003 * Licensed to the Apache Software Foundation (ASF) under one
004 * or more contributor license agreements.  See the NOTICE file
005 * distributed with this work for additional information
006 * regarding copyright ownership.  The ASF licenses this file
007 * to you under the Apache License, Version 2.0 (the
008 * "License"); you may not use this file except in compliance
009 * with the License.  You may obtain a copy of the License at
010 *
011 *   http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing,
014 * software distributed under the License is distributed on an
015 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
016 * KIND, either express or implied.  See the License for the
017 * specific language governing permissions and limitations
018 * under the License.
019 */
020
021import org.apache.archiva.indexer.merger.IndexMerger;
022import org.slf4j.Logger;
023import org.slf4j.LoggerFactory;
024import org.springframework.scheduling.annotation.Scheduled;
025import org.springframework.stereotype.Service;
026
027import javax.inject.Inject;
028import java.util.Date;
029
030/**
031 * @author Olivier Lamy
032 * @since 1.4-M2
033 */
034@Service
035public class TemporaryGroupIndexCleaner
036{
037    private Logger log = LoggerFactory.getLogger( getClass() );
038
039    @Inject
040    private IndexMerger indexMerger;
041
042
043    public TemporaryGroupIndexCleaner( )
044    {
045
046    }
047
048    // 900000
049    @Scheduled(fixedDelay = 900000)
050    public void cleanTemporaryIndex()
051    {
052
053        indexMerger.getTemporaryGroupIndexes()
054            .stream()
055            .forEach( temporaryGroupIndex ->
056                 {
057                     // cleanup files older than the ttl
058                     if ( new Date().getTime() - temporaryGroupIndex.getCreationTime() >
059                         temporaryGroupIndex.getMergedIndexTtl() )
060                     {
061                         log.info( "cleanTemporaryIndex for groupId {}", temporaryGroupIndex.getGroupId() );
062                         indexMerger.cleanTemporaryGroupIndex( temporaryGroupIndex );
063
064                     }
065                 }
066        );
067    }
068}