Package org.apache.archiva.indexer.merger

Examples of org.apache.archiva.indexer.merger.TemporaryGroupIndex


            if ( temporaryGroupIndexMap == null )
            {
                temporaryGroupIndexMap = new HashMap<String, TemporaryGroupIndex>();
            }

            TemporaryGroupIndex tmp = temporaryGroupIndexMap.get( groupId );

            if ( tmp != null && tmp.getDirectory() != null && tmp.getDirectory().exists() )
            {
                if ( System.currentTimeMillis() - tmp.getCreationTime() > ( indexMerger.getDefaultGroupIndexTtl() * 60
                    * 1000 ) )
                {
                    log.debug( "tmp group index is too old so delete it" );
                    indexMerger.cleanTemporaryGroupIndex( tmp );
                }
                else
                {
                    return tmp.getDirectory();
                }
            }

            Set<String> authzRepos = new HashSet<String>();
            for ( String repository : repositories )
            {
                try
                {
                    if ( servletAuth.isAuthorized( activePrincipal, repository,
                                                   WebdavMethodUtil.getMethodPermission( request.getMethod() ) ) )
                    {
                        authzRepos.add( repository );
                        authzRepos.addAll( this.repositorySearch.getRemoteIndexingContextIds( repository ) );
                    }
                }
                catch ( UnauthorizedException e )
                {
                    // TODO: review exception handling
                    if ( log.isDebugEnabled() )
                    {
                        log.debug( "Skipping repository '" + repository + "' for user '" + activePrincipal + "': "
                                       + e.getMessage() );
                    }
                }
            }
            IndexingContext indexingContext = indexMerger.buildMergedIndex( authzRepos, true );
            File mergedRepoDir = indexingContext.getIndexDirectoryFile();
            TemporaryGroupIndex temporaryGroupIndex =
                new TemporaryGroupIndex( mergedRepoDir, indexingContext.getId() ).setCreationTime(
                    new Date().getTime() );
            temporaryGroupIndexMap.put( groupId, temporaryGroupIndex );
            session.setAttribute( TemporaryGroupIndexSessionCleaner.TEMPORARY_INDEX_SESSION_KEY,
                                  temporaryGroupIndexMap );
            return mergedRepoDir;
View Full Code Here


            if ( temporaryGroupIndexMap == null )
            {
                temporaryGroupIndexMap = new HashMap<>();
            }

            TemporaryGroupIndex tmp = temporaryGroupIndexMap.get( repositoryGroupConfiguration.getId() );

            if ( tmp != null && tmp.getDirectory() != null && tmp.getDirectory().exists() )
            {
                if ( System.currentTimeMillis() - tmp.getCreationTime() > (
                    repositoryGroupConfiguration.getMergedIndexTtl() * 60 * 1000 ) )
                {
                    log.debug( MarkerFactory.getMarker( "group.merged.index" ),
                               "tmp group index '{}' is too old so delete it", repositoryGroupConfiguration.getId() );
                    indexMerger.cleanTemporaryGroupIndex( tmp );
                }
                else
                {
                    log.debug( MarkerFactory.getMarker( "group.merged.index" ),
                               "merged index for group '{}' found in cache", repositoryGroupConfiguration.getId() );
                    return tmp.getDirectory();
                }
            }

            Set<String> authzRepos = new HashSet<String>();

            String permission = WebdavMethodUtil.getMethodPermission( request.getMethod() );

            for ( String repository : repositories )
            {
                try
                {
                    if ( servletAuth.isAuthorized( activePrincipal, repository, permission ) )
                    {
                        authzRepos.add( repository );
                        authzRepos.addAll( this.repositorySearch.getRemoteIndexingContextIds( repository ) );
                    }
                }
                catch ( UnauthorizedException e )
                {
                    // TODO: review exception handling

                    log.debug( "Skipping repository '{}' for user '{}': {}", repository, activePrincipal,
                               e.getMessage() );
                }
            }
            log.info( "generate temporary merged index for repository group '{}' for repositories '{}'",
                      repositoryGroupConfiguration.getId(), authzRepos );

            File tempRepoFile = Files.createTempDirectory( "temp" ).toFile();
            tempRepoFile.deleteOnExit();

            IndexMergerRequest indexMergerRequest =
                new IndexMergerRequest( authzRepos, true, repositoryGroupConfiguration.getId(),
                                        repositoryGroupConfiguration.getMergedIndexPath(),
                                        repositoryGroupConfiguration.getMergedIndexTtl() ).mergedIndexDirectory(
                    tempRepoFile ).temporary( true );

            MergedRemoteIndexesTaskRequest taskRequest =
                new MergedRemoteIndexesTaskRequest( indexMergerRequest, indexMerger );

            MergedRemoteIndexesTask job = new MergedRemoteIndexesTask( taskRequest );

            IndexingContext indexingContext = job.execute().getIndexingContext();

            File mergedRepoDir = indexingContext.getIndexDirectoryFile();
            TemporaryGroupIndex temporaryGroupIndex =
                new TemporaryGroupIndex( mergedRepoDir, indexingContext.getId(), repositoryGroupConfiguration.getId(),
                                         repositoryGroupConfiguration.getMergedIndexTtl() ) //
                    .setCreationTime( new Date().getTime() );
            temporaryGroupIndexMap.put( repositoryGroupConfiguration.getId(), temporaryGroupIndex );
            session.setAttribute( TemporaryGroupIndexSessionCleaner.TEMPORARY_INDEX_SESSION_KEY,
                                  temporaryGroupIndexMap );
