View Javadoc

1   package com.atlassian.plugin.osgi.factory.descriptor;
2   
3   import com.atlassian.plugin.Permissions;
4   import com.atlassian.plugin.Plugin;
5   import com.atlassian.plugin.PluginParseException;
6   import com.atlassian.plugin.RequirePermission;
7   import com.atlassian.plugin.descriptors.AbstractModuleDescriptor;
8   import com.atlassian.plugin.descriptors.CannotDisable;
9   import com.atlassian.plugin.module.ModuleFactory;
10  import com.atlassian.plugin.osgi.module.BeanPrefixModuleFactory;
11  import com.atlassian.util.concurrent.NotNull;
12  import org.dom4j.Element;
13  
14  /**
15   * Module descriptor for OSGi service imports. Shouldn't be directly used outside providing read-only information.
16   *
17   * @since 2.2.0
18   */
19  @CannotDisable
20  @RequirePermission(Permissions.EXECUTE_JAVA)
21  public final class ComponentImportModuleDescriptor extends AbstractModuleDescriptor<Object>
22  {
23      /**
24       * @since 2.5.0
25       */
26      public ComponentImportModuleDescriptor()
27      {
28          super(ModuleFactory.LEGACY_MODULE_FACTORY);
29      }
30  
31      @Override
32      public void init(@NotNull Plugin plugin, @NotNull Element element) throws PluginParseException
33      {
34          super.init(plugin, element);
35          checkPermissions();
36      }
37  
38      public Object getModule()
39      {
40          return new BeanPrefixModuleFactory().createModule(getKey(), this);
41      }
42  }