41 package com.sun.jmx.examples.scandir;
46 import java.util.LinkedList;
47 import java.util.concurrent.BlockingQueue;
48 import junit.framework.*;
52 import java.util.EnumSet;
53 import java.util.concurrent.LinkedBlockingQueue;
54 import java.util.concurrent.TimeUnit;
55 import javax.management.AttributeChangeNotification;
56 import javax.management.Notification;
57 import javax.management.NotificationEmitter;
58 import javax.management.NotificationFilter;
59 import javax.management.NotificationListener;
64 import java.lang.management.ManagementFactory;
65 import java.util.List;
78 protected void setUp() throws Exception {
93 EnumSet<ScanState> after,
96 System.out.println(
"doTestOperation: "+testName);
98 final LinkedBlockingQueue<Notification> queue =
99 new LinkedBlockingQueue<Notification>();
101 NotificationListener listener =
new NotificationListener() {
102 public void handleNotification(Notification notification,
105 queue.put(notification);
106 }
catch (Exception x) {
107 System.err.println(
"Failed to queue notif: "+x);
111 NotificationFilter filter =
null;
112 Object handback =
null;
114 final NotificationEmitter emitter = (NotificationEmitter)
116 emitter.addNotificationListener(listener, filter, handback);
117 before = proxy.getState();
120 final Notification notification =
121 queue.poll(3000,TimeUnit.MILLISECONDS);
122 assertEquals(AttributeChangeNotification.ATTRIBUTE_CHANGE,
123 notification.getType());
124 assertEquals(AttributeChangeNotification.class,
125 notification.getClass());
126 assertEquals(getObjectName(proxy),
127 notification.getSource());
128 AttributeChangeNotification acn =
129 (AttributeChangeNotification)notification;
130 assertEquals(
"State",acn.getAttributeName());
131 assertEquals(
ScanState.class.getName(),acn.getAttributeType());
132 assertEquals(before,
ScanState.valueOf((String)acn.getOldValue()));
133 assertContained(after,
ScanState.valueOf((String)acn.getNewValue()));
134 emitter.removeNotificationListener(listener,filter,handback);
138 }
catch (Exception x) {
139 System.err.println(
"Failed to cleanup: "+x);
149 System.out.println(
"getRootDirectory");
153 final String tmpdir = System.getProperty(
"java.io.tmpdir");
155 System.err.println(
"Configuration MXBean is: " + config);
158 final String root = bean.getRootDirectory();
160 throw new NullPointerException(
"bean.getRootDirectory()");
162 throw new NullPointerException(
"config.getConfig().getScan(\"test\").getRootDirectory()");
166 final File tmpFile =
new File(tmpdir);
168 assertEquals(tmpFile,rootFile);
169 }
catch (Exception x) {
174 ManagementFactory.getPlatformMBeanServer().
176 }
catch (Exception x) {
177 System.err.println(
"Failed to cleanup: "+x);
187 System.out.println(
"scan");
191 final String tmpdir = System.getProperty(
"java.io.tmpdir");
201 public void call()
throws Exception {
202 final BlockingQueue<Notification> queue =
203 new LinkedBlockingQueue<Notification>();
204 final NotificationListener listener =
new NotificationListener() {
205 public void handleNotification(Notification notification,
208 queue.put(notification);
209 }
catch (Exception e) {
216 final Notification n = queue.poll(10,TimeUnit.SECONDS);
217 if (n ==
null)
break;
218 final AttributeChangeNotification at =
219 (AttributeChangeNotification) n;
220 if (RUNNING ==
ScanState.valueOf((String)at.getNewValue()))
223 System.err.println(
"New state: "+(String)at.getNewValue()
227 assertContained(EnumSet.of(SCHEDULED,RUNNING,COMPLETED),
230 public void cancel()
throws Exception {
235 EnumSet.of(RUNNING,SCHEDULED,COMPLETED),
237 }
catch (Exception x) {
243 }
catch (Exception x) {
244 System.err.println(
"Failed to stop: "+x);
247 ManagementFactory.getPlatformMBeanServer().
249 }
catch (Exception x) {
250 System.err.println(
"Failed to cleanup: "+x);
259 System.out.println(
"getState");
263 bean.setRootDirectory(System.getProperty(
"java.io.tmpdir"));
270 assertEquals(STOPPED,
result);
273 assertEquals(COMPLETED,
result);
280 System.out.println(
"addNotificationListener");
284 public void call()
throws Exception {
287 public void cancel()
throws Exception {
292 final String tmpdir = System.getProperty(
"java.io.tmpdir");
300 EnumSet.of(RUNNING,SCHEDULED),
304 ManagementFactory.getPlatformMBeanServer().
306 }
catch (Exception x) {
307 System.err.println(
"Failed to cleanup: "+x);