public class JarPluginProviderLoader extends java.lang.Object implements ProviderLoader, FileCache.Expireable, PluginResourceLoader, PluginMetadata, java.io.Closeable
JavaClassProviderLoadable| Modifier and Type | Class and Description |
|---|---|
protected class |
JarPluginProviderLoader.CachedJar
Holds the cached jar file, dir, libs list and class and resource loaders for a jar plugin
|
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
CACHED_JAR_TIMESTAMP_FORMAT |
protected java.io.File |
cachedir |
protected JarPluginProviderLoader.CachedJar |
cachedJar |
static java.lang.String |
JAR_PLUGIN_VERSION |
static java.lang.String |
JAR_PLUGIN_VERSION_1_2 |
static java.lang.String |
JAR_PLUGIN_VERSION_2_0 |
protected java.util.Date |
loadedDate |
protected boolean |
loadLibsFirst |
static VersionCompare |
LOWEST_JAR_PLUGIN_VERSION |
protected java.io.File |
pluginJar |
protected java.io.File |
pluginJarCacheDirectory |
static java.lang.String |
RESOURCES_DIR_DEFAULT |
static java.lang.String |
RUNDECK_PLUGIN_ARCHIVE |
static java.lang.String |
RUNDECK_PLUGIN_AUTHOR |
static java.lang.String |
RUNDECK_PLUGIN_CLASSNAMES |
static java.lang.String |
RUNDECK_PLUGIN_DATE |
static java.lang.String |
RUNDECK_PLUGIN_DESCRIPTION |
static java.lang.String |
RUNDECK_PLUGIN_DOCS_LINK |
static java.lang.String |
RUNDECK_PLUGIN_FILE_VERSION |
static java.lang.String |
RUNDECK_PLUGIN_LIBS |
static java.lang.String |
RUNDECK_PLUGIN_LIBS_LOAD_FIRST |
static java.lang.String |
RUNDECK_PLUGIN_LICENSE |
static java.lang.String |
RUNDECK_PLUGIN_NAME |
static java.lang.String |
RUNDECK_PLUGIN_RESOURCES |
static java.lang.String |
RUNDECK_PLUGIN_RESOURCES_DIR |
static java.lang.String |
RUNDECK_PLUGIN_RUNDECK_COMPAT_VER |
static java.lang.String |
RUNDECK_PLUGIN_SOURCE_LINK |
static java.lang.String |
RUNDECK_PLUGIN_TAGS |
static java.lang.String |
RUNDECK_PLUGIN_TARGET_HOST_COMPAT |
static java.lang.String |
RUNDECK_PLUGIN_THIRD_PARTY_DEPS |
static java.lang.String |
RUNDECK_PLUGIN_URL |
static java.lang.String |
RUNDECK_PLUGIN_VERSION |
static VersionCompare |
SUPPORTS_RESOURCES_PLUGIN_VERSION |
| Constructor and Description |
|---|
JarPluginProviderLoader(java.io.File pluginJar,
java.io.File pluginJarCacheDirectory,
java.io.File cachedir) |
JarPluginProviderLoader(java.io.File pluginJar,
java.io.File pluginJarCacheDirectory,
java.io.File cachedir,
boolean loadLibsFirst) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
canLoadForService(FrameworkSupportService service) |
void |
close()
Close class loaders and delete cached files
|
protected java.io.File |
createCachedJar(java.io.File dir,
java.lang.String jarName)
Creates a single cached version of the pluginJar located within pluginJarCacheDirectory
deleting all existing versions of pluginJar
|
boolean |
equals(java.lang.Object o) |
void |
expire()
Expire the loader cache item
|
protected java.util.Collection<java.io.File> |
extractDependentLibs(java.io.File cachedir)
Extract the dependent libs and return the extracted jar files
|
protected java.io.File |
generateCachedJarDir(java.lang.String ident) |
protected java.lang.String |
generateCachedJarIdentity() |
protected java.lang.String |
generateCachedJarName(java.lang.String ident) |
java.lang.String[] |
getClassnames()
Get the declared list of provider classnames for the file
|
java.util.Date |
getDateLoaded() |
java.io.File |
getFile() |
java.lang.String |
getFilename() |
java.lang.String |
getPluginArtifactName() |
java.lang.String |
getPluginAuthor() |
java.util.Date |
getPluginDate() |
java.lang.String |
getPluginDescription() |
java.lang.String |
getPluginDocsLink() |
java.lang.String |
getPluginFileVersion() |
java.lang.String |
getPluginId()
This id is generated off of the plugin name.
|
java.lang.String |
getPluginLicense() |
java.lang.String |
getPluginName() |
java.lang.String |
getPluginSourceLink() |
java.lang.String |
getPluginThirdPartyDependencies() |
java.lang.String |
getPluginType() |
java.lang.String |
getPluginUrl() |
java.lang.String |
getPluginVersion()
Get the version of the plugin, not the file version
|
java.lang.String |
getRundeckCompatibilityVersion() |
java.util.List<java.lang.String> |
getTags() |
java.lang.String |
getTargetHostCompatibility() |
int |
hashCode() |
boolean |
isClosed() |
protected boolean |
isEquivalentPluginJar(java.io.File other) |
boolean |
isExpired() |
boolean |
isLoaderFor(ProviderIdent ident)
Return true if the file has a class that provides the ident.
|
static boolean |
isValidJarPlugin(java.io.File file)
Return true if the file is a valid jar plugin file
|
java.util.List<ProviderIdent> |
listProviders()
List providers available
|
java.util.List<java.lang.String> |
listResources() |
<T> T |
load(PluggableService<T> service,
java.lang.String providerName)
Load provider instance for the service
|
<T> CloseableProvider<T> |
loadCloseable(PluggableService<T> service,
java.lang.String providerName)
Return a closeable provider instance
|
java.io.InputStream |
openResourceStreamFor(java.lang.String path)
Open a stream to load a resource
|
public static final java.lang.String RESOURCES_DIR_DEFAULT
public static final java.lang.String RUNDECK_PLUGIN_ARCHIVE
public static final java.lang.String RUNDECK_PLUGIN_CLASSNAMES
public static final java.lang.String RUNDECK_PLUGIN_RESOURCES
public static final java.lang.String RUNDECK_PLUGIN_RESOURCES_DIR
public static final java.lang.String RUNDECK_PLUGIN_LIBS
public static final java.lang.String JAR_PLUGIN_VERSION
public static final java.lang.String JAR_PLUGIN_VERSION_1_2
public static final java.lang.String JAR_PLUGIN_VERSION_2_0
public static final VersionCompare SUPPORTS_RESOURCES_PLUGIN_VERSION
public static final VersionCompare LOWEST_JAR_PLUGIN_VERSION
public static final java.lang.String RUNDECK_PLUGIN_NAME
public static final java.lang.String RUNDECK_PLUGIN_VERSION
public static final java.lang.String RUNDECK_PLUGIN_FILE_VERSION
public static final java.lang.String RUNDECK_PLUGIN_AUTHOR
public static final java.lang.String RUNDECK_PLUGIN_URL
public static final java.lang.String RUNDECK_PLUGIN_DATE
public static final java.lang.String RUNDECK_PLUGIN_LIBS_LOAD_FIRST
public static final java.lang.String CACHED_JAR_TIMESTAMP_FORMAT
public static final java.lang.String RUNDECK_PLUGIN_RUNDECK_COMPAT_VER
public static final java.lang.String RUNDECK_PLUGIN_DESCRIPTION
public static final java.lang.String RUNDECK_PLUGIN_LICENSE
public static final java.lang.String RUNDECK_PLUGIN_TAGS
public static final java.lang.String RUNDECK_PLUGIN_THIRD_PARTY_DEPS
public static final java.lang.String RUNDECK_PLUGIN_SOURCE_LINK
public static final java.lang.String RUNDECK_PLUGIN_DOCS_LINK
public static final java.lang.String RUNDECK_PLUGIN_TARGET_HOST_COMPAT
protected final java.io.File pluginJar
protected final java.io.File pluginJarCacheDirectory
protected final java.io.File cachedir
protected final boolean loadLibsFirst
protected JarPluginProviderLoader.CachedJar cachedJar
protected java.util.Date loadedDate
public JarPluginProviderLoader(java.io.File pluginJar,
java.io.File pluginJarCacheDirectory,
java.io.File cachedir)
public JarPluginProviderLoader(java.io.File pluginJar,
java.io.File pluginJarCacheDirectory,
java.io.File cachedir,
boolean loadLibsFirst)
public boolean canLoadForService(FrameworkSupportService service)
canLoadForService in interface ProviderLoaderservice - servicepublic java.util.List<java.lang.String> listResources()
throws PluginException,
java.io.IOException
listResources in interface PluginResourceLoaderPluginExceptionjava.io.IOExceptionpublic java.io.InputStream openResourceStreamFor(java.lang.String path)
throws PluginException,
java.io.IOException
PluginResourceLoaderopenResourceStreamFor in interface PluginResourceLoaderpath - resource path and namePluginException - if a path is requested that was not in the pluginjava.io.IOException - if an error occurspublic <T> CloseableProvider<T> loadCloseable(PluggableService<T> service, java.lang.String providerName) throws ProviderLoaderException
ProviderLoaderloadCloseable in interface ProviderLoaderT - typeservice - serviceproviderName - provider nameProviderLoaderExceptionpublic <T> T load(PluggableService<T> service, java.lang.String providerName) throws ProviderLoaderException
load in interface ProviderLoaderProviderLoaderExceptionpublic java.lang.String[] getClassnames()
public java.lang.String getPluginVersion()
getPluginVersion in interface PluginMetadataprotected boolean isEquivalentPluginJar(java.io.File other)
protected java.lang.String generateCachedJarIdentity()
protected java.lang.String generateCachedJarName(java.lang.String ident)
protected java.io.File generateCachedJarDir(java.lang.String ident)
protected java.io.File createCachedJar(java.io.File dir,
java.lang.String jarName)
throws PluginException
jarName - PluginExceptionprotected java.util.Collection<java.io.File> extractDependentLibs(java.io.File cachedir)
throws java.io.IOException
java.io.IOExceptionpublic boolean isLoaderFor(ProviderIdent ident)
isLoaderFor in interface ProviderLoaderpublic java.util.List<ProviderIdent> listProviders()
ProviderLoaderlistProviders in interface ProviderLoaderpublic void close()
throws java.io.IOException
close in interface java.io.Closeableclose in interface java.lang.AutoCloseablejava.io.IOExceptionpublic boolean isClosed()
public boolean isExpired()
public void expire()
expire in interface FileCache.Expireablepublic boolean equals(java.lang.Object o)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic static boolean isValidJarPlugin(java.io.File file)
public java.lang.String getFilename()
getFilename in interface PluginMetadatapublic java.io.File getFile()
getFile in interface PluginMetadatapublic java.lang.String getPluginArtifactName()
getPluginArtifactName in interface PluginMetadatapublic java.lang.String getPluginAuthor()
getPluginAuthor in interface PluginMetadatapublic java.lang.String getPluginFileVersion()
getPluginFileVersion in interface PluginMetadatapublic java.lang.String getPluginUrl()
getPluginUrl in interface PluginMetadatapublic java.util.Date getPluginDate()
getPluginDate in interface PluginMetadatapublic java.util.Date getDateLoaded()
getDateLoaded in interface PluginMetadatapublic java.lang.String getPluginName()
getPluginName in interface PluginMetadatapublic java.lang.String getPluginDescription()
getPluginDescription in interface PluginMetadatapublic java.lang.String getPluginId()
PluginMetadatagetPluginId in interface PluginMetadatapublic java.lang.String getRundeckCompatibilityVersion()
getRundeckCompatibilityVersion in interface PluginMetadatapublic java.lang.String getTargetHostCompatibility()
getTargetHostCompatibility in interface PluginMetadatapublic java.util.List<java.lang.String> getTags()
getTags in interface PluginMetadatapublic java.lang.String getPluginLicense()
getPluginLicense in interface PluginMetadatapublic java.lang.String getPluginThirdPartyDependencies()
getPluginThirdPartyDependencies in interface PluginMetadatapublic java.lang.String getPluginSourceLink()
getPluginSourceLink in interface PluginMetadatapublic java.lang.String getPluginDocsLink()
getPluginDocsLink in interface PluginMetadatapublic java.lang.String getPluginType()
getPluginType in interface PluginMetadata