View Javadoc
1   package com.atlassian.plugin.servlet.descriptors;
2   
3   import com.atlassian.plugin.Plugin;
4   import com.atlassian.plugin.PluginParseException;
5   import com.atlassian.plugin.descriptors.AbstractModuleDescriptor;
6   import com.atlassian.plugin.descriptors.CannotDisable;
7   import com.atlassian.plugin.module.ModuleFactory;
8   import com.atlassian.plugin.util.validation.ValidationPattern;
9   import org.dom4j.Element;
10  
11  import static com.atlassian.plugin.util.validation.ValidationPattern.test;
12  
13  /**
14   * Allows plugin developers to specify init parameters they would like added to the plugin local
15   * {@link javax.servlet.ServletContext}.
16   *
17   * @since 2.1.0
18   */
19  @CannotDisable
20  public class ServletContextParamModuleDescriptor extends AbstractModuleDescriptor<Void> {
21      private String paramName;
22      private String paramValue;
23  
24      public ServletContextParamModuleDescriptor() {
25          super(ModuleFactory.LEGACY_MODULE_FACTORY);
26      }
27  
28      @Override
29      public void init(Plugin plugin, Element element) throws PluginParseException {
30          super.init(plugin, element);
31  
32          paramName = element.elementTextTrim("param-name");
33          paramValue = element.elementTextTrim("param-value");
34      }
35  
36      @Override
37      protected void provideValidationRules(ValidationPattern pattern) {
38          super.provideValidationRules(pattern);
39          pattern.
40                  rule(
41                          test("param-name").withError("Parameter name is required"),
42                          test("param-value").withError("Parameter value is required"));
43      }
44  
45      public String getParamName() {
46          return paramName;
47      }
48  
49      public String getParamValue() {
50          return paramValue;
51      }
52  
53      @Override
54      public Void getModule() {
55          return null;
56      }
57  }