1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.struts2.rest;
23
24 import org.apache.struts2.config.ClasspathPackageProvider;
25
26 import com.opensymphony.xwork2.inject.Inject;
27 import com.opensymphony.xwork2.util.ResolverUtil.ClassTest;
28
29 /***
30 * Checks for actions ending in Controller indicating a Rest controller
31 */
32 public class ControllerClasspathPackageProvider extends ClasspathPackageProvider {
33
34 /***
35 * A setting to disable action scanning.
36 */
37 protected static final String DISABLE_REST_CONTROLLER_SCANNING = "struts.configuration.rest.disableControllerScanning";
38
39 @Override
40 protected ClassTest createActionClassTest() {
41 return new ClassTest() {
42
43 public boolean matches(Class type) {
44 return (type.getSimpleName().endsWith("Controller"));
45 }
46 };
47 }
48
49 @Override
50 protected String getClassSuffix() {
51 return "Controller";
52 }
53
54 /***
55 * Ignore setting to disable action scanning from the codebehind plugin.
56 *
57 * @param disableActionScanning True to disable
58 */
59 @Override
60 @Inject(value=DISABLE_ACTION_SCANNING, required=false)
61 public void setDisableActionScanning(String disableActionScanning) {
62
63 }
64
65 /***
66 * Disables controller scanning.
67 *
68 * @param disableActionScanning True to disable
69 */
70 @Inject(value=DISABLE_REST_CONTROLLER_SCANNING, required=false)
71 public void setDisableRestControllerScanning(String disableActionScanning) {
72 super.setDisableActionScanning(disableActionScanning);
73 }
74
75 }