[ 
https://issues.apache.org/jira/browse/SYNAPSE-526?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Hubert updated SYNAPSE-526:
--------------------------------

    Component/s: Core
    Description: 
Hi,

currently it is only possible to use Java's "out-of-the-Box JMX solution" 
configured via system properties and/or property files which is sufficient for 
many cases.
Anyway there are the following advantages of using the according Remote API to 
create, configure and deploy the management agent (server connector) 
programatically:
1) easier configuration for average users
2) exporting RMI server's remote objects over a certain port to allow passage 
through a firewall (very important for enterprise deployments), possibility to 
configure a specific network interface (also sometimes important for enterprise 
deployments in multi-homed systems 
3) possibility to use a custom JMXAuthenticator to handle own credential 
configuration (including use of Secret-API to encrypt passwords in plain text 
files if required/prefered over setting os permissions accordingly.

  was:
Hi,

currently Synapse does not create a JMX server connector to enable the user to 
make use of the existing MBeans via JConsole or any other JMX-compliant 
management solution. The attached patch introduces a small JMXAdapter class to 
create an RMI registry using a specified JNDI port in synapse.properties 
(synapse.jmx.jndiPort). Only if this port is specified it will create the 
registry and start the server connector. If the user additionally specifies a 
fixed RMI port in synapse.properties (synapse.jmx.rmiPort) instead of using a 
dynamic RMI port Synapse will use the specified port thus allowing a firewalled 
setup (you have to open both ports in your firewall).
The Javadoc of the class explains the connect syntax:
service:jmx:rmi:///jndi/rmi://<hostname>:<jndiPort>/synapse or 
service:jmx:rmi://<hostname>:<rmiPort>/jndi/rmi://<hostname>:<jndiPort>/synapse

This patch shall just demonstrate the basic idea. I'm of course willing to 
contribute further work on this (including documentation). The best place in 
the startup and shutdown phase of Synapse should be discussed. I'm going to 
start a separate discussion on the order of actions in the Synapse startup 
phase anyway.

        Summary: Enhanced JMX-support for Synapse  (was: Add server connector 
to make use of existing MBeans)

Hi,

according to the feedback received so far I tried to improve the provided patch 
to cover the following concerns:
- start server connector with default configuration using automatic JNDI port 
detection (as suggested by Asankha)
- possibility to overwrite JNDI port with any fixed port
- possbility to also set RMI port (to support firewalled environments)
- start JMX server connector early, but report connect details at the end of 
startup
- enhancement of security implementation to support JBoss AS encryption 
  (possibility to use same encrypted passwords for datasource or JMX passwords 
or any other passwords as in JBoss)
- integration of security API to encrypt JMX passwords
- providing synapse.properties with default configuration and examples for 
configuration

The patch is rather comprehensive and although I tried to avoid touching too 
many files, I still added and changed quite a lot of code with this new patch. 
So I'll ask all developers to do some review.
Regarding the secret changes I would very much appreciate if Indika could have 
a glance on my changes, but of course any other developer is also invited. ;-)
Once those changes are committed I would like to work on unit test coverage 
improvements in this area as there is currently almost nothing.

Thanks a lot in advance!






> Enhanced JMX-support for Synapse
> --------------------------------
>
>                 Key: SYNAPSE-526
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-526
>             Project: Synapse
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 1.2
>            Reporter: Eric Hubert
>            Priority: Minor
>             Fix For: 1.3
>
>         Attachments: jmx_and_security.patch
>
>
> Hi,
> currently it is only possible to use Java's "out-of-the-Box JMX solution" 
> configured via system properties and/or property files which is sufficient 
> for many cases.
> Anyway there are the following advantages of using the according Remote API 
> to create, configure and deploy the management agent (server connector) 
> programatically:
> 1) easier configuration for average users
> 2) exporting RMI server's remote objects over a certain port to allow passage 
> through a firewall (very important for enterprise deployments), possibility 
> to configure a specific network interface (also sometimes important for 
> enterprise deployments in multi-homed systems 
> 3) possibility to use a custom JMXAuthenticator to handle own credential 
> configuration (including use of Secret-API to encrypt passwords in plain text 
> files if required/prefered over setting os permissions accordingly.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to