Watch
1
0
Fork
You've already forked pkg-proxy
1
mirror of https://github.com/git-pkgs/proxy.git synced 2026-11-09 07:39:19 -05:00
pkg-proxy/internal/config/maven_group_roots.txt
simon chrzanowski cc6069d8a0
Serve additional Maven repositories at /maven/{name}/ (#539)
* Serve additional Maven repositories at /maven/{name}/

upstream.maven_repositories maps names to further Maven repositories,
each served at /maven/{name}/ from its own upstream, like
debian_repositories does for APT. upstream.maven stays the default at
/maven/ with unchanged cache keys and its Gradle Plugin Portal fallback;
named repositories don't fall back to the portal.

Named repositories cache their files under {name}/{filename} and hash
their metadata keys from name, upstream URL and path, so the same
coordinates in two repositories, which may hold different bytes, never
share a cache entry.

A repository name is matched before the default repository and would
hide group IDs starting with it, so names of two letters or less and
common top-level domains (com, org, net, io, ...) are refused at config
load. The documentation asks for names that can't start a group ID.

Fixes #295

* Refuse every Maven Central group root as a repository name

The hand-written list missed real roots such as tools (Jackson 3),
software (AWS SDK), jakarta, javax and junit, so a repository named after
one would have hidden those groups in the default repository. The name
check now uses the first path segments of all group IDs on Maven Central,
plus Google's androidx and android, embedded from the repository's
directory listing.

Names are compared case-sensitively, since routing is, so "ORG" is no
longer refused for hiding "org".

A named repository's files are now cached under its name and a hash of
its upstream URL, so pointing it at a different URL stops serving what
the old one sent.

* Refuse Gradle Plugin Portal roots and unroutable repository names

- The default repository falls back to the Gradle Plugin Portal, so its
  group roots (gradle, nebula, ...) would be hidden by a repository of
  the same name too. The embedded list now holds the roots of Maven
  Central and the Plugin Portal.
- Repository names are limited to letters, digits, '.', '_' and '-', so
  a name can't contain characters such as '?', '#' or spaces that never
  reach the handler as configured.
- Named repositories are built once in WithRepositories, with their
  cache prefix, instead of on every request.
2026-10-21 11:10:49 +01:00

1228 lines
10 KiB
Text

# First path segments of group IDs on Maven Central and the Gradle Plugin
# Portal, which the default repository falls back to, plus roots from
# Google's Maven repository. A maven_repositories name from this list would
# hide those groups in the default repository. Regenerate with:
# for u in https://repo1.maven.org/maven2/ https://plugins.gradle.org/m2/; do
# curl -s $u | grep -o 'href="[^"]*/"' | sed 's/href="//;s/\/"//' | grep -v '^\.\.$'
# done | sort -u # then add android and androidx
0x
abbot
ac
academy
acegisecurity
activation
activecluster
activeio
activemq
activemq-jaxb
activesoap
activespace
ad
adarwin
ae
aelfred
aero
africa
ag
agency
agorapulse
ai
aislib
ajk
al
all
alm
altrmi
am
amdonov
amnl
android
androidx
andromda
annogen
ant
ant-contrib
ant-doxygen
ant4eclipse
antlr
anttex
anverus
anvil
aopalliance
apache-jaxme
apl
app
aptconvert
ar
argelbargel
args4j
art
as
ashkay
ashkelon
asia
asm
aspectj
aspectwerkz
at
au
audio
avalon
avalon-activation
avalon-apps
avalon-composition
avalon-cornerstone
avalon-extension
avalon-framework
avalon-http
avalon-logging
avalon-logkit
avalon-meta
avalon-phoenix
avalon-repository
avalon-util
aws
ax
axion
axis
axis2
az
azote
ba
backport-util-concurrent
backport175
bairesqa
band
barsuift
baseline
batik
bayern
bcel
bd
be
beehive
beer
berkano
berkeleydb
berlin
best
bet
bg
bi
bike
binky
bio
biz
black
blissed
blog
blue
boo
bot
bouncycastle
box
boxstuff
br
brownshome
bsf
bsh
bue
build
builders
bump
burlap
buzz
by
bz
c10n
c3p0
ca
cab
cactus
cafe
calces
cam
camp
capital
cards
care
cargo
cas
casa
cash
castor
cat
cc
ccd-sdk
cd
center
cern
cewolf
cf
cglib
cgoit
ch
charlotte
chat
cheap
checkstyle
church
ci
city
cj
cl
classworlds
click
clickstream
clinic
clirr
cloud
clover
club
cm
cmsdeploy
cn
co
coach
cobertura
coconut
cocoon
code
code316
codehaus
CodeLineCounter
codes
coffee
colaba
colt
com
commons-attributes
commons-beanutils
commons-betwixt
commons-chain
commons-cli
commons-codec
commons-collections
commons-compress
commons-configuration
commons-daemon
commons-dbcp
commons-dbutils
commons-digester
commons-discovery
commons-el
commons-email
commons-fileupload
commons-grafolia
commons-grant
commons-graph
commons-http
commons-httpclient
commons-i18n
commons-io
commons-jdbc2pool
commons-jelly
commons-jexl
commons-jux
commons-jxpath
commons-lang
commons-latka
commons-launcher
commons-logging
commons-math
commons-messenger
commons-modeler
commons-naming
commons-net
commons-pool
commons-primitives
commons-resources
commons-scxml
commons-services
commons-sql
commons-test
commons-threadpool
commons-transaction
commons-util
commons-validator
commons-vfs
commons-xo
community
company
computer
concurrent
consulting
continuum
controlhaus
cool
coop
cornerstone-connection
cornerstone-datasources
cornerstone-scheduler
cornerstone-sockets
cornerstone-store
cornerstone-threads
cos
cover
craft
crimson
cryptix
cssparser
cup
cv
cwoongc
cx
cz
d-haven-event
d-haven-eventbus
d-haven-mpool
d3code
daemoniclabs
dalma
dalms
damagecontrol
dataforge
datasift
date
daveight
davethe8
day
dbunit
de
decaf
decorutils
default
dentaku
dependency
dependency-maven-plugin
design
dev
digit
digital
dinistiq
directory
directory-asn1
directory-authx
directory-clients
directory-naming
directory-network
directory-protocols
directory-shared
displaytag
ditchnet
dk
dm
dna
dnsjava
do
docbook
doccheck
docker
dom4j
domify
doxia
drone
drools
drools-examples
ds2
dsh-vocabulary
dtdparser
dumbster
dwr
dynaop
earth
easyconf
easymock
ec
echo
echo3
echo3extras
eclipse
eco
ecs
edenlib
edtftp
edu
education
ee
egor-n
ehcache
ejb
el-impl
elect86
email
emberio
emetriq
emma
energy
engineer
engineering
enterprise
enterprises
ervacon
es
esdk
esper
eu
eus
events
excalibur
excalibur-altrmi
excalibur-cli
excalibur-collections
excalibur-component
excalibur-component-examples
excalibur-component-tests
excalibur-concurrent
excalibur-configuration
excalibur-containerkit
excalibur-datasource
excalibur-event
excalibur-extension
excalibur-fortress
excalibur-i18n
excalibur-instrument
excalibur-instrument-manager
excalibur-instrument-manager-interfaces
excalibur-io
excalibur-lifecycle
excalibur-logger
excalibur-monitor
excalibur-mpool
excalibur-naming
excalibur-pool
excalibur-sourceresolve
excalibur-store
excalibur-thread
excalibur-util
excalibur-xmlutil
exchange
exist
exml
exo
exolabcore
expert
express
exteca
external
ezy
family
fan
fans
farm
fashion
fastutil
fesi
fi
film
finance
financial
findbugs
firebase
firedancer
fish
fit
flavor
flox
flux
fm
fo
foo
fop
forehead
formproc
foundation
foxtrot
fr
framework
freebxml
freemarker
frl
fulcrum
fun
fwrap
fyi
ga
gabriel
gae
games
garden
gay
gbean
gdn
ge
generama
genjar
genjava
gent
geronimo
geronimo-spec
getui
gg
github
glass
glassfish
gliby
global
gmbh
gnu
gnu-regexp
gov
gq
gr
gradle
gradle-autoconf
gradle-clojure
gradle-jenkins-job-dsl-plugin
graphics
graphlayout
green
greendao
gregdev
grizzly
grizzly-cachetest
groovy
groovy-xmlrpc
groovycalamari
groovyx
group
gryphon
gs
gsbase
guru
haibison
hamburg
health
help
hessian
hibernate
hihex
hivemind
hk
hm
hmcts
hnct
Hoop
host
house
howl
hr
hsqldb
htmlunit
HTTPClient
httpcomponents-httpcore
httpunit
hu
hudson
huqi
i
ical4j
icu
icu4j
id
idb
ie
iirekm
ikakara
il
im
immo
in
inc
industries
info
informa
ink
innig
int
io
iq
ir
is
isorelax
it
itext
ivory
izpack
jaas
jaci
jackcess
jackson
jacl
jaf
jaimbot
jakarta
jakarta-regexp
jalopy
james
janino
jardiff
jarjar
jarsync
jasper-jsr199
jasperreports
java_cup
java2html
java3d
javacc
javaconfig
javadb
javadoc
javaee
javagroups
javainetlocator
javamail
javamuc
javancss
javanettasks
javassist
javatar
javax
javazoom
javolution
jawin
jaxb
jaxen
jaxme
jaxr-ra
jblanket
jboss
jca
jcache
jcharts
jcifs
jcollardbovy
jcom
jcommon
jcoverage
jcs
jcs-javagroups
jcvsii
jdbc
jdbm
jdepend
jdiff
jdo
jdom
jdring
jdsl
je
jen
jencks
jep
jepi
jersey
jetty
jexcelapi
jface
jfree
jfreechart
jgen
jgoodies
jgraph
jgrapht
jgroups
jhunlang
jimmy
jini
jintention
jisp
jivesoftware
jlibdiff
jline
jmagick
jmaki
jmdns
jmfayard
jmimemagic
jmml
jmock
jms
jmscts
jmsn
joda-time
john-test
jotm
jp
jparsec
jpl
jpox
jpox-dbcp
jpox-enhancer
jpox-java5
jrexx
jrms
jrobin
jruby
jsch
jsf-extensions
jspapi
jsptags
jstl
jstyle
jta
jtds
jtidy
juddi
judy
jug
jung
junit
junit-addons
junit-doclet
junitperf
juno
JuspayAssets
jwebunit
jxta
jython
k8s
kante
kawa
ke
keith
kg
kh
kim
king
kirin
kiwi
kkdt
kliche
koeln
kohsuke
kotlin2ts
kr
krd
kred
kruse
kt-logging
ktorm-tools
kxml
kxml2
ky
kz
la
land
lat
lazy
lc
ldapd-common
ldapsdk
lenala
lgbt
li
libgdx-oboe
life
lingo
link
live
lk
llc
locc
log4j
log4unit
loggersoft
logkit
lol
loom
love
lpg
lt
ltd
lu
lucene
luisrjaeger
lv
ly
ma
magicGball
maps
market
markets
marmalade
math
maven
maven-integration-test-helper
maven-javanet-plugin
maven-new
maven-plugins
maven-proxy
maven-taglib
maven-torque-plugin
maven-validator
maven-xdoclet2-plugin
maxq
mckoi
md
me
media
merlin
merlin-developer
merlin-tutorial
messenger
metaclass
mevenide
micro
microcontainer
middlegen
mil
milyn
mk
ml
mm
mm-mysql
mn
mnm
mobi
mockcreator
mockit
mockmaker
mockobjects
mockrunner
modello
moe
monetdb
money
monster
mp
mpern
mrj
ms
mstor
msv
mt
mu
mule
muse
mx
mx4j
my
myfaces
mysql
mz
name
nanning
nanocontainer
nebula
nekohtml
neo
net
netbeans
network
neva
new
nexus
nf
ng
ninja
nl
no
norbert
nova
np
nrlssc
nsuml
nu
null
nz
oauth
odmg
oe
ognl
ojb
ojdbc
old
one
oness
onl
online
open
open-esb
opencypher
openejb
openim
openjms
opennms
opensymphony
openxp
oracle
org
org.elasticsearch
org.elasticsearch.client
org.elasticsearch.distribution.integ-test-zip
org.elasticsearch.distribution.zip
org.elasticsearch.gradle
org.elasticsearch.plugin
org.elasticsearch.test
oro
oscube
ovh
p2psockets
p6spy
page
partners
party
pathwaycommons
patterntesting
payload
pcj
pdfbox
pe
penguin
pet
petridish
ph
phd
photos
piccolo
picocontainer
picounit
pink
piotrmadry
pircbot
pitt
pk
pl
plexus
plj
plugin
plus
pluto-container
pm
pmd
pnuts
poi
poolman
portlet-api
postgresql
prevayler
pro
proctor
productions
profiler
progress
projektor
protop
proxool
proxytoys
pt
pub
pubscribe
pull-parser
pw
py
qa
qdox
qfork
quartz
quest
quilt
radeox
re
readline
red
redhill
redis
redmine
regexp
relaxngDatatype
ren
report
reportrunner
rest
rgoldberg
rhino
ricosys
rip
rkennel
ro
robo-guice
roboguice
rocks
rodeo
roller
rome
rpost
rs
rss4j
rsslibj
ru
rubygems
run
sa
sablecc
sagex
sale
sap
sax
saxon
saxpath
sbnarra
sbs
sc
scabbard
schibsted
schoenja
school
schwarz
science
scot
scout
scraping-engine
se
sebersole
security
securityfilter
seek
serg
servicemix
servicemix-ws
services
servletapi
servlets
setpoint
sfx4j
sg
sh
shellix
shocks
shop
show
si
si6
sillyexceptions
simple
simple-jms
simple-jndi
site
sk
skaringa
ski
skinlf
slide
smartrics
sn
so
soap
social
software
soimp
solar
solarisrealm
solutions
source
space
speexx
spice
spring
springframework
springmodules
sqlline
srl
sshtools
sslext
st
stapler
statcvs
stax
stax-utils
store
stratum
stream
struts
struts-menu
strutstestcase
studio
stxx
su
subpersistence
subshell
substance
suiterunner
surefire
swanysimon
swarmcache
swehacker
swiss
swt
synapticloop
systems
sysunit
tablelayout
tagalog
tagishauth
taglibrarydoc
taglibs
tagsoup
tambora
tane
tangram
tanukisoft
tanvd
tapestry
tclib
team
tec
tech
technology
tekgenesis
tel
temportalist
textarea
tf
th
thad
thaiopensource
thefireplace
tiffrenderer
tjdo
tk
tl
tmporb
to
today
tokyo
tomcat
tomcat-util
tonic
tools
top
toplink
torque
torque-gen
touchstone
town
toys
tqrg
tr
trade
traer
trail-taglib
tranql
travel
trove
trust
tui
turbine
tv
tw
tylerthrailkill
tyrex
tz
ua
uaihebert
ubique
ud
ug
uispec4j
uk
umple
uno
uno-jar
urbanophile
urlrewrite
us
utry
uy
uz
vast
vc
vdoclet
velocity
velocity-anakia
velocity-dvsl
velocity-tools
ventures
vet
vicJuspay
video
view_inspector
village
vin
vinccool96
vip
vision
vn
vogle
vontikov
vu
wadi
waena
wang
web
webmacro
website
webtest
weixinkeji
werken-xpath
werkflow
werkz
westhawk
wf
wg
which
wicket
wiki
win
wind57
woodstox
work
works
world
wrapper
ws
ws-commons
ws-commons-java5
ws-commons-util
ws-scout
wsdl4j
wsrf
wss4j
wstx
wtf
wurfl
wutka
xajile
xalan
xbean
xdoclet
xdoclet-plugins
xerces
xercesjarv
xfire
xfire-root
xin
xjavadoc
xml-apis
xml-resolver
xml-security
xmlbeans
xmldb
xmlenc
xmlmind
xmlpull
xmlrpc
xmlrpc-helma
xmlunit
xmlwise
xmlwriter
xom
xpp3
xsddoc
xsdlib
xstream
xtc
xtiff-jai
xxl
xyz
yakworks
yan
yanjun
ymsg
yom
za
zip
zm
zone
zw