View Javadoc
1   package com.atlassian.plugin.osgi.factory;
2   
3   import com.atlassian.plugin.Application;
4   import com.atlassian.plugin.PluginParseException;
5   import com.atlassian.plugin.parsers.CompositeDescriptorParserFactory;
6   import com.atlassian.plugin.parsers.DescriptorParser;
7   import com.atlassian.plugin.parsers.DescriptorParserFactory;
8   
9   import java.io.InputStream;
10  import java.util.Set;
11  
12  import static com.google.common.base.Preconditions.checkNotNull;
13  
14  /**
15   * Descriptor parser factory that creates parsers for Osgi plugins. Must only be used with {@link OsgiPlugin} instances.
16   *
17   * @since 2.1.2
18   */
19  public class OsgiPluginXmlDescriptorParserFactory implements DescriptorParserFactory, CompositeDescriptorParserFactory {
20      /**
21       * Gets an instance that filters the modules "component", "component-import", "module-type", "bean", and "spring"
22       *
23       * @param source The descriptor source
24       * @return The parser
25       * @throws PluginParseException
26       */
27      public DescriptorParser getInstance(final InputStream source, final Set<Application> applications) throws PluginParseException {
28          return new OsgiPluginXmlDescriptorParser(checkNotNull(source, "The descriptor source must not be null"), applications);
29      }
30  
31      /**
32       * Gets an instance that filters the modules "component", "component-import", "module-type", "bean", and "spring"
33       *
34       * @param source              The descriptor source
35       * @param supplementalSources extra sources describing modules
36       * @return The parser
37       * @throws PluginParseException
38       * @since 3.2.16
39       */
40      public DescriptorParser getInstance(InputStream source, Iterable<InputStream> supplementalSources,
41                                          Set<Application> applications) throws PluginParseException {
42          return new OsgiPluginXmlDescriptorParser(source, supplementalSources, applications);
43      }
44  }