Class Module

  • All Implemented Interfaces:
    java.lang.Comparable<Module>

    public class Module
    extends java.lang.Object
    implements java.lang.Comparable<Module>
    Represents a Module metadata, as defined in Jetty.

    A module consists of:

    • A set of jar files, directories and/or jar file patterns to be added to the classpath
    • A list of XML configuration files
    • Properties set either directly or via a file of properties
    • A set of modules names (or capability names) that this module depends on.
    • A set of capability names that this module provides (including it's own name).
    • Licence details for using the module
    Modules are discovered in the ${jetty.home}/modules and ${jetty.home}/modules directories. A module may refer to non-discovered dynamic module in a subdirectory, using a property as part or all of the name. A module may be enabled, either directly by name or transiently via a dependency from another module by name or provided capability.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.List<java.lang.String> _defaultConfig
      List of default config
      private java.util.List<java.lang.String> _depends
      Dependencies from [depends] section
      private java.util.List<java.lang.String> _description
      The module description
      private boolean _dynamic
      Is the module dynamic - ie referenced rather than discovered
      private java.util.Set<java.lang.String> _enables
      List of selections for this Module
      private java.util.List<java.lang.String> _files
      List of files for this Module
      private java.util.List<java.lang.String> _iniTemplate
      List of ini template lines
      private java.util.List<java.lang.String> _jpms
      List of JPMS options for this Module
      private java.util.List<java.lang.String> _jvmArgs
      List of jvm Args
      private java.util.List<java.lang.String> _libs
      List of library options for this Module
      private java.util.List<java.lang.String> _license
      License lines
      private java.lang.String _name
      The name of the module
      private boolean _notTransitive
      Boolean true if directly enabled, false if all selections are transitive
      private java.util.Set<java.lang.String> _optional
      Optional dependencies from [optional] section are structural in nature.
      private java.nio.file.Path _path
      The file of the module
      private java.util.Set<java.lang.String> _provides
      List of provides for this Module
      private boolean _skipFilesValidation
      Skip File Validation (default: false)
      private java.util.List<java.lang.String> _tags
      List of tags for this Module
      private java.util.List<java.lang.String> _xmls
      List of xml configurations for this Module
      (package private) static java.util.regex.Pattern MOD_NAME  
      (package private) static java.util.regex.Pattern SET_PROPERTY  
      private Version version
      The version of Jetty the module supports
      private static java.lang.String VERSION_UNSPECIFIED  
    • Constructor Summary

      Constructors 
      Constructor Description
      Module​(BaseHome basehome, java.nio.file.Path path)  
    • Field Detail

      • VERSION_UNSPECIFIED

        private static final java.lang.String VERSION_UNSPECIFIED
        See Also:
        Constant Field Values
      • MOD_NAME

        static java.util.regex.Pattern MOD_NAME
      • SET_PROPERTY

        static java.util.regex.Pattern SET_PROPERTY
      • _path

        private final java.nio.file.Path _path
        The file of the module
      • _name

        private final java.lang.String _name
        The name of the module
      • _dynamic

        private final boolean _dynamic
        Is the module dynamic - ie referenced rather than discovered
      • version

        private Version version
        The version of Jetty the module supports
      • _description

        private final java.util.List<java.lang.String> _description
        The module description
      • _xmls

        private final java.util.List<java.lang.String> _xmls
        List of xml configurations for this Module
      • _iniTemplate

        private final java.util.List<java.lang.String> _iniTemplate
        List of ini template lines
      • _defaultConfig

        private final java.util.List<java.lang.String> _defaultConfig
        List of default config
      • _libs

        private final java.util.List<java.lang.String> _libs
        List of library options for this Module
      • _jpms

        private final java.util.List<java.lang.String> _jpms
        List of JPMS options for this Module
      • _files

        private final java.util.List<java.lang.String> _files
        List of files for this Module
      • _enables

        private final java.util.Set<java.lang.String> _enables
        List of selections for this Module
      • _provides

        private final java.util.Set<java.lang.String> _provides
        List of provides for this Module
      • _tags

        private final java.util.List<java.lang.String> _tags
        List of tags for this Module
      • _notTransitive

        private boolean _notTransitive
        Boolean true if directly enabled, false if all selections are transitive
      • _skipFilesValidation

        private boolean _skipFilesValidation
        Skip File Validation (default: false)
      • _jvmArgs

        private final java.util.List<java.lang.String> _jvmArgs
        List of jvm Args
      • _license

        private final java.util.List<java.lang.String> _license
        License lines
      • _depends

        private final java.util.List<java.lang.String> _depends
        Dependencies from [depends] section
      • _optional

        private final java.util.Set<java.lang.String> _optional
        Optional dependencies from [optional] section are structural in nature.
    • Constructor Detail

      • Module

        public Module​(BaseHome basehome,
                      java.nio.file.Path path)
               throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • isConditionalDependency

        public static boolean isConditionalDependency​(java.lang.String depends)
      • normalizeModuleName

        public static java.lang.String normalizeModuleName​(java.lang.String name)
      • getName

        public java.lang.String getName()
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • expandDependencies

        public void expandDependencies​(Props props)
      • getDefaultConfig

        public java.util.List<java.lang.String> getDefaultConfig()
      • getIniTemplate

        public java.util.List<java.lang.String> getIniTemplate()
      • getFiles

        public java.util.List<java.lang.String> getFiles()
      • isSkipFilesValidation

        public boolean isSkipFilesValidation()
      • getJvmArgs

        public java.util.List<java.lang.String> getJvmArgs()
      • getLibs

        public java.util.List<java.lang.String> getLibs()
      • getLicense

        public java.util.List<java.lang.String> getLicense()
      • getXmls

        public java.util.List<java.lang.String> getXmls()
      • getJPMS

        public java.util.List<java.lang.String> getJPMS()
      • getVersion

        public Version getVersion()
      • hasDefaultConfig

        public boolean hasDefaultConfig()
      • hasIniTemplate

        public boolean hasIniTemplate()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • hasLicense

        public boolean hasLicense()
      • isDynamic

        public boolean isDynamic()
        Indicates a module that is dynamic in nature
        Returns:
        a module where the name is not in the top level of the modules directory
      • hasFiles

        public boolean hasFiles​(BaseHome baseHome,
                                Props props)
      • process

        public void process​(BaseHome basehome)
                     throws java.io.IOException
        Throws:
        java.io.IOException
      • clearTransitiveEnable

        public boolean clearTransitiveEnable()
      • setSkipFilesValidation

        public void setSkipFilesValidation​(boolean skipFilesValidation)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getDepends

        public java.util.List<java.lang.String> getDepends()
      • getProvides

        public java.util.Set<java.lang.String> getProvides()
      • getOptional

        public java.util.Set<java.lang.String> getOptional()
      • getDescription

        public java.util.List<java.lang.String> getDescription()
      • getTags

        public java.util.List<java.lang.String> getTags()
      • getPrimaryTag

        public java.lang.String getPrimaryTag()
      • isEnabled

        public boolean isEnabled()
      • getEnableSources

        public java.util.Set<java.lang.String> getEnableSources()
      • enable

        public boolean enable​(java.lang.String source,
                              boolean transitive)
        Parameters:
        source - String describing where the module was enabled from
        transitive - True if the enable is transitive
        Returns:
        true if the module was not previously enabled
      • isTransitive

        public boolean isTransitive()
      • writeIniSection

        public void writeIniSection​(java.io.BufferedWriter writer,
                                    Props props)
      • compareTo

        public int compareTo​(Module m)
        Specified by:
        compareTo in interface java.lang.Comparable<Module>