Releases: BlackBeltTechnology/pandino
Releases Β· BlackBeltTechnology/pandino
0.9.30
Features
- (rollup-bundle-plugin) introduce rollup bundle plugin - (5e0114a) - Norbert Csaba Herczeg
Miscellaneous Chores
v0.9.29
Features
- (declarative-services) add support for decorator extenders - (17dce65) - Norbert Csaba Herczeg
Miscellaneous Chores
v0.9.28
v0.9.27
v0.9.26
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
v0.9.23
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
π 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
New release v0.9.21
Release v0.9.16
New release v0.9.16
Release v0.9.13
Release v0.9.13
- chore: adjust build