157 Commits

Author SHA1 Message Date
Gabriel Roldan
da9468a980 Disable Jekyll processing on GitHub Pages 2025-12-06 21:07:58 -03:00
Gabriel Roldan
2a16159670 docs: Add All Contributors page to recognize all contribution types
Implement the All Contributors initiative in the documentation to recognize
contributions of all kinds - not just code. This includes business development,
project management, financial support, user testing, and more.

- Add .all-contributorsrc configuration file at project root
- Create new Community section in documentation
  - docs/src/community/index.md - Community landing page
  - docs/src/community/contributors.md - All Contributors page
- Update docs/mkdocs.yml navigation to include Community section
- Configure htmlproofer to ignore contributors page (has dynamic anchor links)
- Add initial contributors with their contribution types

How to add contributors:

Install the CLI (one-time setup):

```
npm install --save-dev all-contributors-cli

npx all-contributors-cli add <github-username> <contribution-types>

npx all-contributors-cli add username code,doc,test,bug
```
2025-12-06 21:07:58 -03:00
Gabriel Roldan
266fec7f51 Remove links from home page in favor of the navigation bar 2025-12-06 18:48:38 -03:00
Gabriel Roldan
e9b8f5b348
docs: add mkdocs-htmlproofer-plugin to check for broken links in documentation 2025-12-06 18:45:59 -03:00
Gabriel Roldan
64b07236ff docs: remove Jekyll/kramdown ToC syntax 2025-12-06 17:43:33 -03:00
Gabriel Roldan
6d6c082b64 Initial port of documentation to mkdocs 2025-12-06 17:22:02 -03:00
Gabriel Roldan
2015ac1215
Update docs for 2.28.1.1 2025-12-02 17:48:33 -03:00
Gabriel Roldan
a96982f4e7
Update docs for 2.28.1.0 2025-11-25 12:22:14 -03:00
Gabriel Roldan
18fcb007fb
Update docs for 2.28.0.2 2025-11-07 16:40:53 -03:00
Gabriel Roldan
27a5cfa2d2
Update docs for 2.28.0.1 2025-11-03 22:28:00 -03:00
Gabriel Roldan
428110c73d
Update documentation for 2.28.0.0 2025-10-16 11:57:19 -03:00
Gabriel Roldan
036207be9b
Update GeoServer to 2.28.0.0, ACL to 2.4.0 2025-10-16 10:44:07 -03:00
Gabriel Roldan
df79d3c103
Build geoserver apps docker images in parallel 2025-10-01 21:44:48 -03:00
Gabriel Roldan
bd9eae2d10
Improve sample pgconfig+ACL docker compose configuration through env variables
Add config server property overrides for pgconfig database connection

This change addresses the bootstrap timing issue where GeoServer services
attempt to connect to the database before environment variables are processed
by the Spring Cloud Config client. By using the config server's property
override feature, database connection parameters are now provided to all
services during the bootstrap phase, ensuring they connect to the correct
database host instead of falling back to defaults.

The configuration now clearly documents the two deployment modes (config
server vs standalone) and provides guidance on when to use each approach.
Config server overrides are used for Docker Compose deployments with
centralized configuration, while the commented environment variables can
be uncommented for Kubernetes deployments using the standalone profile.
2025-07-18 23:03:59 -03:00
Gabriel Roldan
4de036fd18
Update docs and samples for 2.27.2.0 2025-07-18 14:31:38 -03:00
Gabriel Roldan
4915d9ed1a
Remove spring-cloud-admin demo service 2025-07-14 17:00:19 -03:00
Gabriel Roldan
ab14b29c93
Update docs for 2.27.2-RC 2025-07-14 16:21:46 -03:00
Gabriel Roldan
65b7373145
Update docs for 2.27.1.0 2025-05-14 02:10:16 -03:00
Jose Macchi
49a69c7186 Add considerations section in doc 2025-04-25 19:44:17 -03:00
Jose Macchi
8ebf7f31fb
Merge branch 'main' into helm-doc 2025-04-25 19:31:18 -03:00
Jose Macchi
d5ffa62f9d Helm examples in Documentation 2025-04-25 19:28:44 -03:00
Gabriel Roldan
48b706e158
Update docs to point to 2.27.0.0 2025-04-25 09:37:41 -03:00
Gabriel Roldan
648e940ba1
Fix formatting of code blocks in dev guide adding extensions docs 2025-04-16 10:15:10 -03:00
Gabriel Roldan
8fe9aa25d7
Add OGC API Features extension
1. Create new ogcapi extension category with features module
2. Implement OgcApiFeatureAutoConfiguration with:
   - Conditional activation based on wfs/webui service
   - Integration with both core and features applicationContext.xml resources
