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      /**
22       * Gets an instance that filters the modules "component", "component-import", "module-type", "bean", and "spring"
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      {
29          return new OsgiPluginXmlDescriptorParser(checkNotNull(source, "The descriptor source must not be null"), applications);
30      }
31  
32      /**
33       * Gets an instance that filters the modules "component", "component-import", "module-type", "bean", and "spring"
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      {
43          return new OsgiPluginXmlDescriptorParser(source, supplementalSources, applications);
44      }
45  }