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; |
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. |