Package org.apache.maven.enforcer.rules
Class RequireOS
- java.lang.Object
-
- org.apache.maven.enforcer.rule.api.AbstractEnforcerRuleBase
-
- org.apache.maven.enforcer.rule.api.AbstractEnforcerRule
-
- org.apache.maven.enforcer.rules.AbstractStandardEnforcerRule
-
- org.apache.maven.enforcer.rules.RequireOS
-
- All Implemented Interfaces:
EnforcerRuleBase
@Named("requireOS") public final class RequireOS extends AbstractStandardEnforcerRuleThis 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.
-
-
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 org.apache.maven.model.profile.ProfileActivationContextprofileActivationContextprivate java.lang.StringversionThe OS version desired.
-
Constructor Summary
Constructors Constructor Description RequireOS(org.apache.maven.model.profile.activation.ProfileActivator activator, org.apache.maven.execution.MavenSession session)Instantiates a new RequireOS.
-
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.private org.apache.maven.model.profile.ProfileActivationContextcreateProfileActivationContext(org.apache.maven.execution.MavenSession session)private voiddisplayOSInfo()Log the current OS information.voidexecute()This is the interface into the rule.java.lang.StringgetCacheId()If the rule is to be cached during session scope, whole executing of Maven build, this id is used as part of the key.booleanisAllowed()Helper method to determine if the current OS is allowed based on the injected values for family, name, version and arch.booleanisValidFamily(java.lang.String family)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 architecture)Sets the architecture.voidsetDisplay(boolean display)voidsetFamily(java.lang.String family)Sets the family.voidsetName(java.lang.String name)Sets the name.voidsetVersion(java.lang.String version)Sets the version.java.lang.StringtoString()-
Methods inherited from class org.apache.maven.enforcer.rules.AbstractStandardEnforcerRule
formatLocation, getMessage, setMessage
-
Methods inherited from class org.apache.maven.enforcer.rule.api.AbstractEnforcerRule
getLevel, getRuleName
-
Methods inherited from class org.apache.maven.enforcer.rule.api.AbstractEnforcerRuleBase
getLog, setLog
-
-
-
-
Field Detail
-
activator
private final org.apache.maven.model.profile.activation.ProfileActivator activator
-
profileActivationContext
private final org.apache.maven.model.profile.ProfileActivationContext profileActivationContext
-
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
-
createProfileActivationContext
private org.apache.maven.model.profile.ProfileActivationContext createProfileActivationContext(org.apache.maven.execution.MavenSession session)
-
execute
public void execute() throws EnforcerRuleExceptionDescription copied from class:AbstractEnforcerRuleThis 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 and rule level if it should stop or just log the message as a warning.- Specified by:
executein classAbstractEnforcerRule- Throws:
EnforcerRuleException- the enforcer rule exceptionEnforcerRuleError- in order to brake a build immediately
-
displayOSInfo
private void displayOSInfo()
Log the current OS information.
-
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 family)
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:
family- the family to check- Returns:
- true if one of the valid families
-
setArch
public void setArch(java.lang.String architecture)
Sets the architecture.- Parameters:
architecture- the architecture to set
-
setFamily
public void setFamily(java.lang.String family)
Sets the family.- Parameters:
family- the family to set
-
setName
public void setName(java.lang.String name)
Sets the name.- Parameters:
name- the name to set
-
setVersion
public void setVersion(java.lang.String version)
Sets the version.- Parameters:
version- the version to set
-
setDisplay
public void setDisplay(boolean display)
- Parameters:
display- The value for the display.
-
getCacheId
public java.lang.String getCacheId()
Description copied from class:AbstractEnforcerRuleIf the rule is to be cached during session scope, whole executing of Maven build, this id is used as part of the key.Rule of the same class and the same cache id will be executed once.
- Overrides:
getCacheIdin classAbstractEnforcerRule- Returns:
- id to be used by the Enforcer to determine uniqueness of cache results.
Return
nulldisable cache of rule executing.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-