01: // THIS SOFTWARE IS PROVIDED BY SOFTARIS PTY.LTD. AND OTHER METABOSS
02: // CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
03: // BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
04: // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTARIS PTY.LTD.
05: // OR OTHER METABOSS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
06: // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
07: // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
08: // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
09: // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
10: // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
11: // EVEN IF SOFTARIS PTY.LTD. OR OTHER METABOSS CONTRIBUTORS ARE ADVISED OF THE
12: // POSSIBILITY OF SUCH DAMAGE.
13: //
14: // Copyright 2000-2005 © Softaris Pty.Ltd. All Rights Reserved.
15: package com.metaboss.enterprise.spi.inprocessimpl;
16:
17: import java.util.List;
18:
19: import javax.management.JMException;
20: import javax.management.MBeanServer;
21: import javax.management.MBeanServerFactory;
22:
23: import org.apache.commons.logging.Log;
24: import org.apache.commons.logging.LogFactory;
25:
26: import com.metaboss.enterprise.spi.JMXImplementationProvider;
27:
28: /** Interface to the JDBC connection provider */
29: public class JMXImplementationProviderImpl implements
30: JMXImplementationProvider {
31: private static final Log sLogger = LogFactory
32: .getLog(JMXImplementationProviderImpl.class);
33:
34: /** Method used to obtain JMX MBeanServer */
35: public MBeanServer getMBeanServer() throws JMException {
36: // The simplest implementation. It is documented to work for Tomcat
37: List servers = MBeanServerFactory.findMBeanServer(null);
38: if (servers != null && servers.size() > 0)
39: return (MBeanServer) servers.get(0);
40: sLogger
41: .warn("Unable to find any MBeanServers in the MBeanServerFactory. JMX Agent does not appear to be initialised properly. This may well be expected behaviour for simple deployments.");
42: return null;
43: }
44: }
|