Skip to content

Releases: BlackBeltTechnology/pandino

0.9.30

26 Aug 23:05
Compare
Choose a tag to compare

Features

  • (rollup-bundle-plugin) introduce rollup bundle plugin - (5e0114a) - Norbert Csaba Herczeg

Miscellaneous Chores

  • (react-hooks) add performance-related tests - (ef86d4c) - Norbert Csaba Herczeg
  • (react-hooks) improve ComponentProxy performance - (e564a8d) - Norbert Csaba Herczeg
  • fix unstable import handling, breaking tests - (8819810) - Norbert Csaba Herczeg

v0.9.29

12 Aug 06:44
Compare
Choose a tag to compare

Features

  • (declarative-services) add support for decorator extenders - (17dce65) - Norbert Csaba Herczeg

Miscellaneous Chores

  • bump deps - (5bcf899) - Norbert Csaba Herczeg
  • bump deps - (b7bc94a) - Norbert Csaba Herczeg
  • add missing examples - (69f10df) - Norbert Csaba Herczeg
  • fix linter issues - (3a6e3da) - Norbert Csaba Herczeg
  • update react readme - (bf2efe8) - Norbert Csaba Herczeg

v0.9.28

06 Aug 00:29
4943960
Compare
Choose a tag to compare

Features

  • (react-hooks) add more React features, improve tests - (608b77c) - Norbert Csaba Herczeg

