#*******************************************************************************
# Copyright (c) 2020 IBM Corporation and others.
#
# 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:
#     Sravan Lakkimsetti - initial API and implementation
#*******************************************************************************

# This file contains environmental properties as key value pairs. Lines starting
# with # are considered comments and no spaces allowed in keys

# CJE build variables
BRANCH="master"
PATCH_OR_BRANCH_LABEL="master"
BUILD_TYPE_NAME="Integration"
BUILD_TYPE="I"
TESTED_BUILD_TYPE="I"
RELEASE_VER="4.19"
STREAM="4.19.0"
STREAMMajor="4"
STREAMMinor="19"
STREAMService="0"
GIT_ROOT="ssh://genie.releng@git.eclipse.org:29418"
AGG_REPO="/platform/eclipse.platform.releng.aggregator.git"
AGG_DIR="gitCache/eclipse.platform.releng.aggregator"
DROP_DIR="siteDir/eclipse/downloads/drops4"
UPDATES_DIR="siteDir/eclipse/updates"
EQUINOX_DROP_DIR="siteDir/equinox/drops"
TMP_DIR="tmp"
DOWNLOAD_HOST="download.eclipse.org"
BUILD_TO_COMPARE_SITE="ftp.osuosl.org/pub/eclipse/eclipse/updates"
LOCAL_REPO="localMavenRepo"

# Base builder parameters
BASEBUILDER_TAG="4.18"
API_PREV_REF_LABEL="4.18"
API_FREEZE_REF_LABEL="4.19RC1"
#API_FREEZE_REF_LABEL=""
# Change to appropriate versions and uncomment when entering API freeze
FREEZE_PARAMS="-DfreezeBaseURL=https://${DOWNLOAD_HOST}/eclipse/downloads/drops4/S-${API_FREEZE_REF_LABEL}-202102241800/eclipse-SDK-${API_FREEZE_REF_LABEL}-win32-x86_64.zip -DfreezeName=Eclipse-SDK-${API_FREEZE_REF_LABEL} -DfreezeFilename=eclipse-SDK-${API_FREEZE_REF_LABEL}-win32-x86_64.zip"
# Otherwise set to a blank space
#FREEZE_PARAMS=" "

PREVIOUS_RELEASE_VER="4.18"
PREVIOUS_RELEASE_REPO_ID="4.18"
PREVIOUS_RELEASE_ID="R-4.18-202012021800"

BUILDTOOLS_REPO="https://download.eclipse.org/eclipse/updates/buildtools/"
WEBTOOLS_REPO="https://download.eclipse.org/webtools/downloads/drops/R3.18.0/R-3.18.0-20200605032700/repositoryunittests/"
BASEBUILDER_DIR="tmp/org.eclipse.releng.basebuilder"
ECLIPSE_RUN_REPO="https://download.eclipse.org/eclipse/updates/4.19-I-builds/"

#Maven parameters
MAVEN_OPTS="-Xmx6G"
JAVA_DOC_TOOL="-Declipse.javadoc=/opt/tools/java/openjdk/jdk-11/latest/bin/javadoc"
