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