-
-
Notifications
You must be signed in to change notification settings - Fork 487
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Move datastorage providers to maven modules and include them in the build on demand #7302
Conversation
@josegar74
I would have expected a folder called datastorage with each datastore as a subfolder which would be similar to the schema plugins.
I'm currently on vacation. I should be able to do some testing around mid September. |
@ianwallen thanks for the review. The structure you propose makes more sense, I'll check to refactor the code. |
cc9538a
to
ca88f00
Compare
…uild on demand - add maven task to package the datastorage and related dependencies in a zip file
ca88f00
to
2a37018
Compare
I like this it is clean and easy to follow what is going on :) The GeoServer extension setup got more complicated because:
Ideas:
Notes on what more complicated looks like for GeoServer.
|
<execution> | ||
<id>test-jar</id> | ||
<goals> | ||
<goal>test-jar</goal> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the easy
way to create a test-jar, but since you have a number of test
scope dependencies here it may not be the correct one? The result is a test-jar with no transitive dependencies on other test scope jars required for use.
See "The preferred way" here: https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html
Summary: create test jar as a normal module, then folks including it as a test scope dependency will get all the transitive dependencies as test scope.
datastorages/pom.xml
Outdated
<module>cmis</module> | ||
<module>jcloud</module> | ||
<module>s3</module> | ||
</modules> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Idea only:
- These modules could be isolated into the same profiles enjoyed by
web/pom.xml
and thus only compiled if used. - If you also make the profiles enabled by a parameter, example
-Dall
, the build server has a quick way to ensure everything compiles
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have provided lots of feedback, but only one solid thing that must be changed.
We should remove the duplication from pom.xml
and datastorages/pom.xml
which results in the same module being included twice in a full-build.
…uild on demand - change installation instructions to Markdown format
…uild on demand - include LICENSE.md in the assembly packages
…uild on demand - move artifact versions to dependency management
…uild on demand - move the maven profiles to build the datastorages to the datastorages module
The QA check shows test failures:
|
…release zip bundles
@josegar74 I have made the discussed changes; there are some test failures that may or may not be related? Please advise ... |
I would like if this change could be adopted, as I would like to include html license files when packaging user docs. |
d3b91d3
to
4babe5a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All my feedback has been accounted for
@ianwallen as the affected party here I believe your review/feedback/testing is most desired :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested both CMIS and JCLOUD (with Blob storage) and it worked as expected.
Excellent :) |
GeoNetwork currently includes support for external data storage providers for S3, JCloud, and CMIS.
Including support for these 3 external data storage providers, that are barely used, adds an additional 113 library dependencies to the application.
This pull request extracts the data storage providers to independent maven modules. These modules are not included by default in the build. They can be included in the build using maven profiles, to include only the data storage provider required:
mvn install -Pdatastorage-cmis
mvn install -Pdatastorage-jcloud
mvn install -Pdatastorage-s3
Tested with the default file system datastorage provider and looks working fine.
@ianwallen if you can test CMIS, would be great, thanks.
I'm not sure about other maintainers for JCloud or S3.
Some additional tasks to consider maybe: