diff --git a/releng/EnrichPoms/CBIaggregator.sh b/releng/EnrichPoms/CBIaggregator.sh
index 4ce3746..39a2485 100644
--- a/releng/EnrichPoms/CBIaggregator.sh
+++ b/releng/EnrichPoms/CBIaggregator.sh
@@ -50,6 +50,11 @@
 	fi
 }
 
+#================================================================================
+#   (1) Install and run the CBI aggregator
+#================================================================================
+echo "==== CBI aggregator ===="
+
 # -------- fetch .aggr file **TEMP** will eventually move to the releng git: ------------
 git archive --remote=file://localhost/gitroot/objectteams/org.eclipse.objectteams.git \
 	master releng/EnrichPoms/SDK4Mvn.aggr \
@@ -57,9 +62,6 @@
 /bin/mv releng/EnrichPoms/SDK4Mvn.aggr ${WORKSPACE}/
 /bin/rmdir -p releng/EnrichPoms
 
-#================================================================================
-#   (1) Install and run the CBI aggregator
-#================================================================================
 if [ ! -d ${LOCAL_TOOLS} ]
 then
 	/bin/mkdir ${LOCAL_TOOLS}
@@ -68,6 +70,7 @@
 if [ ! -x ${ECLIPSE} ]
 then
 	cd ${LOCAL_TOOLS}
+	echo "Extracting Eclipse from ${FILE_ECLIPSE} ..."
 	tar xf ${FILE_ECLIPSE}
 	cd ${WORKSPACE}
 fi
@@ -75,6 +78,7 @@
 
 if [ ! -x ${AGGREGATOR} ]
 then
+	echo "Installing the CBI aggregator into ${LOCAL_TOOLS}/${DIR_AGGREGATOR} ..."
 	${ECLIPSE} -application ${APP_NAME_P2DIRECTOR} \
 		-r ${URL_AGG_UPDATES} \
 		-d ${LOCAL_TOOLS}/${DIR_AGGREGATOR} -p CBIProfile \
@@ -86,6 +90,7 @@
 Repo=${WORKSPACE}/repo-${BUILD_NUMBER}
 /bin/mkdir ${RepoRaw}
 
+echo "Running the aggregator with build model ${FILE_SDK_AGGR} ..."
 ${AGGREGATOR} aggregate --buildModel ${FILE_SDK_AGGR} --action CLEAN_BUILD --buildRoot ${RepoRaw}
 if [ "$?" != "0" ]
 then
@@ -159,9 +164,11 @@
 		cd ${1}
 		# expect only one sub-directory, starting with a digit, plus maven-metadata.xml*:
 		other=`ls -d [!0-9]* 2> /dev/null`
-        if `echo "${other}" | egrep "^maven-metadata.xml\s*maven-metadata.xml.md5\s*maven-metadata.xml.sha1$"`
+        if `echo "${other}" | tr "\n" " " | egrep "^maven-metadata.xml maven-metadata.xml.md5 maven-metadata.xml.sha1 \$"`
         then
-        	exit 1
+        	; # clean -> proceed below
+        else
+        	exit 1 # unexpected content found, don't remove
         fi
         # scan all *.pom inside the version sub-directory
         r=1
@@ -275,7 +282,9 @@
 # - dynamic content (retrieved mostly from MANIFEST.MF):
 #   - name
 #   - url
-#   - scm connection and tag
+#   - scm connection, tag and url
+# - semi dynamic
+#   - developers (based on static map git-repo-base -> project leads)
 # - static content
 #   - license
 #   - organization
@@ -305,7 +314,7 @@
         updateCheckSums ${pom}
 done
 
