1 package com.atlassian.plugins.rest.module;
2
3 import com.atlassian.plugin.hostcontainer.HostContainer;
4 import com.atlassian.plugin.module.ModuleFactory;
5 import com.atlassian.plugin.osgi.factory.OsgiPlugin;
6 import com.atlassian.plugin.servlet.ServletModuleManager;
7 import com.atlassian.plugin.servlet.descriptors.ServletFilterModuleDescriptor;
8 import com.atlassian.plugin.util.validation.ValidationPattern;
9 import com.google.common.base.Preconditions;
10
11 import javax.servlet.Filter;
12
13
14
15
16
17 public class RestServletFilterModuleDescriptor extends ServletFilterModuleDescriptor
18 {
19 private final OsgiPlugin plugin;
20 private final RestDelegatingServletFilter restDelegatingServletFilter;
21 private final RestApiContext restApiContext;
22
23 RestServletFilterModuleDescriptor(OsgiPlugin plugin, ModuleFactory moduleFactory, ServletModuleManager servletModuleManager, RestApiContext restApiContext)
24 {
25 super(Preconditions.checkNotNull(moduleFactory), Preconditions.checkNotNull(servletModuleManager));
26 this.restApiContext = Preconditions.checkNotNull(restApiContext);
27 this.plugin = Preconditions.checkNotNull(plugin);
28 this.restDelegatingServletFilter = new RestDelegatingServletFilter(plugin, restApiContext);
29 }
30
31 @Override
32 protected void provideValidationRules(ValidationPattern pattern)
33 {
34 }
35
36 @Override
37 public String getName()
38 {
39 return "Rest Servlet Filter";
40 }
41
42 protected void autowireObject(Object obj)
43 {
44 plugin.autowire(obj);
45 }
46
47 @Override
48 public Filter getModule()
49 {
50 return restDelegatingServletFilter;
51 }
52
53 public String getBasePath()
54 {
55 return restApiContext.getApiPath();
56 }
57
58 public ApiVersion getVersion()
59 {
60 return restApiContext.getVersion();
61 }
62 }