1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.river.tool.envcheck.plugins;
19
20 import org.apache.river.tool.envcheck.AbstractPlugin;
21 import org.apache.river.tool.envcheck.EnvCheck;
22 import org.apache.river.tool.envcheck.Reporter;
23 import org.apache.river.tool.envcheck.Reporter.Message;
24 import org.apache.river.tool.envcheck.SubVMTask;
25 import java.rmi.activation.ActivationGroup;
26 import java.security.AccessControlException;
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 public class CheckActivationSystem extends AbstractPlugin {
43
44
45 private EnvCheck envCheck;
46
47
48 private static boolean doCheck = false;
49
50
51
52
53
54
55
56
57
58 public boolean isPluginOption(String opt) {
59 if (opt.equals("-activation")) {
60 doCheck = true;
61 return true;
62 }
63 return false;
64 }
65
66
67
68
69
70
71 public void run(EnvCheck envCheck) {
72 this.envCheck = envCheck;
73 if (doCheck || envCheck.getGroupDescriptor() != null) {
74 checkAvailability();
75 }
76 }
77
78
79
80
81 private void checkAvailability() {
82 Message message;
83 String taskName = taskName("CheckActivationTask");
84
85 Object launchReturn = envCheck.launch(null,
86 envCheck.getGroupDescriptor(),
87 taskName);
88 if (launchReturn == null) {
89 message = new Message(Reporter.INFO,
90 getString("running"),
91 getString("explanationString"));
92 } else {
93 Throwable ex = (Throwable) launchReturn;
94 Throwable t = ex.getCause();
95 if (t == null) {
96 t = ex;
97 }
98 if (t instanceof java.rmi.ConnectException) {
99 message = new Message(Reporter.WARNING,
100 getString("notRunning"),
101 t,
102 getString("explanationString"));
103 } else if (t instanceof AccessControlException) {
104 message = new Message(Reporter.WARNING,
105 getString("nopermission"),
106 t,
107 getString("noPermExplanationString"));
108 } else {
109 message = new Message(Reporter.WARNING,
110 getString("unexpectedException"),
111 ex,
112 getString("unexpectedExplanationString"));
113 }
114 }
115 Reporter.print(message);
116 }
117
118
119 public static class CheckActivationTask implements SubVMTask {
120
121 public Object run(String[] args) {
122
123
124 try {
125 ActivationGroup.getSystem();
126 return null;
127 } catch (Throwable e) {
128 return e;
129 }
130 }
131 }
132 }