@Named @Singleton public class DefaultProjectBasedirEnforcer extends Object implements ProjectBasedirEnforcer
Constructor and Description |
---|
DefaultProjectBasedirEnforcer(Collection<io.takari.builder.enforcer.modularity.internal.ProjectsProvider> projectsProviders,
org.codehaus.plexus.DefaultPlexusContainer plexus) |
Modifier and Type | Method and Description |
---|---|
protected void |
addException(PathMatcher.Builder builder,
File basedir,
String relpath,
boolean allowBreakingRules,
boolean allowToIgnore) |
protected void |
addExceptions(PathMatcher.Builder builder,
org.apache.maven.execution.MavenSession session,
org.apache.maven.project.MavenProject project,
Collection<String> exceptions,
boolean allowBreakingRules,
Set<org.apache.maven.project.MavenProject> upstreamProjects) |
protected void |
addExecExceptions(Set<String> updated,
Collection<String> exceptions) |
void |
enterExecPrivileged() |
void |
finishProjectContext(String basedir,
org.apache.maven.project.MavenProject mavenProject,
SessionConfig config) |
protected Set<org.apache.maven.project.MavenProject> |
getAllProjects(org.apache.maven.execution.MavenSession session)
TODO: do once and cache
|
protected Set<org.apache.maven.project.MavenProject> |
getAllProjects(org.apache.maven.execution.MavenSession session,
org.apache.maven.project.MavenProject project) |
protected Set<org.apache.maven.project.MavenProject> |
getUpstreamProjects(org.apache.maven.execution.MavenSession session,
org.apache.maven.project.MavenProject project) |
protected void |
handleViolation(ProjectContext context,
EnforcerViolation violation) |
protected boolean |
isAncestorOf(org.apache.maven.project.MavenProject project,
org.apache.maven.project.MavenProject possibleAncestor) |
boolean |
isEnabledForProject(EnforcerConfig config,
String artifactId) |
protected Boolean |
isModularityEnforcementEnabled(org.apache.maven.project.MavenProject project)
Returns
true if build enforcement is configured for the project (usually via
inheritance), otherwise returns false . |
void |
leaveExecPrivileged() |
void |
replayLog(File logfile) |
void |
setupMavenSession(org.apache.maven.execution.MavenSession session,
SessionConfig sessionConfig) |
void |
setupProjectContext(org.apache.maven.execution.MavenSession session,
org.apache.maven.project.MavenProject project,
SessionConfig sessionConfig,
EnforcerConfig enforcerConfig) |
void |
writeConfiguration(File file) |
@Inject public DefaultProjectBasedirEnforcer(Collection<io.takari.builder.enforcer.modularity.internal.ProjectsProvider> projectsProviders, org.codehaus.plexus.DefaultPlexusContainer plexus)
public boolean isEnabledForProject(EnforcerConfig config, String artifactId)
isEnabledForProject
in interface ProjectBasedirEnforcer
protected boolean isAncestorOf(org.apache.maven.project.MavenProject project, org.apache.maven.project.MavenProject possibleAncestor)
public void setupProjectContext(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project, SessionConfig sessionConfig, EnforcerConfig enforcerConfig)
protected Boolean isModularityEnforcementEnabled(org.apache.maven.project.MavenProject project)
true
if build enforcement is configured for the project (usually via
inheritance), otherwise returns false
. This is necessary to support multimodule project
where enforcement is enabled for some but not all modules.protected Set<org.apache.maven.project.MavenProject> getUpstreamProjects(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project)
protected Set<org.apache.maven.project.MavenProject> getAllProjects(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project)
public void finishProjectContext(String basedir, org.apache.maven.project.MavenProject mavenProject, SessionConfig config)
protected void addExceptions(PathMatcher.Builder builder, org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project, Collection<String> exceptions, boolean allowBreakingRules, Set<org.apache.maven.project.MavenProject> upstreamProjects)
protected void addExecExceptions(Set<String> updated, Collection<String> exceptions)
protected void addException(PathMatcher.Builder builder, File basedir, String relpath, boolean allowBreakingRules, boolean allowToIgnore)
builder
- aggregator of allowed rulesbasedir
- part of file pathrelpath
- rest of file path (may include bs like /../ or /./allowBreakingRules
- if a rule can break strict modularity (aka the maven build is no
longer a Directed Acyclic Graph)allowToIgnore
- whether or not a rule should be ignored if it is a breaking rule (see
allowBreakingRules)public void setupMavenSession(org.apache.maven.execution.MavenSession session, SessionConfig sessionConfig)
protected Set<org.apache.maven.project.MavenProject> getAllProjects(org.apache.maven.execution.MavenSession session)
session
- public void replayLog(File logfile) throws IOException
replayLog
in interface ProjectBasedirEnforcer
IOException
protected void handleViolation(ProjectContext context, EnforcerViolation violation)
public void writeConfiguration(File file) throws IOException
writeConfiguration
in interface ProjectBasedirEnforcer
IOException
public void enterExecPrivileged()
enterExecPrivileged
in interface ProjectBasedirEnforcer
public void leaveExecPrivileged()
leaveExecPrivileged
in interface ProjectBasedirEnforcer
Copyright © 2021. All rights reserved.