-
Type: Bug
-
Status: Resolved
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 5.2 RC1
-
Component/s: None
For the management interface we should be compatible with JMX because
this is the builtin java management standard and we must be able to
integrate with existing management tools and interfaces like the ones
in JBoss and glassfish.
Of course we will make a high level service on top of this - to be
able to customize the management interface registration.
So what I propose: (I've already discussed this wiht Stefan L. about
this - which will start a first implementation since we need it for AFP)
1. The java MBean server will be used to keep the service management
registry.
So all management interfaces will be visible as MBeans too. This
allows integration in existing java management systems.
2. We provide a runtime service - I propose the name ServiceManagement
which will register management interfaces in Nuxeo.
We will support several ways to define management interfaces:
1. The standard MBean mechanism - this means by creating an interface
MyServiceMBean will automatically declare a management interface for
the MyService service.
2. Registration through extesion points:
An extension point named management or mbean or etc. will be
provided. This extension point is taking 3 arguments:
- name = the MBean name can be a JMX name like nx:name=my_service or
a simple name like "my_service" that will be automatically expanded to
a valid JMX name by using the nx: prefix and the name attribute... - class = the service class for which we specify a management interface
- interface = the management interface (OPTIONAL) - by
default wil be {CLASS_NAME}MBean
3. Using annotations - this will be implemented later - but for
simplicity it is useful to provide a way to control management
interfaces throygh annotations
Example:
@Management(name="my_service", iface=MyManagenentInterface)
class MyService {
}
We will provide then 2 ways to expose managenent interfaces:
- one by REST through webengine
- one by JMX remoting that is provided by jboss or gralssfish through
nxshell