Opencast is a mature, open-source lecture capture and video management platform designed for educational institutions. It provides a complete pipeline for recording, processing, managing, and distributing academic video content. The system is built as a modular Java application using OSGi (Karaf) for service composition, with a REST API and a GraphQL layer for modern client interactions. Core capabilities include scheduled capture from lecture hall devices, automated workflow-driven processing (transcoding, transcription, captioning, silence detection, video editing), versioned asset storage (with AWS S3 support), multi-channel distribution (YouTube, OAI-PMH, streaming servers), and a rich admin UI for metadata management, access control, and analytics. The architecture follows a microservices-like pattern with separate API, implementation, and remote proxy modules, enabling distributed deployment across worker, admin, and presentation nodes. External dependencies include Elasticsearch/OpenSearch for search indexing, a relational database (MySQL/MariaDB/PostgreSQL), FFmpeg for media inspection and processing, and various cloud services for transcription and publication. The codebase demonstrates strong engineering practices with consistent module structure, extensive test coverage, and a well-documented upgrade path spanning over a decade of development.
DBeaver is a universal database management tool and SQL client, built as a desktop application on the Eclipse RCP (OSGi plugin) framework. It provides a rich graphical interface for connecting to over 100 database systems via JDBC/ODBC drivers, including relational databases (MySQL, PostgreSQL, Oracle, SQL Server, SQLite, etc.), cloud databases (BigQuery, Athena, Snowflake), and NoSQL systems (MongoDB, Cassandra) in commercial editions. The application offers a full suite of database development features: a multi-tab SQL editor with syntax highlighting, code completion, and execution plan visualization; a data editor with grid, form, and GIS geometry views; ER diagram designer; data export/import wizards supporting CSV, JSON, XML, SQL, Markdown, and Excel; dashboard widgets for query-based monitoring; and an integrated AI assistant (OpenAI, Copilot) for natural language query generation and schema analysis. The architecture follows a strict model/UI separation enforced by OSGi plugin boundaries. The core model plugin (`org.jkiss.dbeaver.model`) defines interfaces for database objects, data values, execution contexts, and security, which are implemented by database-specific extension plugins (`org.jkiss.dbeaver.ext.*`). UI plugins (`org.jkiss.dbeaver.ui.*`) provide editors, navigators, and dialogs, while data transfer, debugging, and AI features are isolated in their own plugins. This design allows the model layer to be reused in the web-based CloudBeaver product. Key entry points include the `DBeaverApplication` class for startup, the `SQLEditor` for query editing, and the `DataTransferWizard` for import/export. External dependencies include the Eclipse RCP framework, JDBC drivers, ANTLR4 for SQL grammar parsing, JSQLParser for SQL analysis, and various third-party libraries for SSH tunneling, AWS SDK, and AI API communication. Data flows center around database connections: users configure data sources via connection wizards, execute SQL queries through the editor, and view results in data grids or export pipelines. The data transfer subsystem implements a producer/consumer pattern with pluggable transformers and serializers, supporting streaming for large datasets. The AI integration uses a provider abstraction to interface with different LLM APIs, generating SQL from natural language and providing schema-aware context. The repository also includes a CLI tool (`dbvr`) for CI/CD automation and a headless test platform. While the community edition is fully open-source, commercial versions add NoSQL support, additional AI providers, and premium features, with some code paths guarded by feature flags.
Eclipse Tycho is a Maven-based build tool for Eclipse plug-ins, OSGi bundles, features, p2 repositories, and RCP applications. It integrates with the Eclipse p2 provisioning system to resolve dependencies, generate metadata, and package artifacts. The architecture is a collection of Maven plugins (mojos) that extend the standard Maven lifecycle with OSGi-specific phases. Key entry points include the compiler plugin (tycho-compiler-plugin), packaging plugin (tycho-packaging-plugin), p2 metadata plugin (tycho-p2-plugin), surefire test runner (tycho-surefire), and version management plugin (tycho-versions-plugin). Data flows involve reading OSGi manifests, feature.xml, product files, and target definitions, resolving dependencies from p2 repositories and Maven artifacts, compiling with JDT, generating p2 metadata, and producing deployable artifacts. External dependencies include Eclipse Equinox/p2, bnd, ASM, JDT, and Maven core. The codebase is large and mature, with extensive integration tests and demo projects, but contains some copied p2 internals and deprecated APIs.