/* * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package com.sun.enterprise.admin.mbeanapi.common; import java.io.File; import java.io.IOException; import com.sun.appserv.management.client.AppserverConnectionSource; import com.sun.appserv.management.client.HandshakeCompletedListenerImpl; import com.sun.appserv.management.client.TLSParams; import com.sun.appserv.management.client.TrustStoreTrustManager; import com.sun.appserv.management.DomainRoot; /** * Creates a connection to a specified DAS instance * @author <a href=mailto:shreedhar.ganapathy@sun.com>Shreedhar Ganapathy</a> * Date: Aug 23, 2004 * @version $Revision: 1.2 $ */ public class AMXConnector { private final DomainRoot mDomainRoot; private final AppserverConnectionSource mAppserverConnectionSource; private HandshakeCompletedListenerImpl mHandshakeCompletedListener; private final static String TRUST_STORE_FILE = "./keystore"; private final static String TRUST_STORE_PASSWORD = "changeme"; // currently it defaults to using rmi transport. public AMXConnector( final String host, final int port, final String user, final String password, final boolean useTLS ) throws IOException { mHandshakeCompletedListener = null; TLSParams tlsParams = null; if ( useTLS ) { tlsParams = createTLSParams( ); } final String info = "host=" + host + ", port=" + port + ", user=" + user + ", password=" + password + ", tls=" + useTLS; info( "Connecting: " + info ); mAppserverConnectionSource = new AppserverConnectionSource( AppserverConnectionSource.PROTOCOL_RMI, host, port, user, password, tlsParams, null); mDomainRoot = mAppserverConnectionSource.getDomainRoot(); info( "Connection established successfully: " + info ); if ( useTLS ) { assert( mHandshakeCompletedListener.getLastEvent() != null ); info( "HandshakeCompletedEvent: " + mHandshakeCompletedListener.getLastEvent() ); } } private TLSParams createTLSParams() { final File trustStore = new File( TRUST_STORE_FILE ); final char[] trustStorePassword = TRUST_STORE_PASSWORD.toCharArray(); mHandshakeCompletedListener = new HandshakeCompletedListenerImpl(); final TrustStoreTrustManager trustMgr = new TrustStoreTrustManager( trustStore, trustStorePassword); trustMgr.setPrompt( true ); final TLSParams tlsParams = new TLSParams( trustMgr, mHandshakeCompletedListener ); return( tlsParams ); } private static void info( final Object o ) { System.out.println( o.toString() ); } public DomainRoot getDomainRoot() { return( mDomainRoot ); } public AppserverConnectionSource getAppserverConnectionSource() { return( mAppserverConnectionSource ); } }