<commit_before># About the _lib_ directory

_TLDR: Due to license incompatibilities we have to bundle an alternative jar._

## Licensing issues

Since the advanced dependency management was introduced by Maven and its
central repository, I haven't had the need to include any binary dependencies
into my java projects anymore.  

Until today.

There are [good reasons](https://github.com/talsma-ict/umldoclet/issues/48) 
to bundle the plantuml library with the doclet itself.
Normally this can easily be accomplished for any dependency with 
the [maven-shade-plugin](https://maven.apache.org/plugins/maven-shade-plugin/).
Unfortunately for me however, the version of plantuml 
on [maven central](http://mvnrepository.com/artifact/net.sourceforge.plantuml/plantuml) 
has a [GPL](http://www.gnu.org/copyleft/gpl.html) license which is a so-called
_copyleft_ license. This meansit will require the umldoclet 
to become `GPL` licensed as well.

I want the doclet to remain open-source, but I feel the `GPL` to be too
restrictive: it 'infects' everything that uses it as well.
That's why the this project is published under the 
[Apache License, version 2.0](https://www.apache.org/licenses/LICENSE-2.0.html).
That this license is less restrictive as illustrated by the following quote:

>Apache 2 software can therefore be included in GPLv3 projects, 
>because the GPLv3 license accepts our software into GPLv3 works.
>However, GPLv3 software cannot be included in Apache projects.

Source: https://www.apache.org/licenses/GPL-compatibility.html

## Solution?

Fortunately for us, the author of plantuml, <NAME> also publishes
an [apache licensed version](http://plantuml.com/download#asl) of plantuml
[here](https://sourceforge.net/projects/plantuml/files/).
Just not on maven-central. Therefore the dependency has to be obtained from
sourceforge, preferably still in cooperation with the rest of the maven build.
I thought about downloading as part of the build,
but sourceforge doesn't seem to like that very much.
Fortunately, maven still allows us to just add a dependency directly into the project.

This is the reason the `lib` directory was introduced.

## Why a local maven repo?

Can't you just add the jar to `lib` and add it as a `<scope>system</scope>` dependency<commit_msg>Add missing space in readme<commit_after># About the _lib_ directory

_TLDR: Due to license incompatibilities we have to bundle an alternative jar._

## Licensing issues

Since the advanced dependency management was introduced by Maven and its
central repository, I haven't had the need to include any binary dependencies
into my java projects anymore.  

Until today.

There are [good reasons](https://github.com/talsma-ict/umldoclet/issues/48) 
to bundle the plantuml library with the doclet itself.
Normally this can easily be accomplished for any dependency with 
the [maven-shade-plugin](https://maven.apache.org/plugins/maven-shade-plugin/).
Unfortunately for me however, the version of plantuml 
on [maven central](http://mvnrepository.com/artifact/net.sourceforge.plantuml/plantuml) 
has a [GPL](http://www.gnu.org/copyleft/gpl.html) license which is a so-called
_copyleft_ license. This means it will require the umldoclet 
to become `GPL` licensed as well.

I want the doclet to remain open-source, but I feel the `GPL` to be too
restrictive: it 'infects' everything that uses it as well.
That's why the this project is published under the 
[Apache License, version 2.0](https://www.apache.org/licenses/LICENSE-2.0.html).
That this license is less restrictive as illustrated by the following quote:

>Apache 2 software can therefore be included in GPLv3 projects, 
>because the GPLv3 license accepts our software into GPLv3 works.
>However, GPLv3 software cannot be included in Apache projects.

Source: https://www.apache.org/licenses/GPL-compatibility.html

## Solution?

Fortunately for us, the author of plantuml, <NAME> also publishes
an [apache licensed version](http://plantuml.com/download#asl) of plantuml
[here](https://sourceforge.net/projects/plantuml/files/).
Just not on maven-central. Therefore the dependency has to be obtained from
sourceforge, preferably still in cooperation with the rest of the maven build.
I thought about downloading as part of the build,
but sourceforge doesn't seem to like that very much.
Fortunately, maven still allows us to just add a dependency directly into the project.

This is the reason the `lib` directory was introduced.

## Why a local maven repo?

Can't you just add the jar to `lib` and add it as a `<scope>system</scope>` dependency
{'fraction_non_alphanumeric': 0.07549639973816277, 'fraction_numerical': 0.0048003491162993675, 'mean_word_length': 4.71571072319202, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 15, 'https://': 10, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4388154', 'n_tokens_mistral': 1332, 'n_tokens_neox': 1261, 'n_words': 586}