[JMX-9] Eliminate several uses of reflection in java.jmx Created: 28/Oct/12 Updated: 16/Dec/12 |
|
| Status: | Open |
| Project: | java.jmx |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Minor |
| Reporter: | Andy Fingerhut | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Attachments: |
|
| Patch: | Code |
| Description |
|
There are a fair number of occurrences of reflection in java.jmx that can be eliminated with the addition of suitable type hints. |
| Comments |
| Comment by Andy Fingerhut [ 28/Oct/12 11:56 PM ] |
|
jmx-9-eliminate-reflection-v1.txt dated Oct 28 2012 eliminates most reflection warnings from java.jmx. I would recommend that you check the type hints carefully before applying this, in case I messed some of them up. I am not familiar with javax.management library usage. I simply did a lot of looking at method signatures for methods used in the code in the Java library docs. In particular, I wasn't sure whether connection should be a javax.management.MBeanServer or MBeanServerConnection. MBeanServerConnection is good enough for most of the code, but for the .registerMBean method invocation in register-mbean it needs to be a MBeanServer to avoid reflection. Perhaps it should be MBeanServer everywhere? My main question is whether that would limit the code's generality too much. |
| Comment by Nick Bailey [ 16/Dec/12 5:07 PM ] |
|
Well it shouldn't be MBeanServer everywhere. When using the with-connection macro connection is a RemoteMBeanServerConnection and 'registerMBean' isn't a defined method. I'm thinking perhaps we just change register-mbean to always get the local JMX server rather than using the connection binding. You can't register mbeans with a remote jmx server. |