public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/java-ebuilder:master commit in: scripts.new/, scripts.new/resources/resources/, ...
@ 2020-08-27 17:24 Miroslav Šulc
  0 siblings, 0 replies; only message in thread
From: Miroslav Šulc @ 2020-08-27 17:24 UTC (permalink / raw
  To: gentoo-commits

commit:     7bd844625184601f0b423cc42946c01293135cd5
Author:     zongyu <zzy2529420793 <AT> gmail <DOT> com>
AuthorDate: Fri Aug 21 06:25:35 2020 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Sun Aug 23 14:01:15 2020 +0000
URL:        https://gitweb.gentoo.org/proj/java-ebuilder.git/commit/?id=7bd84462

rewrite scripts/*

use Makefile to drive the process of generating maven overlay

Signed-off-by: zongyu <zzy2529420793 <AT> gmail.com>

 scripts.new/bin/compare-maven-version              |  102 +
 scripts.new/bin/fill-cache                         |   55 +
 scripts.new/bin/simple-xml-formatter               |   38 +
 scripts.new/bin/tree-wrapper.sh                    |   19 +
 scripts.new/bin/tree.sh                            |  284 +
 scripts.new/movl                                   |   43 +
 scripts.new/resources/Makefiles/Makefile           |   17 +
 scripts.new/resources/Makefiles/cache.mk           |   25 +
 scripts.new/resources/Makefiles/environment.mk     |   38 +
 scripts.new/resources/Makefiles/stage1.mk          |   20 +
 scripts.new/resources/Makefiles/stage2.mk          |   23 +
 scripts.new/resources/resources/LUT                | 7508 ++++++++++++++++++++
 .../gentoo/java/ebuilder/maven/MavenParser.java    |   12 +-
 13 files changed, 8175 insertions(+), 9 deletions(-)

diff --git a/scripts.new/bin/compare-maven-version b/scripts.new/bin/compare-maven-version
new file mode 100755
index 0000000..de0ab47
--- /dev/null
+++ b/scripts.new/bin/compare-maven-version
@@ -0,0 +1,102 @@
+#!/usr/bin/env python3
+# -*- coding:utf-8 -*-
+
+import re
+import sys
+import argparse
+
+MAVEN_VERSION = f"^v?(\d+)(?:\.(\d+))?(?:(?:\.|b|beta)(\d+))?(?:[\.-]?(.*))?$"
+MAVEN_RANGE = f"[\[\(](.*), *(.*?)[\]\)]"
+
+
+class MavenSingleVersion():
+
+    def __init__(self, version_string):
+        self.version = []
+        version_match = re.match(MAVEN_VERSION, version_string)
+        for i in range(1, 4):
+            tmp = 0 if isinstance(version_match[i], type(
+                None)) else int(version_match[i])
+            self.version.append(tmp)
+
+    def __lt__(self, alien):
+        for i in range(3):
+            if self.version[i] == alien.version[i]:
+                continue
+            else:
+                return self.version[i] < alien.version[i]
+        return False
+
+    def __gt__(self, alien):
+        for i in range(3):
+            if self.version[i] == alien.version[i]:
+                continue
+            else:
+                return self.version[i] > alien.version[i]
+        return False
+
+    def __le__(self, alien):
+        for i in range(3):
+            if self.version[i] == alien.version[i]:
+                continue
+            else:
+                return self.version[i] < alien.version[i]
+        return True
+
+    def __ge__(self, alien):
+        for i in range(3):
+            if self.version[i] == alien.version[i]:
+                continue
+            else:
+                return self.version[i] > alien.version[i]
+        return True
+
+    def __eq__(self, alien):
+        for i in range(3):
+            if self.version[i] == alien.version[i]:
+                continue
+            else:
+                return False
+        return True
+
+
+class MavenVersion():
+    def __init__(self, version_string):
+        range_match = re.match(MAVEN_RANGE, version_string)
+
+        if isinstance(range_match, type(None)):
+            self.min = MavenSingleVersion(version_string)
+            self.max = MavenSingleVersion("99999999.99999999.99999999")
+        else:
+            try:
+                self.min = MavenSingleVersion(range_match.group(1))
+            except:
+                self.min = MavenSingleVersion("0.0.0")
+            try:
+                self.max = MavenSingleVersion(range_match.group(2))
+            except:
+                self.max = MavenSingleVersion("99999999.99999999.99999999")
+
+    def match(self, singleVersion):
+        if singleVersion <= self.max and singleVersion >= self.min:
+            return True
+        else:
+            return False
+
+
+parser = argparse.ArgumentParser(
+    description='Compare Maven Version with dependency')
+parser.add_argument('--dep', dest='dep', action='store',
+                    required=True, help='the dependency required')
+parser.add_argument('--maven-version', dest='mv', action='store',
+                    required=True, help='the maven version to be compared')
+
+if __name__ == "__main__":
+    args = parser.parse_args()
+
+    dep = MavenVersion.MavenVersion(args.dep)
+    mv = MavenVersion.MavenSingleVersion(args.mv)
+
+    if dep.max.version[0] != 99999999:
+        print(f"SLOT={dep.min.version[0]}.{dep.min.version[1]}")
+    sys.exit(not dep.match(mv))

diff --git a/scripts.new/bin/fill-cache b/scripts.new/bin/fill-cache
new file mode 100755
index 0000000..ebb8bf9
--- /dev/null
+++ b/scripts.new/bin/fill-cache
@@ -0,0 +1,55 @@
+#!/usr/bin/env python3
+# -*- coding:utf-8 -*-
+
+import csv
+import argparse
+import json
+
+
+def import_LUT(src):
+    with open(src) as srcf:
+        return json.loads(srcf.read())
+
+
+def lookup(LUT, category, pkg, SLOT):
+    try:
+        return LUT[category][pkg][SLOT]
+    except:
+        return []
+
+
+parser = argparse.ArgumentParser(
+    description='Lookup [groupId][artifactId] related to [category][pkg name] and fill a new cache')
+parser.add_argument('--src-cache', dest='src', action='store',
+                    required=True, help='source cache file, with no (groupId, artifactId)')
+parser.add_argument('--dst-cache', dest='dst', action='store',
+                    required=True, help='the cache have (groupId, artifactId)')
+parser.add_argument('--LUT', dest='lut', action='store',
+                    required=True, help='the lookup table mapping Gentoo pkgs and Maven pkgs')
+
+if __name__ == '__main__':
+    args = parser.parse_args()
+
+    LUT = import_LUT(args.lut)
+
+    old_cache = csv.reader(
+        open(args.src, 'r'),
+        delimiter=':')
+    new_cache = csv.writer(
+        open(args.dst, 'w'),
+        delimiter=':',
+        lineterminator='\n')
+
+    for line in old_cache:
+        if len(line) == 1:
+            new_cache.writerow(line)
+        elif line[0].startswith('#'):
+            new_cache.writerow(line)
+        elif line[5]:
+            # if it already has an equibalent groupId
+            new_cache.writerow(line)
+        else:
+            for equiv_id in lookup(LUT, line[0], line[1], line[3]):
+                line[5:7] = equiv_id
+                line[7] = line[2]
+                new_cache.writerow(line)

diff --git a/scripts.new/bin/simple-xml-formatter b/scripts.new/bin/simple-xml-formatter
new file mode 100755
index 0000000..410ead7
--- /dev/null
+++ b/scripts.new/bin/simple-xml-formatter
@@ -0,0 +1,38 @@
+#!/usr/bin/env python3
+# -*- coding:utf-8 -*-
+
+'''
+Make an xml file parsable for Java.
+'''
+
+import sys
+
+try:
+    xml_file = sys.argv[1]
+    if xml_file == "-h" or xml_file == "--help":
+        raise TypeError
+except:
+    print("Usage: simple-xml-formatter <file.xml>")
+    sys.exit()
+
+# remove strange lines that do not start with "<" and locate
+# before the begining or after the ending of an xml file.
+def purify_xml(lines, order = 'f'):
+    if order == 'r':
+        order = range(len(lines))
+    else:
+        order = reversed(range(len(lines)))
+
+    for i in order:
+        if lines[i].startswith('<'):
+            break
+        else:
+            lines[i] = ''
+
+with open(xml_file) as f:
+    lines = f.readlines()
+    purify_xml(lines)
+    purify_xml(lines, 'r')
+ 
+with open(xml_file, 'w') as f:
+    f.writelines(lines)

diff --git a/scripts.new/bin/tree-wrapper.sh b/scripts.new/bin/tree-wrapper.sh
new file mode 100755
index 0000000..259bf3f
--- /dev/null
+++ b/scripts.new/bin/tree-wrapper.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+[[ -z "${CUR_STAGE_DIR}" ]] && exit 1
+[[ -z "${CONFIG}" ]] && exit 1
+
+source "${CONFIG}"
+
+CUR_STAGE_DIR=$(python -c "print('${CUR_STAGE_DIR}')")
+
+mkdir -p "${POMDIR}"
+mkdir -p "${CUR_STAGE_DIR}"
+
+for artifact in $MAVEN_ARTS; do
+    $TSH $artifact
+    if [[ $? -ne 0 ]]; then
+        echo [!] While processing $artifact, TSH returned an error
+        exit 1
+    fi
+done

diff --git a/scripts.new/bin/tree.sh b/scripts.new/bin/tree.sh
new file mode 100755
index 0000000..00eb870
--- /dev/null
+++ b/scripts.new/bin/tree.sh
@@ -0,0 +1,284 @@
+#!/bin/bash
+# start from the root of a maven artifact and recursively resolve its
+# dependencies.
+
+CONFIG=${CONFIG:-/etc/java-ebuilder.conf}
+CUR_STAGE=${CUR_STAGE:-stage1}
+DEFAULT_CATEGORY=${DEFAULT_CATEGORY:-app-maven}
+REPOSITORY=${REPOSITORY:-"https://repo1.maven.org/maven2"}
+
+source $CONFIG
+
+tsh_log() {
+    [[ ! -z "${TSH_NODEBUG}" ]] || echo [x] $@
+}
+
+tsh_err() {
+    echo -e "\033[31m[!]" $@ "\033[0m" 1>&2
+}
+
+# convert MavenVersion to PortageVersion
+sver() {
+    PV=$1
+    # com.github.lindenb:jbwa:1.0.0_ppc64
+    PV=${PV/_/.}
+    # plexus-container-default 1.0-alpha-9-stable-1
+    PV=${PV/-stable-/.}
+    PV=$(sed -r 's/[.-]?alpha[-.]?/_alpha/' <<< ${PV})
+    # wagon-provider-api 1.0-beta-7
+    # com.google.cloud.datastore:datastore-v1beta3-proto-client:1.0.0-beta.2
+    # com.google.cloud.datastore:datastore-v1beta3-protos:1.0.0-beta
+    PV=$(sed -r 's/[.-]?beta[-.]?/_beta/' <<< ${PV})
+    # aopalliance-repackaged 2.5.0-b16
+    PV=${PV/-b/_beta}
+    # com.google.auto.service:auto-service:1.0-rc2
+    PV=${PV/-rc/_rc}
+    # cdi-api 1.0-SP4
+    PV=${PV/-SP/_p}
+    # org.seqdoop:cofoja:1.1-r150
+    PV=${PV/-rev/_p}
+    PV=${PV/-r/_p}
+    PV=${PV/.v/_p}
+    # javax.xml.stream:stax-api:1.0-2
+    PV=${PV//-/.}
+    # .Final .GA -incubating means nothing
+    PV=${PV%.[a-zA-Z]*}
+    # com.google.cloud.genomics:google-genomics-dataflow:v1beta2-0.15 -> 1.2.0.15
+    # plexus-container-default 1.0-alpha-9-stable-1 -> 1.0.9.1
+    while [[ ${PV} != ${PV0} ]]; do
+        PV0=${PV}
+        PV=$(sed -r 's/_(rc|beta|alpha|p)(.*\..*)/.\2/' <<< ${PV0})
+    done
+    # remove all non-numeric charactors before _
+    # org.scalamacros:quasiquotes_2.10:2.0.0-M8
+    if [[ ${PV} = *_* ]]; then
+        PV=$(sed 's/[^.0-9]//g' <<< ${PV/_*/})_${PV/*_/}
+    else
+        PV=$(sed 's/[^.0-9]//g' <<< ${PV})
+    fi
+    # if it generates multiple dots, reduce them into single dot
+    PV=$(sed 's/\.\+/\./g' <<< ${PV})
+    # if it ends with ".", delete the "."
+    sed 's/\.$//' <<< ${PV}
+}
+
+# get an existing maven version
+# if MAVEN_FORCE_VERSION is not set,
+# it will try to get the latest version via metadata.xml
+get_maven() {
+    tsh_log get_maven: MV_RANGE = ${MV}, MID = ${PG}:${MA}
+    local MV_RANGE=${MV} FOUND_JAR
+    if [[ -z "${MAVEN_FORCE_VERSION}" ]]; then
+        local nversions=$(xmllint --xpath\
+                "/metadata/versioning/versions/version/text()"\
+                "${ARTIFACT_METADATA}"\
+                | wc -l)
+    else
+        local nversions=1
+    fi
+
+    for line_number in $(seq ${nversions} -1 1); do
+        if [[ -z "${MAVEN_FORCE_VERSION}" ]]; then
+            MV=$(xmllint --xpath "/metadata/versioning/versions/version/text()"\
+                    "${ARTIFACT_METADATA}"\
+                    | awk "NR==${line_number}{print $1}")
+            if compare-maven-version 2>&1 1>/dev/null; then
+                TMP_SLOT=$(compare-maven-version --dep "${MV_RANGE}" --maven-version ${MV}) || continue
+            fi
+            eval $TMP_SLOT
+            [[ ! -z ${TMP_SLOT} ]] \
+                    && tsh_log "Setting SLOT of $MA to $TMP_SLOT, because dependency ${MV_RANGE} incicates so..."
+        fi
+
+        MID=${PG}:${MA}:${MV}
+        PV=$(sver ${MV})
+        M=${MA}-${MV}
+        SRC_URI="${REPOSITORY}/${WORKDIR}/${MV}/${M}-sources.jar"
+        POM_URI="${REPOSITORY}/${WORKDIR}/${MV}/${M}.pom"
+        if ! wget -q --spider ${SRC_URI}; then
+            TMP_SRC_URI=${SRC_URI/-sources.jar/.jar}
+            if wget -q --spider ${TMP_SRC_URI}; then
+                SRC_URI=${TMP_SRC_URI}
+                PA=${PA}
+                return 0
+            fi
+        else
+            return 0
+        fi
+    done
+
+    # if we cannot found a suitble version
+    return 1
+}
+
+
+# generate ebuild file
+gebd() {
+    tsh_log "gebd: MID is $PG:$MA:$MV"
+    local WORKDIR=${PG//./\/}/${MA} MID
+    local CATEGORY PA SLOT
+
+    # spark-launcher_2.11 for scala 2.11
+    eval $(sed -nr 's,([^_]*)(_(.*))?,PA=\1 SLOT=\3,p' <<< ${MA})
+    [[ -z "${SLOT}" ]] && eval $(sed -nr 's,(.*)-(([0-9]+\.)?[0-9]+),PA=\1 SLOT=\2,p' <<< ${MA})
+    [[ -z "${SLOT}" ]] && PA=${MA}
+    PA=${PA//./-}
+    PA=${PA//_/-}
+
+    # override PA and SLOT if MAVEN_FORCE_PA and MAVEN_FORCE_SLOT by our own
+    [[ ! -z "${MAVEN_FORCE_PA}" ]] && PA=${MAVEN_FORCE_PA} && unset MAVEN_FORCE_PA
+    [[ ! -z "${MAVEN_FORCE_SLOT}" ]] && SLOT=${MAVEN_FORCE_SLOT} && unset MAVEN_FORCE_SLOT
+
+    # assign a category if it exists in cache
+    CATEGORY=$(grep "${PG}:${MA}:" "${CACHEDIR}"/${CUR_STAGE}-cache | awk -F: 'NR==1{print $1}')
+    CATEGORY=${CATEGORY:-${DEFAULT_CATEGORY}}
+
+    tsh_log "gebd: CATEGORY is ${CATEGORY}, PA is ${PA}"
+    if grep -q "${CATEGORY}:${PA}:" \
+        "${CACHEDIR}"/${CUR_STAGE}-maven-cache 2>/dev/null; then
+        if ! grep -q "${CATEGORY}:${PA}:.*:${PG}:${MA}" \
+            "${CACHEDIR}"/${CUR_STAGE}-maven-cache 2>/dev/null ; then
+            local pa_prefix=${PG//./-}
+            pa_prefix=${pa_prefix//_/-}
+            PA="${pa_prefix}-${PA}"
+        fi
+    fi
+
+    local METADATA_URI="${REPOSITORY}/${WORKDIR}/maven-metadata.xml"
+    local ARTIFACT_METADATA="${POMDIR}/metadata-${PG}-${MA}.xml"
+    if [[ ! -f ${ARTIFACT_METADATA} ]]; then
+        pushd "${POMDIR}" > /dev/null
+        wget -O ${ARTIFACT_METADATA} ${METADATA_URI} -q || rm -f ${ARTIFACT_METADATA}
+        popd > /dev/null
+    fi
+
+    local MID PV M SRC_URI POM_URI
+
+    # resolve exactly the Maven version required by maven
+    # if it failed, try to get an available maven artifact from metadata.xml
+    MAVEN_FORCE_VERSION=1 get_maven || get_maven
+
+    if [[ ! -f "${POMDIR}"/${M}.pom ]]; then
+        pushd "${POMDIR}" > /dev/null
+        wget ${POM_URI}
+
+        # 3rd party plugin not needed here
+        # distributionManagement is invalid for maven 3
+        # net.sf.jtidy:jtidy:r938 version is not maven-compliant
+        sed -e '/<packaging>bundle/d' \
+            -e '/<distributionManagement>/,/<\/distributionManagement>/d' \
+            -e '/<build>/,/<\/build>/d' \
+            -e '/<modules>/,/<\/modules>/d' \
+            -e 's,<version>r938</version>,<version>1.0</version>,' \
+            -i ${M}.pom
+        popd > /dev/null
+    fi
+
+    local P=${PA}-${PV}
+    local cur_stage_ebd="${CUR_STAGE_DIR}"/${CATEGORY}/${PA}/${P}.ebuild
+    local final_stage_ebd="${MAVEN_OVERLAY_DIR}"/${CATEGORY}/${PA}/${P}.ebuild
+
+    # refresh cache before execute java-ebuilder
+    pushd "${CACHEDIR}" > /dev/null
+    cat "${GENTOO_CACHE}" ${CUR_STAGE}-maven-cache > ${CUR_STAGE}-cache
+    popd > /dev/null
+
+    # generate ebuild file if it does not exist
+    if [[ ! -f "${cur_stage_ebd}" ]]; then
+        mkdir -p $(dirname ${cur_stage_ebd})
+        tsh_log "java-ebuilder: generage ebuild files for ${MID} in ${CUR_STAGE}"
+        java-ebuilder -p "${POMDIR}"/${M}.pom -e "${cur_stage_ebd}" -g --workdir "${POMDIR}" \
+                      -u ${SRC_URI} --slot ${SLOT:-0} --keywords ~amd64 \
+                      --cache-file "${CACHEDIR}"/${CUR_STAGE}-cache
+        if [[ "$?" -eq 0 ]]; then
+            tsh_log "java-ebuilder Returns $?"
+        else
+            tsh_err "java-ebuilder Returns $?"
+            # trigger cache-rebuild
+            touch "${CACHE_TIMESTAMP}"
+            # Remove lines that triggers mfill() to avoid meeting the problematic artifact again
+            find "${CUR_STAGE_DIR}" -type f -name \*.ebuild \
+                    -exec sed -i "s/^.*${MID}.*not-found.*$//" {} \;
+            tsh_err "The problematic artifact is ${MID},"
+            tsh_err "please write it (or its parent) a functional ebuild,"
+            tsh_err "make it a part of your overlay (the overlay does not need to be ${MAVEN_OVERLAY_DIR}),"
+            tsh_err "and run \`movl build\` afterwards"
+            tsh_err ""
+            tsh_err "P.S. DO NOT forget to assign a MAVEN_ID to the ebuild"
+            tsh_err "P.P.S. To make \`movl build\` deal with the dependency of ${MID},"
+            tsh_err "you need to add MAVEN_IDs of the dependencies to"
+            tsh_err "your MAVEN_ARTS variable in ${CONFIG}"
+            exit 1
+        fi
+    fi
+
+    # update maven-cache after java-ebuilder generate the corresponding ebuild
+    line=${CATEGORY}:${PA}:${PV}:${SLOT:-0}::${MID}
+    if ! grep -q ${line} "${CACHEDIR}"/${CUR_STAGE}-maven-cache 2>/dev/null ; then
+        pushd "${CACHEDIR}" > /dev/null
+        echo ${line} >> ${CUR_STAGE}-maven-cache
+        popd > /dev/null
+    fi
+
+    # filling parent target_line
+    [[ ! -z ${MAKEFILE_DEP} ]] && target_line+="${final_stage_ebd} "
+    [[ -z ${MAKEFILE_DEP} ]] && local target_line+="all: ${final_stage_ebd}\n"
+    # filling my target_line
+    local target_line+="#${final_stage_ebd}"
+    target_line+="\n"
+    target_line+="${final_stage_ebd}: "
+    
+    # resolve the reverse dependency
+    [[ -z "${MAVEN_NODEP}" ]] && MAKEFILE_DEP=1 mfill "${cur_stage_ebd}"
+    
+    target_line+="\n"
+    target_line+="\tmkdir -p $(dirname ${final_stage_ebd})\n"
+    target_line+="\tjava-ebuilder -p \"${POMDIR}\"/${M}.pom -e \"${final_stage_ebd}\" -g --workdir \"${POMDIR}\""
+    target_line+=" -u ${SRC_URI} --slot ${SLOT:-0} --keywords ~amd64"
+    target_line+=" --cache-file \"${CACHEDIR}\"/post-${CUR_STAGE}-cache"
+    if [[ ${SRC_URI} = *-sources.jar ]]; then
+        # inherit java-maven-central to handle src_unpack
+        target_line+=" --from-maven-central --binjar-uri ${SRC_URI/-sources.jar/.jar}\n"
+        target_line+="\n"
+    else
+        # inherit "java-pkg-binjar" if SRC_URI does not point to source code
+        target_line+="\n"
+        target_line+="\tsed -i \"/inherit/s/java-pkg-simple/java-pkg-binjar/\" \"${final_stage_ebd}\"\n"
+        target_line+="\n"
+    fi
+
+    if ! grep -q "#${final_stage_ebd}" ${TARGET_MAKEFILE} 2>/dev/null ; then
+        echo -e $target_line >> ${TARGET_MAKEFILE}
+    fi
+}
+
+# filling dependencies
+mfill() {
+    # recursively fill missing dependencies
+    arts=$(sed -n -r 's,# (test\? )?(.*) -> !!!.*-not-found!!!,\2,p' < $1)
+    tsh_log "mfill: dealing with $1"
+    if [[ -z "${arts}" ]]; then
+        return # no need to java-ebuilder again
+    else
+        for a in ${arts}; do
+            eval $(awk -F":" '{print "PG="$1, "MA="$2, "MV=""\x27"$3"\x27"}' <<< ${a})
+            gebd
+        done
+        return
+    fi
+}
+
+if [[ ! -z ${JUST_MFILL} ]]; then
+    mfill $1
+    exit $?
+elif [[ $1 == *.ebuild ]]; then
+    eval $(grep MAVEN_ID $1)
+    eval $(grep MAVEN_FORCE_PA $1)
+    eval $(grep MAVEN_FORCE_CATEGORY $1)
+    #rm -f $1
+else
+    MAVEN_ID=$1
+fi
+eval $(awk -F":" '{print "PG="$1, "MA="$2, "MV="$3}' <<< ${MAVEN_ID})
+gebd
+tsh_log "Tree.sh: reaching the end of the script"

diff --git a/scripts.new/movl b/scripts.new/movl
new file mode 100755
index 0000000..1f8ae3d
--- /dev/null
+++ b/scripts.new/movl
@@ -0,0 +1,43 @@
+#!/bin/bash
+EROOT=$(python -c "import portage;print(portage.root)")
+[[ ${CONFIG} ]] && CONFIG=$(printf "%q\n" "$(realpath "${CONFIG}")")
+export PATH="${PATH}:${EROOT}/usr/lib/java-ebuilder/bin"
+
+if [[ $# -gt 0 ]]; then
+    if [[ "$1" == "-h" || "$1" == "--help" ]]; then
+        echo This is a helper to automagically generate ebuild for 
+        echo Maven artifacts defined in ${EROOT}/etc/java-ebuilder.conf
+        echo
+        echo Usage: movl [options] [target] ...
+        echo Options: please refer to \`make -h\`
+        echo Targets:
+        echo "  all                alias for stage2 and post-stage2"
+        echo "  build              alias for stage2 and post-stage2"
+        echo "  stage1             resolve the dependency graph of the provided Maven artifact"
+        echo "  stage2             generate ebuild files of the whole dep graph"
+        echo "  force-stage2       force generate stage2 ebuild files"
+        echo "  post-stage2        generate digests for ebuilds"
+        echo "  clean-cache        remove cache files"
+        echo "  clean-stage1       remove stage1-related stuffs"
+        echo "  clean-stage2       remove stage2-related stuffs"
+        echo "  clean              remove all the generated stuffs"
+        echo "Bash Variables:"
+        echo "  CONFIG             path to the config file"
+        echo "                     default: ${EROOT}/etc/java-ebuilder.conf"
+        echo "  DEFAULT_CATEGORY   the default category of the generated ebuilds"
+        echo "                     default: app-maven"
+        echo "  MAVEN_NODEP        set this variable to stop tree.sh from recursively resolving"
+        echo "                     the dependencies of MAVEN_ARTS"
+        echo "  REPOSITORY         where to find the pom and jar files"
+        echo "                     default: https://repo1.maven.org/maven2"
+        echo "  TSH_NODEBUG        set this variable to make \`movl build\` more silent"
+        exit
+    fi
+else
+    movl -h
+    exit 0
+fi
+
+cd "${EROOT}/usr/lib/java-ebuilder/Makefiles"
+make $@
+

diff --git a/scripts.new/resources/Makefiles/Makefile b/scripts.new/resources/Makefiles/Makefile
new file mode 100644
index 0000000..26e00a1
--- /dev/null
+++ b/scripts.new/resources/Makefiles/Makefile
@@ -0,0 +1,17 @@
+
+MAKEFILE_DIR?=./
+
+include ${MAKEFILE_DIR}/environment.mk
+include ${MAKEFILE_DIR}/cache.mk
+include ${MAKEFILE_DIR}/stage1.mk
+include ${MAKEFILE_DIR}/stage2.mk
+
+#include ${STAGE2_MAKEFILE}
+
+.PHONY: all build clean
+
+all: build
+
+build: stage2 post-stage2
+
+clean: clean-cache clean-stage1 clean-stage2

diff --git a/scripts.new/resources/Makefiles/cache.mk b/scripts.new/resources/Makefiles/cache.mk
new file mode 100644
index 0000000..459bab9
--- /dev/null
+++ b/scripts.new/resources/Makefiles/cache.mk
@@ -0,0 +1,25 @@
+${CACHE_TIMESTAMP}:
+	touch "$@"
+
+${PRE_STAGE1_CACHE}.raw: ${CACHE_TIMESTAMP}
+	args=" --refresh-cache";\
+	for repo in ${REPOS}; do\
+		args+=" -t $${repo}";\
+	done;\
+	java-ebuilder $${args} --cache-file "$@"
+
+${PRE_STAGE1_CACHE}: ${PRE_STAGE1_CACHE}.raw
+	${FILL_CACHE} --dst-cache "$@" --src-cache "$^" --LUT "${LUTFILE}"
+
+${POST_STAGE1_CACHE}.raw: ${STAGE2_MAKEFILE}
+	args=" --refresh-cache -t ${STAGE1_DIR}";\
+	for repo in ${REPOS}; do\
+		args+=" -t $${repo}";\
+	done;\
+	java-ebuilder $${args} --cache-file "$@"
+
+${POST_STAGE1_CACHE}: ${POST_STAGE1_CACHE}.raw
+	${FILL_CACHE} --dst-cache "$@" --src-cache "$^" --LUT "${LUTFILE}"
+
+clean-cache:
+	if [[ -d ${CACHE_DIR} ]]; then touch ${CACHE_DIR}/pseudo; rm ${CACHE_DIR}/* -r; fi

diff --git a/scripts.new/resources/Makefiles/environment.mk b/scripts.new/resources/Makefiles/environment.mk
new file mode 100644
index 0000000..4ce014a
--- /dev/null
+++ b/scripts.new/resources/Makefiles/environment.mk
@@ -0,0 +1,38 @@
+# Variables to drive tree.sh
+
+# determine EROOT
+# ${EROOT} with '\' to deal with spaces
+EROOT=$(shell printf "%q\n" \
+	"$(shell python -c "import portage;print(portage.root)")")
+# quoted verion of ${EROOT}
+EROOT_SH="$(shell python -c "import portage;print(portage.root)")"
+
+# java-ebuilder.conf
+CONFIG?=${EROOT}/etc/java-ebuilder.conf
+include ${CONFIG}
+
+# Aritifact whose dependency to be fill
+MAVEN_OVERLAY_DIR?=${EROOT}/var/lib/java-ebuilder/maven
+POMDIR?=${EROOT}/var/lib/java-ebuilder/poms
+CACHE_DIR=$(shell printf "%q\n" ${CACHEDIR})
+
+# helpers
+TSH=${EROOT}/usr/lib/java-ebuilder/bin/tree.sh
+TSH_WRAPPER=${EROOT}/usr/lib/java-ebuilder/bin/tree-wrapper.sh
+FILL_CACHE=${EROOT}/usr/lib/java-ebuilder/bin/fill-cache
+
+# stage
+STAGE1_DIR?=${EROOT}/var/lib/java-ebuilder/stage1/
+STAGE2_MAKEFILE?=${EROOT}/var/lib/java-ebuilder/stage1/stage2.mk
+
+# PORTAGE REPOS
+## grab all the repositories installed on this system
+REPOS?=$(shell portageq get_repo_path ${EROOT_SH}\
+	$(shell portageq get_repos ${EROOT_SH}))
+REPOS+=${MAVEN_OVERLAY_DIR}
+
+# cache
+LUTFILE?=${EROOT}/usr/lib/java-ebuilder/resources/LUT
+CACHE_TIMESTAMP?=${CACHE_DIR}/cache.stamp
+PRE_STAGE1_CACHE?=${CACHE_DIR}/pre-stage1-cache
+POST_STAGE1_CACHE?=${CACHE_DIR}/post-stage1-cache

diff --git a/scripts.new/resources/Makefiles/stage1.mk b/scripts.new/resources/Makefiles/stage1.mk
new file mode 100644
index 0000000..eeaa4d3
--- /dev/null
+++ b/scripts.new/resources/Makefiles/stage1.mk
@@ -0,0 +1,20 @@
+
+.PHONY: stage1 clean-stage1
+
+${STAGE2_MAKEFILE}: ${PRE_STAGE1_CACHE}
+	mkdir -p ${STAGE1_DIR}
+	mkdir -p $(shell dirname $@)
+	CUR_STAGE_DIR="${STAGE1_DIR}" CUR_STAGE=stage1\
+		CACHE_TIMESTAMP="$(shell echo ${CACHE_TIMESTAMP})"\
+		GENTOO_CACHE="$(shell echo ${PRE_STAGE1_CACHE})"\
+		TARGET_MAKEFILE="$@"\
+		TSH="${TSH}" CONFIG="${CONFIG}"\
+		"${TSH_WRAPPER}"
+	touch "$@"
+
+stage1: ${STAGE2_MAKEFILE}
+
+clean-stage1:
+	if [[ -f ${STAGE2_MAKEFILE} ]]; then rm ${STAGE2_MAKEFILE}; fi
+	if [[ -d ${STAGE1_DIR} ]]; then rm ${STAGE1_DIR} -r; fi
+	if [[ -d ${POMDIR} ]]; then touch ${POMDIR}/pseudo; rm ${POMDIR}/* -r; fi

diff --git a/scripts.new/resources/Makefiles/stage2.mk b/scripts.new/resources/Makefiles/stage2.mk
new file mode 100644
index 0000000..09518dc
--- /dev/null
+++ b/scripts.new/resources/Makefiles/stage2.mk
@@ -0,0 +1,23 @@
+.PHONY: stage2 clean-stage2 force-stage2 post-stage2
+
+stage2: ${STAGE2_MAKEFILE} ${POST_STAGE1_CACHE}
+	make -f ${STAGE2_MAKEFILE} all -j`nproc`
+
+force-stage2: ${STAGE2_MAKEFILE} ${POST_STAGE1_CACHE}
+	make -f ${STAGE2_MAKEFILE} all -j`nproc` -B
+
+post-stage2:
+	for dir in "${MAVEN_OVERLAY_DIR}"/*; do \
+		find $${dir} -type f -name \*.ebuild | grep . || continue;\
+		pushd $${dir} > /dev/null;\
+		parallel ebuild '$$(echo {}/*.ebuild | cut -d\  -f1)' digest ::: *;\
+		popd > /dev/null;\
+	done
+
+clean-stage2:
+	# just to make sure "${MAVEN_OVERLAY_DIR}" points to an overlay
+	[[ -f "${MAVEN_OVERLAY_DIR}"/profiles/repo_name ]] &&\
+		find "${MAVEN_OVERLAY_DIR}" -type f \
+		\( -name \*.ebuild \
+		-o  -name Manifest \)\
+		-delete

diff --git a/scripts.new/resources/resources/LUT b/scripts.new/resources/resources/LUT
new file mode 100644
index 0000000..3c471f3
--- /dev/null
+++ b/scripts.new/resources/resources/LUT
@@ -0,0 +1,7508 @@
+{
+    "app-portage": {
+        "java-ebuilder": {
+            "0": [
+                [
+                    "org.gentoo",
+                    "java-ebuilder"
+                ]
+            ]
+        }
+    },
+    "dev-java": {
+        "absolutelayout": {
+            "0": [
+                [
+                    "org.netbeans.external",
+                    "AbsoluteLayout"
+                ]
+            ]
+        },
+        "airline": {
+            "0": [
+                [
+                    "io.airlift",
+                    "airline"
+                ]
+            ]
+        },
+        "android-util": {
+            "0": [
+                [
+                    "com.google.android",
+                    "android"
+                ]
+            ]
+        },
+        "animal-sniffer-annotations": {
+            "0": [
+                [
+                    "org.codehaus.mojo",
+                    "animal-sniffer"
+                ],
+                [
+                    "org.codehaus.mojo",
+                    "animal-sniffer-annotations"
+                ],
+                [
+                    "org.codehaus.mojo",
+                    "animal-sniffer-ant-tasks"
+                ],
+                [
+                    "org.codehaus.mojo",
+                    "animal-sniffer-enforcer-rule"
+                ],
+                [
+                    "org.codehaus.mojo",
+                    "animal-sniffer-maven-plugin"
+                ],
+                [
+                    "org.codehaus.mojo",
+                    "animal-sniffer-parent"
+                ],
+                [
+                    "org.codehaus.mojo",
+                    "java-boot-classpath-detector"
+                ]
+            ]
+        },
+        "annogen": {
+            "0": [
+                [
+                    "annogen",
+                    "annogen"
+                ]
+            ]
+        },
+        "ant-antlr": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-antlr"
+                ]
+            ]
+        },
+        "ant-apache-bcel": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-apache-bcel"
+                ]
+            ]
+        },
+        "ant-apache-bsf": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-apache-bsf"
+                ]
+            ]
+        },
+        "ant-apache-log4j": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-apache-log4j"
+                ]
+            ]
+        },
+        "ant-apache-oro": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-apache-oro"
+                ]
+            ]
+        },
+        "ant-apache-regexp": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-apache-regexp"
+                ]
+            ]
+        },
+        "ant-apache-resolver": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-apache-resolver"
+                ]
+            ]
+        },
+        "ant-apache-xalan2": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-apache-xalan2"
+                ]
+            ]
+        },
+        "ant-commons-logging": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-commons-logging"
+                ]
+            ]
+        },
+        "ant-commons-net": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-commons-net"
+                ]
+            ]
+        },
+        "ant-contrib": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-contrib"
+                ]
+            ]
+        },
+        "ant-core": {
+            "0": [
+                [
+                    "ant",
+                    "ant"
+                ],
+                [
+                    "org.apache.ant",
+                    "ant"
+                ]
+            ]
+        },
+        "ant-eclipse-ecj": {
+            "4.10": [
+                [
+                    "org.apache.ant",
+                    "ant-eclipse-ecj"
+                ]
+            ],
+            "4.13": [
+                [
+                    "org.apache.ant",
+                    "ant-eclipse-ecj"
+                ]
+            ],
+            "4.2": [
+                [
+                    "org.apache.ant",
+                    "ant-eclipse-ecj"
+                ]
+            ],
+            "4.4": [
+                [
+                    "org.apache.ant",
+                    "ant-eclipse-ecj"
+                ]
+            ],
+            "4.5": [
+                [
+                    "org.apache.ant",
+                    "ant-eclipse-ecj"
+                ]
+            ]
+        },
+        "ant-ivy": {
+            "0": [
+                [
+                    "org.apache.ivy",
+                    "ivy"
+                ],
+                [
+                    "org.apache.ant",
+                    "ivy"
+                ]
+            ],
+            "2": [
+                [
+                    "org.apache.ivy",
+                    "ivy"
+                ],
+                [
+                    "org.apache.ant",
+                    "ivy"
+                ]
+            ]
+        },
+        "ant-jai": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-jai"
+                ]
+            ]
+        },
+        "ant-javamail": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-javamail"
+                ]
+            ]
+        },
+        "ant-jdepend": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-jdepend"
+                ]
+            ]
+        },
+        "ant-jmf": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-jmf"
+                ]
+            ]
+        },
+        "ant-jsch": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-jsch"
+                ]
+            ]
+        },
+        "ant-junit": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-junit"
+                ]
+            ]
+        },
+        "ant-junit4": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-junit4"
+                ]
+            ]
+        },
+        "ant-junitlauncher": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-junitlauncher"
+                ]
+            ]
+        },
+        "antlr": {
+            "0": [
+                [
+                    "antlr",
+                    "antlr"
+                ]
+            ],
+            "3": [
+                [
+                    "org.antlr",
+                    "antlr"
+                ],
+                [
+                    "org.antlr",
+                    "antlr-runtime"
+                ]
+            ],
+            "3.5": [
+                [
+                    "org.antlr",
+                    "antlr"
+                ],
+                [
+                    "org.antlr",
+                    "antlr-runtime"
+                ]
+            ],
+            "4": [
+                [
+                    "org.antlr",
+                    "antlr4"
+                ],
+                [
+                    "org.antlr",
+                    "antlr4-runtime"
+                ]
+            ]
+        },
+        "ant-owanttask": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-owanttask"
+                ]
+            ]
+        },
+        "ant-swing": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-swing"
+                ]
+            ]
+        },
+        "ant-testutil": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-testutil"
+                ]
+            ]
+        },
+        "ant-xz": {
+            "0": [
+                [
+                    "org.apache.ant",
+                    "ant-xz"
+                ]
+            ]
+        },
+        "aopalliance": {
+            "1": [
+                [
+                    "aopalliance",
+                    "aopalliance"
+                ]
+            ]
+        },
+        "appframework": {
+            "0": [
+                [
+                    "net.java.dev.appframework",
+                    "appframework"
+                ]
+            ]
+        },
+        "apple-java-extensions-bin": {
+            "0": [
+                [
+                    "com.apple",
+                    "applejavaextensions"
+                ],
+                [
+                    "com.apple",
+                    "AppleJavaExtensions"
+                ]
+            ]
+        },
+        "apt-mirror": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "args4j": {
+            "2": [
+                [
+                    "args4j",
+                    "args4j"
+                ]
+            ]
+        },
+        "aspectj": {
+            "0": [
+                [
+                    "org.aspectj",
+                    "aspectjweaver"
+                ]
+            ]
+        },
+        "assertj-core": {
+            "2": [
+                [
+                    "org.assertj",
+                    "assertj-core"
+                ]
+            ]
+        },
+        "avalon-framework": {
+            "4.1": [
+                [
+                    "avalon-framework",
+                    "avalon-framework"
+                ]
+            ],
+            "4.2": [
+                [
+                    "org.apache.avalon.framework",
+                    "avalon-framework-api"
+                ],
+                [
+                    "org.apache.avalon.framework",
+                    "avalon-framework-impl"
+                ]
+            ]
+        },
+        "avalon-logkit": {
+            "2.0": [
+                [
+                    "avalon-logkit",
+                    "avalon-logkit"
+                ],
+                [
+                    "org.apache.avalon.logkit",
+                    "avalon-logkit"
+                ]
+            ]
+        },
+        "backport-util-concurrent": {
+            "0": [
+                [
+                    "backport-util-concurrent",
+                    "backport-util-concurrent"
+                ]
+            ]
+        },
+        "batik": {
+            "1.9": [
+                [
+                    "org.apache.xmlgraphics",
+                    "batik"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-all"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-anim"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-awt-util"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-bridge"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-codec"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-constants"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-css"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-dom"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-ext"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-extension"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-gui-util"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-gvt"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-i18n"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-parser"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-rasterizer"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-rasterizer-ext"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-script"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-slideshow"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-squiggle"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-squiggle-ext"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-svgbrowser"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-svg-dom"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-svggen"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-svgpp"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-svgrasterizer"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-swing"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-test"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-transcoder"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-ttf2svg"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-util"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "batik-xml"
+                ]
+            ]
+        },
+        "bcel": {
+            "0": [
+                [
+                    "org.apache.bcel",
+                    "bcel"
+                ]
+            ]
+        },
+        "bcmail": {
+            "1.38": [
+                [
+                    "org.bouncycastle",
+                    "bcmail-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcmail-jdk15"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcmail-jdk16"
+                ]
+            ],
+            "1.45": [
+                [
+                    "org.bouncycastle",
+                    "bcmail-jdk15"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcmail-jdk16"
+                ]
+            ],
+            "1.50": [
+                [
+                    "org.bouncycastle",
+                    "bcmail-jdk15on"
+                ]
+            ],
+            "1.52": [
+                [
+                    "org.bouncycastle",
+                    "bcmail-jdk15on"
+                ]
+            ]
+        },
+        "bcpg": {
+            "1.50": [
+                [
+                    "org.bouncycastle",
+                    "bcpg-jdk12"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcpg-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcpg-jdk15"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcpg-jdk16"
+                ]
+            ],
+            "1.52": [
+                [
+                    "org.bouncycastle",
+                    "bcpg-jdk12"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcpg-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcpg-jdk15"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcpg-jdk16"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcpg-jdk15on"
+                ]
+            ]
+        },
+        "bcpkix": {
+            "1.50": [
+                [
+                    "org.bouncycastle",
+                    "bcpkix-jdk15on"
+                ]
+            ],
+            "1.52": [
+                [
+                    "org.bouncycastle",
+                    "bcpkix-jdk15on"
+                ]
+            ]
+        },
+        "bcprov": {
+            "1.38": [
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk16"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk12"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15"
+                ]
+            ],
+            "1.40": [
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk16"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk12"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15"
+                ]
+            ],
+            "1.45": [
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk16"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk12"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15"
+                ]
+            ],
+            "1.48": [
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15on"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk12"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk16"
+                ]
+            ],
+            "1.49": [
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15on"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk12"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk16"
+                ]
+            ],
+            "0": [
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15on"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk12"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk16"
+                ]
+            ],
+            "1.50": [
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15on"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk12"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk16"
+                ]
+            ],
+            "1.52": [
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15on"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk12"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk16"
+                ]
+            ],
+            "1.54": [
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk12"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk16"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bcprov-jdk15on"
+                ]
+            ]
+        },
+        "bctsp": {
+            "0": [
+                [
+                    "org.bouncycastle",
+                    "bctsp-jdk14"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bctsp-jdk15"
+                ],
+                [
+                    "org.bouncycastle",
+                    "bctsp-jdk16"
+                ]
+            ]
+        },
+        "beansbinding": {
+            "0": [
+                [
+                    "org.jdesktop",
+                    "beansbinding"
+                ]
+            ]
+        },
+        "blowfishj": {
+            "0": [
+                [
+                    "io.github.dheid",
+                    "blowfishj"
+                ]
+            ]
+        },
+        "bnd-junit": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "bndlib": {
+            "0": [
+                [
+                    "biz.aQute.bnd",
+                    "bndlib"
+                ],
+                [
+                    "biz.aQute",
+                    "bndlib"
+                ]
+            ]
+        },
+        "boilerpipe": {
+            "0": [
+                [
+                    "de.l3s.boilerpipe",
+                    "boilerpipe"
+                ]
+            ]
+        },
+        "boot-bin": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "browserlauncher2": {
+            "1.0": [
+                [
+                    "BrowserLauncher2",
+                    "BrowserLauncher2"
+                ],
+                [
+                    "edu.stanford.ejalbert",
+                    "BrowserLauncher2"
+                ]
+            ]
+        },
+        "bsf": {
+            "2.3": [
+                [
+                    "bsf",
+                    "bsf"
+                ],
+                [
+                    "org.apache.bsf",
+                    "bsf-api"
+                ]
+            ]
+        },
+        "bsh": {
+            "0": [
+                [
+                    "org.apache-extras.beanshell",
+                    "bsh"
+                ]
+            ]
+        },
+        "btf": {
+            "0": [
+                [
+                    "com.github.fge",
+                    "btf"
+                ]
+            ]
+        },
+        "byaccj": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "bytelist": {
+            "0": [
+                [
+                    "org.jruby.extras",
+                    "bytelist"
+                ]
+            ]
+        },
+        "c3p0": {
+            "0": [
+                [
+                    "c3p0",
+                    "c3p0"
+                ],
+                [
+                    "com.mchange",
+                    "c3p0"
+                ]
+            ]
+        },
+        "cal10n": {
+            "0": [
+                [
+                    "ch.qos.cal10n",
+                    "cal10n-api"
+                ]
+            ]
+        },
+        "cdegroot-db": {
+            "1": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "cdi-api": {
+            "0": [
+                [
+                    "javax.enterprise",
+                    "cdi-api"
+                ]
+            ],
+            "1.2": [
+                [
+                    "javax.enterprise",
+                    "cdi-api"
+                ]
+            ]
+        },
+        "cglib": {
+            "3": [
+                [
+                    "cglib",
+                    "cglib"
+                ],
+                [
+                    "cglib",
+                    "cglib-nodep"
+                ]
+            ]
+        },
+        "classmate": {
+            "0": [
+                [
+                    "com.fasterxml",
+                    "classmate"
+                ]
+            ]
+        },
+        "classworlds": {
+            "1.1": [
+                [
+                    "classworlds",
+                    "classworlds"
+                ]
+            ]
+        },
+        "cldc-api": {
+            "1.1": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "codemodel": {
+            "2": [
+                [
+                    "com.sun.codemodel",
+                    "codemodel"
+                ],
+                [
+                    "org.glassfish.jaxb",
+                    "codemodel"
+                ]
+            ]
+        },
+        "cofoja": {
+            "0": [
+                [
+                    "org.huoc",
+                    "cofoja"
+                ]
+            ]
+        },
+        "colt": {
+            "0": [
+                [
+                    "colt",
+                    "colt"
+                ]
+            ]
+        },
+        "commons-beanutils": {
+            "1.7": [
+                [
+                    "commons-beanutils",
+                    "commons-beanutils"
+                ]
+            ]
+        },
+        "commons-chain": {
+            "0": [
+                [
+                    "commons-chain",
+                    "commons-chain"
+                ]
+            ]
+        },
+        "commons-cli": {
+            "1": [
+                [
+                    "commons-cli",
+                    "commons-cli"
+                ]
+            ]
+        },
+        "commons-codec": {
+            "0": [
+                [
+                    "commons-codec",
+                    "commons-codec"
+                ]
+            ]
+        },
+        "commons-collections": {
+            "0": [
+                [
+                    "commons-collections",
+                    "commons-collections"
+                ]
+            ],
+            "4": [
+                [
+                    "org.apache.commons",
+                    "commons-collections4"
+                ]
+            ]
+        },
+        "commons-compress": {
+            "0": [
+                [
+                    "commons-compress",
+                    "commons-compress"
+                ],
+                [
+                    "org.apache.commons",
+                    "commons-compress"
+                ]
+            ]
+        },
+        "commons-configuration": {
+            "0": [
+                [
+                    "commons-configuration",
+                    "commons-configuration"
+                ]
+            ]
+        },
+        "commons-daemon": {
+            "0": [
+                [
+                    "commons-daemon",
+                    "commons-daemon"
+                ]
+            ]
+        },
+        "commons-dbcp": {
+            "2": [
+                [
+                    "commons-dbcp",
+                    "commons-dbcp"
+                ]
+            ]
+        },
+        "commons-dbutils": {
+            "0": [
+                [
+                    "commons-dbutils",
+                    "commons-dbutils"
+                ]
+            ]
+        },
+        "commons-digester": {
+            "0": [
+                [
+                    "commons-digester",
+                    "commons-digester"
+                ]
+            ],
+            "2.1": [
+                [
+                    "commons-digester",
+                    "commons-digester"
+                ]
+            ],
+            "3.2": [
+                [
+                    "org.apache.commons",
+                    "commons-digester3"
+                ]
+            ]
+        },
+        "commons-discovery": {
+            "0": [
+                [
+                    "commons-discovery",
+                    "commons-discovery"
+                ]
+            ]
+        },
+        "commons-el": {
+            "0": [
+                [
+                    "commons-el",
+                    "commons-el"
+                ]
+            ]
+        },
+        "commons-email": {
+            "0": [
+                [
+                    "commons-email",
+                    "commons-email"
+                ]
+            ]
+        },
+        "commons-fileupload": {
+            "0": [
+                [
+                    "commons-fileupload",
+                    "commons-fileupload"
+                ]
+            ]
+        },
+        "commons-graph": {
+            "0": [
+                [
+                    "commons-graph",
+                    "commons-graph"
+                ]
+            ]
+        },
+        "commons-httpclient": {
+            "0": [
+                [
+                    "apache-httpclient",
+                    "commons-httpclient"
+                ]
+            ],
+            "3": [
+                [
+                    "commons-httpclient",
+                    "commons-httpclient"
+                ]
+            ]
+        },
+        "commons-imaging": {
+            "0": [
+                [
+                    "commons-imaging",
+                    "commons-imaging"
+                ]
+            ]
+        },
+        "commons-io": {
+            "1": [
+                [
+                    "commons-io",
+                    "commons-io"
+                ]
+            ]
+        },
+        "commons-jelly": {
+            "1": [
+                [
+                    "commons-jelly",
+                    "commons-jelly"
+                ]
+            ]
+        },
+        "commons-jexl": {
+            "1.0": [
+                [
+                    "commons-jexl",
+                    "commons-jexl"
+                ]
+            ],
+            "2": [
+                [
+                    "org.apache.commons",
+                    "commons-jexl"
+                ]
+            ]
+        },
+        "commons-jxpath": {
+            "0": [
+                [
+                    "commons-jxpath",
+                    "commons-jxpath"
+                ]
+            ]
+        },
+        "commons-lang": {
+            "2.1": [
+                [
+                    "commons-lang",
+                    "commons-lang"
+                ]
+            ],
+            "3.1": [
+                [
+                    "org.apache.commons",
+                    "commons-lang3"
+                ]
+            ],
+            "3.3": [
+                [
+                    "org.apache.commons",
+                    "commons-lang3"
+                ]
+            ]
+        },
+        "commons-launcher": {
+            "0": [
+                [
+                    "commons-launcher",
+                    "commons-launcher"
+                ]
+            ]
+        },
+        "commons-logging": {
+            "0": [
+                [
+                    "commons-logging",
+                    "commons-logging"
+                ]
+            ]
+        },
+        "commons-math": {
+            "2": [
+                [
+                    "commons-math",
+                    "commons-math"
+                ]
+            ],
+            "3": [
+                [
+                    "org.apache.commons",
+                    "commons-math3"
+                ]
+            ],
+            "0": [
+                [
+                    "org.apache.commons",
+                    "commons-math3"
+                ]
+            ]
+        },
+        "commons-net": {
+            "0": [
+                [
+                    "commons-net",
+                    "commons-net"
+                ]
+            ]
+        },
+        "commons-pool": {
+            "0": [
+                [
+                    "commons-pool",
+                    "commons-pool"
+                ]
+            ],
+            "2": [
+                [
+                    "commons-pool",
+                    "commons-pool"
+                ]
+            ]
+        },
+        "commons-primitives": {
+            "0": [
+                [
+                    "commons-primitives",
+                    "commons-primitives"
+                ]
+            ]
+        },
+        "commons-validator": {
+            "0": [
+                [
+                    "commons-validator",
+                    "commons-validator"
+                ]
+            ]
+        },
+        "commons-vfs": {
+            "0": [
+                [
+                    "commons-vfs",
+                    "commons-vfs"
+                ]
+            ],
+            "2": [
+                [
+                    "org.apache.commons",
+                    "commons-vfs2"
+                ]
+            ]
+        },
+        "constantine": {
+            "0": [
+                [
+                    "org.jruby.extras",
+                    "constantine"
+                ]
+            ]
+        },
+        "core-specs-alpha": {
+            "0.1": [
+                [
+                    "org.clojure",
+                    "core.specs.alpha"
+                ]
+            ],
+            "0.2": [
+                [
+                    "org.clojure",
+                    "core.specs.alpha"
+                ]
+            ]
+        },
+        "cortado": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "cpptasks": {
+            "0": [
+                [
+                    "ant-contrib",
+                    "cpptasks"
+                ]
+            ]
+        },
+        "cssparser": {
+            "0": [
+                [
+                    "cssparser",
+                    "cssparser"
+                ],
+                [
+                    "net.sourceforge.cssparser",
+                    "cssparser"
+                ]
+            ]
+        },
+        "dict4j": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "disruptor": {
+            "0": [
+                [
+                    "com.lmax",
+                    "disruptor"
+                ]
+            ]
+        },
+        "dnsjava": {
+            "0": [
+                [
+                    "dnsjava",
+                    "dnsjava"
+                ]
+            ]
+        },
+        "dom4j": {
+            "1": [
+                [
+                    "dom4j",
+                    "dom4j"
+                ]
+            ]
+        },
+        "dtdparser": {
+            "0": [
+                [
+                    "com.wutk",
+                    "adtdparser"
+                ],
+                [
+                    "dtdparser",
+                    "dtdparser"
+                ]
+            ]
+        },
+        "dynalang": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "easymock": {
+            "3.2": [
+                [
+                    "easymock",
+                    "easymock"
+                ],
+                [
+                    "org.easymock",
+                    "easymock"
+                ]
+            ]
+        },
+        "easymock-classextension": {
+            "3.2": [
+                [
+                    "org.easymock",
+                    "easymockclassextension"
+                ]
+            ]
+        },
+        "ecj-gcj": {
+            "4.4": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "eclipse-ecj": {
+            "4.10": [
+                [
+                    "org.eclipse.jdt.core.compiler",
+                    "ecj"
+                ]
+            ],
+            "4.13": [
+                [
+                    "org.eclipse.jdt.core.compiler",
+                    "ecj"
+                ]
+            ],
+            "4.2": [
+                [
+                    "org.eclipse.jdt.core.compiler",
+                    "ecj"
+                ]
+            ],
+            "4.4": [
+                [
+                    "org.eclipse.jdt.core.compiler",
+                    "ecj"
+                ]
+            ],
+            "4.5": [
+                [
+                    "org.eclipse.jdt.core.compiler",
+                    "ecj"
+                ]
+            ]
+        },
+        "eclipsito": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "ecs": {
+            "0": [
+                [
+                    "ecs",
+                    "ecs"
+                ]
+            ]
+        },
+        "edtftpj": {
+            "0": [
+                [
+                    "com.enterprisedt",
+                    "edtftpj"
+                ],
+                [
+                    "com.enterprisedt",
+                    "edtFTPj"
+                ]
+            ]
+        },
+        "ehcache": {
+            "1.2": [
+                [
+                    "net.sf.ehcache",
+                    "ehcache"
+                ]
+            ]
+        },
+        "emma": {
+            "0": [
+                [
+                    "emma",
+                    "emma"
+                ]
+            ]
+        },
+        "error-prone-annotations": {
+            "0": [
+                [
+                    "com.google.errorprone",
+                    "error_prone_annotation"
+                ],
+                [
+                    "com.google.errorprone",
+                    "error_prone_annotations"
+                ],
+                [
+                    "com.google.errorprone",
+                    "error_prone_parent"
+                ]
+            ]
+        },
+        "ezmorph": {
+            "0": [
+                [
+                    "net.sf.ezmorph",
+                    "ezmorph"
+                ]
+            ]
+        },
+        "fastinfoset": {
+            "0": [
+                [
+                    "com.sun.xml.fastinfoset",
+                    "FastInfoset"
+                ]
+            ]
+        },
+        "fastutil": {
+            "0": [
+                [
+                    "it.unimi.dsi",
+                    "fastutil"
+                ]
+            ]
+        },
+        "fec": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "felix-bundlerepository": {
+            "0": [
+                [
+                    "org.apache.felix",
+                    "org.apache.felix.bundlerepository"
+                ]
+            ]
+        },
+        "felix-gogo-command": {
+            "0": [
+                [
+                    "org.apache.felix",
+                    "org.apache.felix.gogo.command"
+                ]
+            ]
+        },
+        "felix-gogo-runtime": {
+            "0": [
+                [
+                    "org.apache.felix",
+                    "org.apache.felix.gogo.runtime"
+                ]
+            ]
+        },
+        "felix-shell": {
+            "0": [
+                [
+                    "org.apache.felix",
+                    "org.apache.felix.shell"
+                ]
+            ]
+        },
+        "felix-utils": {
+            "0": [
+                [
+                    "org.apache.felix",
+                    "org.apache.felix.utils"
+                ]
+            ]
+        },
+        "fontbox": {
+            "1.7": [
+                [
+                    "org.apache.pdfbox",
+                    "fontbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "jempbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-ant"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-app"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-examples"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-lucene"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-parent"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-reactor"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-war"
+                ]
+            ],
+            "1.8": [
+                [
+                    "org.apache.pdfbox",
+                    "fontbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "jempbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-parent"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "xmpbox"
+                ]
+            ]
+        },
+        "fop": {
+            "0": [
+                [
+                    "fop",
+                    "fop"
+                ],
+                [
+                    "org.apache.xmlgraphics",
+                    "fop"
+                ]
+            ]
+        },
+        "forehead": {
+            "0": [
+                [
+                    "forehead",
+                    "forehead"
+                ]
+            ]
+        },
+        "freehep-graphics2d": {
+            "0": [
+                [
+                    "org.freehep",
+                    "freehep-graphics2d"
+                ]
+            ]
+        },
+        "freehep-graphicsbase": {
+            "0": [
+                [
+                    "org.freehep",
+                    "freehep-graphicsbase"
+                ]
+            ]
+        },
+        "freehep-graphicsio": {
+            "0": [
+                [
+                    "org.freehep",
+                    "freehep-graphicsio"
+                ]
+            ]
+        },
+        "freehep-graphicsio-emf": {
+            "0": [
+                [
+                    "org.freehep",
+                    "freehep-graphicsio-emf"
+                ]
+            ]
+        },
+        "freehep-graphicsio-svg": {
+            "0": [
+                [
+                    "org.freehep",
+                    "freehep-graphicsio-svg"
+                ]
+            ]
+        },
+        "freehep-graphicsio-tests": {
+            "0": [
+                [
+                    "org.freehep",
+                    "freehep-graphicsio-tests"
+                ]
+            ]
+        },
+        "freehep-io": {
+            "0": [
+                [
+                    "org.freehep",
+                    "freehep-io"
+                ]
+            ]
+        },
+        "freemarker": {
+            "0": [
+                [
+                    "freemarker",
+                    "freemarker"
+                ],
+                [
+                    "org.freemarker",
+                    "freemarker"
+                ]
+            ]
+        },
+        "fscript": {
+            "0": [
+                [
+                    "org.objectweb.fractal.fscript",
+                    "fscript"
+                ]
+            ]
+        },
+        "gcj-jdk": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "geoip-java": {
+            "0": [
+                [
+                    "com.maxmind.geoip",
+                    "geoip-api"
+                ]
+            ]
+        },
+        "gin": {
+            "2.1": [
+                [
+                    "com.google.gwt.inject",
+                    "gin"
+                ]
+            ]
+        },
+        "glassfish-deployment-api": {
+            "1.2": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "glassfish-ejb-api": {
+            "0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "glassfish-interceptor-api": {
+            "0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "glassfish-jms-api": {
+            "0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "glassfish-persistence": {
+            "0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "glassfish-servlet-api": {
+            "3.1.1": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "glassfish-transaction-api": {
+            "0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "glassfish-xmlrpc-api": {
+            "0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "glazedlists": {
+            "0": [
+                [
+                    "com.glazedlists",
+                    "glazedlists"
+                ]
+            ]
+        },
+        "gnu-classpath": {
+            "0.98": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "gnu-crypto": {
+            "0": [
+                [
+                    "org.gnu",
+                    "gnu-crypto"
+                ]
+            ]
+        },
+        "gnu-hylafax": {
+            "0": [
+                [
+                    "net.sf.gnu-hylafax",
+                    "gnu-hylafax-core"
+                ],
+                [
+                    "net.sf.gnu-hylafax",
+                    "gnu-hylafax-inet-ftp"
+                ],
+                [
+                    "net.sf.gnu-hylafax",
+                    "gnu-hylafax-utils"
+                ]
+            ]
+        },
+        "gnu-jaf": {
+            "1": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "gnu-regexp": {
+            "1": [
+                [
+                    "gnu-regexp",
+                    "gnu-regexp"
+                ]
+            ]
+        },
+        "gradle-bin": {
+            "3.3": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "3.4.1": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "5.2.1": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "6.3": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "gson": {
+            "2.2.2": [
+                [
+                    "com.google.code.gson",
+                    "gson"
+                ]
+            ],
+            "2.6": [
+                [
+                    "com.google.code.gson",
+                    "gson"
+                ]
+            ],
+            "2.7": [
+                [
+                    "com.google.code.gson",
+                    "gson"
+                ]
+            ]
+        },
+        "guava": {
+            "0": [
+                [
+                    "com.google.guava",
+                    "guava"
+                ]
+            ]
+        },
+        "guice": {
+            "4": [
+                [
+                    "com.google.inject",
+                    "guice"
+                ]
+            ]
+        },
+        "gwt": {
+            "2.8": [
+                [
+                    "com.google.gwt",
+                    "gwt-dev"
+                ],
+                [
+                    "com.google.gwt",
+                    "gwt-elemental"
+                ],
+                [
+                    "com.google.gwt",
+                    "gwt-servlet"
+                ],
+                [
+                    "com.google.gwt",
+                    "gwt-user"
+                ]
+            ]
+        },
+        "hamcrest-core": {
+            "0": [
+                [
+                    "org.hamcrest",
+                    "hamcrest-core"
+                ]
+            ],
+            "1.3": [
+                [
+                    "org.hamcrest",
+                    "hamcrest-core"
+                ]
+            ]
+        },
+        "hamcrest-generator": {
+            "0": [
+                [
+                    "org.hamcrest",
+                    "hamcrest-generator"
+                ]
+            ],
+            "1.3": [
+                [
+                    "org.hamcrest",
+                    "hamcrest-generator"
+                ]
+            ]
+        },
+        "hamcrest-integration": {
+            "1.3": [
+                [
+                    "org.hamcrest",
+                    "hamcrest-integration"
+                ]
+            ]
+        },
+        "hamcrest-library": {
+            "1.3": [
+                [
+                    "org.hamcrest",
+                    "hamcrest-library"
+                ]
+            ]
+        },
+        "hawtjni-runtime": {
+            "0": [
+                [
+                    "org.fusesource.hawtjni",
+                    "hawtjni-example"
+                ],
+                [
+                    "org.fusesource.hawtjni",
+                    "hawtjni-generator"
+                ],
+                [
+                    "org.fusesource.hawtjni",
+                    "hawtjni-project"
+                ],
+                [
+                    "org.fusesource.hawtjni",
+                    "hawtjni-runtime"
+                ],
+                [
+                    "org.fusesource.hawtjni",
+                    "hawtjni-website"
+                ]
+            ]
+        },
+        "headius-options": {
+            "0": [
+                [
+                    "com.headius",
+                    "options"
+                ]
+            ]
+        },
+        "helpgui": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "hessian": {
+            "4.0": [
+                [
+                    "com.caucho",
+                    "hessian"
+                ],
+                [
+                    "hessian",
+                    "hessian"
+                ]
+            ]
+        },
+        "higlayout": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "hoteqn": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "htmlcleaner": {
+            "0": [
+                [
+                    "net.sourceforge.htmlcleaner",
+                    "htmlcleaner"
+                ]
+            ]
+        },
+        "htmlparser": {
+            "0": [
+                [
+                    "nu.validator.htmlparser",
+                    "htmlparser"
+                ]
+            ]
+        },
+        "htmlparser-org": {
+            "0": [
+                [
+                    "org.htmlparser",
+                    "htmlparser"
+                ]
+            ]
+        },
+        "httpcomponents-client": {
+            "4.5": [
+                [
+                    "org.apache.httpcomponents",
+                    "fluent-hc"
+                ],
+                [
+                    "org.apache.httpcomponents",
+                    "httpclient"
+                ],
+                [
+                    "org.apache.httpcomponents",
+                    "httpclient-cache"
+                ],
+                [
+                    "org.apache.httpcomponents",
+                    "httpclient-osgi"
+                ],
+                [
+                    "org.apache.httpcomponents",
+                    "httpclient-win"
+                ],
+                [
+                    "org.apache.httpcomponents",
+                    "httpcomponents-client"
+                ],
+                [
+                    "org.apache.httpcomponents",
+                    "httpmime"
+                ]
+            ]
+        },
+        "httpcomponents-core": {
+            "4.4": [
+                [
+                    "org.apache.httpcomponents",
+                    "httpcomponents-core"
+                ],
+                [
+                    "org.apache.httpcomponents",
+                    "httpcore"
+                ],
+                [
+                    "org.apache.httpcomponents",
+                    "httpcore-ab"
+                ],
+                [
+                    "org.apache.httpcomponents",
+                    "httpcore-nio"
+                ],
+                [
+                    "org.apache.httpcomponents",
+                    "httpcore-osgi"
+                ]
+            ]
+        },
+        "ical4j": {
+            "0": [
+                [
+                    "org.mnode.ical4j",
+                    "ical4j"
+                ]
+            ]
+        },
+        "icedtea": {
+            "8": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "icedtea-bin": {
+            "8": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "icedtea-sound": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "icedtea-web": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "icu4j": {
+            "52": [
+                [
+                    "com.ibm.icu",
+                    "icu4j"
+                ]
+            ],
+            "56": [
+                [
+                    "com.ibm.icu",
+                    "icu4j"
+                ]
+            ]
+        },
+        "ini4j": {
+            "0": [
+                [
+                    "org.ini4j",
+                    "ini4j"
+                ]
+            ]
+        },
+        "invokebinder": {
+            "0": [
+                [
+                    "com.headius",
+                    "invokebinder"
+                ]
+            ]
+        },
+        "iso-relax": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "istack-commons-buildtools": {
+            "0": [
+                [
+                    "com.sun.istack",
+                    "istack-commons-buildtools"
+                ]
+            ]
+        },
+        "istack-commons-runtime": {
+            "0": [
+                [
+                    "com.sun.istack",
+                    "istack-commons-runtime"
+                ]
+            ]
+        },
+        "istack-commons-soimp": {
+            "0": [
+                [
+                    "com.sun.istack",
+                    "istack-commons-soimp"
+                ]
+            ]
+        },
+        "j2objc-annotations": {
+            "0": [
+                [
+                    "com.google.j2objc",
+                    "j2objc-annotations"
+                ]
+            ]
+        },
+        "j2ssh": {
+            "0": [
+                [
+                    "sshtools",
+                    "j2ssh-common"
+                ],
+                [
+                    "sshtools",
+                    "j2ssh-core"
+                ]
+            ]
+        },
+        "jackcess": {
+            "1": [
+                [
+                    "com.healthmarketscience.jackcess",
+                    "jackcess"
+                ],
+                [
+                    "jackcess",
+                    "jackcess"
+                ]
+            ]
+        },
+        "jackrabbit-webdav": {
+            "0": [
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-api"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-aws-ext"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-bundle"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-core"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-data"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-jca"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-jcr2dav"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-jcr2spi"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-jcr-client"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-jcr-commons"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-jcr-rmi"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-jcr-server"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-jcr-servlet"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-jcr-tests"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-parent"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-spi"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-spi2dav"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-spi2jcr"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-spi-commons"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-standalone"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-webapp"
+                ],
+                [
+                    "org.apache.jackrabbit",
+                    "jackrabbit-webdav"
+                ]
+            ]
+        },
+        "jackson": {
+            "2": [
+                [
+                    "com.fasterxml.jackson.core",
+                    "jackson-core"
+                ]
+            ]
+        },
+        "jackson-annotations": {
+            "2": [
+                [
+                    "com.fasterxml.jackson.core",
+                    "jackson-annotations"
+                ]
+            ]
+        },
+        "jacl": {
+            "0": [
+                [
+                    "jacl",
+                    "jacl"
+                ]
+            ]
+        },
+        "jacoco": {
+            "0": [
+                [
+                    "org.jacoco",
+                    "org.jacoco.agent"
+                ],
+                [
+                    "org.jacoco",
+                    "org.jacoco.core"
+                ]
+            ]
+        },
+        "jade": {
+            "0": [
+                [
+                    "com.tilab.jade",
+                    "jade"
+                ]
+            ]
+        },
+        "jakarta-oro": {
+            "2.0": [
+                [
+                    "oro",
+                    "oro"
+                ]
+            ]
+        },
+        "jakarta-regexp": {
+            "1.3": [
+                [
+                    "jakarta-regexp",
+                    "jakarta-regexp"
+                ],
+                [
+                    "regexp",
+                    "regexp"
+                ]
+            ],
+            "1.4": [
+                [
+                    "jakarta-regexp",
+                    "jakarta-regexp"
+                ],
+                [
+                    "regexp",
+                    "regexp"
+                ]
+            ],
+            "1.5": [
+                [
+                    "jakarta-regexp",
+                    "jakarta-regexp"
+                ],
+                [
+                    "regexp",
+                    "regexp"
+                ]
+            ]
+        },
+        "jal": {
+            "0": [
+                [
+                    "com.lowagie.vigna.dsi.unimi.it",
+                    "jal"
+                ]
+            ]
+        },
+        "jama": {
+            "0": [
+                [
+                    "gov.nist.math",
+                    "jama"
+                ],
+                [
+                    "jama",
+                    "jama"
+                ]
+            ]
+        },
+        "jamon": {
+            "2": [
+                [
+                    "com.jamonapi",
+                    "jamon"
+                ],
+                [
+                    "org.jamon",
+                    "jamon"
+                ]
+            ]
+        },
+        "jamvm": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "janino": {
+            "0": [
+                [
+                    "org.codehaus.janino",
+                    "janino"
+                ]
+            ]
+        },
+        "jansi": {
+            "1.11": [
+                [
+                    "org.fusesource.jansi",
+                    "jansi"
+                ],
+                [
+                    "org.fusesource.jansi",
+                    "jansi-project"
+                ],
+                [
+                    "org.fusesource.jansi",
+                    "jansi-website"
+                ]
+            ],
+            "0": [
+                [
+                    "org.fusesource.jansi",
+                    "jansi"
+                ]
+            ]
+        },
+        "jansi-native": {
+            "0": [
+                [
+                    "org.fusesource.jansi",
+                    "jansi-native"
+                ]
+            ]
+        },
+        "japitools": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jarbundler": {
+            "0": [
+                [
+                    "com.ultramixer.jarbundler",
+                    "jarbundler-core"
+                ],
+                [
+                    "com.ultramixer.jarbundler",
+                    "jarbundler-parent"
+                ]
+            ]
+        },
+        "jargs": {
+            "0": [
+                [
+                    "jargs",
+                    "jargs"
+                ],
+                [
+                    "net.sf",
+                    "jargs"
+                ]
+            ]
+        },
+        "jarjar": {
+            "1": [
+                [
+                    "com.googlecode.jarjar",
+                    "jarjar"
+                ]
+            ]
+        },
+        "java-apicheck": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "javacc": {
+            "0": [
+                [
+                    "javacc",
+                    "javacc"
+                ],
+                [
+                    "net.java.dev.javacc",
+                    "javacc"
+                ]
+            ]
+        },
+        "java-config": {
+            "2": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "javacsv": {
+            "0": [
+                [
+                    "net.sourceforge.javacsv",
+                    "javacsv"
+                ]
+            ]
+        },
+        "javacup": {
+            "0": [
+                [
+                    "com.github.peterzeller",
+                    "javacup"
+                ]
+            ]
+        },
+        "java-dep-check": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "java-getopt": {
+            "1": [
+                [
+                    "urbanophile",
+                    "java-getopt"
+                ]
+            ]
+        },
+        "javahelp": {
+            "0": [
+                [
+                    "javax.help",
+                    "javahelp"
+                ]
+            ]
+        },
+        "java-sdk-docs": {
+            "1.8": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "java-service-wrapper": {
+            "0": [
+                [
+                    "tanukisoft",
+                    "wrapper"
+                ]
+            ]
+        },
+        "javassist": {
+            "3": [
+                [
+                    "org.javassist",
+                    "javassist"
+                ]
+            ]
+        },
+        "javatoolkit": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "javax-inject": {
+            "0": [
+                [
+                    "javax.inject",
+                    "javax.inject"
+                ]
+            ]
+        },
+        "javolution": {
+            "4": [
+                [
+                    "javolution",
+                    "javolution"
+                ]
+            ],
+            "6": [
+                [
+                    "org.javolution",
+                    "javolution"
+                ]
+            ]
+        },
+        "jaxen": {
+            "1": [
+                [
+                    "jaxen",
+                    "jaxen"
+                ]
+            ]
+        },
+        "jazzy": {
+            "0": [
+                [
+                    "net.sf.jazzy",
+                    "jazzy"
+                ]
+            ]
+        },
+        "jbitcollider-core": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jboss-logging": {
+            "0": [
+                [
+                    "org.jboss.logging",
+                    "jboss-logging"
+                ]
+            ]
+        },
+        "jboss-logmanager": {
+            "0": [
+                [
+                    "org.jboss.logmanager",
+                    "jboss-logmanager"
+                ]
+            ]
+        },
+        "jboss-marshalling": {
+            "0": [
+                [
+                    "org.jboss.marshalling",
+                    "jboss-marshalling"
+                ]
+            ]
+        },
+        "jboss-marshalling-river": {
+            "0": [
+                [
+                    "org.jboss.marshalling",
+                    "jboss-marshalling-river"
+                ]
+            ]
+        },
+        "jboss-marshalling-serial": {
+            "0": [
+                [
+                    "org.jboss.marshalling",
+                    "jboss-marshalling-serial"
+                ]
+            ]
+        },
+        "jboss-modules": {
+            "0": [
+                [
+                    "org.jboss.modules",
+                    "jboss-modules"
+                ]
+            ]
+        },
+        "jcalendar": {
+            "1.2": [
+                [
+                    "com.toedter",
+                    "jcalendar"
+                ]
+            ]
+        },
+        "jchardet": {
+            "0": [
+                [
+                    "jchardet",
+                    "jchardet"
+                ],
+                [
+                    "net.sourceforge.jchardet",
+                    "jchardet"
+                ]
+            ]
+        },
+        "jchart2d": {
+            "0": [
+                [
+                    "net.sf.jchart2d",
+                    "jchart2d"
+                ]
+            ]
+        },
+        "jcifs": {
+            "1.1": [
+                [
+                    "jcifs",
+                    "jcifs"
+                ],
+                [
+                    "org.samba.jcifs",
+                    "jcifs"
+                ]
+            ]
+        },
+        "jcip-annotations": {
+            "0": [
+                [
+                    "com.github.stephenc.jcip",
+                    "jcip-annotations"
+                ],
+                [
+                    "net.jcip",
+                    "jcip-annotations"
+                ]
+            ]
+        },
+        "jclasslib": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jcmdline": {
+            "1.0": [
+                [
+                    "com.github.w1tebear",
+                    "jcmdline"
+                ]
+            ],
+            "0": [
+                [
+                    "com.github.w1tebear",
+                    "jcmdline"
+                ]
+            ]
+        },
+        "jcodings": {
+            "1": [
+                [
+                    "org.jruby.jcodings",
+                    "jcodings"
+                ]
+            ],
+            "0": [
+                [
+                    "org.jruby.jcodings",
+                    "jcodings"
+                ]
+            ]
+        },
+        "jcommander": {
+            "0": [
+                [
+                    "com.beust",
+                    "jcommander"
+                ]
+            ]
+        },
+        "jcommon": {
+            "1.0": [
+                [
+                    "org.jfree",
+                    "jcommon"
+                ]
+            ]
+        },
+        "jdbc2-stdext": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jdbc-mssqlserver": {
+            "4.2": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jdbc-mysql": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jdbc-postgresql": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jdbm": {
+            "1": [
+                [
+                    "jdbm",
+                    "jdbm"
+                ]
+            ]
+        },
+        "jdepend": {
+            "0": [
+                [
+                    "jdepend",
+                    "jdepend"
+                ]
+            ]
+        },
+        "jdom": {
+            "0": [
+                [
+                    "jdom",
+                    "jdom"
+                ],
+                [
+                    "org.jdom",
+                    "jdom"
+                ]
+            ],
+            "2": [
+                [
+                    "jdom",
+                    "jdom"
+                ],
+                [
+                    "org.jdom",
+                    "jdom2"
+                ]
+            ]
+        },
+        "jdynamite": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jebl": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jempbox": {
+            "1.7": [
+                [
+                    "org.apache.pdfbox",
+                    "fontbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "jempbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-ant"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-app"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-examples"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-lucene"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-parent"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-reactor"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-war"
+                ]
+            ],
+            "1.8": [
+                [
+                    "org.apache.pdfbox",
+                    "fontbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "jempbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-parent"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "xmpbox"
+                ]
+            ]
+        },
+        "jettison": {
+            "0": [
+                [
+                    "org.codehaus.jettison",
+                    "jettison"
+                ]
+            ]
+        },
+        "jetty-alpn-api": {
+            "0": [
+                [
+                    "org.eclipse.jetty.alpn",
+                    "alpn-api"
+                ]
+            ]
+        },
+        "jetty-npn-api": {
+            "0": [
+                [
+                    "org.eclipse.jetty.npn",
+                    "npn-api"
+                ]
+            ]
+        },
+        "jexcelapi": {
+            "0": [
+                [
+                    "jexcelapi",
+                    "jxl"
+                ],
+                [
+                    "net.sourceforge.jexcelapi",
+                    "jxl"
+                ]
+            ]
+        },
+        "jffi": {
+            "1.2": [
+                [
+                    "com.github.jnr",
+                    "jffi"
+                ]
+            ]
+        },
+        "jflex": {
+            "0": [
+                [
+                    "de.jflex",
+                    "jflex"
+                ]
+            ]
+        },
+        "jformatstring": {
+            "0": [
+                [
+                    "com.google.code.findbugs",
+                    "jFormatString"
+                ],
+                [
+                    "net.sourceforge.findbugs",
+                    "jFormatString"
+                ]
+            ]
+        },
+        "jfreechart": {
+            "1.0": [
+                [
+                    "org.jfree",
+                    "jfreechart"
+                ]
+            ]
+        },
+        "jfreesvg": {
+            "2.1": [
+                [
+                    "org.jfree",
+                    "jfreesvg"
+                ]
+            ],
+            "3.0": [
+                [
+                    "org.jfree",
+                    "jfreesvg"
+                ]
+            ]
+        },
+        "jgoodies-animation": {
+            "0": [
+                [
+                    "com.jgoodies",
+                    "animation"
+                ]
+            ]
+        },
+        "jgoodies-binding": {
+            "1.0": [
+                [
+                    "com.jgoodies",
+                    "binding"
+                ],
+                [
+                    "com.jgoodies",
+                    "jgoodies-binding"
+                ]
+            ]
+        },
+        "jgoodies-common": {
+            "1.8": [
+                [
+                    "com.jgoodies",
+                    "jgoodies-common"
+                ]
+            ]
+        },
+        "jgoodies-forms": {
+            "0": [
+                [
+                    "com.jgoodies",
+                    "forms"
+                ]
+            ],
+            "1.8": [
+                [
+                    "com.jgoodies",
+                    "jgoodies-forms"
+                ]
+            ]
+        },
+        "jgoodies-looks": {
+            "2.6": [
+                [
+                    "com.jgoodies",
+                    "jgoodies-looks"
+                ]
+            ]
+        },
+        "jgraph": {
+            "0": [
+                [
+                    "jgraph",
+                    "jgraph"
+                ]
+            ]
+        },
+        "jgrapht": {
+            "0": [
+                [
+                    "jgrapht",
+                    "jgrapht"
+                ],
+                [
+                    "org.jgrapht",
+                    "jgrapht-jdk1.6"
+                ]
+            ]
+        },
+        "jibx": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "1.2": [
+                [
+                    "org.jibx",
+                    "jibx-bind"
+                ],
+                [
+                    "org.jibx",
+                    "jibx-extras"
+                ],
+                [
+                    "org.jibx",
+                    "jibx-run"
+                ]
+            ]
+        },
+        "jibx-tools": {
+            "0": [
+                [
+                    "org.jibx",
+                    "jibx-tools"
+                ]
+            ]
+        },
+        "jid3": {
+            "0": [
+                [
+                    "org.blinkenlights.jid3",
+                    "JID3"
+                ]
+            ]
+        },
+        "jide-oss": {
+            "0": [
+                [
+                    "com.jidesoft",
+                    "jide-oss"
+                ]
+            ]
+        },
+        "jinput": {
+            "0": [
+                [
+                    "net.java.jinput",
+                    "jinput"
+                ]
+            ]
+        },
+        "jisp": {
+            "2.5": [
+                [
+                    "jisp",
+                    "jisp"
+                ]
+            ]
+        },
+        "jlex": {
+            "0": [
+                [
+                    "JLex",
+                    "JLex"
+                ]
+            ]
+        },
+        "jlfgr": {
+            "0": [
+                [
+                    "com.sun",
+                    "jlfgr"
+                ],
+                [
+                    "net.java.linoleum",
+                    "jlfgr"
+                ]
+            ]
+        },
+        "jlibeps": {
+            "0": [
+                [
+                    "org.sourceforge.jlibeps",
+                    "jlibeps"
+                ]
+            ]
+        },
+        "jline": {
+            "2": [
+                [
+                    "jline",
+                    "jline"
+                ]
+            ]
+        },
+        "jmdns": {
+            "0": [
+                [
+                    "javax.jmdns",
+                    "jmdns"
+                ],
+                [
+                    "org.jmdns",
+                    "jmdns"
+                ]
+            ]
+        },
+        "jmh-core": {
+            "0": [
+                [
+                    "org.openjdk.jmh",
+                    "jmh-core"
+                ]
+            ]
+        },
+        "jmi-interface": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jmock": {
+            "1.0": [
+                [
+                    "org.jmock",
+                    "jmock"
+                ]
+            ],
+            "2": [
+                [
+                    "org.jmock",
+                    "jmock"
+                ]
+            ]
+        },
+        "jna": {
+            "0": [
+                [
+                    "net.java.dev.jna",
+                    "jna"
+                ]
+            ]
+        },
+        "jnlp-api": {
+            "0": [
+                [
+                    "javax.jnlp",
+                    "jnlp-api"
+                ]
+            ]
+        },
+        "jnr-constants": {
+            "0": [
+                [
+                    "com.github.jnr",
+                    "jnr-constants"
+                ]
+            ]
+        },
+        "jnr-enxio": {
+            "0": [
+                [
+                    "com.github.jnr",
+                    "jnr-enxio"
+                ]
+            ]
+        },
+        "jnr-ffi": {
+            "2": [
+                [
+                    "com.github.jnr",
+                    "jnr-ffi"
+                ]
+            ]
+        },
+        "jnr-netdb": {
+            "1.0": [
+                [
+                    "com.github.jnr",
+                    "jnr-netdb"
+                ]
+            ]
+        },
+        "jnr-posix": {
+            "3.0": [
+                [
+                    "com.github.jnr",
+                    "jnr-posix"
+                ]
+            ]
+        },
+        "jnr-unixsocket": {
+            "0": [
+                [
+                    "com.github.jnr",
+                    "jnr-unixsocket"
+                ]
+            ]
+        },
+        "jnr-x86asm": {
+            "1.0": [
+                [
+                    "com.github.jnr",
+                    "jnr-x86asm"
+                ]
+            ]
+        },
+        "joda-convert": {
+            "0": [
+                [
+                    "org.joda",
+                    "joda-convert"
+                ]
+            ]
+        },
+        "joda-time": {
+            "0": [
+                [
+                    "joda-time",
+                    "joda-time"
+                ]
+            ]
+        },
+        "joni": {
+            "2.1": [
+                [
+                    "org.jruby.joni",
+                    "joni"
+                ]
+            ]
+        },
+        "jopt-simple": {
+            "4.6": [
+                [
+                    "net.sf.jopt-simple",
+                    "jopt-simple"
+                ]
+            ],
+            "0": [
+                [
+                    "net.sf.jopt-simple",
+                    "jopt-simple"
+                ]
+            ]
+        },
+        "jortho": {
+            "0": [
+                [
+                    "com.inet.jortho",
+                    "jortho"
+                ]
+            ]
+        },
+        "jreleaseinfo": {
+            "0": [
+                [
+                    "uk.org.mygrid.resources",
+                    "jreleaseinfo"
+                ]
+            ]
+        },
+        "jrexx": {
+            "0": [
+                [
+                    "jrexx",
+                    "jrexx"
+                ]
+            ]
+        },
+        "jrobin": {
+            "0": [
+                [
+                    "org.jrobin",
+                    "jrobin"
+                ]
+            ]
+        },
+        "jrrd": {
+            "0": [
+                [
+                    "org.opennms",
+                    "jrrd-api"
+                ]
+            ]
+        },
+        "jsch": {
+            "0": [
+                [
+                    "com.jcraft",
+                    "jsch"
+                ]
+            ]
+        },
+        "json": {
+            "0": [
+                [
+                    "org.json",
+                    "json"
+                ]
+            ]
+        },
+        "json-simple": {
+            "0": [
+                [
+                    "com.googlecode.json-simple",
+                    "json-simple"
+                ]
+            ]
+        },
+        "jsoup": {
+            "0": [
+                [
+                    "org.jsoup",
+                    "jsoup"
+                ]
+            ]
+        },
+        "jspeex": {
+            "0": [
+                [
+                    "org.mobicents.external.jspeex",
+                    "jspeex"
+                ]
+            ]
+        },
+        "jsr101": {
+            "0": [
+                [
+                    "javax.xml",
+                    "jaxrpc-api"
+                ]
+            ]
+        },
+        "jsr173": {
+            "0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "jsr181": {
+            "0": [
+                [
+                    "javax.jws",
+                    "jsr181"
+                ],
+                [
+                    "javax.jws",
+                    "jsr181-api"
+                ]
+            ]
+        },
+        "jsr223": {
+            "0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "jsr225": {
+            "0": [
+                [
+                    "javax.xml.xquery",
+                    "xqj-api"
+                ]
+            ]
+        },
+        "jsr250": {
+            "0": [
+                [
+                    "javax.annotation",
+                    "javax.annotation-api"
+                ],
+                [
+                    "javax.annotation",
+                    "jsr250-api"
+                ]
+            ]
+        },
+        "jsr305": {
+            "0": [
+                [
+                    "com.google.code.findbugs",
+                    "jsr305"
+                ]
+            ]
+        },
+        "jsr311-api": {
+            "0": [
+                [
+                    "javax.ws.rs",
+                    "jsr311-api"
+                ]
+            ]
+        },
+        "jsr322": {
+            "0": [
+                [
+                    "javax.resource",
+                    "connector-api"
+                ]
+            ]
+        },
+        "jsr67": {
+            "0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "jss": {
+            "3.4": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jssc": {
+            "0": [
+                [
+                    "org.scream3r",
+                    "jssc"
+                ]
+            ]
+        },
+        "jstun": {
+            "0": [
+                [
+                    "de.javawi.jstun",
+                    "jstun"
+                ]
+            ]
+        },
+        "jta": {
+            "0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "jtds": {
+            "1.3": [
+                [
+                    "net.sourceforge.jtds",
+                    "jtds"
+                ]
+            ]
+        },
+        "jtidy": {
+            "0": [
+                [
+                    "net.sf.jtidy",
+                    "jtidy"
+                ]
+            ]
+        },
+        "jtreemap": {
+            "0": [
+                [
+                    "net.sf.jtreemap",
+                    "jtreemap"
+                ]
+            ]
+        },
+        "jts-core": {
+            "0": [
+                [
+                    "com.vividsolutions",
+                    "jts-core"
+                ]
+            ]
+        },
+        "juel": {
+            "0": [
+                [
+                    "de.odysseus.juel",
+                    "juel"
+                ],
+                [
+                    "de.odysseus.juel",
+                    "juel-api"
+                ],
+                [
+                    "de.odysseus.juel",
+                    "juel-impl"
+                ],
+                [
+                    "juel",
+                    "juel"
+                ],
+                [
+                    "net.sf.jung",
+                    "jung-3d"
+                ],
+                [
+                    "net.sf.jung",
+                    "jung-algorithms"
+                ],
+                [
+                    "net.sf.jung",
+                    "jung-api"
+                ],
+                [
+                    "net.sf.jung",
+                    "jung-io"
+                ],
+                [
+                    "net.sf.jung",
+                    "jung-jai"
+                ],
+                [
+                    "net.sf.jung",
+                    "jung-samples"
+                ],
+                [
+                    "net.sf.jung",
+                    "jung-visualization"
+                ]
+            ]
+        },
+        "jump": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jung": {
+            "0": [
+                [
+                    "net.sf.jung",
+                    "jung-graph-impl"
+                ]
+            ]
+        },
+        "junit": {
+            "0": [
+                [
+                    "junit",
+                    "junit"
+                ]
+            ],
+            "4": [
+                [
+                    "junit",
+                    "junit"
+                ]
+            ]
+        },
+        "junit-addons": {
+            "0": [
+                [
+                    "junit-addons",
+                    "junit-addons"
+                ]
+            ]
+        },
+        "junitperf": {
+            "0": [
+                [
+                    "junitperf",
+                    "junitperf"
+                ]
+            ]
+        },
+        "junrar": {
+            "0": [
+                [
+                    "com.github.junrar",
+                    "junrar"
+                ]
+            ]
+        },
+        "jupidator": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jutils": {
+            "0": [
+                [
+                    "net.java.jutils",
+                    "jutils"
+                ]
+            ]
+        },
+        "jvmstat": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jvyaml": {
+            "0": [
+                [
+                    "jvyaml",
+                    "jvyaml"
+                ],
+                [
+                    "net.java.dev",
+                    "jvyaml"
+                ]
+            ]
+        },
+        "jvyamlb": {
+            "0": [
+                [
+                    "org.jruby.extras",
+                    "jvyamlb"
+                ]
+            ]
+        },
+        "jython": {
+            "2.7": [
+                [
+                    "org.python",
+                    "jython"
+                ]
+            ]
+        },
+        "jzlib": {
+            "1.1": [
+                [
+                    "com.jcraft",
+                    "jzlib"
+                ]
+            ],
+            "1.1.3": [
+                [
+                    "com.jcraft",
+                    "jzlib"
+                ]
+            ]
+        },
+        "kunststoff": {
+            "0": [
+                [
+                    "com.incors.plaf",
+                    "kunststoff"
+                ]
+            ]
+        },
+        "kxml": {
+            "2": [
+                [
+                    "net.sf.kxml",
+                    "kxml2"
+                ],
+                [
+                    "net.sf.kxml",
+                    "kxml2-min"
+                ]
+            ]
+        },
+        "l2fprod-common": {
+            "0": [
+                [
+                    "com.l2fprod.common",
+                    "l2fprod-common-shared"
+                ],
+                [
+                    "com.l2fprod",
+                    "l2fprod-common-all"
+                ],
+                [
+                    "l2fprod",
+                    "l2fprod-common-fontchooser"
+                ]
+            ]
+        },
+        "laf-plugin": {
+            "0": [
+                [
+                    "net.java.dev.laf-plugin",
+                    "laf-plugin"
+                ]
+            ],
+            "1": [
+                [
+                    "net.java.dev.laf-plugin",
+                    "laf-plugin"
+                ]
+            ]
+        },
+        "ldapsdk": {
+            "4.1": [
+                [
+                    "ldapsdk",
+                    "ldapsdk"
+                ]
+            ]
+        },
+        "leiningen-bin": {
+            "0": [
+                [
+                    "leiningen",
+                    "leiningenEPL"
+                ]
+            ]
+        },
+        "libg": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "libmatthew-java": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "libreadline-java": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "log4j": {
+            "0": [
+                [
+                    "log4j",
+                    "log4j"
+                ]
+            ]
+        },
+        "lucene": {
+            "1": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "2.4": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "3.5": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "3.6": [
+                [
+                    "lucene",
+                    "lucene"
+                ],
+                [
+                    "org.apache.lucene",
+                    "lucene-core"
+                ]
+            ]
+        },
+        "lzma": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "lzmajio": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "maven-bin": {
+            "3.6": [
+                [
+                    "org.apache.maven",
+                    "maven-core"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-artifact"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-builder-support"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-compat"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-embedder"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-model"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-model-builder"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-plugin-api"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-repository-metadata"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-resolver-api"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-resolver-connector-basic"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-resolver-impl"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-resolver-provider"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-resolver-spi"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-resolver-transport-wagon"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-resolver-util"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-settings"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-settings-builder"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-shared-utils"
+                ],
+                [
+                    "org.apache.maven",
+                    "maven-slf4j-provider"
+                ]
+            ]
+        },
+        "maven-hawtjni-plugin": {
+            "0": [
+                [
+                    "org.fusesource.hawtjni",
+                    "maven-hawtjni-plugin"
+                ]
+            ]
+        },
+        "mchange-commons": {
+            "0": [
+                [
+                    "com.mchange",
+                    "mchange-commons-java"
+                ]
+            ]
+        },
+        "mersennetwister": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "metadata-extractor": {
+            "0": [
+                [
+                    "com.drewnoakes",
+                    "metadata-extractor"
+                ]
+            ]
+        },
+        "metainf-services": {
+            "0": [
+                [
+                    "org.kohsuke.metainf-services",
+                    "metainf-services"
+                ]
+            ]
+        },
+        "microba": {
+            "0": [
+                [
+                    "com.michaelbaranov.microba",
+                    "microba"
+                ]
+            ]
+        },
+        "miglayout": {
+            "0": [
+                [
+                    "com.miglayout",
+                    "miglayout"
+                ],
+                [
+                    "com.miglayout",
+                    "miglayout-core"
+                ],
+                [
+                    "com.miglayout",
+                    "miglayout-javafx"
+                ],
+                [
+                    "com.miglayout",
+                    "miglayout-swing"
+                ]
+            ]
+        },
+        "milton-api": {
+            "0": [
+                [
+                    "io.milton",
+                    "milton-api"
+                ]
+            ]
+        },
+        "milton-mail-api": {
+            "0": [
+                [
+                    "io.milton",
+                    "milton-mail-api"
+                ]
+            ]
+        },
+        "mimepull": {
+            "0": [
+                [
+                    "org.jvnet",
+                    "mimepull"
+                ],
+                [
+                    "org.jvnet.mimepull",
+                    "mimepull"
+                ]
+            ]
+        },
+        "mina-core": {
+            "0": [
+                [
+                    "org.apache.mina",
+                    "mina-core"
+                ]
+            ]
+        },
+        "minlog": {
+            "0": [
+                [
+                    "com.esotericsoftware",
+                    "minlog"
+                ]
+            ]
+        },
+        "mockito": {
+            "0": [
+                [
+                    "org.mockito",
+                    "mockito-all"
+                ],
+                [
+                    "org.mockito",
+                    "mockito-core"
+                ]
+            ]
+        },
+        "mojarra": {
+            "2.2": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "moshi": {
+            "0": [
+                [
+                    "com.squareup.moshi",
+                    "moshi"
+                ]
+            ]
+        },
+        "msv": {
+            "0": [
+                [
+                    "msv",
+                    "msv"
+                ],
+                [
+                    "net.java.dev.msv",
+                    "msv-core"
+                ]
+            ]
+        },
+        "myfaces-api": {
+            "0": [
+                [
+                    "myfaces",
+                    "myfaces-api"
+                ],
+                [
+                    "org.apache.myfaces.core",
+                    "myfaces-api"
+                ]
+            ]
+        },
+        "myfaces-builder-annotations": {
+            "0": [
+                [
+                    "org.apache.myfaces.buildtools",
+                    "myfaces-builder-annotations"
+                ]
+            ]
+        },
+        "nachocalendar": {
+            "0": [
+                [
+                    "net.sf.nachocalendar",
+                    "nachocalendar"
+                ]
+            ]
+        },
+        "nanoxml": {
+            "0": [
+                [
+                    "be.cyberelf.nanoxml",
+                    "nanoxml"
+                ]
+            ]
+        },
+        "nekohtml": {
+            "0": [
+                [
+                    "nekohtml",
+                    "nekohtml"
+                ]
+            ]
+        },
+        "netbeans-harness": {
+            "8.2": [
+                [
+                    "org.netbeans.cluster",
+                    "harness"
+                ]
+            ]
+        },
+        "netbeans-platform": {
+            "8.2": [
+                [
+                    "org.netbeans.cluster",
+                    "platform"
+                ]
+            ]
+        },
+        "netty-buffer": {
+            "0": [
+                [
+                    "io.netty",
+                    "netty-buffer"
+                ]
+            ]
+        },
+        "netty-codec": {
+            "0": [
+                [
+                    "io.netty",
+                    "netty-codec"
+                ]
+            ]
+        },
+        "netty-codec-http": {
+            "0": [
+                [
+                    "io.netty",
+                    "netty-codec-http"
+                ]
+            ]
+        },
+        "netty-common": {
+            "0": [
+                [
+                    "io.netty",
+                    "netty-common"
+                ]
+            ]
+        },
+        "netty-handler": {
+            "0": [
+                [
+                    "io.netty",
+                    "netty-handler"
+                ]
+            ]
+        },
+        "netty-tcnative": {
+            "0": [
+                [
+                    "io.netty",
+                    "netty-tcnative"
+                ]
+            ]
+        },
+        "netty-transport": {
+            "0": [
+                [
+                    "io.netty",
+                    "netty-transport"
+                ]
+            ]
+        },
+        "neuroph": {
+            "0": [
+                [
+                    "com.github.neuroph",
+                    "neuroph-core"
+                ],
+                [
+                    "com.github.neuroph",
+                    "neuroph-imgrec"
+                ],
+                [
+                    "com.github.neuroph",
+                    "neuroph-ocr"
+                ]
+            ]
+        },
+        "objenesis": {
+            "0": [
+                [
+                    "org.objenesis",
+                    "objenesis"
+                ]
+            ]
+        },
+        "odfdom": {
+            "0": [
+                [
+                    "org.odftoolkit",
+                    "odfdom-java"
+                ]
+            ]
+        },
+        "offo-hyphenation": {
+            "0": [
+                [
+                    "net.sf.offo",
+                    "fop-hyph"
+                ]
+            ]
+        },
+        "ognl": {
+            "3.0": [
+                [
+                    "ognl",
+                    "ognl"
+                ]
+            ]
+        },
+        "okio": {
+            "0": [
+                [
+                    "com.squareup.okio",
+                    "okio"
+                ]
+            ]
+        },
+        "opencsv": {
+            "0": [
+                [
+                    "net.sf.opencsv",
+                    "opencsv"
+                ]
+            ]
+        },
+        "openjdk": {
+            "11": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "8": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "openjdk-bin": {
+            "11": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "8": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "openjdk-jre-bin": {
+            "11": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "8": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "openjfx": {
+            "11": [
+                [
+                    "org.openjfx",
+                    "javafx-base"
+                ],
+                [
+                    "org.openjfx",
+                    "javafx-controls"
+                ],
+                [
+                    "org.openjfx",
+                    "javafx-fxml"
+                ],
+                [
+                    "org.openjfx",
+                    "javafx-graphics"
+                ],
+                [
+                    "org.openjfx",
+                    "javafx-media"
+                ],
+                [
+                    "org.openjfx",
+                    "javafx-swing"
+                ],
+                [
+                    "org.openjfx",
+                    "javafx-web"
+                ]
+            ]
+        },
+        "oracle-javamail": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "oracle-jdk-bin": {
+            "11": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "1.8": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "oracle-jre-bin": {
+            "1.8": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "osgi-compendium": {
+            "0": [
+                [
+                    "org.osgi",
+                    "org.osgi.compendium"
+                ],
+                [
+                    "org.osgi",
+                    "osgi_R4_compendium"
+                ],
+                [
+                    "org.apache.felix",
+                    "org.osgi.compendium"
+                ]
+            ]
+        },
+        "osgi-core-api": {
+            "0": [
+                [
+                    "org.osgi",
+                    "org.osgi.core"
+                ]
+            ]
+        },
+        "osgi-enterprise-api": {
+            "0": [
+                [
+                    "org.osgi.enroute",
+                    "enterprise-api"
+                ]
+            ]
+        },
+        "osgi-foundation": {
+            "0": [
+                [
+                    "org.apache.felix",
+                    "org.osgi.foundation"
+                ]
+            ]
+        },
+        "osgi-obr": {
+            "0": [
+                [
+                    "org.apache.felix",
+                    "org.osgi.service.obr"
+                ]
+            ]
+        },
+        "pat": {
+            "0": [
+                [
+                    "com.stevesoft.pat",
+                    "pat"
+                ]
+            ]
+        },
+        "pdfbox": {
+            "1.8": [
+                [
+                    "org.apache.pdfbox",
+                    "fontbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "jempbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-ant"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-app"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-examples"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-lucene"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-parent"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-reactor"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "pdfbox-war"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "preflight"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "preflight-app"
+                ],
+                [
+                    "org.apache.pdfbox",
+                    "xmpbox"
+                ]
+            ]
+        },
+        "pdf-renderer": {
+            "0": [
+                [
+                    "net.java.dev",
+                    "pdf-renderer"
+                ]
+            ]
+        },
+        "piccolo": {
+            "0": [
+                [
+                    "piccolo",
+                    "piccolo"
+                ]
+            ]
+        },
+        "piccolo2d": {
+            "0": [
+                [
+                    "org.piccolo2d",
+                    "piccolo2d-complete"
+                ],
+                [
+                    "org.piccolo2d",
+                    "piccolo2d-core"
+                ],
+                [
+                    "org.piccolo2d",
+                    "piccolo2d-examples"
+                ],
+                [
+                    "org.piccolo2d",
+                    "piccolo2d-extras"
+                ],
+                [
+                    "org.piccolo2d",
+                    "piccolo2d-swt"
+                ],
+                [
+                    "org.piccolo2d",
+                    "piccolo2d-swt-examples"
+                ]
+            ]
+        },
+        "picocontainer": {
+            "1": [
+                [
+                    "picocontainer",
+                    "picocontainer"
+                ]
+            ]
+        },
+        "plexus-classworlds": {
+            "0": [
+                [
+                    "org.codehaus.plexus",
+                    "plexus-classworlds"
+                ]
+            ]
+        },
+        "portletapi": {
+            "1": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "2.0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "prefuse": {
+            "2006": [
+                [
+                    "org.prefuse",
+                    "prefuse"
+                ],
+                [
+                    "prefuse",
+                    "prefuse"
+                ]
+            ]
+        },
+        "protobuf-java": {
+            "0": [
+                [
+                    "com.google.protobuf",
+                    "protobuf-java"
+                ]
+            ]
+        },
+        "qdox": {
+            "1.12": [
+                [
+                    "com.thoughtworks.qdox",
+                    "qdox"
+                ],
+                [
+                    "qdox",
+                    "qdox"
+                ]
+            ]
+        },
+        "radeox": {
+            "1": [
+                [
+                    "radeox",
+                    "radeox"
+                ]
+            ]
+        },
+        "asm": {
+            "3": [
+                [
+                    "asm",
+                    "asm"
+                ],
+                [
+                    "asm",
+                    "asm-analysis"
+                ],
+                [
+                    "asm",
+                    "asm-commons"
+                ],
+                [
+                    "asm",
+                    "asm-tree"
+                ],
+                [
+                    "asm",
+                    "asm-util"
+                ],
+                [
+                    "asm",
+                    "asm-xml"
+                ]
+            ],
+            "4": [
+                [
+                    "org.ow2.asm",
+                    "asm"
+                ],
+                [
+                    "org.ow2.asm",
+                    "asm-analysis"
+                ],
+                [
+                    "org.ow2.asm",
+                    "asm-commons"
+                ],
+                [
+                    "org.ow2.asm",
+                    "asm-tree"
+                ],
+                [
+                    "org.ow2.asm",
+                    "asm-util"
+                ],
+                [
+                    "org.ow2.asm",
+                    "asm-xml"
+                ]
+            ]
+        },
+        "rat": {
+            "0": [
+                [
+                    "org.apache.rat",
+                    "apache-rat"
+                ],
+                [
+                    "org.apache.rat",
+                    "apache-rat-core"
+                ]
+            ]
+        },
+        "reflectasm": {
+            "0": [
+                [
+                    "com.esotericsoftware",
+                    "reflectasm"
+                ]
+            ]
+        },
+        "reflections": {
+            "0": [
+                [
+                    "org.reflections",
+                    "reflections"
+                ]
+            ]
+        },
+        "relaxngcc": {
+            "0": [
+                [
+                    "relaxngcc",
+                    "relaxngcc"
+                ]
+            ]
+        },
+        "relaxng-datatype": {
+            "0": [
+                [
+                    "com.sun.xml.bind.external",
+                    "relaxng-datatype"
+                ]
+            ]
+        },
+        "resin-servlet-api": {
+            "2.4": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ],
+            "3.0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ],
+            "3.1": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "rhino": {
+            "1.6": [
+                [
+                    "org.mozilla",
+                    "rhino"
+                ]
+            ]
+        },
+        "rngom": {
+            "0": [
+                [
+                    "com.sun.xml.bind.external",
+                    "rngom"
+                ],
+                [
+                    "org.kohsuke.rngom",
+                    "rngom"
+                ]
+            ]
+        },
+        "rome": {
+            "0": [
+                [
+                    "rome",
+                    "rome"
+                ]
+            ]
+        },
+        "rundoc": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "rxtx": {
+            "2": [
+                [
+                    "org.rxtx",
+                    "rxtx"
+                ]
+            ]
+        },
+        "saaj": {
+            "0": [
+                [
+                    "com.sun.xml.messaging.saaj",
+                    "saaj-impl"
+                ]
+            ]
+        },
+        "sablecc": {
+            "0": [
+                [
+                    "sablecc",
+                    "sablecc"
+                ]
+            ]
+        },
+        "sablecc-anttask": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "sac": {
+            "0": [
+                [
+                    "org.w3c.css",
+                    "sac"
+                ]
+            ]
+        },
+        "sax": {
+            "0": [
+                [
+                    "sax",
+                    "sax"
+                ]
+            ]
+        },
+        "saxon": {
+            "6.5": [
+                [
+                    "net.sf.saxon",
+                    "saxon"
+                ]
+            ],
+            "9": [
+                [
+                    "net.sf.saxon",
+                    "saxon"
+                ]
+            ]
+        },
+        "saxpath": {
+            "0": [
+                [
+                    "org.jdom",
+                    "saxpath"
+                ],
+                [
+                    "saxpath",
+                    "saxpath"
+                ]
+            ]
+        },
+        "sblim-cim-client": {
+            "2": [
+                [
+                    "org.sblim.wbem",
+                    "sblimCIMClient"
+                ]
+            ]
+        },
+        "sbt": {
+            "0": [
+                [
+                    "org.scala-sbt",
+                    "sbt"
+                ]
+            ]
+        },
+        "sbt-bin": {
+            "0": [
+                [
+                    "org.scala-sbt",
+                    "sbt"
+                ]
+            ]
+        },
+        "shared-objects": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "simplyhtml": {
+            "0": [
+                [
+                    "com.github.ansell.aterms",
+                    "shared-objects"
+                ]
+            ]
+        },
+        "sjsxp": {
+            "0": [
+                [
+                    "com.sun.xml.stream",
+                    "sjsxp"
+                ]
+            ]
+        },
+        "skinlf": {
+            "0": [
+                [
+                    "net.sf.squirrel-sql.thirdparty-non-maven",
+                    "skinlf"
+                ]
+            ]
+        },
+        "slf4j-api": {
+            "0": [
+                [
+                    "org.slf4j",
+                    "slf4j-api"
+                ]
+            ]
+        },
+        "slf4j-ext": {
+            "0": [
+                [
+                    "org.slf4j",
+                    "slf4j-ext"
+                ]
+            ]
+        },
+        "slf4j-log4j12": {
+            "0": [
+                [
+                    "org.slf4j",
+                    "slf4j-log4j12"
+                ]
+            ]
+        },
+        "slf4j-nop": {
+            "0": [
+                [
+                    "org.slf4j",
+                    "slf4j-nop"
+                ]
+            ]
+        },
+        "slf4j-simple": {
+            "0": [
+                [
+                    "org.slf4j",
+                    "slf4j-simple"
+                ]
+            ]
+        },
+        "snakeyaml": {
+            "0": [
+                [
+                    "org.yaml",
+                    "snakeyaml"
+                ]
+            ]
+        },
+        "snappy": {
+            "1.0": [
+                [
+                    "org.xerial.snappy",
+                    "snappy-java"
+                ]
+            ],
+            "1.1": [
+                [
+                    "org.xerial.snappy",
+                    "snappy-java"
+                ]
+            ]
+        },
+        "snip": {
+            "0": [
+                [
+                    "snip",
+                    "snip"
+                ]
+            ]
+        },
+        "spec-alpha": {
+            "0.1": [
+                [
+                    "org.clojure",
+                    "spec.alpha"
+                ]
+            ],
+            "0.2": [
+                [
+                    "org.clojure",
+                    "spec.alpha"
+                ]
+            ]
+        },
+        "spice-jndikit": {
+            "0": [
+                [
+                    "spice",
+                    "spice-jndikit"
+                ]
+            ]
+        },
+        "spin": {
+            "0": [
+                [
+                    "spin",
+                    "spin"
+                ]
+            ]
+        },
+        "spymemcached": {
+            "0": [
+                [
+                    "net.spy",
+                    "spymemcached"
+                ]
+            ]
+        },
+        "squareness-jlf": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "stax2-api": {
+            "0": [
+                [
+                    "org.codehaus.woodstox",
+                    "stax2-api"
+                ]
+            ]
+        },
+        "stax-ex": {
+            "0": [
+                [
+                    "org.jvnet.staxex",
+                    "stax-ex"
+                ]
+            ],
+            "1": [
+                [
+                    "org.jvnet.staxex",
+                    "stax-ex"
+                ]
+            ]
+        },
+        "stringtemplate": {
+            "0": [
+                [
+                    "org.antlr",
+                    "stringtemplate"
+                ]
+            ],
+            "4": [
+                [
+                    "org.antlr",
+                    "ST4"
+                ]
+            ]
+        },
+        "sun-httpserver-bin": {
+            "2": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "sun-jaf": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "sun-jai-bin": {
+            "0": [
+                [
+                    "javax.media",
+                    "jai-core"
+                ]
+            ]
+        },
+        "sun-jimi": {
+            "0": [
+                [
+                    "com.sun",
+                    "jimi"
+                ]
+            ]
+        },
+        "sun-jms": {
+            "0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "sun-jmx": {
+            "0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "super-csv": {
+            "0": [
+                [
+                    "net.sf.supercsv",
+                    "super-csv"
+                ],
+                [
+                    "net.sf.supercsv",
+                    "super-csv-benchmark"
+                ],
+                [
+                    "net.sf.supercsv",
+                    "super-csv-distribution"
+                ],
+                [
+                    "net.sf.supercsv",
+                    "super-csv-dozer"
+                ],
+                [
+                    "net.sf.supercsv",
+                    "super-csv-joda"
+                ],
+                [
+                    "net.sf.supercsv",
+                    "super-csv-parent"
+                ]
+            ]
+        },
+        "swing-layout": {
+            "1": [
+                [
+                    "net.java.dev.swing-layout",
+                    "swing-layout"
+                ],
+                [
+                    "org.swinglabs",
+                    "swing-layout"
+                ]
+            ]
+        },
+        "swingx": {
+            "1.6": [
+                [
+                    "org.swinglabs",
+                    "swingx"
+                ],
+                [
+                    "org.swinglabs",
+                    "swingx-common"
+                ],
+                [
+                    "org.swinglabs",
+                    "swingx-core"
+                ]
+            ]
+        },
+        "swingx-beaninfo": {
+            "0": [
+                [
+                    "org.swinglabs.swingx",
+                    "swingx-beaninfo"
+                ]
+            ]
+        },
+        "swingx-ws": {
+            "bt747": [
+                [
+                    "org.swinglabs",
+                    "swingx-ws"
+                ]
+            ],
+            "0": [
+                [
+                    "org.swinglabs",
+                    "swingx-ws"
+                ]
+            ]
+        },
+        "swt": {
+            "3.7": [
+                [
+                    "org.eclipse",
+                    "swt"
+                ]
+            ],
+            "3.8": [
+                [
+                    "org.eclipse",
+                    "swt"
+                ]
+            ],
+            "4.10": [
+                [
+                    "org.eclipse",
+                    "swt"
+                ]
+            ],
+            "4.2": [
+                [
+                    "org.eclipse",
+                    "swt"
+                ]
+            ]
+        },
+        "tablelayout": {
+            "0": [
+                [
+                    "tablelayout",
+                    "TableLayout"
+                ]
+            ]
+        },
+        "tagsoup": {
+            "0": [
+                [
+                    "org.ccil.cowan.tagsoup",
+                    "tagsoup"
+                ]
+            ]
+        },
+        "tapestry": {
+            "3.0": [
+                [
+                    "tapestry",
+                    "tapestry"
+                ]
+            ]
+        },
+        "telnetd": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "testng": {
+            "0": [
+                [
+                    "org.testng",
+                    "testng"
+                ]
+            ]
+        },
+        "texhyphj": {
+            "0": [
+                [
+                    "com.googlecode.texhyphj",
+                    "texhyphj"
+                ]
+            ]
+        },
+        "tijmp": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "tomcat-jstl-compat": {
+            "0": [
+                [
+                    "org.apache.taglibs",
+                    "taglibs-build-tools"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-compat"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-impl"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-jstlel"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-spec"
+                ]
+            ]
+        },
+        "tomcat-jstl-el": {
+            "0": [
+                [
+                    "org.apache.taglibs",
+                    "taglibs-build-tools"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-compat"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-impl"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-jstlel"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-spec"
+                ]
+            ]
+        },
+        "tomcat-jstl-impl": {
+            "0": [
+                [
+                    "org.apache.taglibs",
+                    "taglibs-build-tools"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-compat"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-impl"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-jstlel"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-spec"
+                ]
+            ]
+        },
+        "tomcat-jstl-spec": {
+            "0": [
+                [
+                    "org.apache.taglibs",
+                    "taglibs-build-tools"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-compat"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-impl"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-jstlel"
+                ],
+                [
+                    "org.apache.taglibs",
+                    "taglibs-standard-spec"
+                ]
+            ]
+        },
+        "tomcat-native": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "tomcat-servlet-api": {
+            "2.3": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ],
+            "2.4": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ],
+            "2.5": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ],
+            "3.0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ],
+            "3.1": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ],
+            "4.0": [
+                [
+                    "VIRTUAL",
+                    "PROVIDED"
+                ]
+            ]
+        },
+        "toolbar": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "touchgraph-graphlayout": {
+            "0": [
+                [
+                    "graphlayout",
+                    "graphlayout"
+                ]
+            ]
+        },
+        "treelayout": {
+            "0": [
+                [
+                    "org.abego.treelayout",
+                    "org.abego.treelayout.core"
+                ]
+            ]
+        },
+        "trident": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "trove": {
+            "0": [
+                [
+                    "net.sf.trove4j",
+                    "trove4j"
+                ],
+                [
+                    "trove",
+                    "trove"
+                ]
+            ]
+        },
+        "txw2-runtime": {
+            "0": [
+                [
+                    "com.sun.xml.txw2",
+                    "txw2"
+                ],
+                [
+                    "org.glassfish.jaxb",
+                    "txw2"
+                ]
+            ]
+        },
+        "typesafe-config": {
+            "0": [
+                [
+                    "com.typesafe",
+                    "config"
+                ]
+            ]
+        },
+        "unkrig-nullanalysis": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "upnplib": {
+            "0": [
+                [
+                    "net.sbbi",
+                    "sbbi-upnplib"
+                ]
+            ]
+        },
+        "validation-api": {
+            "1.0": [
+                [
+                    "javax.validation",
+                    "validation-api"
+                ]
+            ]
+        },
+        "vecmath": {
+            "0": [
+                [
+                    "java3d",
+                    "vecmath"
+                ],
+                [
+                    "javax.vecmath",
+                    "vecmath"
+                ]
+            ]
+        },
+        "velocity": {
+            "0": [
+                [
+                    "org.apache.velocity",
+                    "velocity"
+                ],
+                [
+                    "velocity",
+                    "velocity"
+                ]
+            ]
+        },
+        "velocity-dvsl": {
+            "0": [
+                [
+                    "velocity-dvsl",
+                    "velocity-dvsl"
+                ]
+            ]
+        },
+        "vldocking": {
+            "0": [
+                [
+                    "dk.navicon",
+                    "vldocking"
+                ]
+            ]
+        },
+        "werken-xpath": {
+            "0": [
+                [
+                    "werken-xpath",
+                    "werken-xpath"
+                ]
+            ]
+        },
+        "ws-commons-util": {
+            "0": [
+                [
+                    "org.apache.ws.commons",
+                    "ws-commons-util"
+                ]
+            ]
+        },
+        "wsdl4j": {
+            "0": [
+                [
+                    "wsdl4j",
+                    "wsdl4j"
+                ]
+            ]
+        },
+        "wstx": {
+            "3.2": [
+                [
+                    "org.codehaus.woodstox",
+                    "wstx-asl"
+                ],
+                [
+                    "woodstox",
+                    "wstx-asl"
+                ]
+            ]
+        },
+        "xalan": {
+            "0": [
+                [
+                    "xalan",
+                    "xalan"
+                ]
+            ]
+        },
+        "xalan-serializer": {
+            "0": [
+                [
+                    "xalan-serializer",
+                    "xalan-serializer"
+                ]
+            ]
+        },
+        "xerces": {
+            "2": [
+                [
+                    "xerces",
+                    "xerces"
+                ],
+                [
+                    "xerces",
+                    "xercesImpl"
+                ],
+                [
+                    "xerces",
+                    "xmlParserAPIs"
+                ]
+            ]
+        },
+        "xerial-core": {
+            "0": [
+                [
+                    "org.xerial",
+                    "xerial-core"
+                ]
+            ]
+        },
+        "xjavac": {
+            "1": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "xml-commons": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "xml-commons-external": {
+            "1.3": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "1.4": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "xml-commons-resolver": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "xmldb": {
+            "0": [
+                [
+                    "xmldb",
+                    "xmldb-api"
+                ],
+                [
+                    "xmldb",
+                    "xmldb-common"
+                ]
+            ]
+        },
+        "xmlgraphics-commons": {
+            "2": [
+                [
+                    "org.apache.xmlgraphics",
+                    "xmlgraphics-commons"
+                ]
+            ]
+        },
+        "xmlrpc": {
+            "3": [
+                [
+                    "org.apache.xmlrpc",
+                    "xmlrpc"
+                ],
+                [
+                    "org.apache.xmlrpc",
+                    "xmlrpc-client"
+                ],
+                [
+                    "org.apache.xmlrpc",
+                    "xmlrpc-common"
+                ],
+                [
+                    "org.apache.xmlrpc",
+                    "xmlrpc-dist"
+                ],
+                [
+                    "org.apache.xmlrpc",
+                    "xmlrpc-server"
+                ]
+            ]
+        },
+        "xml-security": {
+            "0": [
+                [
+                    "org.apache.santuario",
+                    "xmlsec"
+                ]
+            ]
+        },
+        "xmlstreambuffer": {
+            "0": [
+                [
+                    "com.sun.xml.stream.buffer",
+                    "streambuffer"
+                ]
+            ]
+        },
+        "xmlunit": {
+            "1": [
+                [
+                    "xmlunit",
+                    "xmlunit"
+                ]
+            ]
+        },
+        "xml-writer": {
+            "0": [
+                [
+                    "com.megginson.sax",
+                    "xml-writer"
+                ]
+            ]
+        },
+        "xml-xmlbeans": {
+            "2": [
+                [
+                    "org.apache.xmlbeans",
+                    "xmlbeans"
+                ]
+            ]
+        },
+        "xmpcore": {
+            "0": [
+                [
+                    "com.adobe.xmp",
+                    "xmpcore"
+                ]
+            ]
+        },
+        "xom": {
+            "0": [
+                [
+                    "jaxen",
+                    "jaxen"
+                ],
+                [
+                    "com.io7m.xom",
+                    "xom"
+                ],
+                [
+                    "xom",
+                    "xom"
+                ]
+            ]
+        },
+        "xp": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "xpp2": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "xpp3": {
+            "0": [
+                [
+                    "xpp3",
+                    "xpp3"
+                ],
+                [
+                    "xpp3",
+                    "xpp3_min"
+                ]
+            ]
+        },
+        "xsdlib": {
+            "0": [
+                [
+                    "com.sun.msv.datatype.xsd",
+                    "xsdlib"
+                ],
+                [
+                    "msv",
+                    "xsdlib"
+                ],
+                [
+                    "net.java.dev.msv",
+                    "xsdlib"
+                ],
+                [
+                    "xsdlib",
+                    "xsdlib"
+                ]
+            ]
+        },
+        "xsom": {
+            "0": [
+                [
+                    "com.sun.xsom",
+                    "xsom"
+                ],
+                [
+                    "org.glassfish.jaxb",
+                    "xsom"
+                ]
+            ]
+        },
+        "xz-java": {
+            "0": [
+                [
+                    "org.tukaani",
+                    "xz"
+                ]
+            ]
+        },
+        "yanfs": {
+            "0": [
+                [
+                    "com.sun",
+                    "yanfs"
+                ]
+            ]
+        },
+        "zeus-jscl": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "dev-lang": {
+        "clojure": {
+            "1.8": [
+                [
+                    "org.clojure",
+                    "clojure"
+                ]
+            ]
+        },
+        "scala": {
+            "2.12": [
+                [
+                    "org.scala-lang",
+                    "scala-compiler"
+                ]
+            ]
+        },
+        "closure-compiler-bin": {
+            "0": [
+                [
+                    "com.google.javascript",
+                    "closure-compiler"
+                ]
+            ]
+        },
+        "erlang": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "gnuprologjava": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "interprolog": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "mercury": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "mozart": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "tuprolog": {
+            "0": [
+                [
+                    "it.unibo.alice.tuprolog",
+                    "tuprolog"
+                ]
+            ]
+        },
+        "xsb": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "yap": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "dev-util": {
+        "checkstyle": {
+            "0": [
+                [
+                    "com.puppycrawl.tools",
+                    "checkstyle"
+                ]
+            ]
+        },
+        "android-studio": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "argouml": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "astyle": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "bazel": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "findbugs": {
+            "0": [
+                [
+                    "com.google.code.findbugs",
+                    "findbugs"
+                ]
+            ]
+        },
+        "jarwizard": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jconfig": {
+            "0": [
+                [
+                    "jconfig",
+                    "jconfig"
+                ]
+            ]
+        },
+        "oprofile": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "scala-ide": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "visualvm": {
+            "7": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "weka": {
+            "0": [
+                [
+                    "nz.ac.waikato.cms.weka",
+                    "weka-stable"
+                ]
+            ]
+        },
+        "yuicompressor": {
+            "0": [
+                [
+                    "com.yahoo.platform.yui",
+                    "yuicompressor"
+                ]
+            ]
+        }
+    },
+    "media-gfx": {
+        "plantuml": {
+            "0": [
+                [
+                    "net.sourceforge.plantuml",
+                    "plantuml"
+                ]
+            ]
+        },
+        "ditaa": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "freewrl": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "graphviz": {
+            "0": [
+                [
+                    "guru.nidi",
+                    "graphviz-java"
+                ]
+            ]
+        },
+        "zbar": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "net-im": {
+        "kouchat": {
+            "0": [
+                [
+                    "net.usikkert.kouchat",
+                    "kouchat"
+                ]
+            ]
+        }
+    },
+    "app-accessibility": {
+        "brltty": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "freetts": {
+            "0": [
+                [
+                    "org.mobicents.external.freetts",
+                    "freetts"
+                ],
+                [
+                    "net.sf.sociaal",
+                    "freetts"
+                ]
+            ]
+        }
+    },
+    "app-admin": {
+        "logstash-bin": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "app-crypt": {
+        "jacksum": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "app-editors": {
+        "jedit": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jext": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "app-emacs": {
+        "jde": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "app-emulation": {
+        "edumips64": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "virtualbox": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "app-forensics": {
+        "sleuthkit": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "app-metrics": {
+        "collectd": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "app-misc": {
+        "jitac": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "rundeck-bin": {
+            "0": [
+                [
+                    "org.rundeck",
+                    "rundeck"
+                ]
+            ]
+        },
+        "rundeck-cli-bin": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "app-office": {
+        "borg": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "hourglass": {
+            "0": [
+                [
+                    "com.github.fleker",
+                    "hourglass"
+                ]
+            ]
+        },
+        "libreoffice": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "libreoffice-bin": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "moneydance": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "app-pda": {
+        "pilot-link": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "app-text": {
+        "hyperestraier": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jabref": {
+            "0": [
+                [
+                    "jabref",
+                    "jabref"
+                ]
+            ]
+        },
+        "jabref-bin": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "languagetool": {
+            "0": [
+                [
+                    "org.languagetool",
+                    "languagetool"
+                ],
+                [
+                    "org.languagetool",
+                    "languagetool-core"
+                ]
+            ]
+        },
+        "tesseract": {
+            "0": [
+                [
+                    "org.bytedeco.javacpp-presets",
+                    "tesseract"
+                ]
+            ]
+        },
+        "trang": {
+            "0": [
+                [
+                    "com.thaiopensource",
+                    "trang"
+                ]
+            ]
+        }
+    },
+    "dev-db": {
+        "apgdiff": {
+            "0": [
+                [
+                    "com.marvinformatics.apgdiff",
+                    "apgdiff"
+                ]
+            ]
+        },
+        "db-je": {
+            "3.3": [
+                [
+                    "berkeleydb",
+                    "je"
+                ]
+            ]
+        },
+        "henplus": {
+            "0": [
+                [
+                    "net.sourceforge",
+                    "henplus"
+                ]
+            ]
+        },
+        "hsqldb": {
+            "0": [
+                [
+                    "org.hsqldb",
+                    "hsqldb"
+                ]
+            ]
+        },
+        "qdbm": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "sqldeveloper": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "dev-embedded": {
+        "arduino": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "arduino-listserialportsc": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "dev-libs": {
+        "OpenNI": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "OpenNI2": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "cyrus-sasl": {
+            "2": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "link-grammar": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "xapian-bindings": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "dev-lisp": {
+        "abcl": {
+            "0": [
+                [
+                    "org.abcl",
+                    "abcl"
+                ]
+            ]
+        }
+    },
+    "dev-ruby": {
+        "rjb": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "dev-scheme": {
+        "jscheme": {
+            "0": [
+                [
+                    "jscheme",
+                    "jscheme"
+                ]
+            ]
+        },
+        "kawa": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "dev-tex": {
+        "pdfannotextractor": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "tex4ht": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "dev-vcs": {
+        "bfg": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "subversion": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "games-board": {
+        "domination": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "megamek": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "games-puzzle": {
+        "pauker": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "games-server": {
+        "minecraft-server": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "games-strategy": {
+        "freecol": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "triplea": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "gnome-extra": {
+        "libgda": {
+            "5": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "gnustep-libs": {
+        "sqlclient": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "media-libs": {
+        "libcaca": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "libjpeg-turbo": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "libpano13": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "opencv": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "portmidi": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "media-sound": {
+        "entagged-tageditor": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "protux": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "media-tv": {
+        "channeleditor": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "media-video": {
+        "bdsup2sub": {
+            "0": [
+                [
+                    "com.github.riccardove.easyjasub",
+                    "bdsup2sub"
+                ]
+            ]
+        },
+        "google2srt": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jubler": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "projectx": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "net-analyzer": {
+        "jmx2munin": {
+            "0": [
+                [
+                    "org.vafer",
+                    "jmx2munin"
+                ]
+            ]
+        },
+        "munin": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "zabbix": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "net-dns": {
+        "libidn": {
+            "0": [
+                [
+                    "org.gnu.inet",
+                    "libidn"
+                ]
+            ]
+        }
+    },
+    "net-libs": {
+        "NativeThread": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "nativebiginteger": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "net-misc": {
+        "ipmiview": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "jrdesktop": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "tigervnc": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "net-nds": {
+        "jxplorer": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "net-p2p": {
+        "bisq": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "freenet": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "vuze": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "net-vpn": {
+        "i2p": {
+            "0": [
+                [
+                    "net.i2p",
+                    "i2p"
+                ]
+            ]
+        }
+    },
+    "sci-astronomy": {
+        "cpl": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "gasgano": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "healpix": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sci-biology": {
+        "amap": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "gatk": {
+            "0": [
+                [
+                    "org.broadinstitute",
+                    "gatk"
+                ]
+            ]
+        },
+        "picard": {
+            "0": [
+                [
+                    "org.utgenome.thirdparty",
+                    "picard"
+                ]
+            ]
+        }
+    },
+    "sci-chemistry": {
+        "pymol-plugins-caver": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "tinker": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sci-electronics": {
+        "electric": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sci-geosciences": {
+        "bt747": {
+            "1": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "josm": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sci-libs": {
+        "cdf": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "gdal": {
+            "0": [
+                [
+                    "org.gdal",
+                    "gdal"
+                ]
+            ]
+        },
+        "libsvm": {
+            "0": [
+                [
+                    "tw.edu.ntu.csie",
+                    "libsvm"
+                ]
+            ]
+        },
+        "oce": {
+            "0.18.3": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "opencascade": {
+            "7.4.0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "plplot": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "vtk": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sci-mathematics": {
+        "geogebra": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "octave": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "rstudio": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sci-misc": {
+        "netlogo-bin": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sci-physics": {
+        "jaxodraw": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "thepeg": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sci-visualization": {
+        "gcalc": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sys-apps": {
+        "smcipmitool": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sys-cluster": {
+        "charmdebug": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "mpe2": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "openmpi": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        },
+        "projections": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sys-devel": {
+        "gettext": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sys-fs": {
+        "jdiskreport-bin": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "sys-libs": {
+        "db": {
+            "18.1": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ],
+            "4.2": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ],
+            "4.3": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ],
+            "4.4": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ],
+            "4.5": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ],
+            "4.6": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ],
+            "4.7": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ],
+            "4.8": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ],
+            "5.1": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ],
+            "5.3": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ],
+            "6.0": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ],
+            "6.1": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ],
+            "6.2": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ]
+        }
+    },
+    "www-apache": {
+        "mod_jk": {
+            "0": [
+                [
+                    "berkeleydb",
+                    "berkeleydb"
+                ]
+            ]
+        }
+    },
+    "www-apps": {
+        "zeppelin-bin": {
+            "0": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    },
+    "www-servers": {
+        "resin": {
+            "0": [
+                [
+                    "com.caucho",
+                    "resin"
+                ]
+            ]
+        },
+        "tomcat": {
+            "7": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "8.5": [
+                [
+                    "G",
+                    "A"
+                ]
+            ],
+            "9": [
+                [
+                    "G",
+                    "A"
+                ]
+            ]
+        }
+    }
+}

diff --git a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
index 4630350..6e0e447 100644
--- a/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
+++ b/src/main/java/org/gentoo/java/ebuilder/maven/MavenParser.java
@@ -108,7 +108,7 @@ public class MavenParser {
                 pomFile.toString(), "help:effective-pom",
                 "-Doutput=" + outputPath);
         processBuilder.directory(config.getWorkdir().toFile());
-        final ProcessBuilder xmlBuilder = new ProcessBuilder("/usr/lib/java-ebuilder/simple_formatter",
+        final ProcessBuilder xmlBuilder = new ProcessBuilder("simple-xml-formatter",
                 "" + outputPath);
         xmlBuilder.directory(config.getWorkdir().toFile());
 
@@ -131,17 +131,11 @@ public class MavenParser {
         final Process xmlProcess;
         try {
             xmlProcess = xmlBuilder.start();
-        } catch (final IOException ex) {
-            throw new RuntimeException("Failed to format xml", ex);
-        }
-        try {
             xmlProcess.waitFor(10, TimeUnit.MINUTES);
-        } catch (final InterruptedException ex) {
-            config.getErrorWriter().println("ERROR: xml formatter run 10 minutes??");
-            Runtime.getRuntime().exit(1);
+        } catch (final IOException | InterruptedException ex) {
+            config.getStdoutWriter().println('\n' + ex.toString());
         }
 
-
         if (process.exitValue() != 0) {
             config.getErrorWriter().println(
                     "ERROR: Failed to run mvn command:");


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2020-08-27 17:24 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-08-27 17:24 [gentoo-commits] proj/java-ebuilder:master commit in: scripts.new/, scripts.new/resources/resources/, Miroslav Šulc

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox