Class AbstractIdPModule.BasicModuleResource

    • Field Detail

      • destination

        @Nonnull
        private final Path destination
        Destination.
      • replace

        private final boolean replace
        Replacement criteria.
      • optional

        private final boolean optional
        Optional criteria.
      • executable

        private final boolean executable
        Executable criteria.
    • Constructor Detail

      • BasicModuleResource

        public BasicModuleResource​(@Nonnull @NotEmpty
                                   String src,
                                   @Nonnull
                                   Path dest,
                                   boolean shouldReplace,
                                   boolean isOptional,
                                   boolean isExecutable)
        Constructor.
        Parameters:
        src - source
        dest - destination
        shouldReplace - whether to replace when enabling
        isOptional - whether the resource is optional
        isExecutable - whether the resource is executable
    • Method Detail

      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • getSource

        @Nonnull
        public String getSource()
        Gets the source location of the resource.

        This may be a URL or a local path that will be assumed a classpath.

        Specified by:
        getSource in interface IdPModule.ModuleResource
        Returns:
        source location
      • isReplace

        public boolean isReplace()
        Gets whether the resource should be config(replace) or config(noreplace) in RPM specfile parlance.
        Specified by:
        isReplace in interface IdPModule.ModuleResource
        Returns:
        true iff the resource should be replaced with the original preserved
      • isOptional

        public boolean isOptional()
        Gets whether the resource, if missing, should not act as a module-disabled signal.
        Specified by:
        isOptional in interface IdPModule.ModuleResource
        Returns:
        true iff the resource may be removed by a deployer without disabling the module
      • isExecutable

        public boolean isExecutable()
        Gets whether the resource should be marked executable where applicable.
        Specified by:
        isExecutable in interface IdPModule.ModuleResource
        Returns:
        true iff the resource should be marked executable
      • hasChanged

        public boolean hasChanged​(@Nonnull
                                  ModuleContext moduleContext)
        Gets whether the resource has been altered at its destination from the source material.
        Parameters:
        moduleContext - context for module operations
        Returns:
        true iff the resource has been changed
      • getSourceStream

        @Nullable
        private InputStream getSourceStream​(@Nonnull
                                            ModuleContext moduleContext)
                                     throws IOException
        Access the source as a stream.
        Parameters:
        moduleContext - context for module operations
        Returns:
        a stream or null if the source does not exist
        Throws:
        IOException - on failure
      • connect

        @Nonnull
        private InputStream connect​(@Nonnull
                                    ModuleContext moduleContext,
                                    @Nonnull
                                    URI uri)
                             throws IOException
        Connect to the given URI and return the HTTP response stream.
        Parameters:
        moduleContext - module context
        uri - resource location
        Returns:
        input stream of response
        Throws:
        IOException - on errors
      • getDestinationStream

        @Nullable
        private InputStream getDestinationStream​(@Nonnull
                                                 ModuleContext moduleContext)
                                          throws IOException
        Access the destination as a stream.
        Parameters:
        moduleContext - context for module operations
        Returns:
        a stream or null if the destination does not exist
        Throws:
        IOException - on failure
      • disable

        @Nonnull
        private IdPModule.ResourceResult disable​(@Nonnull
                                                 ModuleContext moduleContext,
                                                 boolean clean)
                                          throws ModuleException
        Disable the supplied resource, either removing or renaming.
        Parameters:
        moduleContext - module context
        clean - true iff resource should be removed
        Returns:
        result of operation
        Throws:
        ModuleException - if an error occurs