Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.apache.maven.plugin;
  
  /*
   * 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.
  */
 
 import java.util.List;
 import java.util.Map;
 
Default PluginCache implementation. Assumes cached data does not change.
 
 @Component( role = PluginRealmCache.class )
 public class DefaultPluginRealmCache
     implements PluginRealmCacheDisposable
 {
 
     protected static class CacheKey
         implements Key
     {
 
         private final Plugin plugin;
 
         private final WorkspaceRepository workspace;
 
         private final LocalRepository localRepo;
 
         private final List<RemoteRepositoryrepositories;
 
         private final ClassLoader parentRealm;
 
         private final Map<StringClassLoaderforeignImports;
 
         private final DependencyFilter filter;
 
         private final int hashCode;
 
         public CacheKeyPlugin pluginClassLoader parentRealmMap<StringClassLoaderforeignImports,
                          DependencyFilter dependencyFilterList<RemoteRepositoryrepositories,
                          RepositorySystemSession session )
         {
             this. = plugin.clone();
             this. = CacheUtils.getWorkspacesession );
             this. = session.getLocalRepository();
             this. = new ArrayList<RemoteRepository>( repositories.size() );
             for ( RemoteRepository repository : repositories )
             {
                 if ( repository.isRepositoryManager() )
                 {
                     this..addAllrepository.getMirroredRepositories() );
                 }
                 else
                 {
                     this..addrepository );
                 }
             }
             this. = parentRealm;
             this. =
                 ( foreignImports != null ) ? foreignImports : Collections.<StringClassLoaderemptyMap();
             this. = dependencyFilter;
 
             int hash = 17;
             hash = hash * 31 + CacheUtils.pluginHashCodeplugin );
             hash = hash * 31 + hash );
             hash = hash * 31 + hash );
             hash = hash * 31 + CacheUtils.repositoriesHashCoderepositories );
             hash = hash * 31 + hashparentRealm );
             hash = hash * 31 + this..hashCode();
            hash = hash * 31 + hashdependencyFilter );
            this. = hash;
        }
        @Override
        public String toString()
        {
            return .getId();
        }
        @Override
        public int hashCode()
        {
            return ;
        }
        private static int hashObject obj )
        {
            return obj != null ? obj.hashCode() : 0;
        }
        @Override
        public boolean equalsObject o )
        {
            if ( o == this )
            {
                return true;
            }
            if ( !( o instanceof CacheKey ) )
            {
                return false;
            }
            CacheKey that = (CacheKeyo;
            return  == that.parentRealm && CacheUtils.pluginEqualsthat.plugin )
                && eqthat.workspace ) && eqthat.localRepo )
                && CacheUtils.repositoriesEqualsthis.that.repositories ) && eqthat.filter )
                && eqthat.foreignImports );
        }
        private static <T> boolean eq( T s1, T s2 )
        {
            return s1 != null ? s1.equalss2 ) : s2 == null;
        }
    }
    protected final Map<KeyCacheRecordcache = new ConcurrentHashMap<KeyCacheRecord>();
    public Key createKeyPlugin pluginClassLoader parentRealmMap<StringClassLoaderforeignImports,
                          DependencyFilter dependencyFilterList<RemoteRepositoryrepositories,
                          RepositorySystemSession session )
    {
        return new CacheKeypluginparentRealmforeignImportsdependencyFilterrepositoriessession );
    }
    public CacheRecord getKey key )
    {
        return .getkey );
    }
    public CacheRecord putKey keyClassRealm pluginRealmList<ArtifactpluginArtifacts )
    {
        if ( pluginRealm == null || pluginArtifacts == null )
        {
            throw new IllegalArgumentException();
        }
        if ( .containsKeykey ) )
        {
            throw new IllegalStateException"Duplicate plugin realm for plugin " + key );
        }
        CacheRecord record = new CacheRecordpluginRealmpluginArtifacts );
        .putkeyrecord );
        return record;
    }
    public void flush()
    {
        for ( CacheRecord record : .values() )
        {
            ClassRealm realm = record.realm;
            try
            {
                realm.getWorld().disposeRealmrealm.getId() );
            }
            catch ( NoSuchRealmException e )
            {
                // ignore
            }
        }
        .clear();
    }
    protected static int pluginHashCodePlugin plugin )
    {
        return CacheUtils.pluginHashCodeplugin );
    }
    protected static boolean pluginEqualsPlugin aPlugin b )
    {
        return CacheUtils.pluginEqualsab );
    }
    public void registerMavenProject projectCacheRecord record )
    {
        // default cache does not track plugin usage
    }
    public void dispose()
    {
        flush();
    }
New to GrepCode? Check out our FAQ X