EN · DE · RU · FR · ES

#1871: README.txt (projectforge-common)

projectforge-common/README.txt Module documentation — projectforge-common module, projectforge-common/README.txt 6 lines · 3 code · 0 comments · 3 blank
Brief module orientation document for the projectforge-common library. Directs developers to use projectforge-webapp as the primary development entry point and explains that projectforge-common is automatically available as a transitive dependency through the ProjectForge Maven repository.

Architecture

This README serves as a minimal orientation document for developers exploring the projectforge-common module. Its content is intentionally brief because this module is not a standalone application — it is a library consumed as a dependency by other ProjectForge modules.

Full Text

Please use projectforge-webapp for your development first!

This module contains some common classes of ProjectForge.

You don't need this module for developing the ProjectForge's web-app.
It's automatically available through the ProjectForge's maven repository.

Module Purpose

projectforge-common is a foundational library module containing shared utility classes, data structures, and cross-cutting concerns used across the ProjectForge ecosystem. It includes:

Dependency Model

The module is published to a Maven repository and consumed by other modules via Gradle dependency declarations. In the Gradle build files (e.g., build.gradle.kts in other modules), it is referenced as:

implementation(project(":projectforge-common"))

This means it is a project dependency in the multi-module Gradle build, and it is published as a Maven artifact for external consumption.

Key Design Decision

The instruction to "use projectforge-webapp for your development first" indicates that projectforge-webapp is the intended developer entry point — it provides the full web application stack. The projectforge-common module is a building block, not a starting point. This layered architecture separates concerns: common utilities are isolated so that tools, scripts, and plugins can depend on them without pulling in the full web application stack.

Build Configuration

The module uses the Gradle convention plugin buildlogic.pf-module-conventions and the Kotlin JVM plugin. It declares API dependencies on SLF4J, Logback, Log4j2, Apache Commons libraries, and Zip4j for ZIP archive handling.

The README's reference to "ProjectForge's maven repository" suggests the project originally used Maven for dependency management before migrating to Gradle. The repository presumably hosts compiled JARs of projectforge-common for use by external tooling and scripts that need ProjectForge utilities without the full web application.

Git History

9ebb88522 Initial commit