Strolch is a parameterized framework for use on servers and IoT
Find a file
Robert von Burg 631dbfacaa
ESN-1688 [Major] Refactor and extend ClearTempPathJob functionality
Refactored `ClearTempPathJob` to improve modularity, maintainability, and reusability. Made various methods `protected` to allow for subclassing, introduced a new `logStats` method, and added unit tests to cover new scenarios. Consolidated logic by making `ClearAdditionalTempPathsJob` extend `ClearTempPathJob`, reducing code duplication.
2026-08-31 09:45:53 +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 ESN-1688 [Major] Refactor and extend ClearTempPathJob functionality 2026-08-31 09:45:53 +02:00
strolch-bom Bump version to 2.7.0-SNAPSHOT 2026-05-04 14:24:09 +02:00
strolch-jmh-benchmark ESN-1747 [New] Add GroupAccessPrivilege policy to PrivilegeConfig.xml 2026-08-20 14:37:49 +02:00
strolch-model [New] Document XML serialization for Strolch relationships 2026-08-12 07:51:07 +02:00
strolch-persistence-postgresql ESN-1747 [New] Add GroupAccessPrivilege policy to PrivilegeConfig.xml 2026-08-20 14:37:49 +02:00
strolch-persistence-xml ESN-1747 [New] Add GroupAccessPrivilege policy to PrivilegeConfig.xml 2026-08-20 14:37:49 +02:00
strolch-privilege [New] Add handling for additional group property keys 2026-08-24 09:18:19 +02:00
strolch-service ESN-1747 [New] Add GroupAccessPrivilege policy to PrivilegeConfig.xml 2026-08-20 14:37:49 +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 ESN-1747 [New] Add GroupAccessPrivilege policy to PrivilegeConfig.xml 2026-08-20 14:37:49 +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