Encapsulate I18N tooling in separate feature project and provide initial build scripts.

Adds a feature project with the id `org.eclipse.babel.tapiji.java.feature` that encapsulates I18N specific tools for Java. Moreover, this commit provides the initial build structure.
diff --git a/org.eclipse.babel.core/.classpath b/org.eclipse.babel.core/.classpath
index 64c5e31..ad32c83 100644
--- a/org.eclipse.babel.core/.classpath
+++ b/org.eclipse.babel.core/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/org.eclipse.babel.core/build.properties b/org.eclipse.babel.core/build.properties
index f7ef82f..25f57c5 100644
--- a/org.eclipse.babel.core/build.properties
+++ b/org.eclipse.babel.core/build.properties
@@ -3,10 +3,8 @@
 bin.includes = META-INF/,\
                .,\
                bin/,\
-               plugin.xml,\
-               org.eclipse.babel.core.pdeutils.jar
-src.includes = bin/,\
-               src/
-source.org.eclipse.babel.core.pdeutils.jar = 
-jars.compile.order = org.eclipse.babel.core.pdeutils.jar,\
-                     .
+               plugin.xml
+src.includes = bin/,
+#source.org.eclipse.babel.core.pdeutils.jar = 
+#jars.compile.order = org.eclipse.babel.core.pdeutils.jar,\
+#                     .
diff --git a/org.eclipse.babel.core/plugin.xml b/org.eclipse.babel.core/plugin.xml
index 0814425..ff86967 100644
--- a/org.eclipse.babel.core/plugin.xml
+++ b/org.eclipse.babel.core/plugin.xml
@@ -2,5 +2,4 @@
 <?eclipse version="3.4"?>
 <plugin>
    <extension-point id="babelConfiguration" name="babelConfiguration.exsd" schema="schema/babelConfiguration.exsd"/>
-
 </plugin>
