Add missing license header

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Remove unused imports

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
EclipseHelper: Remove unneeded annotation

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Upgrade to use Java5 annotations

See https://maven.apache.org/plugin-tools/maven-plugin-tools-annotations/index.html
and https://maven.apache.org/plugin-developers/cookbook/plexus-plugin-upgrade.html.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Clean up our dependencies

Many, many dependencies were added somewhere along the line, but are not
actually needed. Let's get rid of them, and actually depend on maven-core
proper.

We have to add JUnit directly now because it was only a transitive
dependency.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Update to Maven 3.0

Let's not get stuck with obsolete API; we will need some rather powerful
things out of the Maven 3 API for the upcoming 'bump' mojo.

To stay compatible with the maven-plugin-annotations dependency, we only
bump to 3.0, not 3.0.4 (the maven-enforcer-plugin would point out an
incompatibility there).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add a class to read and write pom.xml files

This will come in real handy for the upcoming "bump" mojo to bump versions
in POMs. The job of mojo was previously performed by SciJava scripts'
bump-version-in-pom.sh script.

The most important part is that we modify the file contents as little as
possible, to avoid hiding the real changes between unsubstantial
formatting changes.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add a unit test for the PomEditor

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
PomEditor: Add some API to extract information from the parsed POM

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Pass a logger instance to the PomEditor

... so it can warn properly...

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
PomEditor: allow to modify versions of referenced projects

The procedure established in the SciJava project (which serves as a guinea
pig of robust, collaborative development of scientific software) is to
define dependencies' versions as properties and then use those properties
in the dependencyMangement section for maximal convenience of consumers of
those POMs.

As a consequence, the SciJava project needs tooling to adjust the
properties defining dependency versions every once in a while, and the
upcoming 'bump' mojo of the scijava-maven-plugin is intended to fulfill
that purpose.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
DRY up the PomEditor

It's really good to reduce repeated code because copied code tends to
diverge (read: accumulate separate sets of bugs) which is not good.
Hence: Don't Repeat Yourself.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
PomEditor: handle import-scope pom-type dependencies, too

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Add the "bump" mojo

Its purpose is to help SciJava projects maintain parent POMs, i.e. POMs
listing projects' current versions.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Bump to newest parent

Unfortunately, the enforcer plugin – which is now active thanks to the new
parent version – identifies a couple of upstream problems we need to
ignore because we cannot fix them here.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Merge branch 'bump-goal'

From Johannes Schindelin:

The idea of the 'bump' mojo is that calling

    mvn scijava:bump

in the top-level directory of parent POMs (such as pom-scijava or
pom-imagej) will adjust all of the dependency versions defined in the
<properties> section to the current release versions.

This job is currently performed by the bump-versions-in-pom.sh script.
The fact that this is a shell script starts to limit what we can do with
it, though: it requires indentation with tabs to work, it has no idea
about the XML layout of the pom.xml files, and therefore cannot use,
say, XPath queries, and the shell script has no idea about Maven, of
course, relying on a very stringent deployment process that is tightly
bound to the ImageJ Maven repository that has been configured
specifically to support the shell script.

Hence the drive to support the bump action as part of a proper Maven
plugin.

Conflicts:
	pom.xml
POM: fix enforcer configuration

It does not work to have some configuration in pluginManagement, but
other stuff in plugins. The pluginManagement block takes precedence.
SnapshotFinder: change base project label

Saying "Parent POM" is confusing.. as direct SNAPSHOT dependencies may
be listed here as well. Really it's a problem with the base project.
wip: short-circuit
wip