diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9093b6..9567aee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,8 +2,22 @@ name: CI on: push: branches: [develop] + paths-ignore: + - '**.md' + - 'docs/**' + - 'tutorials/**' + - 'examples/**/README.md' + - 'LICENSE' + - '.gitignore' pull_request: branches: [develop, main] + paths-ignore: + - '**.md' + - 'docs/**' + - 'tutorials/**' + - 'examples/**/README.md' + - 'LICENSE' + - '.gitignore' workflow_dispatch: inputs: triggered-by: @@ -13,10 +27,5 @@ on: jobs: build: uses: fireflyframework/.github/.github/workflows/java-ci.yml@main - permissions: - packages: read - contents: read - actions: write with: java-version: '25' - secrets: inherit diff --git a/README.md b/README.md index 68d4760..e3eb5c9 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,50 @@ # Firefly Framework - Bill of Materials (BOM) - + [![CI](https://github.com/fireflyframework/fireflyframework-bom/actions/workflows/ci.yml/badge.svg)](https://github.com/fireflyframework/fireflyframework-bom/actions/workflows/ci.yml) +[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) +[![Java](https://img.shields.io/badge/Java-21%2B-orange.svg)](https://openjdk.org) +[![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.x-green.svg)](https://spring.io/projects/spring-boot) + +> Bill of Materials for the Firefly Framework ensuring consistent, compatible versions across all framework modules. + +--- + +## Table of Contents + +- [Overview](#overview) +- [Features](#features) +- [Requirements](#requirements) +- [Installation](#installation) +- [Quick Start](#quick-start) +- [Configuration](#configuration) +- [Documentation](#documentation) +- [Contributing](#contributing) +- [License](#license) -A Maven BOM that provides centralized version management for all Firefly Framework modules. Importing this artifact into your `dependencyManagement` section ensures that every framework dependency resolves to a compatible, tested version without requiring explicit version declarations. +## Overview -## What is a BOM? +The Firefly Framework BOM (Bill of Materials) provides centralized version management for all Firefly Framework modules. By importing this BOM into your project's `dependencyManagement` section, you ensure that every framework dependency resolves to a compatible, tested version without requiring explicit version declarations. -A Bill of Materials is a special POM artifact (`pom`) that declares a set of dependency versions. When imported via `import`, it allows your project to omit `` tags on those dependencies while guaranteeing version consistency across the entire dependency tree. +This is the recommended approach when your project already has its own parent POM and cannot inherit from `fireflyframework-parent`. The BOM covers all core modules, application layers, ECM adapters, IDP implementations, notification providers, rule engine components, webhooks, callbacks, and the config server. -## Usage +## Features + +- Single import provides version management for all Firefly Framework modules +- Covers core framework modules (cache, EDA, CQRS, event sourcing, transactional engine) +- Covers application layers (application, backoffice, web, domain, data) +- Covers ECM modules and storage adapters (AWS S3, Azure Blob) +- Covers IDP modules (Keycloak, AWS Cognito, internal DB) +- Covers notification providers and core +- Covers rule engine, workflow, webhooks, callbacks, and plugins +- Covers config server +- Compatible with any parent POM + +## Requirements + +- Java 21+ +- Maven 3.9+ + +## Installation Import the BOM in your project's `dependencyManagement` section: @@ -18,7 +54,7 @@ Import the BOM in your project's `dependencyManagement` section: org.fireflyframework fireflyframework-bom - 1.0.0-SNAPSHOT + 26.01.01 pom import @@ -26,85 +62,41 @@ Import the BOM in your project's `dependencyManagement` section: ``` -Then declare framework dependencies without specifying versions: +## Quick Start + +After importing the BOM, add any Firefly Framework module without specifying a version: ```xml org.fireflyframework - fireflyframework-eda + fireflyframework-core org.fireflyframework - fireflyframework-cqrs + fireflyframework-web org.fireflyframework - fireflyframework-cache + fireflyframework-eda ``` -## BOM vs Parent POM - -| Approach | When to Use | -|---|---| -| **fireflyframework-parent** | Your project can inherit from the Firefly parent. This gives you both version management and plugin configuration. | -| **fireflyframework-bom** | Your project already has its own parent POM. The BOM provides version alignment only, without imposing build conventions. | - -If you inherit from `fireflyframework-parent`, you do not need to import the BOM separately -- the parent already includes all managed versions. - -## Managed Artifacts - -### Core Framework - -| Artifact ID | Description | -|---|---| -| `fireflyframework-core` | Actuator, health indicators, service registry, observability | -| `fireflyframework-domain` | DDD base entities, value objects, aggregate roots | -| `fireflyframework-utils` | Shared utilities and template rendering | -| `fireflyframework-validators` | Annotation-based data validators | -| `fireflyframework-web` | WebFlux exception handling, idempotency, OpenAPI | -| `fireflyframework-client` | Reactive REST, SOAP, gRPC client with resilience | -| `fireflyframework-cache` | Multi-provider caching abstraction | -| `fireflyframework-r2dbc` | Reactive database auto-configuration | - -### Distributed Patterns - -| Artifact ID | Description | -|---|---| -| `fireflyframework-eda` | Event-Driven Architecture with Kafka/RabbitMQ | -| `fireflyframework-cqrs` | Command Query Responsibility Segregation | -| `fireflyframework-eventsourcing` | Event Sourcing with snapshots and projections | -| `fireflyframework-transactional-engine` | Saga and TCC distributed transactions | -| `fireflyframework-workflow` | Workflow orchestration engine | -| `fireflyframework-data` | Data processing and job orchestration | - -### Enterprise Content Management +## Configuration -| Artifact ID | Description | -|---|---| -| `fireflyframework-ecm` | Core ECM abstractions | -| `fireflyframework-ecm-storage-aws` | Amazon S3 storage adapter | -| `fireflyframework-ecm-storage-azure` | Azure Blob Storage adapter | +No configuration is required. The BOM is a version-management-only artifact with no runtime behavior. -### Identity Provider +## Documentation -| Artifact ID | Description | -|---|---| -| `fireflyframework-idp` | IDP abstraction layer | -| `fireflyframework-idp-aws-cognito` | AWS Cognito adapter | -| `fireflyframework-idp-internal-db` | Database-backed IDP | -| `fireflyframework-idp-keycloak` | Keycloak adapter | +No additional documentation available for this project. -### Notifications +## Contributing -| Artifact ID | Description | -|---|---| -| `fireflyframework-notifications` | Core notification abstractions | +Contributions are welcome. Please read the [CONTRIBUTING.md](CONTRIBUTING.md) guide for details on our code of conduct, development process, and how to submit pull requests. ## License -Apache License 2.0 +Copyright 2024-2026 Firefly Software Solutions Inc. -Copyright 2024-2026 Firefly Software Solutions Inc. \ No newline at end of file +Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for details.