View Full Code Here

            if ( temporaryGroupIndexMap == null )
            {
                temporaryGroupIndexMap = new HashMap<String, TemporaryGroupIndex>();
            }

            TemporaryGroupIndex tmp = temporaryGroupIndexMap.get( repositoryGroupConfiguration.getId() );

            if ( tmp != null && tmp.getDirectory() != null && tmp.getDirectory().exists() )
            {
                if ( System.currentTimeMillis() - tmp.getCreationTime() > (
                    repositoryGroupConfiguration.getMergedIndexTtl() * 60 * 1000 ) )
                {
                    log.debug( MarkerFactory.getMarker( "group.merged.index" ),
                               "tmp group index '{}' is too old so delete it", repositoryGroupConfiguration.getId() );
                    indexMerger.cleanTemporaryGroupIndex( tmp );
                }
                else
                {
                    log.debug( MarkerFactory.getMarker( "group.merged.index" ),
                               "merged index for group '{}' found in cache", repositoryGroupConfiguration.getId() );
                    return tmp.getDirectory();
                }
            }

            Set<String> authzRepos = new HashSet<String>();

            String permission = WebdavMethodUtil.getMethodPermission( request.getMethod() );

            for ( String repository : repositories )
            {
                try
                {
                    if ( servletAuth.isAuthorized( activePrincipal, repository, permission ) )
                    {
                        authzRepos.add( repository );
                        authzRepos.addAll( this.repositorySearch.getRemoteIndexingContextIds( repository ) );
                    }
                }
                catch ( UnauthorizedException e )
                {
                    // TODO: review exception handling

                    log.debug( "Skipping repository '{}' for user '{}': {}", repository, activePrincipal,
                               e.getMessage() );
                }
            }
            log.info( "generate temporary merged index for repository group '{}' for repositories '{}'",
                      repositoryGroupConfiguration.getId(), authzRepos );

            File tempRepoFile = Files.createTempDir();
            tempRepoFile.deleteOnExit();

            IndexMergerRequest indexMergerRequest = new IndexMergerRequest( authzRepos, true, repositoryGroupConfiguration.getId(),
                                    repositoryGroupConfiguration.getMergedIndexPath(),
                                    repositoryGroupConfiguration.getMergedIndexTtl() ).mergedIndexDirectory( tempRepoFile )
                                    .temporary( true );

            MergedRemoteIndexesTaskRequest taskRequest =
                new MergedRemoteIndexesTaskRequest(indexMergerRequest, indexMerger);

            MergedRemoteIndexesTask job = new MergedRemoteIndexesTask( taskRequest );

            IndexingContext indexingContext = job.execute().getIndexingContext();

            File mergedRepoDir = indexingContext.getIndexDirectoryFile();
            TemporaryGroupIndex temporaryGroupIndex =
                new TemporaryGroupIndex( mergedRepoDir, indexingContext.getId(), repositoryGroupConfiguration.getId(),
                                         repositoryGroupConfiguration.getMergedIndexTtl() ).setCreationTime(
                    new Date().getTime() );
            temporaryGroupIndexMap.put( repositoryGroupConfiguration.getId(), temporaryGroupIndex );
            session.setAttribute( TemporaryGroupIndexSessionCleaner.TEMPORARY_INDEX_SESSION_KEY,
                                  temporaryGroupIndexMap );
