aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzongyu <zzy2529420793@gmail.com>2020-08-24 11:39:36 +0800
committerZhang Zongyu <zzy2529420793@gmail.com>2020-08-27 14:22:35 +0800
commitecd495b383dc06f1193c22c172b05660f70ddb83 (patch)
treec299a74b18f0ad5a229dc6ab9a1eee416a6621ef /scripts
parentupdate scripts.new/* to make use of 'hprefixify' (diff)
downloadjava-ebuilder-ecd495b383dc06f1193c22c172b05660f70ddb83.tar.gz
java-ebuilder-ecd495b383dc06f1193c22c172b05660f70ddb83.tar.bz2
java-ebuilder-ecd495b383dc06f1193c22c172b05660f70ddb83.zip
migrate scripts from scripts.new/ to scripts/
Signed-off-by: zongyu <zzy2529420793@gmail.com>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/bin/compare-maven-version102
-rwxr-xr-xscripts/bin/fill-cache55
-rwxr-xr-xscripts/bin/simple-xml-formatter38
-rwxr-xr-xscripts/bin/tree-wrapper.sh19
-rwxr-xr-xscripts/bin/tree.sh284
-rwxr-xr-xscripts/meta.sh121
-rwxr-xr-xscripts/movl123
-rw-r--r--scripts/resources/Makefiles/Makefile17
-rw-r--r--scripts/resources/Makefiles/cache.mk25
-rw-r--r--scripts/resources/Makefiles/environment.mk41
-rw-r--r--scripts/resources/Makefiles/stage1.mk20
-rw-r--r--scripts/resources/Makefiles/stage2.mk24
-rw-r--r--scripts/resources/resources/LUT7484
-rwxr-xr-xscripts/tree.sh145
14 files changed, 8146 insertions, 352 deletions
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 <file.xml>")
+ sys.exit()
+
+# remove strange lines that do not start with "<" and locate
+# before the begining or after the ending of an xml file.
+def purify_xml(lines, order = 'f'):
+ if order == 'r':
+ order = range(len(lines))
+ else:
+ order = reversed(range(len(lines)))
+
+ for i in order:
+ if lines[i].startswith('<'):
+ break
+ else:
+ lines[i] = ''
+
+with open(xml_file) as f:
+ lines = f.readlines()
+ purify_xml(lines)
+ purify_xml(lines, 'r')
+
+with open(xml_file, 'w') as f:
+ f.writelines(lines)
diff --git a/scripts/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 '/<packaging>bundle/d' \
+ -e '/<distributionManagement>/,/<\/distributionManagement>/d' \
+ -e '/<build>/,/<\/build>/d' \
+ -e '/<modules>/,/<\/modules>/d' \
+ -e 's,<version>r938</version>,<version>1.0</version>,' \
+ -i ${M}.pom
+ popd > /dev/null
+ fi
+
+ local P=${PA}-${PV}
+ local cur_stage_ebd="${CUR_STAGE_DIR}"/${CATEGORY}/${PA}/${P}.ebuild
+ local final_stage_ebd="${MAVEN_OVERLAY_DIR}"/${CATEGORY}/${PA}/${P}.ebuild
+
+ # refresh cache before execute java-ebuilder
+ pushd "${CACHEDIR}" > /dev/null
+ cat "${GENTOO_CACHE}" ${CUR_STAGE}-maven-cache > ${CUR_STAGE}-cache
+ popd > /dev/null
+
+ # generate ebuild file if it does not exist
+ if [[ ! -f "${cur_stage_ebd}" ]]; then
+ mkdir -p "$(dirname "${cur_stage_ebd}")"
+ tsh_log "java-ebuilder: generage ebuild files for ${MID} in ${CUR_STAGE}"
+ java-ebuilder -p "${POMDIR}"/${M}.pom -e "${cur_stage_ebd}" -g --workdir "${POMDIR}" \
+ -u ${SRC_URI} --slot ${SLOT:-0} --keywords ~amd64 \
+ --cache-file "${CACHEDIR}"/${CUR_STAGE}-cache
+ if [[ "$?" -eq 0 ]]; then
+ tsh_log "java-ebuilder Returns $?"
+ else
+ tsh_err "java-ebuilder Returns $?"
+ # trigger cache-rebuild
+ touch "${CACHE_TIMESTAMP}"
+ # Remove lines that triggers mfill() to avoid meeting the problematic artifact again
+ find "${CUR_STAGE_DIR}" -type f -name \*.ebuild \
+ -exec sed -i "s/^.*${MID}.*not-found.*$//" {} \;
+ tsh_err "The problematic artifact is ${MID},"
+ tsh_err "please write it (or its parent) a functional ebuild,"
+ tsh_err "make it a part of your overlay (the overlay does not need to be ${MAVEN_OVERLAY_DIR}),"
+ tsh_err "and run \`movl build\` afterwards"
+ tsh_err ""
+ tsh_err "P.S. DO NOT forget to assign a MAVEN_ID to the ebuild"
+ tsh_err "P.P.S. To make \`movl build\` deal with the dependency of ${MID},"
+ tsh_err "you need to add MAVEN_IDs of the dependencies to"
+ tsh_err "your MAVEN_ARTS variable in ${CONFIG}"
+ exit 1
+ fi
+ fi
+
+ # update maven-cache after java-ebuilder generate the corresponding ebuild
+ line=${CATEGORY}:${PA}:${PV}:${SLOT:-0}::${MID}
+ if ! grep -q ${line} "${CACHEDIR}"/${CUR_STAGE}-maven-cache 2>/dev/null ; then
+ pushd "${CACHEDIR}" > /dev/null
+ echo ${line} >> ${CUR_STAGE}-maven-cache
+ popd > /dev/null
+ fi
+
+ # filling parent target_line
+ [[ ! -z ${MAKEFILE_DEP} ]] && target_line+="${final_stage_ebd} "
+ [[ -z ${MAKEFILE_DEP} ]] && local target_line+="all: ${final_stage_ebd}\n"
+ # filling my target_line
+ local target_line+="#${final_stage_ebd}"
+ target_line+="\n"
+ target_line+="${final_stage_ebd}: "
+
+ # resolve the reverse dependency
+ [[ -z "${MAVEN_NODEP}" ]] && MAKEFILE_DEP=1 mfill "${cur_stage_ebd}"
+
+ target_line+="\n"
+ target_line+="\tmkdir -p \"$(dirname "${final_stage_ebd}")\"\n"
+ target_line+="\tjava-ebuilder -p \"${POMDIR}\"/${M}.pom -e \"${final_stage_ebd}\" -g --workdir \"${POMDIR}\""
+ target_line+=" -u ${SRC_URI} --slot ${SLOT:-0} --keywords ~amd64"
+ target_line+=" --cache-file \"${CACHEDIR}\"/post-${CUR_STAGE}-cache"
+ if [[ ${SRC_URI} = *-sources.jar ]]; then
+ # inherit java-maven-central to handle src_unpack
+ target_line+=" --from-maven-central --binjar-uri ${SRC_URI/-sources.jar/.jar}\n"
+ target_line+="\n"
+ else
+ # inherit "java-pkg-binjar" if SRC_URI does not point to source code
+ target_line+="\n"
+ target_line+="\tsed -i \"/inherit/s/java-pkg-simple/java-pkg-binjar/\" \"${final_stage_ebd}\"\n"
+ target_line+="\n"
+ fi
+
+ if ! grep -q "#${final_stage_ebd}" ${TARGET_MAKEFILE} 2>/dev/null ; then
+ echo -e $target_line >> ${TARGET_MAKEFILE}
+ fi
+}
+
+# filling dependencies
+mfill() {
+ # recursively fill missing dependencies
+ arts=$(sed -n -r 's,# (test\? )?(.*) -> !!!.*-not-found!!!,\2,p' < $1)
+ tsh_log "mfill: dealing with $1"
+ if [[ -z "${arts}" ]]; then
+ return # no need to java-ebuilder again
+ else
+ for a in ${arts}; do
+ eval $(awk -F":" '{print "PG="$1, "MA="$2, "MV=""\x27"$3"\x27"}' <<< ${a})
+ gebd
+ done
+ return
+ fi
+}
+
+if [[ ! -z ${JUST_MFILL} ]]; then
+ mfill $1
+ exit $?
+elif [[ $1 == *.ebuild ]]; then
+ eval $(grep MAVEN_ID $1)
+ eval $(grep MAVEN_FORCE_PA $1)
+ eval $(grep MAVEN_FORCE_CATEGORY $1)
+ #rm -f $1
+else
+ MAVEN_ID=$1
+fi
+eval $(awk -F":" '{print "PG="$1, "MA="$2, "MV="$3}' <<< ${MAVEN_ID})
+gebd
+tsh_log "Tree.sh: reaching the end of the script"
diff --git a/scripts/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} <bebd <bpom && exit 0
-
-ebd=$(equery w ${pkg} 2>/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 '/<packaging>bundle/d' \
- -e '/<distributionManagement>/,/<\/distributionManagement>/d' \
- -e '/<build>/,/<\/build>/d' \
- -e '/<modules>/,/<\/modules>/d' \
- -e 's,<version>r938</version>,<version>1.0</version>,' \
- -i ${M}.pom
- popd
- 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