Class RequireOS

All Implemented Interfaces:
EnforcerRuleBase

@Named("requireOS") public final 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.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private 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/400
    private String
    The OS name desired.
    private String
    The OS version desired.
  • Constructor Summary

    Constructors
    Constructor
    Description
    RequireOS(org.apache.maven.model.profile.activation.ProfileActivator activator)
    Instantiates a new RequireOS.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    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
    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
    setArch(String theArch)
    Sets the arch.
    void
    setDisplay(boolean display)
     
    void
    setFamily(String theFamily)
    Sets the family.
    void
    setName(String theName)
    Sets the name.
    void
    setVersion(String theVersion)
    Sets the version.
     

    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • activator

      private final org.apache.maven.model.profile.activation.ProfileActivator activator
    • family

      private String family
      The OS family type desired
      Possible values:
      • dos
      • mac
      • netware
      • os/2
      • tandem
      • unix
      • windows
      • win9x
      • z/os
      • os/400
    • name

      private String name
      The OS name desired.
    • version

      private String version
      The OS version desired.
    • arch

      private String arch
      The OS architecture desired.
    • display

      private boolean display
      Display 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

      public void execute() throws EnforcerRuleException
      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 class AbstractEnforcerRule
      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

      public 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.
      Parameters:
      theFamily - the family to check.
      Returns:
      true if one of the valid families.
    • setArch

      public void setArch(String theArch)
      Sets the arch.
      Parameters:
      theArch - the arch to set
    • setFamily

      public void setFamily(String theFamily)
      Sets the family.
      Parameters:
      theFamily - the family to set
    • setName

      public void setName(String theName)
      Sets the name.
      Parameters:
      theName - the name to set
    • setVersion

      public void setVersion(String theVersion)
      Sets the version.
      Parameters:
      theVersion - the version to set
    • setDisplay

      public void setDisplay(boolean display)
      Parameters:
      display - The value for the display.
    • getCacheId

      public String 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 class AbstractEnforcerRule
      Returns:
      id to be used by the Enforcer to determine uniqueness of cache results. Return null disable cache of rule executing.
    • toString

      public String toString()
      Overrides:
      toString in class Object