Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

XSLT Project/Releng/AthenaBuild

Prerequests

XSL Specific

One point of continuous integration is that a build should be simple to setup and can be run by anybody, anytime, anywhere. The Athena component within the Dash project allows for a common build script to be used across projects. It leverages the power of PDE Build, but with a much simplier interface.

Current production versions of the XSL Tools component of the WTP Source Editing subproject use the WTP Build infrastructure. Unfortunately at the time of this writing, that build is only reproducible on the server in which it is running.

The sections that follow show how to setup an Athena Build for the wst.xsl component and files.

Setup

There are some differences between the way the current WTP Build works and Athena. There are minor changes that needed to occur for the existing Test Feature and Map files. To get a local build running follow these steps.

Important.png
Pre-reqs
Make sure the Pre-reqs are first done. You need to have a copy of Athena's build files checked out to your workspace.


Map Files

WTP Source Editing stores it's Maps files in webtools.maps/releng.sourceediting in the /cvsroot/webtools repository at dev.eclipse.org. We have created the xsl-test.map file. This contains the location of the Eclipse Test Framework that will be needed by the build for running unit tests.

See: Getting Started FAQ - Tests

Build Properties Settings

The build.properties file controls most of the build process. The settings for a MAP based local build within eclipse are as follows:

## BEGIN PROJECT BUILD PROPERTIES ##

# default settings for all this project's builds, for this branch; see also o.e.d.common.releng/build.properties for more overrideable defaults

# To permit automatic downloads of non-EPL compatible code, set this to property to "I accept"
thirdPartyDownloadLicenseAcceptance="I accept"

# MUST BE SET #
projectid=webtools.xsl
zipPrefix=XSL
incubation=
version=1.1.0
buildType=N
mainFeatureToBuildID=org.eclipse.wst.xsl.feature
testFeatureToBuildID=org.eclipse.wst.xsl_tests.feature

# MUST BE SET #
JAVA50_HOME=/home/dcarver/jrockit-jdk1.6.0_03
JAVA14_HOME=/home/dcarver/jrockit-jdk1.6.0_03
JAVA_HOME=${JAVA50_HOME}
dependencyURLs=http://mirror.cc.vt.edu/pub/eclipse/eclipse/downloads/drops/R-3.5-200906111540/com.ibm.icu.base-3.5.zip,http://eclipse.unixheads.org/eclipse/downloads/drops/R-3.5-200906111540/eclipse-SDK-3.5-linux-gtk.tar.gz,http://ftp.ussg.iu.edu/eclipse/modeling/emf/emf/downloads/drops/2.5.0/R200906151043/emf-runtime-2.5.0.zip,http://ftp.ussg.iu.edu/eclipse/modeling/emf/emf/downloads/drops/2.5.0/R200906151043/xsd-runtime-2.5.0.zip,ftp://ftp.ussg.iu.edu/pub/eclipse/tools/gef/downloads/drops/3.5.0/R200906221200/GEF-SDK-3.5.0.zip,http://ftp.ussg.iu.edu/eclipse/webtools/downloads/drops/R3.1/R-3.1-20090616035105/wtp-wst-R-3.1-20090616035105.zip,http://ftp.ussg.iu.edu/eclipse/tools/orbit/downloads/drops/R20090529135407/orbit-R20090529135407.zip

#what steps should we do? default: build.steps=buildUpdate,buildZips,buildTests,generateDigests,test,publish,cleanup
build.steps=buildUpdate,buildZips,buildTests,generateDigests,test,publish,cleanup

compilerArg=-enableJavadoc -encoding ISO-8859-1
flattenDependencies=true
parallelCompilation=true
generateFeatureVersionSuffix=true
individualSourceBundles=true
skipSign=true

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

#TODO: [269290] make javadokken work.
#javadocEnabled=true
#JAVADOC14_HOME=/opt/public/common/ibm-java2-ppc-50/bin

# TODO: are these still required/used?
#projRelengRoot=:pserver:anonymous@dev.eclipse.org:/cvsroot/tools
projRelengRoot=:pserver:anonymous@dev.eclipse.org:/cvsroot/webtools
projRelengPath=webtools.maps/releng.sourceediting
basebuilderBranch=R35_M6


# TODO: not used yet
# define regex patterns to use when automatically selecting zips from a directory or list file
#dependencyRegexFilter=R3_4_maintenance:M200.*/eclipse-SDK-|R-.*200.*/eclipse-SDK-

# TODO: not used yet
# could be file://, http://, cvs path, or relative path?
#mapLocation=maps/

# TODO: implement use of packager.map for defining deps?
# TODO: could be relative, absolute (local), or http/ftp paths to archives when defining dependencyURLs above

## END PROJECT BUILD PROPERTIES ##

Testing Properties

In order for tests/junits to be run during a build, there needs to exist a testing.properties file.

#csv list of test plugins to run
testPluginsToRun=org.eclipse.wst.xsl.tests
#,org.eclipse.zest.tests # need an aggregate test suite first!

#map name of test plugin to testsuite class to run
org.eclipse.wst.xsl.tests.suite=org.eclipse.wst.xsl.tests.AllTestsSuite
org.eclipse.wst.xsl.tests.ignoreExistingTestXml=true

Running the Build

The build when run will download all the necessary supporting files that are need.

Important.png
Remove XSL plugins From WST ZIP
A WST 3.1 plugin zip is used to help provision the target platform. However, this contains the wst.xsl plugins already, and these need to be removed from the zip after it is downloaded. So if the build fails, open the downloaded zip, and remove the *.XSL, and *.XML.XPATH related plugins and features from the zip file.


You need a launch configuration file in order to run the build.

<xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
  <booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
  <stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${project}"/>
  <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
    <listEntry value="/releng.sourceediting/build.xml"/>
  </listAttribute>
  <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
    <listEntry value="1"/>
  </listAttribute>
  <stringAttribute key="org.eclipse.debug.ui.ATTR_CAPTURE_IN_FILE" value="${workspace_loc:/releng.sourceediting}/buildlog.latest.txt"/>
   <listAttribute key="org.eclipse.debug.ui.favoriteGroups">
     <listEntry value="org.eclipse.ui.externaltools.launchGroup"/>
   </listAttribute>
   <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER"  value="org.eclipse.ant.ui.AntClasspathProvider"/>
   <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="releng.sourceediting"/>
   <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
   <booleanAttribute key="org.eclipse.ui.externaltools.ATTR_HIDE_INTERNAL_TARGETS" value="true"/>
   <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LAUNCH_CONFIGURATION_BUILD_SCOPE" value="${projects:org.eclipse.dash.common.releng,releng.sourceediting}"/>
   <stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/releng.sourceediting/build.xml}"/>
   <stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
</launchConfiguration>

Use this launch configuration when running.

Back to the top