1 package com.atlassian.plugins.rest.module;
2
3 import java.net.URL;
4
5 import com.atlassian.plugin.Plugin;
6 import com.atlassian.plugin.PluginParseException;
7 import com.atlassian.plugin.hostcontainer.HostContainer;
8 import com.atlassian.plugin.module.ModuleFactory;
9 import com.atlassian.plugin.osgi.factory.OsgiPlugin;
10 import com.atlassian.plugin.servlet.ServletModuleManager;
11 import com.atlassian.plugin.servlet.descriptors.ServletFilterModuleDescriptor;
12 import com.atlassian.plugin.util.validation.ValidationPattern;
13 import com.atlassian.plugins.rest.doclet.generators.AtlassianWadlGeneratorConfig;
14
15 import com.google.common.base.Preconditions;
16
17 import javax.servlet.Filter;
18
19 import org.dom4j.Element;
20
21
22
23
24
25 public class RestServletFilterModuleDescriptor extends ServletFilterModuleDescriptor
26 {
27 private final OsgiPlugin osgiPlugin;
28 private final RestDelegatingServletFilter restDelegatingServletFilter;
29 private final RestApiContext restApiContext;
30
31 RestServletFilterModuleDescriptor(OsgiPlugin plugin, ModuleFactory moduleFactory, ServletModuleManager servletModuleManager, RestApiContext restApiContext)
32 {
33 super(Preconditions.checkNotNull(moduleFactory), Preconditions.checkNotNull(servletModuleManager));
34 this.restApiContext = Preconditions.checkNotNull(restApiContext);
35 this.osgiPlugin = Preconditions.checkNotNull(plugin);
36 this.restDelegatingServletFilter = new RestDelegatingServletFilter(plugin, restApiContext);
37 }
38
39 @Override
40 public void init(Plugin plugin, Element element) throws PluginParseException
41 {
42 super.init(plugin, element);
43
44
45 URL resourceDoc = plugin.getResource("resourcedoc.xml");
46
47 if(null != resourceDoc)
48 {
49 getInitParams().put("com.sun.jersey.config.property.WadlGeneratorConfig", AtlassianWadlGeneratorConfig.class.getName());
50 }
51 }
52
53 @Override
54 protected void provideValidationRules(ValidationPattern pattern)
55 {
56 }
57
58 @Override
59 public String getName()
60 {
61 return "Rest Servlet Filter";
62 }
63
64 protected void autowireObject(Object obj)
65 {
66 osgiPlugin.autowire(obj);
67 }
68
69 @Override
70 public Filter getModule()
71 {
72 return restDelegatingServletFilter;
73 }
74
75 public String getBasePath()
76 {
77 return restApiContext.getApiPath();
78 }
79
80 public ApiVersion getVersion()
81 {
82 return restApiContext.getVersion();
83 }
84 }