Package org.apache.maven.plugin
Class DefaultPluginRealmCache
- java.lang.Object
-
- org.apache.maven.plugin.DefaultPluginRealmCache
-
- All Implemented Interfaces:
PluginRealmCache
,org.codehaus.plexus.personality.plexus.lifecycle.phase.Disposable
@Component(role=PluginRealmCache.class) public class DefaultPluginRealmCache extends Object implements PluginRealmCache, org.codehaus.plexus.personality.plexus.lifecycle.phase.Disposable
Default PluginCache implementation. Assumes cached data does not change.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
DefaultPluginRealmCache.CacheKey
CacheKey-
Nested classes/interfaces inherited from interface org.apache.maven.plugin.PluginRealmCache
PluginRealmCache.CacheRecord, PluginRealmCache.Key, PluginRealmCache.PluginRealmSupplier
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<PluginRealmCache.Key,PluginRealmCache.CacheRecord>
cache
-
Constructor Summary
Constructors Constructor Description DefaultPluginRealmCache()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description PluginRealmCache.Key
createKey(Plugin plugin, ClassLoader parentRealm, Map<String,ClassLoader> foreignImports, org.eclipse.aether.graph.DependencyFilter dependencyFilter, List<org.eclipse.aether.repository.RemoteRepository> repositories, org.eclipse.aether.RepositorySystemSession session)
void
dispose()
void
flush()
PluginRealmCache.CacheRecord
get(PluginRealmCache.Key key)
PluginRealmCache.CacheRecord
get(PluginRealmCache.Key key, PluginRealmCache.PluginRealmSupplier supplier)
protected static boolean
pluginEquals(Plugin a, Plugin b)
protected static int
pluginHashCode(Plugin plugin)
PluginRealmCache.CacheRecord
put(PluginRealmCache.Key key, org.codehaus.plexus.classworlds.realm.ClassRealm pluginRealm, List<Artifact> pluginArtifacts)
void
register(MavenProject project, PluginRealmCache.Key key, PluginRealmCache.CacheRecord record)
Registers the specified cache record for usage with the given project.
-
-
-
Field Detail
-
cache
protected final Map<PluginRealmCache.Key,PluginRealmCache.CacheRecord> cache
-
-
Method Detail
-
createKey
public PluginRealmCache.Key createKey(Plugin plugin, ClassLoader parentRealm, Map<String,ClassLoader> foreignImports, org.eclipse.aether.graph.DependencyFilter dependencyFilter, List<org.eclipse.aether.repository.RemoteRepository> repositories, org.eclipse.aether.RepositorySystemSession session)
- Specified by:
createKey
in interfacePluginRealmCache
-
get
public PluginRealmCache.CacheRecord get(PluginRealmCache.Key key)
- Specified by:
get
in interfacePluginRealmCache
-
get
public PluginRealmCache.CacheRecord get(PluginRealmCache.Key key, PluginRealmCache.PluginRealmSupplier supplier) throws PluginResolutionException, PluginContainerException
- Specified by:
get
in interfacePluginRealmCache
- Throws:
PluginResolutionException
PluginContainerException
-
put
public PluginRealmCache.CacheRecord put(PluginRealmCache.Key key, org.codehaus.plexus.classworlds.realm.ClassRealm pluginRealm, List<Artifact> pluginArtifacts)
- Specified by:
put
in interfacePluginRealmCache
-
flush
public void flush()
- Specified by:
flush
in interfacePluginRealmCache
-
pluginHashCode
protected static int pluginHashCode(Plugin plugin)
-
register
public void register(MavenProject project, PluginRealmCache.Key key, PluginRealmCache.CacheRecord record)
Description copied from interface:PluginRealmCache
Registers the specified cache record for usage with the given project. Integrators can use the information collected from this method in combination with a custom cache implementation to dispose unused records from the cache.- Specified by:
register
in interfacePluginRealmCache
- Parameters:
project
- The project that employs the plugin realm, must not benull
.record
- The cache record being used for the project, must not benull
.
-
dispose
public void dispose()
- Specified by:
dispose
in interfaceorg.codehaus.plexus.personality.plexus.lifecycle.phase.Disposable
-
-