View Javadoc

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