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 org.dom4j.Element;
12  
13  import javax.annotation.Nonnull;
14  
15  /**
16   * Module descriptor for OSGi service imports. Shouldn't be directly used outside providing read-only information.
17   *
18   * @since 2.2.0
19   */
20  @CannotDisable
21  @RequirePermission(Permissions.EXECUTE_JAVA)
22  public final class ComponentImportModuleDescriptor extends AbstractModuleDescriptor<Object> {
23      /**
24       * @since 2.5.0
25       */
26      public ComponentImportModuleDescriptor() {
27          super(ModuleFactory.LEGACY_MODULE_FACTORY);
28      }
29  
30      @Override
31      public void init(@Nonnull Plugin plugin, @Nonnull Element element) throws PluginParseException {
32          super.init(plugin, element);
33          checkPermissions();
34      }
35  
36      public Object getModule() {
37          return new BeanPrefixModuleFactory().createModule(getKey(), this);
38      }
39  }