From ecd495b383dc06f1193c22c172b05660f70ddb83 Mon Sep 17 00:00:00 2001 From: zongyu Date: Mon, 24 Aug 2020 11:39:36 +0800 Subject: migrate scripts from scripts.new/ to scripts/ Signed-off-by: zongyu --- scripts.new/bin/compare-maven-version | 102 - scripts.new/bin/fill-cache | 55 - scripts.new/bin/simple-xml-formatter | 38 - scripts.new/bin/tree-wrapper.sh | 19 - scripts.new/bin/tree.sh | 284 - scripts.new/movl | 43 - scripts.new/resources/Makefiles/Makefile | 17 - scripts.new/resources/Makefiles/cache.mk | 25 - scripts.new/resources/Makefiles/environment.mk | 41 - scripts.new/resources/Makefiles/stage1.mk | 20 - scripts.new/resources/Makefiles/stage2.mk | 24 - scripts.new/resources/resources/LUT | 7508 ------------------------ scripts/bin/compare-maven-version | 102 + scripts/bin/fill-cache | 55 + scripts/bin/simple-xml-formatter | 38 + scripts/bin/tree-wrapper.sh | 19 + scripts/bin/tree.sh | 284 + scripts/meta.sh | 121 - scripts/movl | 123 +- scripts/resources/Makefiles/Makefile | 17 + scripts/resources/Makefiles/cache.mk | 25 + scripts/resources/Makefiles/environment.mk | 41 + scripts/resources/Makefiles/stage1.mk | 20 + scripts/resources/Makefiles/stage2.mk | 24 + scripts/resources/resources/LUT | 7484 +++++++++++++++++++++++ scripts/tree.sh | 145 - 26 files changed, 8146 insertions(+), 8528 deletions(-) delete mode 100755 scripts.new/bin/compare-maven-version delete mode 100755 scripts.new/bin/fill-cache delete mode 100755 scripts.new/bin/simple-xml-formatter delete mode 100755 scripts.new/bin/tree-wrapper.sh delete mode 100755 scripts.new/bin/tree.sh delete mode 100755 scripts.new/movl delete mode 100644 scripts.new/resources/Makefiles/Makefile delete mode 100644 scripts.new/resources/Makefiles/cache.mk delete mode 100644 scripts.new/resources/Makefiles/environment.mk delete mode 100644 scripts.new/resources/Makefiles/stage1.mk delete mode 100644 scripts.new/resources/Makefiles/stage2.mk delete mode 100644 scripts.new/resources/resources/LUT create mode 100755 scripts/bin/compare-maven-version create mode 100755 scripts/bin/fill-cache create mode 100755 scripts/bin/simple-xml-formatter create mode 100755 scripts/bin/tree-wrapper.sh create mode 100755 scripts/bin/tree.sh delete mode 100755 scripts/meta.sh create mode 100644 scripts/resources/Makefiles/Makefile create mode 100644 scripts/resources/Makefiles/cache.mk create mode 100644 scripts/resources/Makefiles/environment.mk create mode 100644 scripts/resources/Makefiles/stage1.mk create mode 100644 scripts/resources/Makefiles/stage2.mk create mode 100644 scripts/resources/resources/LUT delete mode 100755 scripts/tree.sh diff --git a/scripts.new/bin/compare-maven-version b/scripts.new/bin/compare-maven-version deleted file mode 100755 index de0ab47..0000000 --- a/scripts.new/bin/compare-maven-version +++ /dev/null @@ -1,102 +0,0 @@ -#!/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 deleted file mode 100755 index ebb8bf9..0000000 --- a/scripts.new/bin/fill-cache +++ /dev/null @@ -1,55 +0,0 @@ -#!/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 deleted file mode 100755 index 410ead7..0000000 --- a/scripts.new/bin/simple-xml-formatter +++ /dev/null @@ -1,38 +0,0 @@ -#!/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 ") - 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 deleted file mode 100755 index 259bf3f..0000000 --- a/scripts.new/bin/tree-wrapper.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/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 deleted file mode 100755 index 00eb870..0000000 --- a/scripts.new/bin/tree.sh +++ /dev/null @@ -1,284 +0,0 @@ -#!/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 '/bundle/d' \ - -e '//,/<\/distributionManagement>/d' \ - -e '//,/<\/build>/d' \ - -e '//,/<\/modules>/d' \ - -e 's,r938,1.0,' \ - -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 deleted file mode 100755 index 793eea9..0000000 --- a/scripts.new/movl +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash -[[ ${CONFIG} ]] && CONFIG=$(printf "%q\n" "$(realpath "${CONFIG}")") -export PATH="${PATH}:/usr/lib/java-ebuilder/bin" -export EROOT=$(dirname /etc) - -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 deleted file mode 100644 index 26e00a1..0000000 --- a/scripts.new/resources/Makefiles/Makefile +++ /dev/null @@ -1,17 +0,0 @@ - -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 deleted file mode 100644 index a2d7a29..0000000 --- a/scripts.new/resources/Makefiles/cache.mk +++ /dev/null @@ -1,25 +0,0 @@ -${CACHE_TIMESTAMP}: - touch "$@" - -${PRE_STAGE1_CACHE}.raw: ${CACHE_TIMESTAMP} - args=" --refresh-cache";\ - for repo in ${REPOS}; do\ - args="$${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="$${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 deleted file mode 100644 index d583cb8..0000000 --- a/scripts.new/resources/Makefiles/environment.mk +++ /dev/null @@ -1,41 +0,0 @@ -# Variables to drive tree.sh - -# SH is bad -SHELL=bash - -# determine EROOT. -# thanks to hprefixify, I do not need to call "python3 -c ..." -EROOT_SH="$(shell dirname /etc)" -EROOT=$(shell printf "%q\n" ${EROOT_SH}) - -# 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 - -# 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}\ - $(shell portageq get_repos ${EROOT})) -REPOS+=${MAVEN_OVERLAY_DIR} - -# where is the LookUp Table -LUTFILE?=${EROOT}/usr/lib/java-ebuilder/resources/LUT - -# cache, redefine CACHE_DIR to make it work with GNU Make -CACHE_DIR=$(shell printf "%q\n" ${CACHEDIR}) -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 deleted file mode 100644 index eeaa4d3..0000000 --- a/scripts.new/resources/Makefiles/stage1.mk +++ /dev/null @@ -1,20 +0,0 @@ - -.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 deleted file mode 100644 index 764bc5c..0000000 --- a/scripts.new/resources/Makefiles/stage2.mk +++ /dev/null @@ -1,24 +0,0 @@ -.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 - if [[ -f ${MAVEN_OVERLAY_DIR}/profiles/repo_name ]]; then\ - find ${MAVEN_OVERLAY_DIR} -type f \ - \( -name \*.ebuild \ - -o -name Manifest \)\ - -delete;\ - fi diff --git a/scripts.new/resources/resources/LUT b/scripts.new/resources/resources/LUT deleted file mode 100644 index 3c471f3..0000000 --- a/scripts.new/resources/resources/LUT +++ /dev/null @@ -1,7508 +0,0 @@ -{ - "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/scripts/bin/compare-maven-version b/scripts/bin/compare-maven-version new file mode 100755 index 0000000..de0ab47 --- /dev/null +++ b/scripts/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/bin/fill-cache b/scripts/bin/fill-cache new file mode 100755 index 0000000..ebb8bf9 --- /dev/null +++ b/scripts/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/bin/simple-xml-formatter b/scripts/bin/simple-xml-formatter new file mode 100755 index 0000000..410ead7 --- /dev/null +++ b/scripts/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 ") + 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/bin/tree-wrapper.sh b/scripts/bin/tree-wrapper.sh new file mode 100755 index 0000000..6b29286 --- /dev/null +++ b/scripts/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/bin/tree.sh b/scripts/bin/tree.sh new file mode 100755 index 0000000..69dfbd6 --- /dev/null +++ b/scripts/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 '/bundle/d' \ + -e '//,/<\/distributionManagement>/d' \ + -e '//,/<\/build>/d' \ + -e '//,/<\/modules>/d' \ + -e 's,r938,1.0,' \ + -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/meta.sh b/scripts/meta.sh deleted file mode 100755 index 4bd16ba..0000000 --- a/scripts/meta.sh +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash -# read in cache from java-ebuilder and find out the groupId, -# artifactId and version. - -# example: -# ( echo 1.0; tail -n +2 cache | parallel -j -2 meta.sh; ) > cache.1 -source /etc/java-ebuilder.conf -: ${PORTAGE_TMPDIR:=$(portageq envvar PORTAGE_TMPDIR)} - -pkg=$(awk -F ":" '{print $1"/"$2"-"$3}' <<< $1) -spkg=$(cut -d: -f2 <<< $1) -sver=$(cut -d: -f3 <<< $1) -case ${spkg} in - guava) - echo $1:com.google.guava:${spkg}:${sver%%-*} - exit 0 - ;; - json|jmock) - echo $1:org.${spkg}:${spkg}:${sver%%-*} - exit 0 - ;; - hamcrest-*) - echo $1:org.${spkg%%-*}:${spkg}:${sver%%-*} - exit 0 - ;; - xerces) - echo $1:xerces:${spkg}:${sver%%-*} - echo $1:xerces:xercesImpl:${sver%%-*} - echo $1:xerces:xmlParserAPIs:${sver%%-*} - exit 0 - ;; - commons-*|classworlds|jdom|xalan*) - echo $1:${spkg}:${spkg}:${sver%%-*} - exit 0 - ;; - javax-inject) - spkg=${spkg/-/.} - echo $1:${spkg}:${spkg}:${sver%%-*} - exit 0 - ;; - velocity) - echo $1:org.apache.${spkg}:${spkg}:${sver%%-*} - exit 0 - ;; - jtidy) - echo $1:net.sf.${spkg}:${spkg}:${sver%%-*} - exit 0 - ;; - saxpath) - echo $1:${spkg}:${spkg}:${sver%%-*}-FCS # maven version - echo $1:org.jdom:${spkg}:${sver%%-*}-FCS - exit 0 - ;; - ant*) - [[ ${spkg} = ant-core ]] && { spkg=ant; echo $1:ant:${spkg}:${sver%%-*}; } - [[ ${spkg} = ant-ivy ]] && spkg=ivy - echo $1:org.apache.ant:${spkg}:${sver%%-*} - exit 0 - ;; - bcpg|bcprov) - echo $1:org.bouncycastle:${spkg}-jdk12:130 - for jv in 1{4,5,6}; do - echo $1:org.bouncycastle:${spkg}-jdk${jv}:${sver%%-*} - done - exit 0 - ;; - asm) - echo $1:org.ow2.asm:${spkg}:${sver%%-*} - echo $1:org.ow2.asm:${spkg}-all:${sver%%-*} - echo $1:org.ow2.asm:${spkg}-debug-all:${sver%%-*} - exit 0 - ;; - cofoja) - echo $1:org.huoc:${spkg}:${sver%%-*} - exit 0 - ;; - scala) - echo $1:org.scala-lang:${spkg}-compiler:${sver%%-*} - exit 0 - ;; -esac - -touch bebd bpom -grep -q ${pkg} /dev/null) -if [[ -z "${ebd}" ]]; then - echo $1:${pkg} >> bebd - exit 0 -fi - -# java-utils-2.eclass:java-pkg_needs-vm() -export JAVA_PKG_NV_DEPEND="nothing" - -if ! ebuild "${ebd}" unpack >/dev/null 2>&1; then - echo $1:${pkg} >> bebd - exit 0 -fi - -bad_pom="yes" -for subd in "${PORTAGE_TMPDIR}"/portage/${pkg}/work/*; do - [[ -f ${subd}/pom.xml ]] || continue - bad_pom="" - pushd ${subd} > /dev/null - poms=$(mvn -q --also-make exec:exec -Dexec.executable="pwd" 2> /dev/null | grep ^/) - popd > /dev/null - for pd in ${poms}; do - ppom=$(xml2 < ${pd}/pom.xml | egrep '(groupId|artifactId|version)=') - PG=$(echo "${ppom}" | sed -n -r -e 's,/project/groupId=(.*),\1,p') - [[ -z ${PG} ]] && PG=$(echo "${ppom}" | sed -n -r -e 's,/project/parent/groupId=(.*),\1,p') - PA=$(echo "${ppom}" | sed -n -r -e 's,/project/artifactId=(.*),\1,p') - PV=$(echo "${ppom}" | sed -n -r -e 's,/project/version=(.*),\1,p') - [[ -z ${PV} ]] && PV=$(echo "${ppom}" | sed -n -r -e 's,/project/parent/version=(.*),\1,p') - echo $1:${PG}:${PA}:${PV/-SNAPSHOT/} - done -done -if [[ -n "${bad_pom}" ]]; then - echo $1:${pkg} >> bpom -fi - -ebuild "${ebd}" clean >/dev/null 2>&1 diff --git a/scripts/movl b/scripts/movl index efc31c7..793eea9 100755 --- a/scripts/movl +++ b/scripts/movl @@ -1,92 +1,43 @@ #!/bin/bash -source "/etc/java-ebuilder.conf" -tsh="/usr/lib/java-ebuilder/tree.sh" - -clean-maven() { - rm -f "${CACHEDIR}"/maven-cache - rm -rf "${MAVEN_OVERLAY_DIR}"/app-maven -} - -clean-pom() { - rm -f "${POMDIR}"/*.pom -} - -clean-cache() { - rm -f "${CACHEDIR}"/cache.{raw,}{0,1} - rm -f "${CACHEDIR}"/b{ebd,pom} -} - -clean() { - clean-cache - clean-pom - clean-maven -} - -rrdep() { - # regenerate reverse dependencies - for rdep in $(egrep -l "$1.*->" -r "${MAVEN_OVERLAY_DIR}"/app-maven); do - [[ ${rdep} = *.ebuild ]] && "${tsh}" ${rdep} - done -} - -refresh() { - if [[ $1=*:* ]]; then - rrdep $1 - else - # input: package name - for ebd in "${MAVEN_OVERLAY_DIR}"/app-maven/$1/*.ebuild; do - mid=$(sed -nr 's,^MAVEN_ID="(.*)",\1,p' "${ebd}") - rm "${ebd}"; "${tsh}" ${mid} - sed "/${mid}/d" -i "${CACHEDIR}"/maven-cache - rrdep ${mid} - done - fi -} - -build() { - : ${PORTDIR:=$(portageq get_repo_path $(portageq envvar EROOT) gentoo)} - : ${PORTAGE_TMPDIR:=$(portageq envvar PORTAGE_TMPDIR)} - export PORTAGE_TMPDIR - - if [[ ! -f "${CACHEDIR}"/cache.0 ]]; then - # 1. Generate cache of java related packages from portage tree. - [[ -f "${CACHEDIR}"/cache.raw0 ]] || \ - java-ebuilder --refresh-cache -t "${PORTDIR}" --cache-file "${CACHEDIR}"/cache.raw0 - - # 2. Find corresponding maven groupId, artifactId and version in the cache. - pushd "${CACHEDIR}" > /dev/null - ( echo 1.0; tail -n +2 cache.raw0 | parallel -j -1 /usr/lib/java-ebuilder/meta.sh; ) > cache.0 - popd > /dev/null - fi - - # do the same to java overlay - if [[ ! -f "${CACHEDIR}"/cache.1 ]]; then - if [[ -n "${JAVA_OVERLAY_DIR}" ]]; then - [[ -f "${CACHEDIR}"/cache.raw1 ]] || \ - java-ebuilder --refresh-cache -t "${JAVA_OVERLAY_DIR}" --cache-file "${CACHEDIR}"/cache.raw1 - pushd "${CACHEDIR}" > /dev/null - tail -n +2 cache.raw1 | parallel -j -1 /usr/lib/java-ebuilder/meta.sh > cache.1 - popd > /dev/null - else - touch "${CACHEDIR}"/cache.1 - fi - fi - - for M in ${MAVEN_ARTS}; do - "${tsh}" ${M} - done - - cd "${MAVEN_OVERLAY_DIR}"/app-maven - parallel ebuild '$(echo {}/*.ebuild | cut -d\ -f1)' digest ::: * -} +[[ ${CONFIG} ]] && CONFIG=$(printf "%q\n" "$(realpath "${CONFIG}")") +export PATH="${PATH}:/usr/lib/java-ebuilder/bin" +export EROOT=$(dirname /etc) if [[ $# -gt 0 ]]; then - funcs=$1 - shift 1 + 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 - funcs=build + movl -h + exit 0 fi -for func in ${funcs}; do - ${func} $@ -done +cd "${EROOT}/usr/lib/java-ebuilder/Makefiles" +make $@ + diff --git a/scripts/resources/Makefiles/Makefile b/scripts/resources/Makefiles/Makefile new file mode 100644 index 0000000..26e00a1 --- /dev/null +++ b/scripts/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/resources/Makefiles/cache.mk b/scripts/resources/Makefiles/cache.mk new file mode 100644 index 0000000..a2d7a29 --- /dev/null +++ b/scripts/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="$${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="$${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/resources/Makefiles/environment.mk b/scripts/resources/Makefiles/environment.mk new file mode 100644 index 0000000..d583cb8 --- /dev/null +++ b/scripts/resources/Makefiles/environment.mk @@ -0,0 +1,41 @@ +# Variables to drive tree.sh + +# SH is bad +SHELL=bash + +# determine EROOT. +# thanks to hprefixify, I do not need to call "python3 -c ..." +EROOT_SH="$(shell dirname /etc)" +EROOT=$(shell printf "%q\n" ${EROOT_SH}) + +# 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 + +# 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}\ + $(shell portageq get_repos ${EROOT})) +REPOS+=${MAVEN_OVERLAY_DIR} + +# where is the LookUp Table +LUTFILE?=${EROOT}/usr/lib/java-ebuilder/resources/LUT + +# cache, redefine CACHE_DIR to make it work with GNU Make +CACHE_DIR=$(shell printf "%q\n" ${CACHEDIR}) +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/resources/Makefiles/stage1.mk b/scripts/resources/Makefiles/stage1.mk new file mode 100644 index 0000000..363bf4e --- /dev/null +++ b/scripts/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="$(shell echo ${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/resources/Makefiles/stage2.mk b/scripts/resources/Makefiles/stage2.mk new file mode 100644 index 0000000..764bc5c --- /dev/null +++ b/scripts/resources/Makefiles/stage2.mk @@ -0,0 +1,24 @@ +.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 + if [[ -f ${MAVEN_OVERLAY_DIR}/profiles/repo_name ]]; then\ + find ${MAVEN_OVERLAY_DIR} -type f \ + \( -name \*.ebuild \ + -o -name Manifest \)\ + -delete;\ + fi diff --git a/scripts/resources/resources/LUT b/scripts/resources/resources/LUT new file mode 100644 index 0000000..0a4f02e --- /dev/null +++ b/scripts/resources/resources/LUT @@ -0,0 +1,7484 @@ +{ + "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-annotations" + ] + ] + }, + "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/scripts/tree.sh b/scripts/tree.sh deleted file mode 100755 index 6bb7cc5..0000000 --- a/scripts/tree.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/bash -# start from the root of a maven artifact and recursively resolve its -# dependencies. - -source /etc/java-ebuilder.conf - -mkdir -p "${POMDIR}" - -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 - echo $(sed 's/[^.0-9]//g' <<< ${PV/_*/})_${PV/*_/} - else - sed 's/[^.0-9]//g' <<< ${PV} - fi -} - -gebd() { - case ${MA} in - weld-osgi-bundle) - # 1.1.0.Final no longer exist - [[ ${MV} = 1.1.0.Final ]] && MV=1.1.33.Final - ;; - esac - - local WORKDIR=${PG//./\/}/${MA} MID - local MID=${PG}:${MA}:${MV} - local PV=$(sver ${MV}) PA SLOT - - case ${MA} in - opengl-api) - [[ ${MV} = 2.1.1 ]] && MV=gl1.1-android-2.1_r1 - ;; - esac - - # 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//_/-} - - local M=${MA}-${MV} - local SRC_URI="https://repo.maven.apache.org/maven2/${WORKDIR}/${MV}/${M}-sources.jar" - - if [[ ! -f "${POMDIR}"/${M}.pom ]]; then - pushd "${POMDIR}" > /dev/null - wget ${SRC_URI/-sources.jar/.pom} - - # 3rd party plugin not needed here - # distributionManagement is invalid for maven 3 - # net.sf.jtidy:jtidy:r938 version is not maven-compliant - sed -e '/bundle/d' \ - -e '//,/<\/distributionManagement>/d' \ - -e '//,/<\/build>/d' \ - -e '//,/<\/modules>/d' \ - -e 's,r938,1.0,' \ - -i ${M}.pom - popd - fi - - if ! wget -q --spider ${SRC_URI}; then - SRC_URI=${SRC_URI/-sources.jar/.jar} - PA=${PA}-bin - fi - local P=${PA}-${PV} - local ebd="${MAVEN_OVERLAY_DIR}"/app-maven/${PA}/${P}.ebuild - - line=app-maven:${PA}:${PV}:${SLOT:-0}::${MID} - if ! grep -q ${line} "${CACHEDIR}"/maven-cache 2>/dev/null ; then - pushd "${CACHEDIR}" > /dev/null - echo ${line} >> maven-cache - cat cache.{0,1} maven-cache > cache - popd > /dev/null - fi - - if [[ ! -f "${ebd}" ]]; then - mkdir -p $(dirname ${ebd}) - java-ebuilder -p "${POMDIR}"/${M}.pom -e "${ebd}" -g --workdir . \ - -u ${SRC_URI} --slot ${SLOT:-0} --keywords ~amd64 \ - --cache-file "${CACHEDIR}"/cache - fi - - if [[ -z "${MAVEN_NODEP}" ]] && mfill "${ebd}"; then - java-ebuilder -p "${POMDIR}"/${M}.pom -e "${ebd}" -g --workdir . \ - -u ${SRC_URI} --slot ${SLOT:-0} --keywords ~amd64 \ - --cache-file "${CACHEDIR}"/cache - fi - - [[ ${SRC_URI} = *-sources.jar ]] || sed -i "/inherit/s/java-pkg-simple/java-pkg-binjar/" "${ebd}" -} - -mfill() { - # recursively fill missing dependencies - arts=$(sed -n -r 's,# (test\? )?(.*)-> !!!.*-not-found!!!,\2,p' < $1) - if [[ -z "${arts}" ]]; then - false # no need to java-ebuilder again - else - for a in ${arts}; do - eval $(awk -F":" '{print "PG="$1, "MA="$2, "MV="$3}' <<< ${a}) - gebd - done - return - fi -} - -if [[ $1 == *.ebuild ]]; then - eval $(grep MAVEN_ID $1) - rm -f $1 -else - MAVEN_ID=$1 -fi -eval $(awk -F":" '{print "PG="$1, "MA="$2, "MV="$3}' <<< ${MAVEN_ID}) -gebd -- cgit v1.2.3-65-gdbad