View Full Code Here

            if ( temporaryGroupIndexMap == null )
            {
                temporaryGroupIndexMap = new HashMap<>();
            }

            TemporaryGroupIndex tmp = temporaryGroupIndexMap.get( repositoryGroupConfiguration.getId() );

            if ( tmp != null && tmp.getDirectory() != null && tmp.getDirectory().exists() )
            {
                if ( System.currentTimeMillis() - tmp.getCreationTime() > (
                    repositoryGroupConfiguration.getMergedIndexTtl() * 60 * 1000 ) )
                {
                    log.debug( MarkerFactory.getMarker( "group.merged.index" ),
                               "tmp group index '{}' is too old so delete it", repositoryGroupConfiguration.getId() );
                    indexMerger.cleanTemporaryGroupIndex( tmp );
                }
                else
                {
                    log.debug( MarkerFactory.getMarker( "group.merged.index" ),
                               "merged index for group '{}' found in cache", repositoryGroupConfiguration.getId() );
                    return tmp.getDirectory();
                }
            }

            Set<String> authzRepos = new HashSet<String>();

            String permission = WebdavMethodUtil.getMethodPermission( request.getMethod() );

            for ( String repository : repositories )
            {
                try
                {
                    if ( servletAuth.isAuthorized( activePrincipal, repository, permission ) )
                    {
                        authzRepos.add( repository );
                        authzRepos.addAll( this.repositorySearch.getRemoteIndexingContextIds( repository ) );
                    }
                }
                catch ( UnauthorizedException e )
                {
                    // TODO: review exception handling

                    log.debug( "Skipping repository '{}' for user '{}': {}", repository, activePrincipal,
                               e.getMessage() );
                }
            }
            log.info( "generate temporary merged index for repository group '{}' for repositories '{}'",
                      repositoryGroupConfiguration.getId(), authzRepos );

            File tempRepoFile = Files.createTempDirectory("temp").toFile();
            tempRepoFile.deleteOnExit();

            IndexMergerRequest indexMergerRequest =
                new IndexMergerRequest( authzRepos, true, repositoryGroupConfiguration.getId(),
                                        repositoryGroupConfiguration.getMergedIndexPath(),
                                        repositoryGroupConfiguration.getMergedIndexTtl() ).mergedIndexDirectory(
                    tempRepoFile ).temporary( true );

            MergedRemoteIndexesTaskRequest taskRequest =
                new MergedRemoteIndexesTaskRequest( indexMergerRequest, indexMerger );

            MergedRemoteIndexesTask job = new MergedRemoteIndexesTask( taskRequest );

            IndexingContext indexingContext = job.execute().getIndexingContext();

            File mergedRepoDir = indexingContext.getIndexDirectoryFile();
            TemporaryGroupIndex temporaryGroupIndex =
                new TemporaryGroupIndex( mergedRepoDir, indexingContext.getId(), repositoryGroupConfiguration.getId(),
                                         repositoryGroupConfiguration.getMergedIndexTtl() ).setCreationTime(
                    new Date().getTime() );
            temporaryGroupIndexMap.put( repositoryGroupConfiguration.getId(), temporaryGroupIndex );
            session.setAttribute( TemporaryGroupIndexSessionCleaner.TEMPORARY_INDEX_SESSION_KEY,
                                  temporaryGroupIndexMap );
