View Javadoc

1   package com.atlassian.plugin.impl;
2   
3   import com.atlassian.plugin.PluginArtifact;
4   import com.atlassian.plugin.PluginArtifactBackedPlugin;
5   import com.atlassian.plugin.util.ClassLoaderUtils;
6   
7   import java.io.InputStream;
8   import java.net.URL;
9   
10  /**
11   * A dynamic XML plugin that consists of the Atlassian plugin descriptor
12   *
13   * @since 2.1.0
14   */
15  public class XmlDynamicPlugin extends AbstractPlugin implements PluginArtifactBackedPlugin
16  {
17      private final PluginArtifact pluginArtifact;
18  
19      public XmlDynamicPlugin(PluginArtifact pluginArtifact)
20      {
21          this.pluginArtifact = pluginArtifact;
22      }
23  
24      public boolean isUninstallable()
25      {
26          return true;
27      }
28  
29      public boolean isDeleteable()
30      {
31          return true;
32      }
33  
34      public boolean isDynamicallyLoaded()
35      {
36          return true;
37      }
38  
39      public void close()
40      {}
41  
42      public <M> Class<M> loadClass(final String clazz, final Class<?> callingClass) throws ClassNotFoundException
43      {
44          return ClassLoaderUtils.loadClass(clazz, callingClass);
45      }
46  
47      public ClassLoader getClassLoader()
48      {
49          return getClass().getClassLoader();
50      }
51  
52      public URL getResource(final String name)
53      {
54          return ClassLoaderUtils.getResource(name, getClass());
55      }
56  
57      public InputStream getResourceAsStream(final String name)
58      {
59          return ClassLoaderUtils.getResourceAsStream(name, getClass());
60      }
61  
62      public PluginArtifact getPluginArtifact()
63      {
64          return pluginArtifact;
65      }
66  }