1 package com.atlassian.plugin.osgi.factory;
2
3 import com.atlassian.plugin.Application;
4 import com.atlassian.plugin.ModuleDescriptor;
5 import com.atlassian.plugin.ModuleDescriptorFactory;
6 import com.atlassian.plugin.Plugin;
7 import com.atlassian.plugin.PluginParseException;
8 import com.atlassian.plugin.parsers.XmlDescriptorParser;
9 import org.dom4j.Element;
10
11 import java.io.InputStream;
12 import java.util.Set;
13
14 import static com.google.common.base.Preconditions.checkNotNull;
15
16
17
18
19
20
21
22 public class OsgiPluginXmlDescriptorParser extends XmlDescriptorParser
23 {
24
25
26
27
28
29
30 public OsgiPluginXmlDescriptorParser(final InputStream source, final Set<Application> applications) throws PluginParseException
31 {
32 super(checkNotNull(source, "The descriptor source must not be null"), applications);
33 }
34
35
36
37
38
39
40
41
42
43
44 public OsgiPluginXmlDescriptorParser(final InputStream source, final Iterable<InputStream> supplementalSources, final Set<Application> applications) throws PluginParseException
45 {
46 super(source, supplementalSources, applications);
47 }
48
49
50
51
52
53
54
55
56
57
58
59 @Override
60 protected ModuleDescriptor<?> createModuleDescriptor(final Plugin plugin, final Element element, final ModuleDescriptorFactory moduleDescriptorFactory) throws PluginParseException
61 {
62 final ModuleDescriptor<?> descriptor = super.createModuleDescriptor(plugin, element, moduleDescriptorFactory);
63 final String key = (descriptor != null ? descriptor.getKey() : element.attributeValue("key"));
64 ((OsgiPlugin) plugin).addModuleDescriptorElement(key, element);
65 return descriptor;
66 }
67 }