VFS-859: Fix undeclared direct dependencies

Undeclared direct dependencies that are also transitive dependencies of an **optional** direct dependency, end up being declared by Moditect using `requires <module>` instead of `requires static <module>`.

This causes JPMS runtime errors, unless the optional dependency is present on the module path.

To solve this and rationalize the dependency tree, this change:

- Adds two verification rules that check for undeclared dependencies and useless exclusions.
- Adds undeclared dependencies to the POM files.
- Remove unused declared dependencies.
10 files changed
tree: 42cf0ac7eeaddeb21b5f896b72eafc9e9da76382
  1. .github/
  2. commons-vfs2/
  3. commons-vfs2-ant/
  4. commons-vfs2-bom/
  5. commons-vfs2-distribution/
  6. commons-vfs2-examples/
  7. commons-vfs2-hdfs/
  8. commons-vfs2-jackrabbit1/
  9. commons-vfs2-jackrabbit2/
  10. commons-vfs2-sandbox/
  11. src/
  12. .asf.yaml
  13. .gitattributes
  14. .gitignore
  15. BUILDING.txt
  16. checkstyle-suppressions.xml
  17. checkstyle.properties
  18. checkstyle.xml
  19. CODE_OF_CONDUCT.md
  20. CONTRIBUTING.md
  21. findbugs-exclude-filter.xml
  22. LICENSE.txt
  23. NOTICE.txt
  24. pom.xml
  25. README.md
  26. RELEASE-NOTES.txt
  27. SECURITY.md
README.md

Apache Commons VFS Project

Java CI Maven Central Javadocs CodeQL OpenSSF Scorecard

Apache Commons VFS is a Virtual File System library.

Documentation

More information can be found on the Apache Commons VFS Project homepage. The Javadoc can be browsed. Questions related to the usage of Apache Commons VFS Project should be posted to the user mailing list.

Getting the latest release

You can download source and binaries from our download page.

Alternatively, you can pull it from the central Maven repositories:

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-vfs2</artifactId>
  <version>2.10.0</version>
</dependency>

Building

Building requires a Java JDK and Apache Maven. The required Java version is found in the pom.xml as the maven.compiler.source property.

From a command shell, run mvn without arguments to invoke the default Maven goal to run all tests and checks.

Contributing

We accept Pull Requests via GitHub. The developer mailing list is the main channel of communication for contributors. There are some guidelines which will make applying PRs easier for us:

  • No tabs! Please use spaces for indentation.
  • Respect the existing code style for each file.
  • Create minimal diffs - disable on save actions like reformat source code or organize imports. If you feel the source code should be reformatted create a separate PR for this change.
  • Provide JUnit tests for your changes and make sure your changes don't break any existing tests by running mvn.
  • Before you pushing a PR, run mvn (by itself), this runs the default goal, which contains all build checks.
  • To see the code coverage report, regardless of coverage failures, run mvn clean site -Dcommons.jacoco.haltOnFailure=false

If you plan to contribute on a regular basis, please consider filing a contributor license agreement. You can learn more about contributing via GitHub in our contribution guidelines.

License

This code is licensed under the Apache License v2.

See the NOTICE.txt file for required notices and attributions.

Donating

You like Apache Commons VFS Project? Then donate back to the ASF to support development.

Additional Resources

Apache Commons Components

Please see the list of components