Professional Wings Documentation
website·Indexed 31 days ago
https://wings.fessional.proDocumentation for the Professional Wings ecosystem, featuring modules such as Slardar (caching, session, and backend protection), Warlock (security and login customization), Meepo (execution engine and templates), and Radiant (TinyGrow components). Includes detailed upgrade guides for versions 2.6.6.210 through 300.301.741, Spring Boot integration examples, and server management manuals.
What's inside Professional Wings
- Faceless Void is a data layer utility for MySQL-compatible systems (such as H2). It provides support for table and data versioning, strong type-safe SQL mapping, read-write splitting, and data sharding.
Overview of WingsBoot framework
WingsBoot (code WingsGod) is a SpringBoot bootstrap designed to avoid 'magic' and heavy customization. It provides a foundation for small startup teams to evolve from single applications to data sharding, read-write (RW) splitting, and microservices. Key features include:
- Dynamic i18n, timezone, DST, and leap second solutions.
- Data and database versioning for safe table changes and maintenance.
- Robust engineering practices for enums, configurations, and templates.
- Support for non-English naming and industry jargon.
- Traceable, reviewable, and recoverable runtime data changes.
Overview of Meepo Template Engine
Meepo is a template engine that allows developers to generate files (such as.java,.sql, and.htm) without breaking the original syntax of the target file. It uses static transformations and limited dynamic control to ensure that templates remain compilable, executable, or previewable in their native format. Key features include customizable variable boundaries, escaping, and the ability to create flexible customizing functions using Java.Overview of TinyMail Component capabilities
TinyMail is a database-centric mail service built on Spring Mail. It is designed to provide small transaction guarantees and handle common mail provider issues like frequency limits and account locks. Key capabilities include:
- Support for sync/async and single/batch sending.
- Frequency limiting and wait-times based on error types.
- Ability to stop sending based on success status or failure counts.
- Support for multiple email accounts (e.g., domestic and overseas).
- Dry-run mode and filtering by application or runmode.
- Use of business email headers to locate data upon receipt.
Overview of Hazelcast Middleware components in Slardar
The Slardar framework utilizes Hazelcast as middleware for sessions, caching, and messaging. The following components are implemented:
- Session Management:
Hazelcast4IndexedSessionRepository(Spring Session) - Server Cache:
WingsHazelcast - Global Locking:
HazelcastGlobalLock - Global Events:
HazelcastSyncPublisher - ID Generation:
FlakeIdHazelcastImpl(Snowflake ID)
- Session Management:
Overview of Slardar modules
Slardar provides a suite of SpringMvc (non-WebFlux) wrappers and extensions for multi-language support, multi-timezone handling, security, caching, and session management. The project is divided into the following modules:
slardar: Basic features including caching, events, and serialization.slardar-hazel-caching: Distributed cache implementation using Hazelcast.slardar-hazel-session: Distributed session management using Hazelcast.slardar-webmvc: WebMvc, session, and security-web integrations.slardar-sprint: Hazelcast, security configuration, admin, and actuator support.slardar-test: Testing utilities, including login helpers.
Overview of 4F.Open Api (ApiAuth)
The 4F.Open Api (ApiAuth) is a limited-function, non-SecurityFilter system designed for external Server-to-Server (SS) communication. Unlike BindAuth (Browser-Server), it relies on Tokens and Signatures rather than Cookies and Sessions. It provides a TerminalContext instead of a full SecurityContext, meaning full authorization is not performed and login logs are not recorded after authentication.Implement dynamic clock, logging, and stack tweaking
The SilencerCurse module provides a mechanism to dynamically adjust system behavior at runtime using global or thread-level settings. This is achieved by storing parameters in static variables or
ThreadLocalstorage to provide valid values on demand via the following classes:TweakClock: Used for tweaking the system clock.TweakLogger: Used for tweaking logging levels (specifically limited to Logback).TweakStack: Used for tweaking the stack ofCodeException.
Understand Wings Auto Cascade Configuration logic
Wings implements a cascading and filtering configuration system that allows developers to split configuration items by module, function, or profile. It supports overriding via loading order and disabling specific files via a block-list.
Key concepts:
- Cascading: Sorting by priority; higher priority configurations override lower ones.
- Filtering: Filtering configurations based on the active profile.
- Priority Order: In multi-config scenarios, the processing order is: 1. Profile $\rightarrow$ 2. Path $\rightarrow$ 3. File Sequence (
seq) $\rightarrow$ 4. Charset order.
Understand Meepo Execution Engine Context Levels
The B4 Execution Engine operates at two context levels which determine how variables and state are handled across evaluations:
- session level: Multiple evaluations within a merge share the same context. Evaluations can influence each other (e.g., the
jsengine). - nothing level: No context is associated with each evaluation; there is no influence between separate evaluations (e.g., the
shengine, which depends on bash settings).
- session level: Multiple evaluations within a merge share the same context. Evaluations can influence each other (e.g., the
Understand Batrider module structure
Batrider is a lightweight, full-stack microservice solution based on ServiceComb. It consists of the following core modules:
batrider: Handles basic ServiceComb settings.batrider-zero: Provides registry-zero-config functionality.batrider-test: Contains testing utilities for both REST and RPC communication.
Manage database schema and data versions with Flywave
Flywave provides a Git-like approach to managing SQL schema and data changes. It uses a specific directory structure to organize SQL scripts and tracks versions using thesys_schema_versiontable. The system supports a single master timeline for database state, while allowing local SQL files to exist in multiple git branches for organization./wings-flywave/master/**/*.sql # Manage primary databases and data /wings-flywave/branch/**/*.sql # Manage SQL branches /wings-flywave/fulldump/{db}/ # Latest schema of the current primary DB /wings-flywave/master/00-init/ # Initial scripts /wings-flywave/master/01-##/ # Changes by milestone/date /wings-flywave/branch/##/##/ # Git-flow naming (feature, somefix, etc.)