Class RequireOS
- java.lang.Object
-
- org.apache.maven.plugins.enforcer.AbstractStandardEnforcerRule
-
- org.apache.maven.plugins.enforcer.RequireOS
-
- All Implemented Interfaces:
EnforcerRule,EnforcerRule2
public class RequireOS extends AbstractStandardEnforcerRule
This rule checks that the OS is allowed by combinations of family, name, version and cpu architecture. The behavior is exactly the same as the Maven Os profile activation so the same values are allowed here.- Version:
- $Id$
-
-
Field Summary
Fields Modifier and Type Field Description private org.apache.maven.model.profile.activation.ProfileActivatoractivatorprivate java.lang.StringarchThe OS architecture desired.private booleandisplayDisplay detected OS information.private java.lang.StringfamilyThe OS family type desired
Possible values: dos mac netware os/2 tandem unix windows win9x z/os os/400private java.lang.StringnameThe OS name desired.private java.lang.StringversionThe OS version desired.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanallParamsEmpty()Helper method to check that at least one of family, name, version or arch is set.private org.apache.maven.model.ActivationcreateActivation()Creates an Activation object that contains the ActivationOS information.private org.apache.maven.model.ActivationOScreateOsBean()Creates an ActivationOS object containing family, name, version and arch.private org.apache.maven.model.ProfilecreateProfile()Creates a Profile object that contains the activation information.voiddisplayOSInfo(org.apache.maven.plugin.logging.Log log, boolean info)Log the current OS information.voidexecute(EnforcerRuleHelper helper)This is the interface into the rule.java.lang.StringgetArch()Gets the arch.java.lang.StringgetCacheId()If the rule is to be cached, this id is used as part of the key.java.lang.StringgetFamily()Gets the family.java.lang.StringgetName()Gets the name.java.lang.StringgetVersion()Gets the version.booleanisAllowed()Helper method to determine if the current OS is allowed based on the injected values for family, name, version and arch.booleanisCacheable()This method tells the enforcer if the rule results may be cached.booleanisDisplay()booleanisResultValid(EnforcerRule theCachedRule)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.booleanisValidFamily(java.lang.String theFamily)Helper method to check if the given family is in the following list: dos mac netware os/2 tandem unix windows win9x z/os os/400 Note: '!' is allowed at the beginning of the string and still considered valid.voidsetArch(java.lang.String theArch)Sets the arch.voidsetDisplay(boolean display)voidsetFamily(java.lang.String theFamily)Sets the family.voidsetName(java.lang.String theName)Sets the name.voidsetVersion(java.lang.String theVersion)Sets the version.-
Methods inherited from class org.apache.maven.plugins.enforcer.AbstractStandardEnforcerRule
getLevel, getMessage, setLevel, setMessage
-
-
-
-
Field Detail
-
activator
private org.apache.maven.model.profile.activation.ProfileActivator activator
-
family
private java.lang.String family
The OS family type desired
Possible values:- dos
- mac
- netware
- os/2
- tandem
- unix
- windows
- win9x
- z/os
- os/400
-
name
private java.lang.String name
The OS name desired.
-
version
private java.lang.String version
The OS version desired.
-
arch
private java.lang.String arch
The OS architecture desired.
-
display
private boolean display
Display detected OS information.
-
-
Method Detail
-
execute
public void execute(EnforcerRuleHelper helper) throws EnforcerRuleException
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.- 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
-
displayOSInfo
public void displayOSInfo(org.apache.maven.plugin.logging.Log log, boolean info)Log the current OS information.- Parameters:
log- the loginfo- the info
-
isAllowed
public boolean isAllowed()
Helper method to determine if the current OS is allowed based on the injected values for family, name, version and arch.- Returns:
- true if the version is allowed.
-
allParamsEmpty
public boolean allParamsEmpty()
Helper method to check that at least one of family, name, version or arch is set.- Returns:
- true if all parameters are empty.
-
createProfile
private org.apache.maven.model.Profile createProfile()
Creates a Profile object that contains the activation information.- Returns:
- a properly populated profile to be used for OS validation.
-
createActivation
private org.apache.maven.model.Activation createActivation()
Creates an Activation object that contains the ActivationOS information.- Returns:
- a properly populated Activation object.
-
createOsBean
private org.apache.maven.model.ActivationOS createOsBean()
Creates an ActivationOS object containing family, name, version and arch.- Returns:
- a properly populated ActivationOS object.
-
isValidFamily
public boolean isValidFamily(java.lang.String theFamily)
Helper method to check if the given family is in the following list:- dos
- mac
- netware
- os/2
- tandem
- unix
- windows
- win9x
- z/os
- os/400
- Parameters:
theFamily- the family to check.- Returns:
- true if one of the valid families.
-
getArch
public java.lang.String getArch()
Gets the arch.- Returns:
- the arch
-
setArch
public void setArch(java.lang.String theArch)
Sets the arch.- Parameters:
theArch- the arch to set
-
getFamily
public java.lang.String getFamily()
Gets the family.- Returns:
- the family
-
setFamily
public void setFamily(java.lang.String theFamily)
Sets the family.- Parameters:
theFamily- the family to set
-
getName
public java.lang.String getName()
Gets the name.- Returns:
- the name
-
setName
public void setName(java.lang.String theName)
Sets the name.- Parameters:
theName- the name to set
-
getVersion
public java.lang.String getVersion()
Gets the version.- Returns:
- the version
-
setVersion
public void setVersion(java.lang.String theVersion)
Sets the version.- Parameters:
theVersion- the version to set
-
setDisplay
public final void setDisplay(boolean display)
- Parameters:
display- The value for the display.
-
isDisplay
public final boolean isDisplay()
-
getCacheId
public java.lang.String 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.- 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.- Returns:
trueif rule is cacheable
-
isResultValid
public boolean isResultValid(EnforcerRule theCachedRule)
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.- Parameters:
theCachedRule- 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.
-
-