diff options
author | zongyu <zzy2529420793@gmail.com> | 2020-08-21 14:25:35 +0800 |
---|---|---|
committer | zongyu <zzy2529420793@gmail.com> | 2020-08-23 22:01:15 +0800 |
commit | 7bd844625184601f0b423cc42946c01293135cd5 (patch) | |
tree | 4d8096ce6954d8468323782f7658b2ad86781435 | |
parent | accept multiple --portage-trees while generating cache (diff) | |
download | java-ebuilder-7bd844625184601f0b423cc42946c01293135cd5.tar.gz java-ebuilder-7bd844625184601f0b423cc42946c01293135cd5.tar.bz2 java-ebuilder-7bd844625184601f0b423cc42946c01293135cd5.zip |
rewrite scripts/*
use Makefile to drive the process of generating maven overlay
Signed-off-by: zongyu <zzy2529420793@gmail.com>
-rwxr-xr-x | scripts.new/bin/compare-maven-version | 102 | ||||
-rwxr-xr-x | scripts.new/bin/fill-cache | 55 | ||||
-rwxr-xr-x | scripts.new/bin/simple-xml-formatter | 38 | ||||
-rwxr-xr-x | scripts.new/bin/tree-wrapper.sh | 19 | ||||
-rwxr-xr-x | scripts.new/bin/tree.sh | 284 | ||||
-rwxr-xr-x | scripts.new/movl | 43 | ||||
-rw-r--r-- | scripts.new/resources/Makefiles/Makefile | 17 | ||||
-rw-r--r-- | scripts.new/resources/Makefiles/cache.mk | 25 | ||||
-rw-r--r-- | scripts.new/resources/Makefiles/environment.mk | 38 | ||||
-rw-r--r-- | scripts.new/resources/Makefiles/stage1.mk | 20 | ||||
-rw-r--r-- | scripts.new/resources/Makefiles/stage2.mk | 23 | ||||
-rw-r--r-- | scripts.new/resources/resources/LUT | 7508 | ||||
-rw-r--r-- | src/main/java/org/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:"); |