##################################################################################
# Copyright (c) 2007, 2008 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
##################################################################################

# Test ".ee" file for testing installed JRE definition

-Dee.executable=jrew.txt
-Dee.executable.console=jre.txt

-Dee.bootclasspath=..\lib\classes.txt;..\lib\others.txt
-Dee.src=..\lib\source\source.txt
-Dee.src.map=..\lib\endorsed\*.jar=..\lib\source\*.txt;..\lib\ext\ext?*.jar=..\lib\source\extra?-src.txt;..\lib\additional\*.???=..\lib\source\source*source.???
-Dee.javadoc=http://a.javadoc.location
-Dee.additional.dirs=..\lib\additional
-Dee.ext.dirs=..\lib\ext;..\lib\opt-ext
-Dee.endorsed.dirs=..\lib\endorsed

# all args should get passed through to command line
-XspecialArg:123

# tests an empty property
-Dee.empty=

# test new index attribute
-Dee.index=http://a.index.location

-Dee.language.level=1.4
-Dee.class.library.level=CDC-1.1/Foundation-1.1
-Dee.id=CDC-1.1/Foundation-1.1
-Dee.name=Eclipse JDT Test JRE Definition
-Dee.description=Foundation Specification v1.1
-Dee.copyright=(c) Copyright IBM Corp. 2007  All Rights Reserved
-Djava.home=..

# all args should get passed through to command line
-XspecialArg2=456