1 package com.atlassian.plugin.osgi.factory;
2
3 import com.atlassian.plugin.ModuleDescriptor;
4 import com.atlassian.plugin.ModuleDescriptorFactory;
5 import com.atlassian.plugin.Plugin;
6 import com.atlassian.plugin.PluginParseException;
7 import com.atlassian.plugin.parsers.XmlDescriptorParser;
8
9 import org.apache.commons.lang.Validate;
10 import org.dom4j.Element;
11
12 import java.io.InputStream;
13
14
15
16
17
18
19
20 public class OsgiPluginXmlDescriptorParser extends XmlDescriptorParser
21 {
22
23
24
25
26
27
28 public OsgiPluginXmlDescriptorParser(final InputStream source, final String... applicationKeys) throws PluginParseException
29 {
30 super(source, applicationKeys);
31 Validate.notNull(source, "The descriptor source must not be null");
32 }
33
34
35
36
37
38
39
40
41
42
43 @Override
44 protected ModuleDescriptor<?> createModuleDescriptor(final Plugin plugin, final Element element, final ModuleDescriptorFactory moduleDescriptorFactory) throws PluginParseException
45 {
46 final ModuleDescriptor<?> descriptor = super.createModuleDescriptor(plugin, element, moduleDescriptorFactory);
47 final String key = (descriptor != null ? descriptor.getKey() : element.attributeValue("key"));
48 ((OsgiPlugin) plugin).addModuleDescriptorElement(key, element);
49 return descriptor;
50 }
51 }