View Javadoc

1   package com.atlassian.plugin.osgi.factory;
2   
3   import com.atlassian.plugin.ModuleDescriptor;
4   import com.atlassian.plugin.ModuleDescriptorFactory;
5   import com.atlassian.plugin.PluginParseException;
6   import com.atlassian.plugin.descriptors.UnrecognisedModuleDescriptor;
7   import org.apache.log4j.Logger;
8   
9   /**
10   * Module descriptor factory for deferred modules.  Turns every request for a module descriptor into a deferred
11   * module so be sure that this factory is last in a list of factories.
12   *
13   * @since 2.1.2
14   */
15  class UnrecognisedModuleDescriptorFallbackFactory implements ModuleDescriptorFactory
16  {
17      private static final Logger log = Logger.getLogger(UnrecognisedModuleDescriptorFallbackFactory.class);
18      public static final String DESCRIPTOR_TEXT = "Support for this module is not currently installed.";
19  
20      public ModuleDescriptor getModuleDescriptor(String type) throws PluginParseException, IllegalAccessException, InstantiationException, ClassNotFoundException
21      {
22          log.info("Unknown module descriptor of type "+type+" registered as a deferred descriptor.");
23          UnrecognisedModuleDescriptor descriptor = new UnrecognisedModuleDescriptor();
24          descriptor.setErrorText(DESCRIPTOR_TEXT);
25          return descriptor;
26      }
27  
28      public boolean hasModuleDescriptor(String type)
29      {
30          return true;
31      }
32  
33      public Class<? extends ModuleDescriptor> getModuleDescriptorClass(String type)
34      {
35          return UnrecognisedModuleDescriptor.class;
36      }
37  }