-echo "==== Add Javadoc Stubs ===="
+echo "==== Add Javadoc stubs ===="
 
 # (groupSimpleName, javadocArtifactGA)
 function createJavadocs() {
diff --git a/releng/EnrichPoms/jdt-pom.xml b/releng/EnrichPoms/jdt-pom.xml
new file mode 100644
index 0000000..9b4e90f
--- /dev/null
+++ b/releng/EnrichPoms/jdt-pom.xml
@@ -0,0 +1,47 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.eclipse.cbi</groupId>
+  <artifactId>org.eclipse.jdt.publish2maven</artifactId>
+  <version>0.0.1-SNAPSHOT</version>
+  <packaging>pom</packaging>
+  
+  <properties>
+  	<gpg.key.id>B414F87E</gpg.key.id>
+  </properties>
+
+  <distributionManagement>
+    <snapshotRepository>
+      <id>ossrh</id>
+      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
+    </snapshotRepository>
+  </distributionManagement>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-gpg-plugin</artifactId>
+        <version>1.6</version>
+        <configuration>
+          <gpgArguments>
+            <arg>--default-key</arg>
+            <arg>${gpg.key.id}</arg>
+          </gpgArguments>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.sonatype.plugins</groupId>
+        <artifactId>nexus-staging-maven-plugin</artifactId>
+        <version>1.1</version>
+        <extensions>true</extensions>
+        <configuration>
+        <!-- The Base URL of Nexus instance where we want to stage -->
+          <nexusUrl>https://oss.sonatype.org/service/local/staging/deploy/maven2/</nexusUrl>
+          <!-- The server "id" element from settings to use authentication from -->
+          <serverId>ossrh</serverId>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/releng/EnrichPoms/publishJDT.sh b/releng/EnrichPoms/publishJDT.sh
new file mode 100644
index 0000000..58d0e7c
--- /dev/null
+++ b/releng/EnrichPoms/publishJDT.sh
@@ -0,0 +1,68 @@
+#!/bin/sh
+#*******************************************************************************
+# Copyright (c) 2016 GK Software AG 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:
+#     Stephan Herrmann - initial API and implementation
+#********************************************************************************
+
+REPO_BASE=${WORKSPACE}/../../CBIaggregator/workspace
+REPO=${REPO_BASE}/repo-${REPO_ID}
+JDT=org/eclipse/jdt
+
+if [ ! -d ${REPO} ]
+then
+	echo "No repo at ${REPO}"
+	exit 1
+fi
+
+echo "==== Copy artifacts from ${REPO}/${JDT} ===="
+
+mkdir -p ${JDT}
+cp -r ${REPO}/${JDT}/* ${JDT}/
+
+
+echo "==== UPLOAD ===="
+
+URL=https://oss.sonatype.org/service/local/staging/deploy/maven2/
+REPO=ossrh
+SETTINGS=/opt/public/hipp/homes/genie.releng/.m2/settings-deploy-ossrh-jdt.xml
+MVN=/shared/common/apache-maven-latest/bin/mvn
+
+/bin/mkdir .log
+
+for pomFile in org/eclipse/jdt/*/*/*.pom
+do
+  file=`echo $pomFile | sed -e "s|\(.*\)\.pom|\1.jar|"`
+  sourcesFile=`echo $pomFile | sed -e "s|\(.*\)\.pom|\1-sources.jar|"`
+  javadocFile=`echo $pomFile | sed -e "s|\(.*\)\.pom|\1-javadoc.jar|"`
+
+  echo "${MVN} -f jdt-pom.xml -s ${SETTINGS} gpg:sign-and-deploy-file -Durl=${URL} -DrepositoryId=${REPO} -Dfile=${file} -DpomFile=${pomFile}"
+  
+  ${MVN} -f jdt-pom.xml -s ${SETTINGS} gpg:sign-and-deploy-file \
+     -Durl=${URL} -DrepositoryId=${REPO} \
+     -Dfile=${file} -DpomFile=${pomFile} \
+     >> .log/artifact-upload.txt
+     
+  echo -e "\t${sourcesFile}"
+  ${MVN} -f jdt-pom.xml -s ${SETTINGS} gpg:sign-and-deploy-file \
+     -Durl=${URL} -DrepositoryId=${REPO} \
+     -Dfile=${sourcesFile} -DpomFile=${pomFile} -Dclassifier=sources \
+     >> .log/sources-upload.txt
+  
+  echo -e "\t${javadocFile}"
+  ${MVN} -f jdt-pom.xml -s ${SETTINGS} gpg:sign-and-deploy-file \
+     -Durl=${URL} -DrepositoryId=${REPO} \
+     -Dfile=${javadocFile} -DpomFile=${pomFile} -Dclassifier=javadoc \
+     >> .log/javadoc-upload.txt
+
+done
+
+/bin/ls -la .log
+
+/bin/grep -i fail .log/*
+
