Class LocationManager
- java.lang.Object
-
- org.codehaus.plexus.languages.java.jpms.LocationManager
-
@Named @Singleton public class LocationManager extends java.lang.Object
Maps artifacts to modules and analyzes the type of required modules- Since:
- 1.0.0
-
-
Field Summary
Fields Modifier and Type Field Description private ManifestModuleNameExtractor
manifestModuleNameExtractor
private SourceModuleInfoParser
sourceParser
-
Constructor Summary
Constructors Constructor Description LocationManager()
LocationManager(SourceModuleInfoParser sourceParser)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
collectProviders(JavaModuleDescriptor moduleDescriptor, java.util.Map<java.lang.String,java.util.Set<java.lang.String>> availableProviders)
(package private) ModuleInfoParser
getBinaryModuleInfoParser(java.nio.file.Path jdkHome)
If the jdkHome is specified, its version it considered higher than the runtime java version.private <T> JavaModuleDescriptor
getMainModuleDescriptor(ResolvePathsRequest<T> request, ModuleInfoParser binaryParser)
ResolvePathResult
parseModuleDescriptor(java.io.File descriptorPath)
ResolvePathResult
parseModuleDescriptor(java.lang.String descriptorPath)
ResolvePathResult
parseModuleDescriptor(java.nio.file.Path descriptorPath)
private ResolvePathResult
resolvePath(java.nio.file.Path path, ModuleNameExtractor fileModulenameExtractor, ModuleInfoParser binaryParser)
<T> ResolvePathResult
resolvePath(ResolvePathRequest<T> request)
Resolve a single jar<T> ResolvePathsResult<T>
resolvePaths(ResolvePathsRequest<T> request)
Decide for everyrequest.getPathElements()
if it belongs to the modulePath or classPath, based on therequest.getMainModuleDescriptor()
.private void
selectModule(java.lang.String module, java.util.Map<java.lang.String,JavaModuleDescriptor> availableModules, java.util.Map<java.lang.String,java.util.Set<java.lang.String>> availableProviders, java.util.Set<java.lang.String> namedModules, boolean isRootModule, boolean includeTransitive, boolean includeStatic)
private void
selectRequires(JavaModuleDescriptor module, java.util.Map<java.lang.String,JavaModuleDescriptor> availableModules, java.util.Map<java.lang.String,java.util.Set<java.lang.String>> availableProviders, java.util.Set<java.lang.String> namedModules, boolean isRootModule, boolean includeAsTransitive, boolean includeStatic)
-
-
-
Field Detail
-
sourceParser
private SourceModuleInfoParser sourceParser
-
manifestModuleNameExtractor
private ManifestModuleNameExtractor manifestModuleNameExtractor
-
-
Constructor Detail
-
LocationManager
public LocationManager()
-
LocationManager
LocationManager(SourceModuleInfoParser sourceParser)
-
-
Method Detail
-
parseModuleDescriptor
public ResolvePathResult parseModuleDescriptor(java.nio.file.Path descriptorPath) throws java.io.IOException
- Parameters:
descriptorPath
- nevernull
- Returns:
- the parsed module descriptor
- Throws:
java.io.IOException
- when descriptorPath could not be read
-
parseModuleDescriptor
public ResolvePathResult parseModuleDescriptor(java.io.File descriptorPath) throws java.io.IOException
- Parameters:
descriptorPath
- nevernull
- Returns:
- the parsed module descriptor
- Throws:
java.io.IOException
- when descriptorPath could not be read
-
parseModuleDescriptor
public ResolvePathResult parseModuleDescriptor(java.lang.String descriptorPath) throws java.io.IOException
- Parameters:
descriptorPath
- nevernull
- Returns:
- the parsed module descriptor
- Throws:
java.io.IOException
- when descriptorPath could not be read
-
resolvePath
public <T> ResolvePathResult resolvePath(ResolvePathRequest<T> request) throws java.io.IOException
Resolve a single jar- Parameters:
request
- the request- Returns:
- the
ResolvePathResult
, containing the name and optional module descriptor - Throws:
java.io.IOException
- if any occurs
-
resolvePaths
public <T> ResolvePathsResult<T> resolvePaths(ResolvePathsRequest<T> request) throws java.io.IOException
Decide for everyrequest.getPathElements()
if it belongs to the modulePath or classPath, based on therequest.getMainModuleDescriptor()
.- Parameters:
request
- the paths to resolve- Returns:
- the result of the resolution
- Throws:
java.io.IOException
- if a critical IOException occurs
-
getBinaryModuleInfoParser
ModuleInfoParser getBinaryModuleInfoParser(java.nio.file.Path jdkHome)
If the jdkHome is specified, its version it considered higher than the runtime java version. In that case ASM must be used to read the module descriptor- Parameters:
jdkHome
-- Returns:
-
getMainModuleDescriptor
private <T> JavaModuleDescriptor getMainModuleDescriptor(ResolvePathsRequest<T> request, ModuleInfoParser binaryParser) throws java.io.IOException
- Throws:
java.io.IOException
-
resolvePath
private ResolvePathResult resolvePath(java.nio.file.Path path, ModuleNameExtractor fileModulenameExtractor, ModuleInfoParser binaryParser) throws java.io.IOException
- Throws:
java.io.IOException
-
selectRequires
private void selectRequires(JavaModuleDescriptor module, java.util.Map<java.lang.String,JavaModuleDescriptor> availableModules, java.util.Map<java.lang.String,java.util.Set<java.lang.String>> availableProviders, java.util.Set<java.lang.String> namedModules, boolean isRootModule, boolean includeAsTransitive, boolean includeStatic)
-
selectModule
private void selectModule(java.lang.String module, java.util.Map<java.lang.String,JavaModuleDescriptor> availableModules, java.util.Map<java.lang.String,java.util.Set<java.lang.String>> availableProviders, java.util.Set<java.lang.String> namedModules, boolean isRootModule, boolean includeTransitive, boolean includeStatic)
-
collectProviders
private void collectProviders(JavaModuleDescriptor moduleDescriptor, java.util.Map<java.lang.String,java.util.Set<java.lang.String>> availableProviders)
-
-