Refactor extension assemblies to use per-module descriptors #8910
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Refactor extension assembly to per-module descriptors
Refactors the extension assembly build system to match the pattern used by community modules, where each extension manages its own assembly descriptor instead of having centralized descriptors in
src/release/ext-*.xml.Motivation
Changes
Per-Module Assembly Descriptors
src/release/ext-*.xmlsrc/pom.xmlmaven-assembly-plugin configurationsrc/assembly/assembly.xml-assemblycoordinator modules for multi-module extensions:Assembly Profile
Added assembly profile to
src/extension/pom.xml:src/assembly/assembly.xmlexistence, skips if not presenttarget/dependency/src/target/release/(same as before for compatibility with release scripts)Assembly Descriptor Structure
Each assembly descriptor includes:
target/directory (via first fileSet)target/dependency/(via second fileSet)${geoserverBaseDir}/release/target/html/licensesdependencySets Migration Support
Implemented infrastructure for future migration to
<dependencySets>approach:assembly.useDependencySetsproperty check in assembly profilestrue, maven-dependency-plugin skips copying dependenciessrc/extension/pom.xmlandsrc/community/pom.xmlgwc-gcs-blobcommunity modulesrc/extension/README.mdDocumentation
src/extension/README.mdwith:src/release/README.mdwith new build processdoc/en/developer/source/policies/community-modules.rst:src/release/ext-h2.xmltosrc/extension/h2/src/assembly/assembly.xmlBuild Instructions
Building extensions now requires 2 steps:
Important: Do NOT use
cleanin step 2 - it would wipe out compiled classes needed for assembly.Extension ZIP files are created in
src/target/release/(same location as before).Status
src/target/release/for compatibility with existing release scriptsFuture Improvements
Extensions can gradually migrate to
<dependencySets>approach for:See
src/extension/README.mdfor migration guide and example.Assembly Descriptor Migration Map
The following table shows where each centralized assembly descriptor was relocated:
src/release/ext-app-schema.xmlsrc/extension/app-schema/app-schema-assembly/src/assembly/assembly.xmlsrc/release/ext-authkey.xmlsrc/extension/authkey/src/assembly/assembly.xmlsrc/release/ext-cas.xmlsrc/extension/security/cas/src/assembly/assembly.xmlsrc/release/ext-charts.xmlsrc/extension/charts/src/assembly/assembly.xmlsrc/release/ext-control-flow.xmlsrc/extension/control-flow/src/assembly/assembly.xmlsrc/release/ext-css.xmlsrc/extension/css/src/assembly/assembly.xmlsrc/release/ext-csw-iso.xmlsrc/extension/csw/csw-iso-assembly/src/assembly/assembly.xmlsrc/release/ext-csw.xmlsrc/extension/csw/csw-assembly/src/assembly/assembly.xmlsrc/release/ext-db2.xmlsrc/extension/db2/src/assembly/assembly.xmlsrc/release/ext-dxf.xmlsrc/extension/dxf/dxf-assembly/src/assembly/assembly.xmlsrc/release/ext-excel.xmlsrc/extension/excel-wfs/src/assembly/assembly.xmlsrc/release/ext-feature-pregeneralized.xmlsrc/extension/feature-pregeneralized/src/assembly/assembly.xmlsrc/release/ext-gdal.xmlsrc/extension/gdal/src/assembly/assembly.xmlsrc/release/ext-geofence.xmlsrc/extension/geofence/geofence-assembly/src/assembly/assembly.xmlsrc/release/ext-geopkg-output.xmlsrc/extension/geopkg-output/geopkg-output-assembly/src/assembly/assembly.xmlsrc/release/ext-grib.xmlsrc/extension/grib/src/assembly/assembly.xmlsrc/release/ext-gwc-s3.xmlsrc/extension/gwc-s3/src/assembly/assembly.xmlsrc/release/ext-h2.xmlsrc/extension/h2/src/assembly/assembly.xmlsrc/release/ext-iau.xmlsrc/extension/iau/src/assembly/assembly.xmlsrc/release/ext-importer.xmlsrc/extension/importer/importer-assembly/src/assembly/assembly.xmlsrc/release/ext-inspire.xmlsrc/extension/inspire/src/assembly/assembly.xmlsrc/release/ext-jp2k.xmlsrc/extension/jp2k/src/assembly/assembly.xmlsrc/release/ext-libjpeg-turbo.xmlsrc/extension/libjpeg-turbo/src/assembly/assembly.xmlsrc/release/ext-mapml.xmlsrc/extension/mapml/src/assembly/assembly.xmlsrc/release/ext-mbstyle.xmlsrc/extension/mbstyle/src/assembly/assembly.xmlsrc/release/ext-metadata.xmlsrc/extension/metadata/src/assembly/assembly.xmlsrc/release/ext-mongodb.xmlsrc/extension/mongodb/src/assembly/assembly.xmlsrc/release/ext-monitor.xmlsrc/extension/monitor/monitor-assembly/src/assembly/assembly.xmlsrc/release/ext-mysql.xmlsrc/extension/mysql/src/assembly/assembly.xmlsrc/release/ext-netcdf-out.xmlsrc/extension/netcdf-out/src/assembly/assembly.xmlsrc/release/ext-netcdf.xmlsrc/extension/netcdf/src/assembly/assembly.xmlsrc/release/ext-ogcapi-features.xmlsrc/extension/ogcapi/ogcapi-features-assembly/src/assembly/assembly.xmlsrc/release/ext-ogr-wfs.xmlsrc/extension/ogr/ogr-wfs/src/assembly/assembly.xmlsrc/release/ext-ogr-wps.xmlsrc/extension/ogr/ogr-wps/src/assembly/assembly.xmlsrc/release/ext-oracle.xmlsrc/extension/oracle/src/assembly/assembly.xmlsrc/release/ext-params-extractor.xmlsrc/extension/params-extractor/src/assembly/assembly.xmlsrc/release/ext-printing.xmlsrc/extension/printing/src/assembly/assembly.xmlsrc/release/ext-pyramid.xmlsrc/extension/pyramid/src/assembly/assembly.xmlsrc/release/ext-querylayer.xmlsrc/extension/querylayer/src/assembly/assembly.xmlsrc/release/ext-rat.xmlsrc/extension/rat/src/assembly/assembly.xmlsrc/release/ext-sldservice.xmlsrc/extension/sldService/src/assembly/assembly.xmlsrc/release/ext-sqlserver.xmlsrc/extension/sqlserver/src/assembly/assembly.xmlsrc/release/ext-vectortiles.xmlsrc/extension/vectortiles/src/assembly/assembly.xmlsrc/release/ext-wcs2_0-eo.xmlsrc/extension/wcs2_0-eo/wcs2_0-eo-assembly/src/assembly/assembly.xmlsrc/release/ext-web-resource.xmlsrc/extension/web-resource/src/assembly/assembly.xmlsrc/release/ext-wmts-multi-dimensional.xmlsrc/extension/wmts-multi-dimensional/src/assembly/assembly.xmlsrc/release/ext-wps-download.xmlsrc/extension/wps-download/src/assembly/assembly.xmlsrc/release/ext-wps-excel.xmlsrc/extension/excel-wps/src/assembly/assembly.xmlsrc/release/ext-wps-hazelcast.xmlsrc/extension/wps/wps-cluster-hazelcast/src/assembly/assembly.xmlsrc/release/ext-wps-jdbc.xmlsrc/extension/wps-jdbc/src/assembly/assembly.xmlsrc/release/ext-wps.xmlsrc/extension/wps/wps-assembly/src/assembly/assembly.xmlsrc/release/ext-ysld.xmlsrc/extension/ysld/src/assembly/assembly.xmlNote: The following centralized descriptors from main branch are not in the extension module (may be in community or removed):
src/release/ext-authbasic.xmlsrc/release/ext-geofence-server-h2.xmlsrc/release/ext-geofence-server-postgres.xmlsrc/release/ext-geofence-wps.xmlChecklist
mainbranch (backports managed later; ignore for branch specific issues).For core and extension modules:
[GEOS-XYZWV] Title of the Jira ticket.The PR will be merged when all the build checks are green (see automated QA checks), there is a code committer review, and the checklist has been fulfilled.