Interface ILibraryService
-
public interface ILibraryService
Interface for the Library Service. It provides a platform service for dynamic loading and unloading of classes, libraries and resources.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description IFuture<java.lang.Void>
addLibraryServiceListener(ILibraryServiceListener listener)
Add an Library Service listener.IFuture<IResourceIdentifier>
addResourceIdentifier(IResourceIdentifier parid, IResourceIdentifier rid, boolean workspace)
Add a new resource identifier.IFuture<java.lang.Void>
addTopLevelURL(java.net.URL url)
Add a top level url.IFuture<IResourceIdentifier>
addURL(IResourceIdentifier parid, java.net.URL url)
Add a new url as resource identifier.IFuture<java.util.List<IResourceIdentifier>>
getAllResourceIdentifiers()
Get all resource identifiers (does not include rids (urls) of parent loader).IFuture<java.util.List<java.net.URL>>
getAllURLs()
Get all urls (managed and non-managed).IFuture<java.lang.ClassLoader>
getClassLoader(IResourceIdentifier rid)
Returns the classloader for a resource identifier.IFuture<java.lang.ClassLoader>
getClassLoader(IResourceIdentifier rid, boolean workspace)
Returns the classloader for a resource identifier.IFuture<java.util.Collection<java.lang.String[]>>
getComponentModels()
todo: support all component models Get all startable component models (currently only Java classes with @Agent).ISubscriptionIntermediateFuture<java.util.Collection<java.lang.String[]>>
getComponentModelsAsStream()
IFuture<java.util.List<java.net.URL>>
getNonManagedURLs()
Get other contained (but not directly managed) urls from parent classloaders.IFuture<java.util.Set<Tuple2<IResourceIdentifier,IResourceIdentifier>>>
getRemovableLinks()
Get the removable links.IFuture<IInputConnection>
getResourceAsStream(IResourceIdentifier rid)
Get a resource as stream (jar).IFuture<IResourceIdentifier>
getResourceIdentifier(java.net.URL url)
Returns the resource identifier for a url.IFuture<Tuple2<IResourceIdentifier,java.util.Map<IResourceIdentifier,java.util.List<IResourceIdentifier>>>>
getResourceIdentifiers()
Get the resource identifier dependencies.IResourceIdentifier
getRootResourceIdentifier()
Get the top-level resource identifier.IFuture<java.lang.Void>
removeLibraryServiceListener(ILibraryServiceListener listener)
Remove an Library Service listener.IFuture<java.lang.Void>
removeResourceIdentifier(IResourceIdentifier parid, IResourceIdentifier rid)
Remove a resource identifier.IFuture<java.lang.Void>
removeTopLevelURL(java.net.URL url)
Remove a top level url.IFuture<java.lang.Void>
removeURL(IResourceIdentifier parid, java.net.URL url)
Remove a url.
-
-
-
Method Detail
-
addResourceIdentifier
IFuture<IResourceIdentifier> addResourceIdentifier(IResourceIdentifier parid, IResourceIdentifier rid, boolean workspace)
Add a new resource identifier.- Parameters:
parid
- The optional parent rid.rid
- The resource identifier.
-
removeResourceIdentifier
IFuture<java.lang.Void> removeResourceIdentifier(IResourceIdentifier parid, IResourceIdentifier rid)
Remove a resource identifier.- Parameters:
parid
- The optional parent rid.url
- The resource identifier.
-
getRemovableLinks
IFuture<java.util.Set<Tuple2<IResourceIdentifier,IResourceIdentifier>>> getRemovableLinks()
Get the removable links.
-
getAllResourceIdentifiers
IFuture<java.util.List<IResourceIdentifier>> getAllResourceIdentifiers()
Get all resource identifiers (does not include rids (urls) of parent loader).- Returns:
- The list of resource identifiers.
-
getResourceIdentifiers
IFuture<Tuple2<IResourceIdentifier,java.util.Map<IResourceIdentifier,java.util.List<IResourceIdentifier>>>> getResourceIdentifiers()
Get the resource identifier dependencies. Includes also system urls via a pseudo rid defined as constant in LibraryService.SYSTEMCPRID.
-
getClassLoader
IFuture<java.lang.ClassLoader> getClassLoader(IResourceIdentifier rid)
Returns the classloader for a resource identifier.- Parameters:
rid
- The resource identifier.- Returns:
- The classloader.
-
getClassLoader
IFuture<java.lang.ClassLoader> getClassLoader(IResourceIdentifier rid, boolean workspace)
Returns the classloader for a resource identifier.- Parameters:
rid
- The resource identifier.workspace
- True if workspace resolution is ok.- Returns:
- The classloader.
-
getResourceAsStream
IFuture<IInputConnection> getResourceAsStream(IResourceIdentifier rid)
Get a resource as stream (jar).
-
addURL
IFuture<IResourceIdentifier> addURL(IResourceIdentifier parid, java.net.URL url)
Add a new url as resource identifier.- Parameters:
parid
- The resource identifier (null for root entry).url
- The url.
-
removeURL
IFuture<java.lang.Void> removeURL(IResourceIdentifier parid, java.net.URL url)
Remove a url.- Parameters:
parid
- The resource identifier (null for root entry).url
- The url.
-
getResourceIdentifier
IFuture<IResourceIdentifier> getResourceIdentifier(java.net.URL url)
Returns the resource identifier for a url.- Parameters:
url
- The url.- Returns:
- The corresponding resource identifier.
-
getRootResourceIdentifier
IResourceIdentifier getRootResourceIdentifier()
Get the top-level resource identifier.- Parameters:
url
- The url.- Returns:
- The corresponding resource identifier.
-
addTopLevelURL
IFuture<java.lang.Void> addTopLevelURL(java.net.URL url)
Add a top level url. A top level url will be available for all subordinated resources.- Parameters:
url
- The url.
-
removeTopLevelURL
IFuture<java.lang.Void> removeTopLevelURL(java.net.URL url)
Remove a top level url. A top level url will be available for all subordinated resources.- Parameters:
url
- The url. note: top level url removal will only take effect after restart of the platform.
-
getNonManagedURLs
IFuture<java.util.List<java.net.URL>> getNonManagedURLs()
Get other contained (but not directly managed) urls from parent classloaders.- Returns:
- The list of urls.
-
getAllURLs
IFuture<java.util.List<java.net.URL>> getAllURLs()
Get all urls (managed and non-managed). Uses getAllResourceIdentifiers() for managed and getNonManagedURLs() for unmanaged.- Returns:
- The list of urls.
-
getComponentModels
IFuture<java.util.Collection<java.lang.String[]>> getComponentModels()
todo: support all component models Get all startable component models (currently only Java classes with @Agent).- Returns:
- The file names of the component models.
-
getComponentModelsAsStream
ISubscriptionIntermediateFuture<java.util.Collection<java.lang.String[]>> getComponentModelsAsStream()
-
addLibraryServiceListener
IFuture<java.lang.Void> addLibraryServiceListener(ILibraryServiceListener listener)
Add an Library Service listener. The listener is registered for changes in the loaded library states.- Parameters:
listener
- The listener to be added.
-
removeLibraryServiceListener
IFuture<java.lang.Void> removeLibraryServiceListener(ILibraryServiceListener listener)
Remove an Library Service listener.- Parameters:
listener
- The listener to be removed.
-
-