Miscellaneous Chores

  • (deps-dev) bump @types/node from 20.19.9 to 24.2.0 (#230) - (4943960) - dependabot[bot]
  • (example) use logger service, lifecycle helpers - (c68b74b) - Norbert Csaba Herczeg

v0.9.27

05 Aug 03:13
Compare
Choose a tag to compare

Refactoring

  • (pandino) use ResourceProcessors as traditional services - (bf5edf2) - Norbert Csaba Herczeg

v0.9.26

05 Aug 02:41
Compare
Choose a tag to compare

Bug Fixes

  • fix bundles now use dedicated loggers - (12617c8) - Norbert Csaba Herczeg
  • remove bundle deactivator property - (b7a2af6) - Norbert Csaba Herczeg

Documentation

  • update docs, add whiteboard and extender pattern - (a1867c8) - Norbert Csaba Herczeg

Features

  • (fragments) add fragment support - (92e30b9) - Norbert Csaba Herczeg

Miscellaneous Chores

  • (deps) bump react and @types/react (#225) - (71ad5fe) - dependabot[bot]
  • (deps-dev) bump typescript from 5.8.3 to 5.9.2 (#226) - (f31f1d7) - dependabot[bot]
  • (deps-dev) bump vite from 5.4.19 to 7.0.6 (#224) - (68da7e0) - dependabot[bot]
  • (example) rewrite example application - (b271543) - Norbert Csaba Herczeg
  • bump dependency versions - (ce05be7) - Norbert Csaba Herczeg
  • optimize for loops for better performance - (ba3b537) - Norbert Csaba Herczeg
  • optimize example chunks - (dc6bb55) - Norbert Csaba Herczeg
  • exclude all peerDependencies - (b964f04) - Norbert Csaba Herczeg

Refactoring

  • (decorators) extract decorators into their specific package - (3156cfa) - Norbert Csaba Herczeg
  • (example) optimize MUI imports, fix react wiring - (ca2a837) - Norbert Csaba Herczeg

v0.9.23

03 Aug 02:33
Compare
Choose a tag to compare

Bug Fixes

  • (declarative-services) implement missing configuration lookup for component activation - (1a917b8) - Norbert Csaba Herczeg

Features

  • (declarative-services) add reflection helpers - (b65af3b) - Norbert Csaba Herczeg
  • (declarative-services) automatic component registration/de-registration - (51a9f80) - Norbert Csaba Herczeg
  • expose framework services as bundles - (139ae65) - Norbert Csaba Herczeg

Miscellaneous Chores

  • improve DS deadlock and recursion handling - (bcf25e1) - Norbert Csaba Herczeg
  • add more tests - (7c9a254) - Norbert Csaba Herczeg

Refactoring

  • (declarative-services) use reflect-metadata instead of custom processing - (cfe2704) - Norbert Csaba Herczeg

v0.9.22

01 Aug 04:24
Compare
Choose a tag to compare

πŸš€ Overview

Pandino v0.9.22 represents a complete rewrite of the framework, delivering a production-ready TypeScript implementation of OSGi-inspired modular architecture. This release introduces comprehensive service-oriented programming capabilities with first-class React integration, declarative services, and enterprise-grade built-in services.

⭐ What's New

πŸ—οΈ Complete Framework Architecture Rewrite

  • Modern TypeScript Implementation: Full rewrite using latest TypeScript features with comprehensive type safety
  • OSGi-Inspired Service Registry: Dynamic service discovery and dependency injection with LDAP filtering
  • Bundle Lifecycle Management: Complete module lifecycle with automatic dependency resolution
  • Zero-Configuration Setup: Sensible defaults with optional configuration for advanced use cases

πŸ”§ Core Framework Features

Service Registry & Discovery

  • Dynamic Service Registration: Register and discover services at runtime with rich metadata
  • LDAP Filter Support: Advanced service filtering using industry-standard LDAP syntax
  • Service Ranking: Automatic service selection based on configurable ranking
  • Service References: Safe service access patterns preventing memory leaks

Bundle System

  • Self-Contained Modules: Bundles with independent lifecycles and clean boundaries
  • Bundle Activators: Lifecycle hooks for startup and shutdown operations
  • Dynamic Loading: Runtime bundle installation and uninstallation
  • Dependency Resolution: Automatic service dependency resolution regardless of load order

Advanced Service Management

  • Service Factories: Lazy service instantiation and prototype services
  • Service Tracking: Reactive service availability monitoring
  • Configuration Integration: Services can receive dynamic configuration updates
  • Event-Driven Architecture: Publish-subscribe messaging between components

🎯 Declarative Services (SCR Support)

Component Decorators

  • @Component: Define service components with metadata
  • @Service: Expose component interfaces as services
  • @Reference: Inject service dependencies with lifecycle management
  • @Property: Configure component properties
  • @Activate/@Deactivate/@Modified: Lifecycle method decorators

Features

  • Automatic Dependency Injection: Zero-boilerplate service wiring
  • Lifecycle Management: Automatic component activation/deactivation
  • Configuration Binding: Dynamic configuration updates via ConfigAdmin
  • Service Cardinality: Support for optional, mandatory, and multiple service references

🏒 Enterprise Built-in Services

EventAdmin Service

  • Topic-Based Messaging: Hierarchical event topics with wildcard support
  • Event Filtering: LDAP-based event filtering for targeted message delivery
  • Synchronous & Asynchronous: Support for both sync and async event delivery
  • Event Properties: Rich event metadata for complex routing scenarios

Configuration Admin Service

  • Dynamic Configuration: Runtime configuration updates without restarts
  • Managed Services: Automatic configuration injection into services
  • Configuration Persistence: Pluggable configuration storage backends
  • Factory Configurations: Template-based configuration for multiple instances

Log Service

  • Centralized Logging: Framework-wide logging with contextual information
  • Bundle Context: Automatic bundle identification in log entries
  • Multiple Log Levels: DEBUG, INFO, WARN, ERROR with configurable filtering
  • Structured Logging: JSON-formatted log entries with metadata

Service Tracker

  • Simplified Service Discovery: High-level API for service monitoring
  • Lifecycle Callbacks: React to service availability changes
  • Multiple Service Tracking: Track collections of related services
  • Filter-Based Tracking: Track services matching specific criteria

βš›οΈ React Integration (@pandino/react-hooks)

Provider Component

  • PandinoProvider: Context provider for framework integration
  • Automatic Initialization: Framework startup/shutdown handled automatically
  • Bundle Loading: Declarative bundle loading via props

React Hooks

  • usePandinoContext: Access framework instance and bundle context
  • useService: Reactive service discovery with loading states
  • useServiceTracker: Track multiple services with real-time updates
  • useBundles: Monitor bundle states and lifecycle
  • useRegisterService: Register React components as services

Features

  • Reactive Service Updates: Components re-render when services change
  • Loading States: Built-in loading indicators for service availability
  • Error Boundaries: Graceful handling of service failures
  • TypeScript Support: Full type safety for service interfaces

πŸ› οΈ Developer Experience

TypeScript Support

  • Experimental Decorators: Full decorator support for declarative services
  • Type-Safe APIs: Comprehensive TypeScript definitions
  • Generic Service References: Type-safe service discovery and injection
  • IntelliSense Support: Rich IDE integration with auto-completion

πŸ”„ Migration Guide

Breaking Changes

  • Complete API restructure
  • New package organization (@pandino/pandino, @pandino/react-hooks)
  • TypeScript decorators now require experimentalDecorators: true
  • Event system redesigned with new interfaces

πŸ“¦ Package Information

Core Packages

  • @pandino/pandino: Core framework implementation
  • @pandino/react-hooks: React integration hooks and components

Installation

npm install @pandino/pandino @pandino/react-hooks

Requirements

  • TypeScript 5.0+
  • Node.js 22+
  • React 18+ (for React integration)

πŸ”§ Configuration

TypeScript Setup

{
  "compilerOptions": {
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true
  }
}

Basic Framework Setup

import { OSGiBootstrap, LogLevel } from '@pandino/pandino';

const bootstrap = new OSGiBootstrap({
  frameworkLogLevel: LogLevel.INFO
});
const framework = await bootstrap.start();

🎯 Use Cases

Enterprise Applications

  • Microservice architectures
  • Plugin systems
  • Modular monoliths
  • Configuration-driven applications

React Applications

  • Micro-frontends
  • Component libraries
  • Dynamic feature loading
  • Service-oriented UIs

🀝 Community & Support

  • Examples: Working examples for common use cases
  • TypeScript: Full type definitions included
  • License: Eclipse Public License 2.0

Examples: Example Applications

For questions and support, please refer to the project documentation or create an issue in the repository.

Release v0.9.21

01 Aug 03:44
Compare
Choose a tag to compare

New release v0.9.21

Release v0.9.16

01 Aug 03:02
Compare
Choose a tag to compare

New release v0.9.16

Release v0.9.13

01 Aug 02:34
Compare
Choose a tag to compare

Release v0.9.13

  • chore: adjust build