diff --git a/org.eclipse.babel.editor/.classpath b/org.eclipse.babel.editor/.classpath
index 181dba6..3e28c6b 100644
--- a/org.eclipse.babel.editor/.classpath
+++ b/org.eclipse.babel.editor/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="tests"/>
diff --git a/org.eclipse.babel.tapiji.tools.build/.project b/org.eclipse.babel.tapiji.tools.build/.project
new file mode 100644
index 0000000..7361ac7
--- /dev/null
+++ b/org.eclipse.babel.tapiji.tools.build/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.babel.tapiji.tools.build</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.babel.tapiji.tools.build/build.properties b/org.eclipse.babel.tapiji.tools.build/build.properties
new file mode 100644
index 0000000..925fea9
--- /dev/null
+++ b/org.eclipse.babel.tapiji.tools.build/build.properties
@@ -0,0 +1,260 @@
+###############################################################################
+# Copyright (c) 2003, 2011 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
+#     Compuware Corporation - Sebastien Angers <sebastien.angers@compuware.com> 
+#     	- Enabled additional mirror slicingOptions in Headless PDE Build
+#     	- Enabled 'raw' attribute for mirror step in Headless PDE Build
+#     	- https://bugs.eclipse.org/338878
+###############################################################################
+#####################
+# Parameters describing how and where to execute the build.
+# Typical users need only update the following properties:
+#    baseLocation - where things you are building against are installed
+#    bootclasspath - The base jars to compile against (typicaly rt.jar)
+#    configs - the list of {os, ws, arch} configurations to build.  
+#
+# Of course any of the settings here can be overridden by spec'ing 
+# them on the command line (e.g., -DbaseLocation=d:/eclipse
+
+#The type of the top level element we are building,  generally "feature"
+topLevelElementType = feature
+#The id of the top level element we are building
+topLevelElementId = org.eclipse.babel.tapiji.tools.java.feature
+
+############# PRODUCT/PACKAGING CONTROL #############
+#product=/plugin or feature id/path/to/.product
+runPackager=true
+
+#Set the name of the archive that will result from the product build.
+#archiveNamePrefix=
+
+# The prefix that will be used in the generated archive.
+archivePrefix=tapiji_feature
+
+# The location underwhich all of the build output will be collected.
+collectingFolder=${archivePrefix}
+
+# The list of {os, ws, arch} configurations to build.  This 
+# value is a '&' separated list of ',' separate triples.  For example, 
+#     configs=win32,win32,x86 & linux,motif,x86
+# By default the value is *,*,*
+configs = *, *, *
+#configs=win32, win32, x86 & \
+#	win32,win32,x86_64 & \
+#	win32,win32,wpf & \
+#	linux, gtk, ppc & \
+#	linux, gtk, x86 & \
+#	linux, gtk, x86_64 & \
+#	linux, motif, x86 & \
+#	solaris, motif, sparc & \
+#	solaris, gtk, sparc & \
+#	aix, motif, ppc & \
+#	hpux, motif, ia64_32 & \
+#	macosx, carbon, ppc & \
+#	macosx, carbon, x86 & \
+#	macosx, cocoa, ppc & \
+#	macosx, cocoa, x86 & \
+#	macosx, cocoa, x86_64
+
+# By default PDE creates one archive (result) per entry listed in the configs property.
+# Setting this value to true will cause PDE to only create one output containing all 
+# artifacts for all the platforms listed in the configs property.
+# To control the output format for the group, add a "group, group, group - <format>" entry to the
+# archivesFormat. 
+#groupConfigurations=true
+
+#The format of the archive. By default a zip is created using antZip.
+#The list can only contain the configuration for which the desired format is different than zip.
+#archivesFormat=win32, win32, x86 - antZip& \
+#	linux, gtk, ppc - antZip &\
+#    linux, gtk, x86 - antZip& \
+#	linux, gtk, x86_64 - antZip& \
+# linux, motif, x86 - antZip& \
+#	solaris, motif, sparc - antZip& \
+#	solaris, gtk, sparc - antZip& \
+#	aix, motif, ppc - antZip& \
+#	hpux, motif, PA_RISC - antZip& \
+#	macosx, carbon, ppc - antZip
+
+#Allow cycles involving at most one bundle that needs to be compiled with the rest being binary bundles.
+allowBinaryCycles = true
+
+#Sort bundles depenedencies across all features instead of just within a given feature.
+#flattenDependencies = true
+
+#Parallel compilation, requires flattenedDependencies=true
+#parallelCompilation=true
+#parallelThreadCount=
+#parallelThreadsPerProcessor=
+	
+#Set to true if you want the output to be ready for an update jar (no site.xml generated)
+#outputUpdateJars = false
+
+#Set to true for Jnlp generation
+#codebase should be a URL that will be used as the root of all relative URLs in the output.
+#generateJnlp=false
+#jnlp.codebase=<codebase url>
+#jnlp.j2se=<j2se version>
+#jnlp.locale=<a locale>
+#jnlp.generateOfflineAllowed=true or false generate <offlineAllowed/> attribute in the generated features
+#jnlp.configs=${configs}			#uncomment to filter the content of the generated jnlp files based on the configuration being built
+
+#Set to true if you want to sign jars
+#signJars=false
+#sign.alias=<alias>
+#sign.keystore=<keystore location>
+#sign.storepass=<keystore password>
+#sign.keypass=<key password>
+
+#Arguments to send to the zip executable
+zipargs=
+
+#Arguments to send to the tar executable
+tarargs=
+
+#Control the creation of a file containing the version included in each configuration - on by default 
+#generateVersionsLists=false
+
+############ REPO MIRROR OPTIONS CONTROL ############
+# Default values for the slicingOptions and raw attribute of the p2.mirror Ant target used to generate the p2 repo (buildRepo)
+# Note that the default values used by PDE/Build are different from the default values for p2.mirror's slicingOptions and raw attribute
+# See http://help.eclipse.org/topic//org.eclipse.platform.doc.isv/guide/p2_repositorytasks.htm for the details
+# of each setting.
+#p2.mirror.slicing.filter=
+#p2.mirror.slicing.followOnlyFilteredRequirements=false
+#p2.mirror.slicing.followStrict=false
+#p2.mirror.slicing.includeFeatures=true
+#p2.mirror.slicing.includeNonGreedy=false
+#p2.mirror.slicing.includeOptional=true
+#p2.mirror.slicing.platformFilter=
+#p2.mirror.slicing.latestVersionOnly=false
+
+#p2.mirror.raw=false
+
+############## SOURCE BUNDLE CONTROL ################
+# Set this property to have source bundles created and output into build repository.
+# This does NOT put them in the build output (e.g., product) itself.
+# Valid values are: not set, built, all.
+# 		built = only source for bundles that are actually built/compiled in this run are output
+#		all = all available source is collected and output
+#sourceBundleMode=all
+
+# When outputting autogenerated source bundles a feature is created to contain all the automatic
+# source bundles.  Typically this feature is not needed and can be ignored. As such, it is given a default
+# name and version.  These properties can be used to override the defaults.
+#  sourceBundleTemplateFeature - can specify an existing feature which will be augmented to form the generated source feature
+#  sourceBundleFeatureId - will be the id of generated source feature which contains all the generated source bundles, default value
+#                          is sourceBundleTemplateFeature + ".source" if sourceBundleTemplateFeature is specified
+#sourceBundleTemplateFeature=
+#sourceBundleFeatureId=
+#sourceBundleFeatureVersion=
+
+############## BUILD NAMING CONTROL ################
+# The directory into which the build elements are fetched and where
+# the build takes place.
+buildDirectory=${user.home}/tapiji.build
+
+#repoBaseLocation=${buildDirectory}/repository
+#transformedRepoLocation=${buildDirectory}/transformedRepo
+
+# Type of build.  Used in naming the build output.  Typically this value is
+# one of I, N, M, S, ...
+buildType=I
+
+# ID of the build.  Used in naming the build output.
+buildId=TapiJIBuild
+
+# Label for the build.  Used in naming the build output
+buildLabel=${buildType}.${buildId}
+
+# Timestamp for the build.  Used in naming the build output
+timestamp=007
+
+#The value to be used for the qualifier of a plugin or feature when you want to override the value computed by pde.
+#The value will only be applied to plugin or features indicating build.properties, qualifier = context 
+#forceContextQualifier=<the value for the qualifier>
+
+#Enable / disable the generation of a suffix for the features that use .qualifier. 
+#The generated suffix is computed according to the content of the feature   
+#generateFeatureVersionSuffix=true
+
+############# BASE CONTROL #############
+# Settings for the base Eclipse components and Java class libraries 
+# against which you are building.
+# Base location for anything the build needs to compile against.  For example,
+# in most RCP app or a plug-in,  the baseLocation should be the location of a previously
+# installed Eclipse against which the application or plug-in code will be compiled and the RCP delta pack.
+
+#Folder containing repositories whose content is needed to compile against
+#repoBaseLocation=${base}/repos
+
+#Folder where the content of the repositories from ${repoBaseLocation} will be made available as a form suitable to be compiled against
+#transformedRepoLocation=${base}/transformedRepos
+
+#Os/Ws/Arch/nl of the eclipse specified by baseLocation
+baseos=linux
+basews=linux
+basearch=x86_64
+
+#this property indicates whether you want the set of plug-ins and features to be considered during the build to be limited to the ones reachable from the features / plugins being built
+filteredDependencyCheck=false
+
+#this property indicates whether the resolution should be done in development mode (i.e. ignore multiple bundles with singletons)
+resolution.devMode=false
+
+#pluginPath is a list of locations in which to find plugins and features.  This list is separated by the platform file separator (; or :)
+#a location is one of:  
+#- the location of the jar or folder that is the plugin or feature : /path/to/foo.jar or /path/to/foo
+#- a directory that contains a /plugins or /features subdirectory
+#- the location of a feature.xml, or for 2.1 style plugins, the plugin.xml or fragment.xml
+#pluginPath=
+skipBase=true
+
+############# MAP FILE CONTROL ################
+# This section defines CVS tags to use when fetching the map files from the repository.
+# If you want to fetch the map file from repository / location, change the getMapFiles target in the customTargets.xml
+
+#skipMaps=true
+#mapsRepo=:pserver:anonymous@example.com/path/to/repo
+#mapsRoot=path/to/maps
+#mapsCheckoutTag=HEAD
+
+#tagMaps=true
+#mapsTagTag=v${buildId}
+
+
+############ REPOSITORY CONTROL ###############
+# This section defines properties parameterizing the repositories where plugins, fragments
+# bundles and features are being obtained from. 
+
+# The tags to use when fetching elements to build.
+# By default thebuilder will use whatever is in the maps.  
+# This value takes the form of a comma separated list of repository identifier (like used in the map files) and the 
+# overriding value
+# For example fetchTag=CVS=HEAD, SVN=v20050101
+# fetchTag=HEAD
+
+#skipFetch=true
+fetchTag=origin/master
+
+############# JAVA COMPILER OPTIONS ##############
+JavaSE-1.6=${java.home}/lib/rt.jar
+
+# Specify the output format of the compiler log when eclipse jdt is used
+logExtension=.log
+
+# Whether or not to include debug info in the output jars
+javacDebugInfo=false 
+
+# Whether or not to fail the build if there are compiler errors
+javacFailOnError=true
+
+# Enable or disable verbose mode of the compiler
+javacVerbose=true
+
diff --git a/org.eclipse.babel.tapiji.tools.build/build.sh b/org.eclipse.babel.tapiji.tools.build/build.sh
new file mode 100755
index 0000000..4df3bd9
--- /dev/null
+++ b/org.eclipse.babel.tapiji.tools.build/build.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+ECLIPSE_BASE=~/dev/tapiji/build/eclipse
+
+java -jar $ECLIPSE_BASE/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar \
+     -application org.eclipse.ant.core.antRunner \
+     -buildfile build.xml \
+     -DbaseLocation=$ECLIPSE_BASE
diff --git a/org.eclipse.babel.tapiji.tools.build/build.xml b/org.eclipse.babel.tapiji.tools.build/build.xml
new file mode 100644
index 0000000..a4dd68f
--- /dev/null
+++ b/org.eclipse.babel.tapiji.tools.build/build.xml
@@ -0,0 +1,153 @@
+<!--
+     Copyright (c) 2003, 2009 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
+ -->
+<project name="Build All Elements" default="main">
+
+<!-- ===================================================================== -->
+<!-- Global properties.  See the build.properties for information on -->
+<!-- the properties which callers can control. -->
+<!-- ===================================================================== -->
+<property name="builder" location="${user.dir}"/>
+<property name="builderDirectory" location="${builder}"/>
+<property name="buildProperties" location="${builder}/build.properties"/>
+<property file="${buildProperties}"/>
+<available property="customTargets" file="${builder}/customTargets.xml" value="${builder}/customTargets.xml"/>
+<property name="customTargets" location="${eclipse.pdebuild.templates}/headless-build/customTargets.xml"/>
+<property name="genericTargets" location="${eclipse.pdebuild.scripts}/genericTargets.xml"/>
+
+<!-- ===================================================================== -->
+<!-- main entry point to setup, fetch, generate, build etc. Use -->
+<!-- the customTargets.xml to modify the build behaviour. -->
+<!-- ===================================================================== -->
+
+<!-- ******* add in the descriptions for each of the top level targets to teh target decl -->
+<target name="main" description="the main build target">
+  	<antcall target="preBuild" />
+	<antcall target="processRepos"/>
+ 	<antcall target="fetch" />
+	<antcall target="generate" /> 
+	<antcall target="process" /> 
+	<antcall target="assemble" />
+	<antcall target="package" />
+	<antcall target="postBuild" />
+</target>
+
+<!-- ===================================================================== -->
+<!-- Steps to do before starting the build.  Typical setup includes -->
+<!-- fetching the map files and building the directory.  -->
+<!-- ===================================================================== -->
+<target name="preBuild">
+	<mkdir dir="${buildDirectory}" />
+	<ant antfile="${customTargets}" target="preSetup" /> 
+	<ant antfile="${customTargets}" target="getMapFiles" /> 
+	<concat destfile="${buildDirectory}/directory.txt" fixlastline="yes">
+		<fileset dir="${buildDirectory}" includes="maps/**/*.map"/>
+	</concat>
+	<ant antfile="${customTargets}" target="postSetup" />
+</target>
+
+<!-- ===================================================================== -->
+<!-- This will transform the content of the repositories listed such that they   -->
+<!-- are in a format against which PDE Build can succesfully build   -->
+<!-- ===================================================================== -->
+<target name="processRepos" if="repoBaseLocation">
+	<subant target="preProcessRepos" failonerror="false" inheritAll="true" >
+		<fileset file="${customTargets}" />
+	</subant>
+	<ant antfile="${customTargets}" target="allElements">
+		<property name="target" value="transformRepos" />
+	</ant>
+	<subant target="postProcessRepos" failonerror="false" inheritAll="true" >
+		<fileset file="${customTargets}" />
+	</subant>
+</target>
+
+<!-- ===================================================================== -->
+<!-- Fetch the elements identified in the customTargets -->
+<!-- ===================================================================== -->
+<target name="fetch" unless="skipFetch">
+	<ant antfile="${customTargets}" target="preFetch"/>
+	<!-- Generates and then execute the fetch scripts for each build element-->
+	<ant antfile="${customTargets}" target="allElements">
+		<property name="target" value="fetchElement" />
+	</ant>
+	
+	<ant antfile="${customTargets}" target="postFetch"/>
+</target>
+
+<!-- ===================================================================== -->
+<!-- Generate the build scripts for each element identified in the customTargets -->
+<!-- ===================================================================== -->
+<target name="generate">
+	<ant antfile="${customTargets}" target="preGenerate"/>
+	<!-- Generate the build.xml for each build element-->
+	<ant antfile="${customTargets}" target="allElements">
+		<property name="target" value="generateScript" />
+	</ant>
+	<ant antfile="${customTargets}" target="postGenerate"/>	
+</target>
+
+<!-- ===================================================================== -->
+<!-- Run the build scripts for each element identified in the customTargets -->
+<!-- ===================================================================== -->
+<target name="process">
+	<!-- Run custom tasks before processing, i.e. creating source build zip files -->
+	<ant antfile="${customTargets}" target="preProcess" />
+
+	<!-- Process all of the build elements-->
+	<ant antfile="${customTargets}" target="allElements">
+		<property name="target" value="processElement" />
+	</ant>
+
+	<!-- Run custom tasks after compiling, i.e. reporting compile errors -->
+	<ant antfile="${customTargets}" target="postProcess" />
+</target>
+
+<!-- ===================================================================== -->
+<!-- Assemble the build elements into final distributions -->
+<!-- ===================================================================== -->
+<target name="assemble">
+	<ant antfile="${customTargets}" target="preAssemble"/>
+	<ant antfile="${customTargets}" target="allElements">
+		<property name="target" value="assembleElement"/>
+	</ant>
+	<ant antfile="${customTargets}" target="postAssemble"/>	
+</target>
+
+<!-- ===================================================================== -->
+<!-- Package the build elements into final distributions -->
+<!-- ===================================================================== -->
+<target name="package" if="runPackager">
+	<ant antfile="${customTargets}" target="prePackage"/>
+	<ant antfile="${customTargets}" target="allElements">
+		<property name="target" value="packageElement"/>
+	</ant>
+	<ant antfile="${customTargets}" target="postPackage"/>	
+</target>
+
+<!-- ===================================================================== -->
+<!-- Do any steps required after the build (e.g., posting, testing, ...) -->
+<!-- ===================================================================== -->
+<target name="postBuild">
+	<ant antfile="${customTargets}" target="postBuild" />
+</target>
+
+<!-- ===================================================================== -->
+<!-- Clean the build elements.  This target is here as an entry -->
+<!-- point to the customTargets.  It is not called directly in the normal -->
+<!-- course of events. -->
+<!-- ===================================================================== -->
+<target name="clean">
+  <ant antfile="${customTargets}" target="allElements">
+     <property name="target" value="cleanElement"/>
+  </ant>
+</target>
+
+</project>
diff --git a/org.eclipse.babel.tapiji.tools.build/customTargets.xml b/org.eclipse.babel.tapiji.tools.build/customTargets.xml
new file mode 100644
index 0000000..1a8cd85
--- /dev/null
+++ b/org.eclipse.babel.tapiji.tools.build/customTargets.xml
@@ -0,0 +1,180 @@
+<project name="customTargets.template" default="noDefault">
+
+	<!-- ===================================================================== -->
+	<!-- Run a given ${target} on all elements being built -->
+	<!-- Add on <ant> task for each top level element being built. -->
+	<!-- ===================================================================== -->
+	<available property="allElementsFile" file="${builder}/allElements.xml" value="${builder}/allElements.xml"/>
+	<property name="allElementsFile" location="${eclipse.pdebuild.templates}/headless-build/allElements.xml"/>
+
+	<import file="${allElementsFile}" />
+	<target name="allElements">
+		<antcall target="allElementsDelegator" />
+	</target>
+	
+	<!-- ===================================================================== -->
+	<!-- ===================================================================== -->
+	<target name="getBaseComponents" depends="checkLocalBase" unless="skipBase">
+		<get src="${eclipseBaseURL}" dest="${buildDirectory}/../temp-base.zip" />
+		<unzip dest="${base}" overwrite="true" src="${buildDirectory}/../temp-base.zip" />
+	</target>
+
+	<target name="checkLocalBase">
+		<available file="${base}" property="skipBase" />
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Check out map files from correct repository -->
+	<!-- Replace values for mapsCheckoutTag as desired. -->
+	<!-- ===================================================================== -->
+	<target name="getMapFiles"  unless="skipMaps">
+		<mkdir dir="${buildDirectory}/maps" />
+		<exec executable="git" dir="${buildDirectory}/maps" output="${buildDirectory}/maps/maps.tar">
+			<arg line="archive -format=tar" />
+			<arg line="-remote=git.eclipse.org/gitroot/babel/plugins.git" />
+			<arg line="master org.eclipse.babel.tapiji.tools.build/maps" />
+		</exec>
+		<untar src="${buildDirectory}/maps/maps.tar" dest="${buildDirectory}/maps" />
+	</target>
+
+	<target name="checkLocalMaps">
+		<available property="skipMaps" file="${buildDirectory}/maps" />
+	</target>
+	
+	<target name="tagMapFiles" if="tagMaps">
+		<cvs dest="${buildDirectory}/maps/${mapsRoot}" command="tag ${mapsTagTag}" />
+	</target>
+
+	<!-- ===================================================================== -->
+
+	<target name="clean" unless="noclean">
+		<antcall target="allElements">
+			<param name="target" value="cleanElement" />
+		</antcall>
+	</target>
+
+	<target name="gatherLogs">
+		<mkdir dir="${buildDirectory}/${buildLabel}/compilelogs" />
+		<antcall target="allElements">
+			<param name="target" value="gatherLogs" />
+		</antcall>
+		<unzip dest="${buildDirectory}/${buildLabel}/compilelogs" overwrite="true">
+			<fileset dir="${buildDirectory}/features">
+				<include name="**/*.log.zip" />
+			</fileset>
+		</unzip>
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do before setup -->
+	<!-- ===================================================================== -->
+	<target name="preSetup">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after setup but before starting the build proper -->
+	<!-- ===================================================================== -->
+	<target name="postSetup">
+		<antcall target="getBaseComponents" />
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do before fetching the build elements -->
+	<!-- ===================================================================== -->
+	<target name="preFetch">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after fetching the build elements -->
+	<!-- ===================================================================== -->
+	<target name="postFetch">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do before the repositories are being processed -->
+	<!-- ===================================================================== -->
+	<target name="preProcessRepos">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the repositories have been processed -->
+	<!-- ===================================================================== -->
+	<target name="postProcessRepos">
+	</target>
+	
+	<!-- ===================================================================== -->
+	<!-- Steps to do before generating the build scripts. -->
+	<!-- ===================================================================== -->
+	<target name="preGenerate">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after generating the build scripts. -->
+	<!-- ===================================================================== -->
+	<target name="postGenerate">
+		<antcall target="clean" />
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do before running the build.xmls for the elements being built. -->
+	<!-- ===================================================================== -->
+	<target name="preProcess">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after running the build.xmls for the elements being built. -->
+	<!-- ===================================================================== -->
+	<target name="postProcess">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do before running assemble. -->
+	<!-- ===================================================================== -->
+	<target name="preAssemble">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after  running assemble. -->
+	<!-- ===================================================================== -->
+	<target name="postAssemble">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do before running package. -->
+	<!-- ===================================================================== -->
+	<target name="prePackage">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after  running package. -->
+	<!-- ===================================================================== -->
+	<target name="postPackage">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do after the build is done. -->
+	<!-- ===================================================================== -->
+	<target name="postBuild">
+		<antcall target="gatherLogs" />
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do to test the build results -->
+	<!-- ===================================================================== -->
+	<target name="test">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Steps to do to publish the build results -->
+	<!-- ===================================================================== -->
+	<target name="publish">
+	</target>
+
+	<!-- ===================================================================== -->
+	<!-- Default target                                                        -->
+	<!-- ===================================================================== -->
+	<target name="noDefault">
+		<echo message="You must specify a target when invoking this file" />
+	</target>
+
+</project>
diff --git a/org.eclipse.babel.tapiji.tools.build/maps/tapiji.map b/org.eclipse.babel.tapiji.tools.build/maps/tapiji.map
new file mode 100644
index 0000000..2d2724d
--- /dev/null
+++ b/org.eclipse.babel.tapiji.tools.build/maps/tapiji.map
@@ -0,0 +1,31 @@
+plugin@org.eclipse.babel.core=GIT,\
+       repo=git.eclipse.org/gitroot/babel/plugins.git,\
+       path=org.eclipse.babel.core
+
+plugin@org.eclipse.babel.editor=GIT,\
+       repo=git.eclipse.org/gitroot/babel/plugins.git,\
+       path=org.eclipse.babel.editor
+
+plugin@org.eclipse.babel.editor.nls=GIT,\
+       repo=git.eclipse.org/gitroot/babel/plugins.git,\
+       path=org.eclipse.babel.editor.nls
+
+plugin@org.eclipse.babel.tapiji.tools.core=GIT,\
+       repo=git.eclipse.org/gitroot/babel/plugins.git,\
+       path=org.eclipse.babel.tapiji.tools.core
+
+plugin@org.eclipse.babel.tapiji.tools.core.ui=GIT,\
+       repo=git.eclipse.org/gitroot/babel/plugins.git,\
+       path=org.eclipse.babel.tapiji.tools.core.ui
+
+plugin@org.eclipse.babel.tapiji.tools.java=GIT,\
+       repo=git.eclipse.org/gitroot/babel/plugins.git,\
+       path=org.eclipse.babel.tapiji.tools.java
+
+plugin@org.eclipse.babel.tapiji.tools.java.ui=GIT,\
+       repo=git.eclipse.org/gitroot/babel/plugins.git,\
+       path=org.eclipse.babel.tapiji.tools.java.ui
+
+feature@org.eclipse.babel.tapiji.tools.java.feature=GIT,\
+       repo=git.eclipse.org/gitroot/babel/plugins.git,\
+       path=/plugins
\ No newline at end of file
diff --git a/org.eclipse.babel.tapiji.tools.core/build.properties b/org.eclipse.babel.tapiji.tools.core/build.properties
index d9a05cb..c68ca56 100644
--- a/org.eclipse.babel.tapiji.tools.core/build.properties
+++ b/org.eclipse.babel.tapiji.tools.core/build.properties
@@ -16,6 +16,4 @@
 source.resourcebundle.jar = bin/,\

                             src/,\

                             schema/,\

