Strolch is a parameterized framework for use on servers and IoT
Find a file
Robert von Burg c3fbcc8df9
[Minor] Update strolch-model.md with improved examples
Enhanced documentation with detailed examples of convenience methods for setting and retrieving relationships in `StrolchRootElement`. Clarified usage for 1-to-1 and 1-to-N relations with updated method parameters and outputs.
2026-08-11 07:44:55 +02:00
docs ESN-1701 [Major] Rename ClearTempPathsJob to ClearAdditionalTempPathsJob 2026-07-28 13:17:47 +02:00
src [Project] Update copyrights to 2025 2025-05-16 10:16:55 +02:00
strolch-agent [New] Add optional enum retrieval methods to EnumHandler 2026-08-03 10:21:15 +02:00
strolch-bom Bump version to 2.7.0-SNAPSHOT 2026-05-04 14:24:09 +02:00
strolch-jmh-benchmark Bump version to 2.7.0-SNAPSHOT 2026-05-04 14:24:09 +02:00
strolch-model [Minor] Update strolch-model.md with improved examples 2026-08-11 07:44:55 +02:00
strolch-persistence-postgresql [Doc] Add PostgreSQL persistence module documentation 2026-07-04 22:53:10 +02:00
strolch-persistence-xml [Doc] Add XML persistence module documentation 2026-07-04 22:55:52 +02:00
strolch-privilege [Doc] Add XML persistence module documentation 2026-07-04 23:10:33 +02:00
strolch-service [Doc] Add documentation for strolch-service module 2026-07-05 00:01:19 +02:00
strolch-soql [Fix] Correct JSON serialization for float values in tests 2026-06-02 13:43:21 +02:00
strolch-test-base [New] Add openUserTx method to RuntimeMock 2026-08-04 15:35:44 +02:00
strolch-utils ESN-1695 [Fix] Update ClassScanningHelper to exclude more libraries 2026-07-27 09:29:47 +02:00
strolch-web-rest [Fix] Add missing index attributes to salutation parameters 2026-08-07 14:47:58 +02:00
strolch-websocket [Doc] Add documentation for Strolch WebSocket module 2026-07-05 09:15:31 +02:00
strolch-xmlpers Bump version to 2.7.0-SNAPSHOT 2026-05-04 14:24:09 +02:00
.gitignore [Project] Updated .gitignore files 2020-01-08 09:18:37 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md (#7) 2018-03-28 19:44:31 +02:00
LICENSE [Project] added LICENSE and README.md 2014-09-16 09:29:42 +02:00
pom.xml ESN-1696 [Fix] Ensure JUnit 4 tests are discoverable by Surefire 2026-07-27 08:58:29 +02:00
qodana.yaml [Project] Updated qodana.yaml 2023-06-12 08:19:22 +02:00
README.md ESN-1695 [New] Add runtime configuration management documentation 2026-07-25 14:58:44 +02:00
SECURITY.md [Doc] Update SECURITY.md for clarity and supported versions 2026-07-04 21:28:58 +02:00

Strolch

Contributors License Commit Activity Forks Stars Issues Build Status Project Map

The main repository which contains all of Strolch.

Getting Started

Either use a version on Maven Central: https://mvnrepository.com/artifact/li.strolch/

Or install locally first:

git clone https://github.com/strolch-li/strolch.git
cd strolch
mvn clean install -DskipTests

Then you can create your own project. Please read the README files in the generated projects.

To create a Strolch project see https://strolch.li/development/

More Information

Find more about Strolch at our website: https://strolch.li

Features

Strolch Model

The Strolch model defines the core data structures used in the framework, including Resources, Orders, and Activities. It provides shared Java types, serialization contracts, and a flexible hierarchy for managing data through ParameterBags and Parameters.

For more technical details, see strolch-model/docs/strolch-model.md.

parameter-memory-footprint-baseline.md

Personal Access Tokens (PATs)

Personal Access Tokens (PATs) allow users to generate long-lived credentials to perform actions without a standard login flow. PATs can be restricted to a specific set of privileges and have their own expiration date.

Using PATs

Users can manage their PATs through the PrivilegeHandler. A PAT can be used for authentication by providing it to the authenticatePersonalAccessToken method, which returns a Certificate with the restricted scope defined for that token.

For more technical details, see strolch-privilege/docs/PersonalAccessToken.md.

Strolch Services

The strolch-service module provides the Service API for Strolch. It encapsulates business logic into reusable Services and Commands, and provides specialized frameworks for execution, reporting, and migrations.

For more technical details, see strolch-service/README.md.

Temporary File Retention

Strolch provides a mechanism to automatically clear old temporary files. This is handled by the ClearTempPathJob, which runs daily by default.

Configuration

Retention periods can be configured in strolch.xml using ISO-8601 durations:

  • temp.retention.default: Default retention (default is 3 months).
  • temp.retention.<prefix>: Specific retention for a subdirectory in the temp path.

For more details, see docs/TemporaryFileRetention.md.

Runtime Configuration Management

Strolch allows managing its runtime configuration and policy mappings through a unified API and REST endpoints. This enables dynamic updates to the system behavior without requiring a restart.

Features

  • Unified Access: Manage core configuration and policy mappings through ConfigurationPolicy.
  • REST API: Specialized endpoints for remote configuration management.
  • Policy Discovery: Automatic classpath scanning for new policy implementations.
  • Persistence: Changes to policy mappings are persisted back to StrolchPolicies.xml.

For more technical details, see docs/RuntimeConfigurationManagement.md.

Strolch Utils

The strolch-utils module is a collection of project-independent Java utility classes and helpers designed to simplify common programming tasks. It covers areas such as Design by Contract (DBC), object modification tracking, date/time handling, specialized collections, and various helper utilities for common Java types.

For more technical details, see strolch-utils/docs/strolch-utils.md.

PostgreSQL Persistence

The strolch-persistence-postgresql module provides a PostgreSQL-based persistence implementation. It supports storing Strolch elements in a PostgreSQL database using either XML or JSON formats. It includes automatic schema management and high-performance connection pooling.

For more technical details and setup instructions, see strolch-persistence-postgresql/README.md.

XML Persistence

The strolch-persistence-xml module provides a filesystem-based XML persistence implementation. It stores each Strolch element in its own XML file on the disk. It is suitable for smaller applications or development environments.

For more technical details and setup instructions, see strolch-persistence-xml/README.md.

Privilege

The strolch-privilege module is the Role-Based Access Control (RBAC) engine for Strolch. It handles user authentication, session management, and authorization using extensible policies.

For more technical details and setup instructions, see strolch-privilege/README.md.

REST API

The strolch-web-rest module provides a REST API for Strolch. It allows you to interact with Strolch elements using HTTP requests.

For more technical details and setup instructions, see strolch-web-rest/README.md.

WebSocket API

The strolch-websocket module provides a WebSocket API for Strolch. It allows you to receive real-time updates when Strolch elements are changed.

For more technical details and setup instructions, see strolch-websocket/README.md.

Build and Configuration

Prerequisites

  • Java (JDK 25 or higher recommended)
  • Maven 3.6+

Build Instructions

To build the entire project from the root:

mvn clean install

To skip tests:

mvn clean install -DskipTests