Class DependencyConvergence
java.lang.Object
org.apache.maven.plugins.enforcer.DependencyConvergence
- All Implemented Interfaces:
EnforcerRule
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static org.apache.maven.plugin.logging.Logprivate boolean -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate StringbuildConvergenceErrorMsg(List<org.apache.maven.shared.dependency.graph.DependencyNode> nodeList) private StringBuilderbuildTreeString(org.apache.maven.shared.dependency.graph.DependencyNode node) voidexecute(EnforcerRuleHelper helper) This is the interface into the rule.If the rule is to be cached, this id is used as part of the key.getConvergenceErrorMsgs(List<List<org.apache.maven.shared.dependency.graph.DependencyNode>> errors) private org.apache.maven.shared.dependency.graph.DependencyNodegetNode(EnforcerRuleHelper helper) Uses theEnforcerRuleHelperto populate the values of theDependencyTreeBuilder#buildDependencyTree(MavenProject, ArtifactRepository, ArtifactFactory, ArtifactMetadataSource, ArtifactFilter, ArtifactCollector)factory method.booleanThis method tells the enforcer if the rule results may be cached.booleanisResultValid(EnforcerRule rule) If the rule is cacheable and the same id is found in the cache, the stored results are passed to this method to allow double checking of the results.voidsetUniqueVersions(boolean uniqueVersions)
-
Field Details
-
log
private static org.apache.maven.plugin.logging.Log log -
uniqueVersions
private boolean uniqueVersions
-
-
Constructor Details
-
DependencyConvergence
public DependencyConvergence()
-
-
Method Details
-
setUniqueVersions
public void setUniqueVersions(boolean uniqueVersions) -
getNode
private org.apache.maven.shared.dependency.graph.DependencyNode getNode(EnforcerRuleHelper helper) throws EnforcerRuleException Uses theEnforcerRuleHelperto populate the values of theDependencyTreeBuilder#buildDependencyTree(MavenProject, ArtifactRepository, ArtifactFactory, ArtifactMetadataSource, ArtifactFilter, ArtifactCollector)factory method.
This method simply exists to hide all the ugly lookup that theEnforcerRuleHelperhas to do.- Parameters:
helper-- Returns:
- a Dependency Node which is the root of the project's dependency tree
- Throws:
EnforcerRuleException
-
execute
Description copied from interface:EnforcerRuleThis is the interface into the rule. This method should throw an exception containing a reason message if the rule fails the check. The plugin will then decide based on the fail flag if it should stop or just log the message as a warning.- Specified by:
executein interfaceEnforcerRule- Parameters:
helper- The helper provides access to the log, MavenSession and has helpers to get common components. It is also able to lookup components by class name.- Throws:
EnforcerRuleException- the enforcer rule exception
-
getConvergenceErrorMsgs
-
buildConvergenceErrorMsg
-
getCacheId
Description copied from interface:EnforcerRuleIf the rule is to be cached, this id is used as part of the key. This can allow rules to take parameters that allow multiple results of the same rule to be cached.- Specified by:
getCacheIdin interfaceEnforcerRule- Returns:
- id to be used by the enforcer to determine uniqueness of cache results. The ids only need to be unique within a given rule implementation as the full key will be [classname]-[id]
-
isCacheable
public boolean isCacheable()Description copied from interface:EnforcerRuleThis method tells the enforcer if the rule results may be cached. If the result is true, the results will be remembered for future executions in the same build (ie children). Subsequent iterations of the rule will be queried to see if they are also cacheable. This will allow the rule to be uncached further down the tree if needed.- Specified by:
isCacheablein interfaceEnforcerRule- Returns:
trueif rule is cacheable
-
isResultValid
Description copied from interface:EnforcerRuleIf the rule is cacheable and the same id is found in the cache, the stored results are passed to this method to allow double checking of the results. Most of the time this can be done by generating unique ids, but sometimes the results of objects returned by the helper need to be queried. You may for example, store certain objects in your rule and then query them later.- Specified by:
isResultValidin interfaceEnforcerRule- Parameters:
rule- the last cached instance of the rule. This is to be used by the rule to potentially determine if the results are still valid (ie if the configuration has been overridden)- Returns:
trueif the stored results are valid for the same id.
-