-                            META-INF/,\

-                            icons/,\

-                            .settings/

+                            META-INF/,

diff --git a/org.eclipse.babel.tapiji.tools.java.feature/.project b/org.eclipse.babel.tapiji.tools.java.feature/.project
new file mode 100644
index 0000000..a4e2a75
--- /dev/null
+++ b/org.eclipse.babel.tapiji.tools.java.feature/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.babel.tapiji.tools.java.feature</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.FeatureBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.FeatureNature</nature>
+	</natures>
+</projectDescription>
diff --git a/org.eclipse.babel.tapiji.tools.java.feature/build.properties b/org.eclipse.babel.tapiji.tools.java.feature/build.properties
new file mode 100644
index 0000000..64f93a9
--- /dev/null
+++ b/org.eclipse.babel.tapiji.tools.java.feature/build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/org.eclipse.babel.tapiji.tools.java.feature/feature.xml b/org.eclipse.babel.tapiji.tools.java.feature/feature.xml
new file mode 100644
index 0000000..3ff85c7
--- /dev/null
+++ b/org.eclipse.babel.tapiji.tools.java.feature/feature.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.babel.tapiji.tools.java.feature"
+      label="Feature"
+      version="0.0.2.qualifier">
+
+   <description url="http://www.example.com/description">
+      [Enter Feature Description here.]
+   </description>
+
+   <copyright url="http://www.example.com/copyright">
+      [Enter Copyright Description here.]
+   </copyright>
+
+   <license url="http://www.example.com/license">
+      [Enter License Description here.]
+   </license>
+
+   <plugin
+         id="org.eclipse.babel.core"
+         download-size="0"
+         install-size="0"
+         version="0.8.0.qualifier"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.babel.editor"
+         download-size="0"
+         install-size="0"
+         version="0.8.0.qualifier"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.babel.editor.nls"
+         download-size="0"
+         install-size="0"
+         version="0.8.0.qualifier"
+         fragment="true"/>
+
+   <plugin
+         id="org.eclipse.babel.tapiji.tools.core"
+         download-size="0"
+         install-size="0"
+         version="0.0.2.qualifier"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.babel.tapiji.tools.core.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.2.qualifier"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.babel.tapiji.tools.java"
+         download-size="0"
+         install-size="0"
+         version="0.0.2.qualifier"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.babel.tapiji.tools.java.ui"
+         download-size="0"
+         install-size="0"
+         version="0.0.2.qualifier"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.babel.tapiji.tools.rbmanager"
+         download-size="0"
+         install-size="0"
+         version="0.0.2.qualifier"
+         unpack="false"/>
+
+</feature>