/*******************************************************************************
* Copyright (c) 2006 Jeff Mesnil
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package net.jmesnil.jmx.resources;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.management.MBeanServerConnection;
import javax.management.remote.JMXConnector;
import javax.management.remote.JMXConnectorFactory;
import javax.management.remote.JMXServiceURL;
import org.eclipse.core.runtime.Assert;
/**
* @author Mitko Kolev (i000174)
*/
public class DefaultMBeanServerConnectionFactory implements MBeanServerConnectionFactory {
/* (non-Javadoc)
* @see net.jmesnil.jmx.resources.ConnectionFactory#connect(net.jmesnil.jmx.resources.MBeanConnectionDescriptor)
*/
@SuppressWarnings("unchecked")
public MBeanServerConnection createMBeanServerConnection (
MBeanServerConnectionDescriptor descriptor) throws IOException{
Assert.isNotNull(descriptor);
String username = descriptor.getUserName();
Map env = new HashMap();
if (username != null && username.length() > 0) {
String[] credentials = new String[] { username, descriptor.getPassword() };
env.put(JMXConnector.CREDENTIALS, credentials);
}
JMXServiceURL jmxurl = new JMXServiceURL(descriptor.getURL());
JMXConnector connector = JMXConnectorFactory.connect(jmxurl, env);
return connector.getMBeanServerConnection();
}
}