Cédric Champeau

Fix filtering of repository contents

and add unit test.

Fix filtering of repository contents

and add unit test.

Introduce regular expression based content filtering

This commit adds the regular expression variants of the repository

content filtering methods.

Introduce regular expression based content filtering

This commit adds the regular expression variants of the repository

content filtering methods.

Introduce a higher level API for repository content filtering

Instead of being imperative, this new API only allows for a

limited set of operations, like describing what groups are

included or excluded.

Introduce a higher level API for repository content filtering

Instead of being imperative, this new API only allows for a

limited set of operations, like describing what groups are

included or excluded.

Allow Maven repositories to specify a kind

This commit leverages the content filtering feature to allow

a Maven repository to have a kind, where there are actually

3 kinds of repositories:

- snapshot only: we would never try to look for non snapshot

versions of a module there

- releases only: we would never try to look for a SNAPSHOT

version of a module

- mixed: the default, where we assume a repository can host

both snapshots and releases

Allow Maven repositories to specify a kind

This commit leverages the content filtering feature to allow

a Maven repository to have a kind, where there are actually

3 kinds of repositories:

- snapshot only: we would never try to look for non snapshot

versions of a module there

- releases only: we would never try to look for a SNAPSHOT

version of a module

- mixed: the default, where we assume a repository can host

both snapshots and releases

Allow Maven repositories to specify a kind

This commit leverages the content filtering feature to allow

a Maven repository to have a kind, where there are actually

3 kinds of repositories:

- snapshot only: we would never try to look for non snapshot

versions of a module there

- releases only: we would never try to look for a SNAPSHOT

version of a module

- mixed: the default, where we assume a repository can host

both snapshots and releases

Fix tests

Fix tests

Fix tests

Allow access to the module version in repository content filtering

This is a required feature as soon as we want to implement the

common Maven case where snapshots are published in a different

repository from releases: this will let us differentiate between

those kinds of repositories just based on the version number.

Allow access to the module version in repository content filtering

This is a required feature as soon as we want to implement the

common Maven case where snapshots are published in a different

repository from releases: this will let us differentiate between

those kinds of repositories just based on the version number.

Allow filtering content of a repository based on the configuration name and attributes

This effectively adds the configuration name, as well as its attributes, to the context

details, so a rule can decide to resolve differently.

Allow filtering content of a repository based on the configuration name and attributes

This effectively adds the configuration name, as well as its attributes, to the context

details, so a rule can decide to resolve differently.

Add support for filtering repository content based on the module identifier

This commit allows "matching repositories to dependencies" by adding an API

on repositories to declare if we should look for a module or not. Currently

the API only supports querying by module identifier, and blacklisting. In

other words the API lets you tell when _not_ to look for a module.

Add support for filtering repository content based on the module identifier

This commit allows "matching repositories to dependencies" by adding an API

on repositories to declare if we should look for a module or not. Currently

the API only supports querying by module identifier, and blacklisting. In

other words the API lets you tell when _not_ to look for a module.

Reshuffle some tests into subpackages

This is just a refactoring of tests, to make it clearer: the base

package started to grow significantly.

  1. … 65 more files in changeset.
Reshuffle some tests into subpackages

This is just a refactoring of tests, to make it clearer: the base

package started to grow significantly.

  1. … 65 more files in changeset.
Reshuffle some tests into subpackages

This is just a refactoring of tests, to make it clearer: the base

package started to grow significantly.

  1. … 65 more files in changeset.
Introduce a map based string set for larger builds

The exclude rule merging build contains a lot of dependencies,

resulting in some buckets containing a large number of items.

Introduce a map based string set for larger builds

The exclude rule merging build contains a lot of dependencies,

resulting in some buckets containing a large number of items.

Add explanatory javadocs to indexed string set

Add explanatory javadocs to indexed string set

Add explanatory javadocs to indexed string set

Optimize deduplicating string writer

This commit reimplements de-duplication at write time, to

avoid usage of a map, by replacing it with a dedicated

datastructure which works like a hashmap but it optimized for

our use case.

Optimize deduplicating string writer

This commit reimplements de-duplication at write time, to

avoid usage of a map, by replacing it with a dedicated

datastructure which works like a hashmap but it optimized for

our use case.

Optimize deduplicating string writer

This commit reimplements de-duplication at write time, to

avoid usage of a map, by replacing it with a dedicated

datastructure which works like a hashmap but it optimized for

our use case.

Optimize deduplicating decoder

Because we know the encoder is only going to generate

consecutive integers, we don't need to use a map for reading

and can rely on a growing array. We don't use `ArrayList` on

purpose, because this class doesn't make it simple to grow

with default values (`null`).