Class MBeanExposer
- java.lang.Object
-
- org.glassfish.jersey.server.spi.AbstractContainerLifecycleListener
-
- org.glassfish.jersey.server.internal.monitoring.jmx.MBeanExposer
-
- All Implemented Interfaces:
MonitoringStatisticsListener
,ContainerLifecycleListener
public class MBeanExposer extends AbstractContainerLifecycleListener implements MonitoringStatisticsListener
The main exposer class of Jersey JMX MBeans. The class creates MBeans and contains methods that register and unregister MBeans.
-
-
Field Summary
Fields Modifier and Type Field Description private javax.inject.Provider<ApplicationInfo>
applicationInfoProvider
private java.util.concurrent.atomic.AtomicBoolean
destroyed
private java.lang.String
domain
Name of domain that will prefix mbeansObjectName
.private ExceptionMapperMXBeanImpl
exceptionMapperMXBean
private java.lang.Object
LOCK
private static java.util.logging.Logger
LOGGER
(package private) static java.lang.String
PROPERTY_EXECUTION_TIMES_METHODS
(package private) static java.lang.String
PROPERTY_EXECUTION_TIMES_REQUESTS
private static java.lang.String
PROPERTY_SUBTYPE_GLOBAL
private ExecutionStatisticsDynamicBean
requestMBean
private ResourcesMBeanGroup
resourceClassStatsGroup
private ResponseMXBeanImpl
responseMXBean
private ResourcesMBeanGroup
uriStatsGroup
-
Constructor Summary
Constructors Constructor Description MBeanExposer()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) static java.lang.String
convertToObjectName(java.lang.String name, boolean isUri)
Convert the resource name to a validobject name
.void
onShutdown(Container container)
Invoke at thecontainer
shut-down.void
onStatistics(MonitoringStatistics statistics)
The method is called when new statistics are available and statistics are passed as an argument.(package private) void
registerMBean(java.lang.Object mbean, java.lang.String namePostfix)
Register the MBean with the given postfix name.private java.util.Map<java.lang.String,ResourceStatistics>
transformToStringKeys(java.util.Map<java.lang.Class<?>,ResourceStatistics> stats)
private void
unregisterJerseyMBeans(boolean destroy)
-
Methods inherited from class org.glassfish.jersey.server.spi.AbstractContainerLifecycleListener
onReload, onStartup
-
-
-
-
Field Detail
-
LOGGER
private static final java.util.logging.Logger LOGGER
-
PROPERTY_SUBTYPE_GLOBAL
private static final java.lang.String PROPERTY_SUBTYPE_GLOBAL
- See Also:
- Constant Field Values
-
PROPERTY_EXECUTION_TIMES_REQUESTS
static final java.lang.String PROPERTY_EXECUTION_TIMES_REQUESTS
- See Also:
- Constant Field Values
-
PROPERTY_EXECUTION_TIMES_METHODS
static final java.lang.String PROPERTY_EXECUTION_TIMES_METHODS
- See Also:
- Constant Field Values
-
requestMBean
private volatile ExecutionStatisticsDynamicBean requestMBean
-
responseMXBean
private volatile ResponseMXBeanImpl responseMXBean
-
uriStatsGroup
private volatile ResourcesMBeanGroup uriStatsGroup
-
resourceClassStatsGroup
private volatile ResourcesMBeanGroup resourceClassStatsGroup
-
exceptionMapperMXBean
private volatile ExceptionMapperMXBeanImpl exceptionMapperMXBean
-
destroyed
private final java.util.concurrent.atomic.AtomicBoolean destroyed
-
LOCK
private final java.lang.Object LOCK
-
domain
private volatile java.lang.String domain
Name of domain that will prefix mbeansObjectName
. The code uses this field also for synchronization purposes. If domain isnull
, no bean has been registered yet.
-
applicationInfoProvider
@Inject private javax.inject.Provider<ApplicationInfo> applicationInfoProvider
-
-
Method Detail
-
transformToStringKeys
private java.util.Map<java.lang.String,ResourceStatistics> transformToStringKeys(java.util.Map<java.lang.Class<?>,ResourceStatistics> stats)
-
convertToObjectName
static java.lang.String convertToObjectName(java.lang.String name, boolean isUri)
Convert the resource name to a validobject name
.- Parameters:
name
- Resource name.isUri
-true
if the resource name is an URI.- Returns:
- Converted valid object name.
-
registerMBean
void registerMBean(java.lang.Object mbean, java.lang.String namePostfix)
Register the MBean with the given postfix name.- Parameters:
mbean
- MBean to be registered.namePostfix
- Postfix of the object name in the pattern ",[property]=[value]...". Example ",subType=Requests,details=Execution"
-
unregisterJerseyMBeans
private void unregisterJerseyMBeans(boolean destroy)
-
onStatistics
public void onStatistics(MonitoringStatistics statistics)
Description copied from interface:MonitoringStatisticsListener
The method is called when new statistics are available and statistics are passed as an argument.- Specified by:
onStatistics
in interfaceMonitoringStatisticsListener
- Parameters:
statistics
- Newly calculated monitoring statistics.
-
onShutdown
public void onShutdown(Container container)
Description copied from interface:ContainerLifecycleListener
Invoke at thecontainer
shut-down. This method is invoked even before the application is being stopped as a part of reload.- Specified by:
onShutdown
in interfaceContainerLifecycleListener
- Overrides:
onShutdown
in classAbstractContainerLifecycleListener
- Parameters:
container
- container that has been shut down.
-
-