org.apache.maven.classrealm
Interface ClassRealmManager

All Known Implementing Classes:
DefaultClassRealmManager

public interface ClassRealmManager

Manages the class realms used by Maven. Warning: This is an internal utility interface that is only public for technical reasons, it is not part of the public API. In particular, this interface can be changed or deleted without prior notice.

Author:
Benjamin Bentmann

Method Summary
 ClassRealm createExtensionRealm(Plugin extension, List<org.sonatype.aether.artifact.Artifact> artifacts)
          Creates a new class realm for the specified build extension.
 ClassRealm createPluginRealm(Plugin plugin, ClassLoader parent, List<String> parentImports, Map<String,ClassLoader> foreignImports, List<org.sonatype.aether.artifact.Artifact> artifacts)
          Creates a new class realm for the specified plugin.
 ClassRealm createProjectRealm(Model model, List<org.sonatype.aether.artifact.Artifact> artifacts)
          Creates a new class realm for the specified project and its build extensions.
 ClassRealm getCoreRealm()
          Gets the class realm hosting the Maven core.
 ClassRealm getMavenApiRealm()
          Gets the class realm exposing the Maven API.
 

Method Detail

getCoreRealm

ClassRealm getCoreRealm()
Gets the class realm hosting the Maven core.

Returns:
The class realm hosting the Maven core, never null.

getMavenApiRealm

ClassRealm getMavenApiRealm()
Gets the class realm exposing the Maven API. This is basically a restricted view on the Maven core realm.

Returns:
The class realm exposing the Maven API, never null.

createProjectRealm

ClassRealm createProjectRealm(Model model,
                              List<org.sonatype.aether.artifact.Artifact> artifacts)
Creates a new class realm for the specified project and its build extensions.

Parameters:
model - The model of the project for which to create a realm, must not be null.
artifacts - The artifacts to add to the class realm, may be null. Unresolved artifacts (i.e. with a missing file) will automatically be excluded from the realm.
Returns:
The new project realm, never null.

createExtensionRealm

ClassRealm createExtensionRealm(Plugin extension,
                                List<org.sonatype.aether.artifact.Artifact> artifacts)
Creates a new class realm for the specified build extension.

Parameters:
plugin - The extension plugin for which to create a realm, must not be null.
artifacts - The artifacts to add to the class realm, may be null. Unresolved artifacts (i.e. with a missing file) will automatically be excluded from the realm.
Returns:
The new extension realm, never null.

createPluginRealm

ClassRealm createPluginRealm(Plugin plugin,
                             ClassLoader parent,
                             List<String> parentImports,
                             Map<String,ClassLoader> foreignImports,
                             List<org.sonatype.aether.artifact.Artifact> artifacts)
Creates a new class realm for the specified plugin.

Parameters:
plugin - The plugin for which to create a realm, must not be null.
parent - The parent realm for the new realm, may be null.
parentImports - The packages/types to import from the parent realm, may be null.
foreignImports - The packages/types to import from foreign realms, may be null.
artifacts - The artifacts to add to the class realm, may be null. Unresolved artifacts (i.e. with a missing file) will automatically be excluded from the realm.
Returns:
The new plugin realm, never null.


Copyright © 2001-2010 The Apache Software Foundation. All Rights Reserved.