2025-04-16 08:13:55 -03:00
Gabriel Roldan
b1b7997874
Merge pull request #662 from groldan/refactor/importer_extension
Extract GeoServer Importer as a dedicated extension
2025-04-15 09:14:15 -03:00
Gabriel Roldan
de671f1314
Add configuration migration guide from 2.26 to 2.27 2025-04-15 00:18:10 -03:00
Gabriel Roldan
c23c717280
Extract GeoServer Importer as a dedicated Cloud extension
Extract the GeoServer Importer functionality into a proper GeoServer Cloud
extension to better organize and manage it as a reusable component:

1. Create gs-cloud-extension-importer module with appropriate auto-configuration classes:
   - ConditionalOnImporter annotation for activation control
   - ImporterConfigProperties for extension configuration
   - ImporterAutoConfiguration with service-specific inner configurations

2. Implement proper service-specific activation:
   - ImporterCoreConfiguration for base functionality
   - ImporterWebUIConfiguration for Web UI integration (activated in webui service)
   - ImporterRestConfiguration for REST API integration (activated in restconfig service)

3. Remove direct dependencies from services:
   - Remove WebUI direct dependency on gs-importer-web
   - Remove RestConfig direct dependency on gs-importer-rest
   - Services now receive Importer functionality through gs-cloud-starter-extensions

4. Add comprehensive tests for all activation scenarios:
   - Verify extension is disabled by default
   - Verify proper activation of different components based on service type
   - Test class loading conditions and property activation
2025-04-14 23:51:15 -03:00
Gabriel Roldan
20e1d914b0
Refactor data formats extensions into an input-formats parent
Move vector-formats and raster-formats to input-formats parent directory
Rename starter-data-formats to starter-input-formats for consistency
Update references in dependent modules
2025-04-14 11:07:56 -03:00
Gabriel Roldan
34f8e6f1c6
Fix conditional annotations for service availability and add integration tests
Refactors the service-specific conditional annotations to use `@ConditionalOnProperty`
instead of `@ConditionalOnBean` for more reliable activation during the Spring Boot
bootstrap phase. This property-based approach solves initialization order issues
by checking for service properties (`geoserver.service.<type>.enabled`) instead of
relying on bean presence.

Changes include:

- Change all six conditional annotations (WMS, WFS, WCS, WPS, REST, WebUI) to use
  `@ConditionalOnProperty`
- Update service `bootstrap.yml` files to explicitly set service-specific enabled properties
- Add comprehensive unit tests for each conditional annotation
- Add integration tests across all service applications to verify proper conditional
  bean activation
- Add `ConditionalTestAutoConfiguration` with test beans for each service type

This improves extension reliability by eliminating race conditions during
auto-configuration and provides a more predictable activation mechanism
for service-specific extensions.
2025-04-14 01:38:25 -03:00
Gabriel Roldan
53289af7d3
Add Checkstyle configuration to enforce code quality standards
Implements a build-tools module approach as used by Apache Commons,
Spring, and Hibernate projects. This provides centralized code style rules that:

- Enforce proper license headers in all Java files
- Prohibit wildcard imports for improved code readability
- Standardize naming conventions and formatting

Build process is updated to include Checkstyle validation as part of the QA process.
2025-04-12 19:00:02 -03:00
Gabriel Roldan
b0f8650a7a
Improve dependency management and documentation for starters
- Add comprehensive README for the webmvc and extensions starters
- Remove redundant starter dependencies from GeoServer app modules
- Add clearer comments about inherited dependencies
- Clarify dependency inheritance from parent pom files
- Document which starters a typical GeoServer microservice needs
- Explain that most services only need webmvc and extensions starters
- Describe what functionality each starter provides
- Note that parent POM already includes necessary starters

This documentation helps developers understand the dependency
relationships between starters and clarifies which starters
are needed for different use cases.

This improves dependency management consistency across the codebase
while maintaining the exact same functionality.
2025-04-08 20:49:43 -03:00
Gabriel Roldan
9f4db5541c
refactor: reorganize extensions into autoconfiguration and starter modules
This major refactoring improves the architecture by separating extension functionality
from their Spring Boot autoconfiguration and starter modules:

- Create dedicated autoconfiguration modules for all extensions
- Move extension configuration from starters to extension modules
- Implement ConditionalOn* annotations for precise extension activation control
- Enforce that non-WebUI applications don't have dependencies on GeoServer Wicket components
- Create a unified data-formats starter combining vector and raster formats
- Add comprehensive README.md files for all extensions

The refactoring follows these architectural principles:
1. Each extension module handles its own auto-configuration
2. UI components only activate when running in WebUI context
3. Starters become lightweight importers of extension modules
4. Core functionality is cleanly separated from framework-specific concerns

This enables better testing, cleaner separation of concerns, and ensures
services only load the components they need. Non-WebUI services now automatically
avoid loading Wicket-dependent components, reducing their memory footprint.
2025-04-07 19:06:28 -03:00
Gabriel Roldan
598b3ccc85
Add configurable filter for vector and raster formats
This commit adds support for filtering GeoTools DataAccessFactory and
GridFormatFactorySpi implementations available in GeoServer Cloud, providing
fine-grained control through YAML configuration.

