###############################################################################
# Copyright (c) 2008 IBM Corporation and others. All rights reserved.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
#
# SPDX-License-Identifier: EPL-2.0
# 
# Contributors:
# IBM Corporation - initial API and implementation
###############################################################################

# name/label for this windows connection
name = test_windows

# profile name this connection should be created for
profile_name = junit_test_profile

# Windows system ID
system_type_id = org.eclipse.rse.systemtype.windows

# Address of windows connection
address = unknown

# userid to connect to windows connection
#userid =  

# password to connect to windows connection
#password = 

# daemon port used for connecting to this windows connection
#daemon_port =  