Package ch.rswk.meta.engine
package ch.rswk.meta.engine
meta-engine is the backend of every application based on meta.
Various Services provide all the the vital functions. Each service is one of:
AbstractEngineIdleService
- Similar toAbstractIdleService
AbstractEngineExecutionThreadService
- Similar toAbstractExecutionThreadService
AbstractEngineWorkQueueService
- Custom version ofAbstractEngineExecutionThreadService
with a work queue for scheduling sequential work
The central meta services are:
ActionService
DatabaseService
FileService
GatewayService
HttpService
LoggingService
LuceneService
MetaService
UserService
WatchdogService
API is mainly based on a WebSocket request/reply Protocol
. There are some REST-like endpoints for
actions that should be accessible by simpler clients (like curl) that dont implement the WebSocket protocol.
EngineWebSocketListener
EngineWebSocketController
ActionExecuteResource
FileDownloadResource
FileUploadResource
UserTokenResource
UserWebhookAuthResource
WatchdogStatusResource
WatchdogUpdateResource
Runtime:
-
ClassDescriptionActionService receives and dispatches
MetaAction
to services that are registered to handle them.AlertRegistry.GaugeHealthCheck<T extends Comparable<T>>EngineRuntime provides executor services,ServiceManager
for service lifecycle, centralized access to Metric, Health-Check andAlertRegistry
.EngineUpdater executes tasks against two engine instances for importing/exporting and migrating service data.FileService to upload, download, search and delete files.GatewayService for sending SMS, email and invoking webhooks.Geo3DUtilWrapper exposes methods from Geo3DUtil to the public.HttpServiceHeaderCorsConfig is used to configure aCrossOriginFilter
.HttpServiceHeaderCorsConfig is used to configure aHeaderPatternRule
.LoggingService for storing and searching for logs and metrics.LuceneService handles writing and searching a single Lucene index via a work queue.Main provides the generic main method for all applications based on meta-engine.MetaSchema handles generating LuceneDocument
fields from JSON schemas.MetaTypeFieldGenerator generates Lucene fields when encountering an object of the specified type.NamedFieldGenerator generates Lucene fields when ecnountering a field with the specified name.MetaService provides CRUD functionality for all meta model entities.UserService provides CRUD functionality for all user entities.WatchdogService can report engine health to another engine (usually a central, dedicated watchdog), check if other runtimes are healthy (as the dedicated watchdog) and schedule/process automated updates.