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 org.apache.maven.model.profile.activation.ProfileActivator activator  
      private java.lang.String arch
      The OS architecture desired.
      private boolean display
      Display detected OS information.
      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
      private java.lang.String name
      The OS name desired.
      private java.lang.String version
      The OS version desired.
    • Constructor Summary

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean allParamsEmpty()
      Helper method to check that at least one of family, name, version or arch is set.
      private org.apache.maven.model.Activation createActivation()
      Creates an Activation object that contains the ActivationOS information.
      private org.apache.maven.model.ActivationOS createOsBean()
      Creates an ActivationOS object containing family, name, version and arch.
      private org.apache.maven.model.Profile createProfile()
      Creates a Profile object that contains the activation information.
      private void displayOSInfo()
      Log the current OS information.
      void execute()
      This is the interface into the rule.
      java.lang.String getCacheId()
      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 isAllowed()
      Helper method to determine if the current OS is allowed based on the injected values for family, name, version and arch.
      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 Note: '!' is allowed at the beginning of the string and still considered valid.
      void setArch​(java.lang.String theArch)
      Sets the arch.
      void setDisplay​(boolean display)  
      void setFamily​(java.lang.String theFamily)
      Sets the family.
      void setName​(java.lang.String theName)
      Sets the name.
      void setVersion​(java.lang.String theVersion)
      Sets the version.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

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

      • activator

        private final 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.
    • Constructor Detail

      • RequireOS

        @Inject
        RequireOS​(@Named("os")
                  org.apache.maven.model.profile.activation.ProfileActivator activator)
        Instantiates a new RequireOS.
    • Method Detail

      • 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
        EnforcerRuleError - 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 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​(java.lang.String theArch)
        Sets the arch.
        Parameters:
        theArch - the arch to set
      • setFamily

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

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

        public void setVersion​(java.lang.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 java.lang.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 java.lang.String toString()
        Overrides:
        toString in class java.lang.Object