Package net.shibboleth.idp.module
Class AbstractIdPModule.BasicModuleResource
- java.lang.Object
-
- net.shibboleth.idp.module.AbstractIdPModule.BasicModuleResource
-
- All Implemented Interfaces:
IdPModule.ModuleResource
- Enclosing class:
- AbstractIdPModule
class AbstractIdPModule.BasicModuleResource extends Object implements IdPModule.ModuleResource
Models a specific resource managed by a module.
-
-
Field Summary
Fields Modifier and Type Field Description private PathdestinationDestination.private booleanexecutableExecutable criteria.private booleanoptionalOptional criteria.private booleanreplaceReplacement criteria.private StringsourceSource.
-
Constructor Summary
Constructors Constructor Description BasicModuleResource(String src, Path dest, boolean shouldReplace, boolean isOptional, boolean isExecutable)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private InputStreamconnect(ModuleContext moduleContext, URI uri)Connect to the given URI and return the HTTP response stream.private IdPModule.ResourceResultdisable(ModuleContext moduleContext, boolean clean)Disable the supplied resource, either removing or renaming.private IdPModule.ResourceResultenable(ModuleContext moduleContext)Enable the supplied resource.booleanequals(Object obj)PathgetDestination()Gets the destination for the resource.private InputStreamgetDestinationStream(ModuleContext moduleContext)Access the destination as a stream.StringgetSource()Gets the source location of the resource.private InputStreamgetSourceStream(ModuleContext moduleContext)Access the source as a stream.booleanhasChanged(ModuleContext moduleContext)Gets whether the resource has been altered at its destination from the source material.inthashCode()booleanisExecutable()Gets whether the resource should be marked executable where applicable.booleanisOptional()Gets whether the resource, if missing, should not act as a module-disabled signal.booleanisReplace()Gets whether the resource should be config(replace) or config(noreplace) in RPM specfile parlance.
-
-
-
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- sourcedest- destinationshouldReplace- whether to replace when enablingisOptional- whether the resource is optionalisExecutable- whether the resource is executable
-
-
Method Detail
-
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:
getSourcein interfaceIdPModule.ModuleResource- Returns:
- source location
-
getDestination
@Nonnull public Path getDestination()
Gets the destination for the resource.- Specified by:
getDestinationin interfaceIdPModule.ModuleResource- Returns:
- destination path
-
isReplace
public boolean isReplace()
Gets whether the resource should be config(replace) or config(noreplace) in RPM specfile parlance.- Specified by:
isReplacein interfaceIdPModule.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:
isOptionalin interfaceIdPModule.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:
isExecutablein interfaceIdPModule.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 contexturi- 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
-
enable
@Nonnull private IdPModule.ResourceResult enable(@Nonnull ModuleContext moduleContext) throws ModuleException
Enable the supplied resource.- Parameters:
moduleContext- module context- Returns:
- result of operation
- Throws:
ModuleException- if an error occurs
-
disable
@Nonnull private IdPModule.ResourceResult disable(@Nonnull ModuleContext moduleContext, boolean clean) throws ModuleException
Disable the supplied resource, either removing or renaming.- Parameters:
moduleContext- module contextclean- true iff resource should be removed- Returns:
- result of operation
- Throws:
ModuleException- if an error occurs
-
-