###############################################################################
# Copyright (c) 2000, 2006 IBM Corporation and others.
# 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
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
platform=macosx.cocoa.x86_5.0
jvm=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Commands/java
# currently this variable is "hard coded" to work on Hudson.
# not required if no proxies to use or bypass
# TODO: make more sensitive to env. setttings in future so can
# support tests on non Ecipse Infrastructure
# If this property is defined, and file exists, the Eclipse infrastructure
# will copy these "preferences" to
# ${executionDir}/test-eclipse/eclipse/configuration/.settings/
# after the test instance of eclipse is installed.
# It is assumed the file itself gets copied to "execution directory" by
# runTests2.xml approx. line 488
org.eclipse.core.net.prefs=org.eclipse.core.net.prefs