Key features:
- Control which vector and raster data source formats are available through configuration
- Configuration uses user-friendly display names with placeholder resolution
- Auto-configuration runs before catalog initialization
- Vector formats filtered by deregistering DataAccessFactory instances
- Raster formats filtered using a custom FilteringFactoryCreator
- Format filtering persists even when formats are reloaded via scanForPlugins()

Configuration example:

Documentation has been added to:
- src/starters/vector-formats/README.md
- src/starters/raster-formats/README.md
- docs/configuration/index.md
2025-04-06 12:56:04 -03:00
Gabriel Roldan
cde210a500
chore: Fix several spelling errors 2025-02-20 17:09:50 -03:00
Gabriel Roldan
27492166d7
Refactor Docker Compose and Dockerfile configurations for improved volume management and environment consistency
- **Replaced RabbitMQ data volume with `tmpfs`** to store messages in memory for improved performance.
- **Removed unnecessary `rabbitmq_data` volume**, ensuring no leftover anonymous volumes.
- **Introduced `x-variables` with `common_env`** for shared environment variables, reducing duplication across services.
- **Updated images to use `2.27.0-SNAPSHOT`** for all services.
- **Refactored `Dockerfile` configurations**:
  - Set `GEOSERVER_DATA_DIR=/tmp/tmpdatadir` during boot to ensure a clean environment.
  - Fixed incorrect `-Dgeosever.backend.data-directory.location=/tmp/tmpdatadir` (typo: `geosever` → `geoserver`).
  - Removed redundant directory creation as `mkdir -p /tmp/tmpdatadir` is already included.

- **RabbitMQ now stores all message data in memory (`tmpfs`)**:
  - If the container restarts, all messages are lost.
  - This is **not suitable for production** unless persistence is handled elsewhere.
  - If persistent storage is needed, revert to a volume (`rabbitmq_data:/var/lib/rabbitmq`).
- **Previous anonymous volumes for RabbitMQ will not be reused**, users should run:
  ```sh
  docker volume prune
  ```
2025-02-16 23:11:08 -03:00
Jose Macchi
f3e5779bf9
Documentation updates (#606)
* Fix typo error

* Add QEmu reference

* Remove alias as references in docs
2025-02-16 21:11:38 -03:00
Herman Ewert
b53ca31705 Update acl docker image version to 2.3.1
This fixes an issue where the plugin on the geoserver uses an endpoint
that was released in 2.3.0, resulting in a 404 when trying to call an
endpoint using acl.

Relevant change: https://github.com/geoserver/geoserver-acl/pull/68
2025-01-29 14:24:21 +02:00
Gabriel Roldan
d44b77b6fb
Update docs to point to 2.26.2.0 2025-01-27 16:55:41 -03:00
Gabriel Roldan
0f357a3019
Update docs to point to 1.9.2 2025-01-27 01:19:10 -03:00
Gabriel Roldan
96d4df585e
Upgrade rabbitmq in sample docker compose deployments to rabbitmq:4-management-alpine 2025-01-27 00:56:24 -03:00
Gabriel Roldan
1f59d91c01
Update docs to point to 1.9.1 2024-12-19 19:36:59 -03:00
Gabriel Roldan
36a8cb1a17
Update docs and sample compose files for 1.9.0 2024-11-29 17:02:33 -03:00
Gabriel Roldan
57de781522 Fix commit 22c729ba, :z shall be put in the service volume mount point 2024-11-02 14:28:40 -03:00
Gabriel Roldan
5e947a0f45
Merge pull request #540 from buehner/update-dev-readme
docs: add diagram for event bus understanding
2024-11-01 00:11:05 -03:00
Gabriel Roldan
86f4ca6836
README and build instructions improvements 2024-11-01 00:05:14 -03:00
Gabriel Roldan
22c729ba6a
Add :z SELinux label to bind mounts in dev and sample docker compose files
`:z` tells Docker to label the volume for shared access among multiple containers.

Turns out to be important when there's for example a geopackage
in a shared data directory.
2024-10-31 20:42:43 -03:00
Gabriel Roldan
4931a9125b
Set default values for min/max heap memory percentage in the base JRE image
Add `-XX:MaxRAMPercentage=80 -XX:InitialRAMPercentage=30` to the
`DEFAULT_JAVA_TOOL_OPTIONS` env var in the base JRE docker image
as they're good defaults so people doesn't need to be figuring
it out themselves.
2024-10-30 14:40:02 -03:00
Gabriel Roldan
a9021f6a67
Update config service to use the embedded /etc/geoserver config by default 2024-10-21 14:21:07 -03:00
Gabriel Roldan
b79c809ac7 Update docs for release 1.8.12 2024-10-16 23:25:37 -03:00
Nils Bühner
23480ba2c2 refactor: fix various minors (typos etc) 2024-10-03 15:09:40 +02:00