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
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.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.apache.maven.model.profile.activation.ProfileActivator
private String
The OS architecture desired.private boolean
Display detected OS information.private String
The OS family type desired
Possible values: dos mac netware os/2 tandem unix windows win9x z/os os/400private String
The OS name desired.private String
The OS version desired. -
Constructor Summary
ConstructorsConstructorDescriptionRequireOS
(org.apache.maven.model.profile.activation.ProfileActivator activator) Instantiates a new RequireOS. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Helper method to check that at least one of family, name, version or arch is set.private org.apache.maven.model.Activation
Creates an Activation object that contains the ActivationOS information.private org.apache.maven.model.ActivationOS
Creates an ActivationOS object containing family, name, version and arch.private org.apache.maven.model.Profile
Creates a Profile object that contains the activation information.private void
Log the current OS information.void
execute()
This is the interface into the rule.If the rule is to be cached during session scope, whole executing of Maven build, this id is used as part of the key.boolean
Helper method to determine if the current OS is allowed based on the injected values for family, name, version and arch.boolean
isValidFamily
(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.void
Sets the arch.void
setDisplay
(boolean display) void
Sets the family.void
Sets the name.void
setVersion
(String theVersion) Sets the version.toString()
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
Methods inherited from class org.apache.maven.enforcer.rule.api.AbstractEnforcerRuleBase
getLog, setLog
-
Field Details
-
activator
private final org.apache.maven.model.profile.activation.ProfileActivator activator -
family
The OS family type desired
Possible values:- dos
- mac
- netware
- os/2
- tandem
- unix
- windows
- win9x
- z/os
- os/400
-
name
The OS name desired. -
version
The OS version desired. -
arch
The OS architecture desired. -
display
private boolean displayDisplay detected OS information.
-
-
Constructor Details
-
RequireOS
@Inject RequireOS(@Named("os") org.apache.maven.model.profile.activation.ProfileActivator activator) Instantiates a new RequireOS.
-
-
Method Details
-
execute
Description copied from class:AbstractEnforcerRule
This 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:
execute
in classAbstractEnforcerRule
- Throws:
EnforcerRuleException
- the enforcer rule exception
-
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
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.
-
setArch
Sets the arch.- Parameters:
theArch
- the arch to set
-
setFamily
Sets the family.- Parameters:
theFamily
- the family to set
-
setName
Sets the name.- Parameters:
theName
- the name to set
-
setVersion
Sets the version.- Parameters:
theVersion
- the version to set
-
setDisplay
public void setDisplay(boolean display) - Parameters:
display
- The value for the display.
-
getCacheId
Description copied from class:AbstractEnforcerRule
If 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:
getCacheId
in classAbstractEnforcerRule
- Returns:
- id to be used by the Enforcer to determine uniqueness of cache results.
Return
null
disable cache of rule executing.
-
toString
-