java.lang.Object
org.eclipse.aether.internal.impl.filter.ruletree.GroupTree

public class GroupTree extends Object
Group tree for Maven groupIDs. This class parses a text file that has a directive on each line. Directive examples:
  • ignored/formatting - each line starting with '#' (hash) or being empty/blank is ignored.
  • modifier ! is negation (disallow; by def entry allows). If present must be first character.
  • modifier = is limiter (to given G; by def is "G and below"). If present, must be first character. If negation present, must be second character.
  • a valid Maven groupID ie "org.apache.maven".
By default, a G entry ie org.apache.maven means "allow org.apache.maven G and all Gs below (so org.apache.maven.plugins etc. are all allowed). There is one special entry "*" (asterisk) that means "root" and defines the default acceptance: "*" means "by default accept" and "!*" means "by default deny" (same effect as when this character is not present in file). Use of limiter modifier on "root" like "=*" has no effect, is simply ignored.

Examples:

 
 # this is my group filter list

 org.apache.maven
 !=org.apache.maven.foo
 !org.apache.maven.indexer
 =org.apache.bar
 
 
File meaning: "allow all org.apache.maven and below", "disallow org.apache.maven.foo groupId ONLY" (hence org.apache.maven.foo.bar is allowed due first line), "disallow org.apache.maven.indexer and below" and "allow org.apache.bar groupID ONLY".

In case of conflicting rules, parsing happens by "last wins", so line closer to last line in file "wins", and conflicting line value is lost.