builderVersion=v201404282300
#builderVersion=v201310071900
#builderVersion=v201309101959

# old signing method
#builderVersion=v201106202122

#   This parameter is specific to the compiler
#   being used (JDT Compiler, in our case).
#   'showversion' causes the version of JDT Compiler to be
#   printed to the compiler log file.
#compilerArg=-showversion -encoding ISO-8859-1 -warn:-discouraged,serial,raw
#compilerArg=-showversion -encoding ISO-8859-1 -warn:-serial,raw,typeHiding,unchecked
compilerArg=-showversion -encoding ISO-8859-1 -warn:-serial,-raw,-typeHiding,-unchecked,-discouraged

#############################################################

# eclipse.builder.location.name should be empty, if using traditional basebuilder from eclipse releng (e.g. our patch builds still do)
eclipse.builder.location.name=eclipse
# These last two are use in other scripts, the eclipse.builder.location.name above is not (at least, should not be). 
eclipse.builder.base.install.dir=${env.BASE_BUILDERS}/${projectname}
pde.builder.path=${eclipse.builder.base.install.dir}/${eclipse.builder.location.name}

# uncomment if its desired to 'force' fetch of eclipse builder
# (if not already defined from elsewhere)
eclipse.builder.fetch=true

buildDirectory=${env.PROJECT_PROJECTS}/${projectname}/workdir

# new in 3.4 based build, have the source files for sdk builds bundled as individual jars.
individualSourceBundles=true

# dropins folder is either left undefined, or /eclipse/dropins (no trailing spaces)
dropinsFolder=/eclipse/dropins

# should be set for 3.1+ build. should be unset (not exist, or commented out) for earlier builds
doCreateFprojZips=yes


# arguments for relent tests (that vary by stream)
# omit qualifierArgValue to not flag a unit test error for "warnings"
qualifierArgValue=-countQualifierIncreaseOnlyAsError
#qualifierArgValue=
referenceIDArgValue=R-3.5.2-20140217150812
referenceURLArgValue=http://download.eclipse.org/webtools/downloads/drops/R3.5.2/R-3.5.2-20140217150812/versioningReference_R-3.5.2-20140217150812.xml

# omit to not test
testToReferenceArgValue=-testToReference
# omit to not list
listToReferenceFileArgValue=-listToReferenceFile

testFeatureIUs=org.eclipse.jpt.common.tests.feature.feature.group,org.eclipse.jpt.jpa.tests.feature.feature.group,org.eclipse.jpt.jpa.eclipselink.tests.feature.feature.group,org.eclipse.jpt.jaxb.tests.feature.feature.group,org.eclipse.jpt.jaxb.eclipselink.tests.feature.feature.group,org.eclipse.jpt.jpadiagrameditor.tests.feature.feature.group,org.eclipse.jst.enterprise_tests.feature.feature.group,org.eclipse.jst.jsf.tests.feature.feature.group,org.eclipse.jst.server_adapters.ext_tests.feature.feature.group,org.eclipse.jst.server_tests.feature.feature.group,org.eclipse.jst.web_tests.feature.feature.group,org.eclipse.jst.ws.cxf_tests.feature.feature.group,org.eclipse.jst.ws.jaxws.dom_tests.feature.feature.group,org.eclipse.jst.ws.jaxws_tests.feature.feature.group,org.eclipse.wst.common_tests.feature.feature.group,org.eclipse.wst.jsdt_tests.feature.feature.group,org.eclipse.wst.server_tests.feature.feature.group,org.eclipse.wst.web_tests.feature.feature.group,org.eclipse.wst.ws_tests.feature.feature.group,org.eclipse.wst.xml_tests.feature.feature.group,org.eclipse.wst.xsl_tests.feature.feature.group,org.eclipse.wtp.releng.tests.feature.feature.group
wtpFeatureIUs=org.eclipse.wst.common.fproj.sdk.feature.group,org.eclipse.wst.jsdt_sdk.feature.feature.group,org.eclipse.wst.xml_sdk.feature.feature.group,org.eclipse.wst.web_sdk.feature.feature.group,org.eclipse.wst.xsl_sdk.feature.feature.group,org.eclipse.wst.server_adapters.sdk.feature.feature.group,org.eclipse.jst.common.fproj.enablement.jdt.sdk.feature.group,org.eclipse.jst.server_sdk.feature.feature.group,org.eclipse.jst.web_sdk.feature.feature.group,org.eclipse.jst.enterprise_sdk.feature.feature.group,org.eclipse.jst.server_adapters.sdk.feature.feature.group,org.eclipse.jst.server_adapters.ext.sdk.feature.feature.group,org.eclipse.jst.ws.axis2tools_sdk.feature.feature.group,org.eclipse.jst.ws.jaxws_sdk.feature.feature.group,org.eclipse.jst.ws.cxf_sdk.feature.feature.group,org.eclipse.jst.ws.jaxws.dom_sdk.feature.feature.group,org.eclipse.jst.jsf.apache.trinidad.tagsupport_sdk.feature.feature.group,org.eclipse.jst.webpageeditor_sdk.feature.feature.group,org.eclipse.jsf_sdk.feature.feature.group,org.eclipse.jpt.common_sdk.feature.feature.group,org.eclipse.jpt.common.eclipselink_sdk.feature.feature.group,org.eclipse.jpt.jpa_sdk.feature.feature.group,org.eclipse.jpt.jpa.eclipselink_sdk.feature.feature.group,org.eclipse.jpt.jaxb_sdk.feature.feature.group,org.eclipse.jpt.jaxb.eclipselink_sdk.feature.feature.group,org.eclipse.jpt.dbws.eclipselink_sdk.feature.feature.group,org.eclipse.jpt.jpadiagrameditor_sdk.feature.feature.group

jsdtTestFeatureIUs=org.eclipse.wst.jsdt_tests.feature.feature.group
jsdtFeatureIUs=org.eclipse.wst.jsdt.feature.feature.group,org.eclipse.wst.jsdt.feature.source.feature.group,org.eclipse.wst.jsdt_sdk.feature.feature.group

baseComparatorRepoDir=${env.BUILD_HOME}/integration

#createNoopZips=true

# uncomment to restore batch build customization of access rules (for fewer "discouraged access" warnings)
#customizeAccessRules=true