src/share/jaxws_classes/com/sun/xml/internal/ws/server/MonitorBase.java

changeset 368
0989ad8c0860
parent 286
f50545b5e2f1
child 637
9c07ef4934dd
equal deleted inserted replaced
366:8c0b6bccfe47 368:0989ad8c0860
1 /* 1 /*
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this 7 * published by the Free Software Foundation. Oracle designates this
24 */ 24 */
25 25
26 package com.sun.xml.internal.ws.server; 26 package com.sun.xml.internal.ws.server;
27 27
28 import com.sun.istack.internal.NotNull; 28 import com.sun.istack.internal.NotNull;
29 import com.sun.istack.internal.Nullable;
30 import com.sun.xml.internal.ws.api.EndpointAddress; 29 import com.sun.xml.internal.ws.api.EndpointAddress;
31 import com.sun.xml.internal.ws.api.config.management.policy.ManagedClientAssertion; 30 import com.sun.xml.internal.ws.api.config.management.policy.ManagedClientAssertion;
32 import com.sun.xml.internal.ws.api.config.management.policy.ManagedServiceAssertion; 31 import com.sun.xml.internal.ws.api.config.management.policy.ManagedServiceAssertion;
33 import com.sun.xml.internal.ws.api.config.management.policy.ManagementAssertion.Setting; 32 import com.sun.xml.internal.ws.api.config.management.policy.ManagementAssertion.Setting;
34 import com.sun.xml.internal.ws.api.server.BoundEndpoint;
35 import com.sun.xml.internal.ws.api.server.Container; 33 import com.sun.xml.internal.ws.api.server.Container;
36 import com.sun.xml.internal.ws.api.server.Module;
37 import com.sun.xml.internal.ws.api.server.WSEndpoint; 34 import com.sun.xml.internal.ws.api.server.WSEndpoint;
38 import com.sun.xml.internal.ws.client.Stub; 35 import com.sun.xml.internal.ws.client.Stub;
39 import com.sun.org.glassfish.external.amx.AMXGlassfish; 36 import com.sun.org.glassfish.external.amx.AMXGlassfish;
40 import com.sun.org.glassfish.gmbal.Description; 37 import com.sun.org.glassfish.gmbal.Description;
41 import com.sun.org.glassfish.gmbal.InheritedAttribute; 38 import com.sun.org.glassfish.gmbal.InheritedAttribute;
43 import com.sun.org.glassfish.gmbal.ManagedData; 40 import com.sun.org.glassfish.gmbal.ManagedData;
44 import com.sun.org.glassfish.gmbal.ManagedObjectManager; 41 import com.sun.org.glassfish.gmbal.ManagedObjectManager;
45 import com.sun.org.glassfish.gmbal.ManagedObjectManagerFactory; 42 import com.sun.org.glassfish.gmbal.ManagedObjectManagerFactory;
46 import java.io.IOException; 43 import java.io.IOException;
47 import java.lang.reflect.*; 44 import java.lang.reflect.*;
48 import java.net.URL;
49 import java.util.List;
50 import java.util.logging.Level; 45 import java.util.logging.Level;
51 import java.util.logging.Logger; 46 import java.util.logging.Logger;
52 import javax.management.ObjectName;
53 import javax.xml.namespace.QName;
54 47
55 // BEGIN IMPORTS FOR RewritingMOM 48 // BEGIN IMPORTS FOR RewritingMOM
56 import java.util.ResourceBundle ; 49 import java.util.ResourceBundle ;
57 import java.io.Closeable ;
58 import java.lang.reflect.AnnotatedElement ; 50 import java.lang.reflect.AnnotatedElement ;
59 import java.lang.annotation.Annotation ; 51 import java.lang.annotation.Annotation ;
60 import javax.management.ObjectName ; 52 import javax.management.ObjectName ;
61 import javax.management.MBeanServer ; 53 import javax.management.MBeanServer ;
62 import com.sun.org.glassfish.gmbal.AMXClient; 54 import com.sun.org.glassfish.gmbal.AMXClient;
274 final Object ignored = mom.createRoot(this, name); 266 final Object ignored = mom.createRoot(this, name);
275 if (ignored != null) { 267 if (ignored != null) {
276 ObjectName ignoredName = mom.getObjectName(mom.getRoot()); 268 ObjectName ignoredName = mom.getObjectName(mom.getRoot());
277 // The name is null when the MOM is a NOOP. 269 // The name is null when the MOM is a NOOP.
278 if (ignoredName != null) { 270 if (ignoredName != null) {
279 logger.log(Level.INFO, "Metro monitoring rootname successfully set to: " + ignoredName); 271 logger.log(Level.INFO, "Metro monitoring rootname successfully set to: {0}", ignoredName);
280 } 272 }
281 return mom; 273 return mom;
282 } 274 }
283 try { 275 try {
284 mom.close(); 276 mom.close();
295 logger.log(Level.CONFIG, msg); 287 logger.log(Level.CONFIG, msg);
296 return createMOMLoop(rootName, ++unique); 288 return createMOMLoop(rootName, ++unique);
297 } catch (Throwable t) { 289 } catch (Throwable t) {
298 logger.log(Level.WARNING, "Error while creating monitoring root with name: " + rootName, t); 290 logger.log(Level.WARNING, "Error while creating monitoring root with name: " + rootName, t);
299 return ManagedObjectManagerFactory.createNOOP(); 291 return ManagedObjectManagerFactory.createNOOP();
300 }
301 }
302
303 public static void closeMOM(ManagedObjectManager mom) {
304 try {
305 final ObjectName name = mom.getObjectName(mom.getRoot());
306 // The name is null when the MOM is a NOOP.
307 if (name != null) {
308 logger.log(Level.INFO, "Closing Metro monitoring root: " + name);
309 }
310 mom.close();
311 } catch (java.io.IOException e) {
312 logger.log(Level.WARNING, "Ignoring error when closing Managed Object Manager", e);
313 } 292 }
314 } 293 }
315 294
316 private static Setting clientMonitoring = Setting.NOT_SET; 295 private static Setting clientMonitoring = Setting.NOT_SET;
317 private static Setting endpointMonitoring = Setting.NOT_SET; 296 private static Setting endpointMonitoring = Setting.NOT_SET;
380 class RewritingMOM implements ManagedObjectManager 359 class RewritingMOM implements ManagedObjectManager
381 { 360 {
382 private final ManagedObjectManager mom; 361 private final ManagedObjectManager mom;
383 362
384 private final static String gmbalQuotingCharsRegex = "\n|\\|\"|\\*|\\?|:|=|,"; 363 private final static String gmbalQuotingCharsRegex = "\n|\\|\"|\\*|\\?|:|=|,";
385 private final static String jmxQuotingCharsRegex = ",|=|:|\"";
386 private final static String replacementChar = "-"; 364 private final static String replacementChar = "-";
387 365
388 RewritingMOM(final ManagedObjectManager mom) { this.mom = mom; } 366 RewritingMOM(final ManagedObjectManager mom) { this.mom = mom; }
389 367
390 private String rewrite(final String x) { 368 private String rewrite(final String x) {
391 return x.replaceAll(gmbalQuotingCharsRegex, replacementChar); 369 return x.replaceAll(gmbalQuotingCharsRegex, replacementChar);
392 } 370 }
393 371
394 // The interface 372 // The interface
395 373
396 public void suspendJMXRegistration() { mom.suspendJMXRegistration(); } 374 @Override public void suspendJMXRegistration() { mom.suspendJMXRegistration(); }
397 public void resumeJMXRegistration() { mom.resumeJMXRegistration(); } 375 @Override public void resumeJMXRegistration() { mom.resumeJMXRegistration(); }
398 public GmbalMBean createRoot() { return mom.createRoot(); } 376 @Override public GmbalMBean createRoot() { return mom.createRoot(); }
399 public GmbalMBean createRoot(Object root) { return mom.createRoot(root); } 377 @Override public GmbalMBean createRoot(Object root) { return mom.createRoot(root); }
400 public GmbalMBean createRoot(Object root, String name) { 378 @Override public GmbalMBean createRoot(Object root, String name) {
401 return mom.createRoot(root, rewrite(name)); 379 return mom.createRoot(root, rewrite(name));
402 } 380 }
403 public Object getRoot() { return mom.getRoot(); } 381 @Override public Object getRoot() { return mom.getRoot(); }
404 public GmbalMBean register(Object parent, Object obj, String name) { 382 @Override public GmbalMBean register(Object parent, Object obj, String name) {
405 return mom.register(parent, obj, rewrite(name)); 383 return mom.register(parent, obj, rewrite(name));
406 } 384 }
407 public GmbalMBean register(Object parent, Object obj) { return mom.register(parent, obj);} 385 @Override public GmbalMBean register(Object parent, Object obj) { return mom.register(parent, obj);}
408 public GmbalMBean registerAtRoot(Object obj, String name) { 386 @Override public GmbalMBean registerAtRoot(Object obj, String name) {
409 return mom.registerAtRoot(obj, rewrite(name)); 387 return mom.registerAtRoot(obj, rewrite(name));
410 } 388 }
411 public GmbalMBean registerAtRoot(Object obj) { return mom.registerAtRoot(obj); } 389 @Override public GmbalMBean registerAtRoot(Object obj) { return mom.registerAtRoot(obj); }
412 public void unregister(Object obj) { mom.unregister(obj); } 390 @Override public void unregister(Object obj) { mom.unregister(obj); }
413 public ObjectName getObjectName(Object obj) { return mom.getObjectName(obj); } 391 @Override public ObjectName getObjectName(Object obj) { return mom.getObjectName(obj); }
414 public AMXClient getAMXClient(Object obj) { return mom.getAMXClient(obj); } 392 @Override public AMXClient getAMXClient(Object obj) { return mom.getAMXClient(obj); }
415 public Object getObject(ObjectName oname) { return mom.getObject(oname); } 393 @Override public Object getObject(ObjectName oname) { return mom.getObject(oname); }
416 public void stripPrefix(String... str) { mom.stripPrefix(str); } 394 @Override public void stripPrefix(String... str) { mom.stripPrefix(str); }
417 public void stripPackagePrefix() { mom.stripPackagePrefix(); } 395 @Override public void stripPackagePrefix() { mom.stripPackagePrefix(); }
418 public String getDomain() { return mom.getDomain(); } 396 @Override public String getDomain() { return mom.getDomain(); }
419 public void setMBeanServer(MBeanServer server){mom.setMBeanServer(server); } 397 @Override public void setMBeanServer(MBeanServer server){mom.setMBeanServer(server); }
420 public MBeanServer getMBeanServer() { return mom.getMBeanServer(); } 398 @Override public MBeanServer getMBeanServer() { return mom.getMBeanServer(); }
421 public void setResourceBundle(ResourceBundle rb) { mom.setResourceBundle(rb); } 399 @Override public void setResourceBundle(ResourceBundle rb) { mom.setResourceBundle(rb); }
422 public ResourceBundle getResourceBundle() { return mom.getResourceBundle(); } 400 @Override public ResourceBundle getResourceBundle() { return mom.getResourceBundle(); }
423 public void addAnnotation(AnnotatedElement element, Annotation annotation) { mom.addAnnotation(element, annotation); } 401 @Override public void addAnnotation(AnnotatedElement element, Annotation annotation) { mom.addAnnotation(element, annotation); }
424 public void setRegistrationDebug(RegistrationDebugLevel level) { mom.setRegistrationDebug(level); } 402 @Override public void setRegistrationDebug(RegistrationDebugLevel level) { mom.setRegistrationDebug(level); }
425 public void setRuntimeDebug(boolean flag) { mom.setRuntimeDebug(flag); } 403 @Override public void setRuntimeDebug(boolean flag) { mom.setRuntimeDebug(flag); }
426 public void setTypelibDebug(int level) { mom.setTypelibDebug(level); } 404 @Override public void setTypelibDebug(int level) { mom.setTypelibDebug(level); }
427 public String dumpSkeleton(Object obj) { return mom.dumpSkeleton(obj); } 405 @Override public String dumpSkeleton(Object obj) { return mom.dumpSkeleton(obj); }
428 public void suppressDuplicateRootReport(boolean suppressReport) { mom.suppressDuplicateRootReport(suppressReport); } 406 @Override public void suppressDuplicateRootReport(boolean suppressReport) { mom.suppressDuplicateRootReport(suppressReport); }
429 public void close() throws IOException { mom.close(); } 407 @Override public void close() throws IOException { mom.close(); }
430 public void setJMXRegistrationDebug(boolean x) { mom.setJMXRegistrationDebug(x); } 408 @Override public void setJMXRegistrationDebug(boolean x) { mom.setJMXRegistrationDebug(x); }
431 public boolean isManagedObject(Object x) { return mom.isManagedObject(x); } 409 @Override public boolean isManagedObject(Object x) { return mom.isManagedObject(x); }
432 } 410 }
433 411
434 // End of file. 412 // End of file.

mercurial