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
@Named
@Singleton
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
Modifier and TypeClassDescriptionprotected static class
CacheKeyNested classes/interfaces inherited from interface org.apache.maven.plugin.PluginRealmCache
PluginRealmCache.CacheRecord, PluginRealmCache.Key, PluginRealmCache.PluginRealmSupplier
-
Field Summary
Modifier and TypeFieldDescriptionprotected final Map<PluginRealmCache.Key,
PluginRealmCache.CacheRecord> -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptioncreateKey
(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()
get
(PluginRealmCache.Key key) get
(PluginRealmCache.Key key, PluginRealmCache.PluginRealmSupplier supplier) protected static boolean
pluginEquals
(Plugin a, Plugin b) protected static int
pluginHashCode
(Plugin plugin) 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 Details
-
cache
-
-
Constructor Details
-
DefaultPluginRealmCache
public DefaultPluginRealmCache()
-
-
Method Details
-
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
- 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
-
pluginEquals
-
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
-