public class ProjectRegistryManager
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
(package private) static class |
ProjectRegistryManager.Context
Context
|
Modifier and Type | Field and Description |
---|---|
(package private) static java.lang.String |
ARTIFACT_TYPE_JAR |
static java.lang.String |
ARTIFACT_TYPE_JAVA_SOURCE |
static java.lang.String |
ARTIFACT_TYPE_JAVADOC |
(package private) static java.lang.String |
ARTIFACT_TYPE_POM |
private static java.lang.String |
CTX_MAVENPROJECTS |
private java.util.Map<MavenProjectFacade,org.apache.maven.project.MavenProject> |
legacyMavenProjects
Backwards compatibility with clients that request setup MojoExecution outside of
MavenBuilder execution. |
static java.lang.String |
LIFECYCLE_CLEAN |
static java.lang.String |
LIFECYCLE_DEFAULT |
static java.lang.String |
LIFECYCLE_SITE |
(package private) static org.slf4j.Logger |
log |
(package private) IMavenMarkerManager |
markerManager |
(package private) MavenImpl |
maven |
private com.google.common.cache.Cache<MavenProjectFacade,org.apache.maven.project.MavenProject> |
mavenProjectCache |
static java.util.List<? extends org.eclipse.core.runtime.IPath> |
METADATA_PATH
Path of project metadata files, relative to the project.
|
private java.util.Set<IMavenProjectChangedListener> |
projectChangeListeners |
private ProjectRegistry |
projectRegistry |
private ProjectRegistryReader |
stateReader |
private java.lang.Thread |
syncRefreshThread |
Constructor and Description |
---|
ProjectRegistryManager(MavenImpl maven,
java.io.File stateLocationDir,
boolean readState,
IMavenMarkerManager mavenMarkerManager) |
Modifier and Type | Method and Description |
---|---|
void |
addMavenProjectChangedListener(IMavenProjectChangedListener listener) |
(package private) void |
applyMutableProjectRegistry(MutableProjectRegistry newState,
org.eclipse.core.runtime.IProgressMonitor monitor)
Applies mutable project registry to the primary project registry and and corresponding MavenProjectChangedEvent's
to all registered IMavenProjectChangedListener's.
|
private java.util.List<org.apache.maven.plugin.MojoExecution> |
calculateExecutionPlan(org.eclipse.core.resources.IFile pom,
org.apache.maven.project.MavenProject mavenProject,
java.lang.String lifecycle,
org.eclipse.core.runtime.IProgressMonitor monitor) |
(package private) java.util.Map<java.lang.String,java.util.List<org.apache.maven.plugin.MojoExecution>> |
calculateExecutionPlans(org.eclipse.core.resources.IFile pom,
org.apache.maven.project.MavenProject mavenProject,
org.eclipse.core.runtime.IProgressMonitor monitor) |
(package private) org.apache.maven.execution.MavenExecutionRequest |
configureExecutionRequest(org.apache.maven.execution.MavenExecutionRequest request,
IProjectRegistry state,
org.eclipse.core.resources.IFile pom,
ResolverConfiguration resolverConfiguration) |
MavenProjectFacade |
create(org.eclipse.core.resources.IFile pom,
boolean load,
org.eclipse.core.runtime.IProgressMonitor monitor)
Returns MavenProjectFacade corresponding to the pom.
|
MavenProjectFacade |
create(org.eclipse.core.resources.IProject project,
org.eclipse.core.runtime.IProgressMonitor monitor)
Creates or returns cached MavenProjectFacade for the given project.
|
MavenExecutionContext |
createExecutionContext(org.eclipse.core.resources.IFile pom,
ResolverConfiguration resolverConfiguration) |
private MavenExecutionContext |
createExecutionContext(IProjectRegistry state,
org.eclipse.core.resources.IFile pom,
ResolverConfiguration resolverConfiguration) |
org.apache.maven.execution.MavenExecutionRequest |
createExecutionRequest(org.eclipse.core.resources.IFile pom,
ResolverConfiguration resolverConfiguration,
org.eclipse.core.runtime.IProgressMonitor monitor)
Deprecated.
This method does not properly join
IMavenExecutionContext |
private com.google.common.cache.Cache<MavenProjectFacade,org.apache.maven.project.MavenProject> |
createProjectCache() |
private void |
detachMappingSources(java.util.Map<MojoExecutionKey,java.util.List<IPluginExecutionMetadata>> mapping) |
(package private) static <T> java.util.Set<T> |
diff(java.util.Set<T> a,
java.util.Set<T> b) |
private <V> V |
execute(IProjectRegistry state,
org.eclipse.core.resources.IFile pom,
ResolverConfiguration resolverConfiguration,
ICallable<V> callable,
org.eclipse.core.runtime.IProgressMonitor monitor) |
private java.util.Set<org.eclipse.core.resources.IFile> |
flushCaches(MutableProjectRegistry newState,
org.eclipse.core.resources.IFile pom,
MavenProjectFacade facade,
boolean forceDependencyUpdate) |
private java.util.Set<java.io.File> |
flushMavenCache(java.lang.Class<?> clazz,
java.io.File pom,
ArtifactKey key,
boolean force) |
(package private) java.util.Set<java.io.File> |
flushMavenCaches(java.io.File pom,
ArtifactKey key,
org.apache.maven.project.MavenProject project,
boolean force)
Flushes caches maintained by Maven core.
|
(package private) java.util.Map<MavenProjectFacade,org.apache.maven.project.MavenProject> |
getContextProjects()
Do not modify this map directly, use
putMavenProject(MavenProjectFacade, MavenProject) |
(package private) IMaven |
getMaven() |
private AbstractMavenDependencyResolver |
getMavenDependencyResolver(MavenProjectFacade newFacade,
org.eclipse.core.runtime.IProgressMonitor monitor) |
(package private) org.apache.maven.project.MavenProject |
getMavenProject(MavenProjectFacade facade) |
(package private) org.apache.maven.project.MavenProject |
getMavenProject(MavenProjectFacade facade,
org.eclipse.core.runtime.IProgressMonitor monitor)
There are three MavenProjectFacade-to-MavenProject maps.
|
MavenProjectFacade |
getMavenProject(java.lang.String groupId,
java.lang.String artifactId,
java.lang.String version) |
org.eclipse.core.resources.IFile |
getModulePom(org.eclipse.core.resources.IFile pom,
java.lang.String moduleName) |
(package private) org.eclipse.core.resources.IFile |
getPom(org.eclipse.core.resources.IProject project) |
IMavenProjectFacade |
getProject(org.eclipse.core.resources.IProject project) |
IMavenProjectFacade[] |
getProjects() |
org.apache.maven.artifact.repository.MavenArtifactRepository |
getWorkspaceLocalRepository() |
private EclipseWorkspaceArtifactRepository |
getWorkspaceReader(IProjectRegistry state,
org.eclipse.core.resources.IFile pom,
ResolverConfiguration resolverConfiguration) |
(package private) static <T> boolean |
hasDiff(java.util.Set<T> a,
java.util.Set<T> b) |
private boolean |
isForceDependencyUpdate() |
(package private) MutableProjectRegistry |
newMutableProjectRegistry() |
void |
notifyProjectChangeListeners(java.util.List<MavenProjectChangedEvent> events,
org.eclipse.core.runtime.IProgressMonitor monitor) |
void |
putMavenProject(MavenProjectFacade facade,
org.apache.maven.project.MavenProject mavenProject) |
private MavenProjectFacade |
readMavenProjectFacade(org.eclipse.core.resources.IFile pom,
MutableProjectRegistry state,
org.eclipse.core.runtime.IProgressMonitor monitor) |
(package private) org.apache.maven.project.MavenProject |
readProjectWithDependencies(org.eclipse.core.resources.IFile pomFile,
ResolverConfiguration resolverConfiguration,
org.eclipse.core.runtime.IProgressMonitor monitor) |
private org.apache.maven.execution.MavenExecutionResult |
readProjectWithDependencies(IProjectRegistry state,
org.eclipse.core.resources.IFile pomFile,
ResolverConfiguration resolverConfiguration,
org.eclipse.core.runtime.IProgressMonitor monitor) |
void |
refresh(java.util.Collection<org.eclipse.core.resources.IFile> pomFiles,
org.eclipse.core.runtime.IProgressMonitor monitor)
This method acquires workspace root's lock and sends project change events.
|
void |
refresh(MavenUpdateRequest request,
org.eclipse.core.runtime.IProgressMonitor monitor)
Deprecated.
this method does not properly join
IMavenExecutionContext , use
#refresh(Set, IProgressMonitor) instead. |
(package private) void |
refresh(MutableProjectRegistry newState,
java.util.Collection<org.eclipse.core.resources.IFile> pomFiles,
org.eclipse.core.runtime.IProgressMonitor monitor) |
private void |
refresh(MutableProjectRegistry newState,
DependencyResolutionContext context,
org.eclipse.core.runtime.IProgressMonitor monitor) |
(package private) void |
refreshPhase2(MutableProjectRegistry newState,
DependencyResolutionContext context,
java.util.Map<org.eclipse.core.resources.IFile,java.util.Set<Capability>> originalCapabilities,
java.util.Map<org.eclipse.core.resources.IFile,java.util.Set<RequiredCapability>> originalRequirements,
org.eclipse.core.resources.IFile pom,
MavenProjectFacade newFacade,
org.eclipse.core.runtime.IProgressMonitor monitor) |
private java.util.Set<org.eclipse.core.resources.IFile> |
refreshWorkspaceModules(MutableProjectRegistry state,
org.eclipse.core.resources.IFile pom,
ArtifactKey mavenProject) |
java.util.Set<org.eclipse.core.resources.IFile> |
remove(MutableProjectRegistry state,
org.eclipse.core.resources.IFile pom)
Removes the pom from the cache.
|
java.util.Set<org.eclipse.core.resources.IFile> |
remove(MutableProjectRegistry state,
java.util.Set<org.eclipse.core.resources.IFile> poms,
boolean force)
Removes specified poms from the cache.
|
void |
removeMavenProjectChangedListener(IMavenProjectChangedListener listener) |
private void |
setupLifecycleMapping(MutableProjectRegistry newState,
org.eclipse.core.runtime.IProgressMonitor monitor,
MavenProjectFacade newFacade) |
(package private) org.apache.maven.plugin.MojoExecution |
setupMojoExecution(MavenProjectFacade projectFacade,
org.apache.maven.plugin.MojoExecution mojoExecution,
org.eclipse.core.runtime.IProgressMonitor monitor) |
void |
writeWorkspaceState() |
static final org.slf4j.Logger log
static final java.lang.String ARTIFACT_TYPE_POM
static final java.lang.String ARTIFACT_TYPE_JAR
public static final java.lang.String ARTIFACT_TYPE_JAVA_SOURCE
public static final java.lang.String ARTIFACT_TYPE_JAVADOC
public static final java.lang.String LIFECYCLE_DEFAULT
public static final java.lang.String LIFECYCLE_CLEAN
public static final java.lang.String LIFECYCLE_SITE
public static final java.util.List<? extends org.eclipse.core.runtime.IPath> METADATA_PATH
private static final java.lang.String CTX_MAVENPROJECTS
private final ProjectRegistry projectRegistry
final MavenImpl maven
final IMavenMarkerManager markerManager
private final ProjectRegistryReader stateReader
private final java.util.Set<IMavenProjectChangedListener> projectChangeListeners
private volatile java.lang.Thread syncRefreshThread
private final java.util.Map<MavenProjectFacade,org.apache.maven.project.MavenProject> legacyMavenProjects
MavenBuilder
execution.private final com.google.common.cache.Cache<MavenProjectFacade,org.apache.maven.project.MavenProject> mavenProjectCache
public ProjectRegistryManager(MavenImpl maven, java.io.File stateLocationDir, boolean readState, IMavenMarkerManager mavenMarkerManager)
public MavenProjectFacade create(org.eclipse.core.resources.IProject project, org.eclipse.core.runtime.IProgressMonitor monitor)
public MavenProjectFacade create(org.eclipse.core.resources.IFile pom, boolean load, org.eclipse.core.runtime.IProgressMonitor monitor)
org.eclipse.core.resources.IFile getPom(org.eclipse.core.resources.IProject project)
public java.util.Set<org.eclipse.core.resources.IFile> remove(MutableProjectRegistry state, java.util.Set<org.eclipse.core.resources.IFile> poms, boolean force)
Set
of IFile
affected pomspublic java.util.Set<org.eclipse.core.resources.IFile> remove(MutableProjectRegistry state, org.eclipse.core.resources.IFile pom)
Set
of IFile
affected pomspublic void refresh(MavenUpdateRequest request, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
IMavenExecutionContext
, use
#refresh(Set, IProgressMonitor)
instead.org.eclipse.core.runtime.CoreException
private boolean isForceDependencyUpdate() throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
public void refresh(java.util.Collection<org.eclipse.core.resources.IFile> pomFiles, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
void refresh(MutableProjectRegistry newState, java.util.Collection<org.eclipse.core.resources.IFile> pomFiles, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
private void refresh(MutableProjectRegistry newState, DependencyResolutionContext context, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
void refreshPhase2(MutableProjectRegistry newState, DependencyResolutionContext context, java.util.Map<org.eclipse.core.resources.IFile,java.util.Set<Capability>> originalCapabilities, java.util.Map<org.eclipse.core.resources.IFile,java.util.Set<RequiredCapability>> originalRequirements, org.eclipse.core.resources.IFile pom, MavenProjectFacade newFacade, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
private void setupLifecycleMapping(MutableProjectRegistry newState, org.eclipse.core.runtime.IProgressMonitor monitor, MavenProjectFacade newFacade) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
private void detachMappingSources(java.util.Map<MojoExecutionKey,java.util.List<IPluginExecutionMetadata>> mapping)
static <T> java.util.Set<T> diff(java.util.Set<T> a, java.util.Set<T> b)
static <T> boolean hasDiff(java.util.Set<T> a, java.util.Set<T> b)
private AbstractMavenDependencyResolver getMavenDependencyResolver(MavenProjectFacade newFacade, org.eclipse.core.runtime.IProgressMonitor monitor)
private MavenProjectFacade readMavenProjectFacade(org.eclipse.core.resources.IFile pom, MutableProjectRegistry state, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
java.util.Map<java.lang.String,java.util.List<org.apache.maven.plugin.MojoExecution>> calculateExecutionPlans(org.eclipse.core.resources.IFile pom, org.apache.maven.project.MavenProject mavenProject, org.eclipse.core.runtime.IProgressMonitor monitor)
private java.util.List<org.apache.maven.plugin.MojoExecution> calculateExecutionPlan(org.eclipse.core.resources.IFile pom, org.apache.maven.project.MavenProject mavenProject, java.lang.String lifecycle, org.eclipse.core.runtime.IProgressMonitor monitor)
public org.eclipse.core.resources.IFile getModulePom(org.eclipse.core.resources.IFile pom, java.lang.String moduleName)
private java.util.Set<org.eclipse.core.resources.IFile> refreshWorkspaceModules(MutableProjectRegistry state, org.eclipse.core.resources.IFile pom, ArtifactKey mavenProject)
public void addMavenProjectChangedListener(IMavenProjectChangedListener listener)
public void removeMavenProjectChangedListener(IMavenProjectChangedListener listener)
public void notifyProjectChangeListeners(java.util.List<MavenProjectChangedEvent> events, org.eclipse.core.runtime.IProgressMonitor monitor)
public MavenProjectFacade getMavenProject(java.lang.String groupId, java.lang.String artifactId, java.lang.String version)
org.apache.maven.project.MavenProject readProjectWithDependencies(org.eclipse.core.resources.IFile pomFile, ResolverConfiguration resolverConfiguration, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
private org.apache.maven.execution.MavenExecutionResult readProjectWithDependencies(IProjectRegistry state, org.eclipse.core.resources.IFile pomFile, ResolverConfiguration resolverConfiguration, org.eclipse.core.runtime.IProgressMonitor monitor)
public IMavenProjectFacade[] getProjects()
public IMavenProjectFacade getProject(org.eclipse.core.resources.IProject project)
public org.apache.maven.execution.MavenExecutionRequest createExecutionRequest(org.eclipse.core.resources.IFile pom, ResolverConfiguration resolverConfiguration, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
IMavenExecutionContext
org.eclipse.core.runtime.CoreException
org.apache.maven.execution.MavenExecutionRequest configureExecutionRequest(org.apache.maven.execution.MavenExecutionRequest request, IProjectRegistry state, org.eclipse.core.resources.IFile pom, ResolverConfiguration resolverConfiguration) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
private EclipseWorkspaceArtifactRepository getWorkspaceReader(IProjectRegistry state, org.eclipse.core.resources.IFile pom, ResolverConfiguration resolverConfiguration)
public org.apache.maven.artifact.repository.MavenArtifactRepository getWorkspaceLocalRepository() throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
MutableProjectRegistry newMutableProjectRegistry()
void applyMutableProjectRegistry(MutableProjectRegistry newState, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
StaleMutableProjectRegistryException
- if primary project registry was modified after mutable registry has
been createdorg.eclipse.core.runtime.CoreException
public void writeWorkspaceState()
IMaven getMaven()
org.apache.maven.plugin.MojoExecution setupMojoExecution(MavenProjectFacade projectFacade, org.apache.maven.plugin.MojoExecution mojoExecution, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
private <V> V execute(IProjectRegistry state, org.eclipse.core.resources.IFile pom, ResolverConfiguration resolverConfiguration, ICallable<V> callable, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
private MavenExecutionContext createExecutionContext(IProjectRegistry state, org.eclipse.core.resources.IFile pom, ResolverConfiguration resolverConfiguration) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
public MavenExecutionContext createExecutionContext(org.eclipse.core.resources.IFile pom, ResolverConfiguration resolverConfiguration) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
org.apache.maven.project.MavenProject getMavenProject(MavenProjectFacade facade, org.eclipse.core.runtime.IProgressMonitor monitor) throws org.eclipse.core.runtime.CoreException
org.eclipse.core.runtime.CoreException
org.apache.maven.project.MavenProject getMavenProject(MavenProjectFacade facade)
public void putMavenProject(MavenProjectFacade facade, org.apache.maven.project.MavenProject mavenProject)
java.util.Map<MavenProjectFacade,org.apache.maven.project.MavenProject> getContextProjects()
putMavenProject(MavenProjectFacade, MavenProject)
private com.google.common.cache.Cache<MavenProjectFacade,org.apache.maven.project.MavenProject> createProjectCache()
private java.util.Set<org.eclipse.core.resources.IFile> flushCaches(MutableProjectRegistry newState, org.eclipse.core.resources.IFile pom, MavenProjectFacade facade, boolean forceDependencyUpdate)
java.util.Set<java.io.File> flushMavenCaches(java.io.File pom, ArtifactKey key, org.apache.maven.project.MavenProject project, boolean force)
private java.util.Set<java.io.File> flushMavenCache(java.lang.Class<?> clazz, java.io.File pom, ArtifactKey key, boolean force)