View Full Code Here

            if ( temporaryGroupIndexMap == null )
            {
                temporaryGroupIndexMap = new HashMap<String, TemporaryGroupIndex>();
            }

            TemporaryGroupIndex tmp = temporaryGroupIndexMap.get( repositoryGroupConfiguration.getId() );

            if ( tmp != null && tmp.getDirectory() != null && tmp.getDirectory().exists() )
            {
                if ( System.currentTimeMillis() - tmp.getCreationTime() > (
                    repositoryGroupConfiguration.getMergedIndexTtl() * 60 * 1000 ) )
                {
                    log.debug( MarkerFactory.getMarker( "group.merged.index" ),
                               "tmp group index '{}' is too old so delete it", repositoryGroupConfiguration.getId() );
                    indexMerger.cleanTemporaryGroupIndex( tmp );
                }
                else
                {
                    log.debug( MarkerFactory.getMarker( "group.merged.index" ),
                               "merged index for group '{}' found in cache", repositoryGroupConfiguration.getId() );
                    return tmp.getDirectory();
                }
            }

            Set<String> authzRepos = new HashSet<String>();

            String permission = WebdavMethodUtil.getMethodPermission( request.getMethod() );

            for ( String repository : repositories )
            {
                try
                {
                    if ( servletAuth.isAuthorized( activePrincipal, repository, permission ) )
                    {
                        authzRepos.add( repository );
                        authzRepos.addAll( this.repositorySearch.getRemoteIndexingContextIds( repository ) );
                    }
                }
                catch ( UnauthorizedException e )
                {
                    // TODO: review exception handling

                    log.debug( "Skipping repository '{}' for user '{}': {}", repository, activePrincipal,
                               e.getMessage() );
                }
            }
            log.info( "generate temporary merged index for repository group '{}' for repositories '{}'",
                      repositoryGroupConfiguration.getId(), authzRepos );

            File tempRepoFile = Files.createTempDir();
            tempRepoFile.deleteOnExit();

            IndexMergerRequest indexMergerRequest =
                new IndexMergerRequest( authzRepos, true, repositoryGroupConfiguration.getId(),
                                        repositoryGroupConfiguration.getMergedIndexPath(),
                                        repositoryGroupConfiguration.getMergedIndexTtl() ).mergedIndexDirectory(
                    tempRepoFile ).temporary( true );

            MergedRemoteIndexesTaskRequest taskRequest =
                new MergedRemoteIndexesTaskRequest( indexMergerRequest, indexMerger );

            MergedRemoteIndexesTask job = new MergedRemoteIndexesTask( taskRequest );

            IndexingContext indexingContext = job.execute().getIndexingContext();

            File mergedRepoDir = indexingContext.getIndexDirectoryFile();
            TemporaryGroupIndex temporaryGroupIndex =
                new TemporaryGroupIndex( mergedRepoDir, indexingContext.getId(), repositoryGroupConfiguration.getId(),
                                         repositoryGroupConfiguration.getMergedIndexTtl() ).setCreationTime(
                    new Date().getTime() );
            temporaryGroupIndexMap.put( repositoryGroupConfiguration.getId(), temporaryGroupIndex );
            session.setAttribute( TemporaryGroupIndexSessionCleaner.TEMPORARY_INDEX_SESSION_KEY,
                                  temporaryGroupIndexMap );
View Full Code Here

            if ( temporaryGroupIndexMap == null )
            {
                temporaryGroupIndexMap = new HashMap<String, TemporaryGroupIndex>();
            }

            TemporaryGroupIndex tmp = temporaryGroupIndexMap.get( groupId );

            if ( tmp != null && tmp.getDirectory() != null && tmp.getDirectory().exists() )
            {
                if ( System.currentTimeMillis() - tmp.getCreationTime() > ( indexMerger.getDefaultGroupIndexTtl() * 60
                    * 1000 ) )
                {
                    log.debug( "tmp group index is too old so delete it" );
                    indexMerger.cleanTemporaryGroupIndex( tmp );
                }
                else
                {
                    return tmp.getDirectory();
                }
            }

            Set<String> authzRepos = new HashSet<String>();
            for ( String repository : repositories )
            {
                try
                {
                    if ( servletAuth.isAuthorized( activePrincipal, repository,
                                                   WebdavMethodUtil.getMethodPermission( request.getMethod() ) ) )
                    {
                        authzRepos.add( repository );
                        authzRepos.addAll( this.repositorySearch.getRemoteIndexingContextIds( repository ) );
                    }
                }
                catch ( UnauthorizedException e )
                {
                    // TODO: review exception handling

                    log.debug( "Skipping repository '{}' for user '{}': {}", repository, activePrincipal,
                               e.getMessage() );
                }
            }
            IndexingContext indexingContext = indexMerger.buildMergedIndex( authzRepos, true );
            File mergedRepoDir = indexingContext.getIndexDirectoryFile();
            TemporaryGroupIndex temporaryGroupIndex =
                new TemporaryGroupIndex( mergedRepoDir, indexingContext.getId() ).setCreationTime(
                    new Date().getTime() );
            temporaryGroupIndexMap.put( groupId, temporaryGroupIndex );
            session.setAttribute( TemporaryGroupIndexSessionCleaner.TEMPORARY_INDEX_SESSION_KEY,
                                  temporaryGroupIndexMap );
            return mergedRepoDir;
View Full Code Here

TOP

Related Classes of org.apache.archiva.indexer.merger.TemporaryGroupIndex

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.