mattcasters opened a new pull request, #8647:
URL: https://github.com/apache/hop/pull/8647
Fixes #8646: Update and expand the SDK documentation.
### Changes Included
1. **SDK Documentation Modularization**:
- Replaced the single monolithic `hop-sdk.adoc` with modular, focused
guides under `docs/hop-dev-manual/modules/ROOT/pages/sdk/`.
- **`sdk/index.adoc`**: SDK overview, Maven dependencies, environment
initialization tiers (`HopEnvironment`, `HopClientEnvironment`,
`HopGuiEnvironment`), plugin search path (`HOP_PLUGIN_BASE_FOLDERS`), and
variable spaces (`IVariables`).
- **`sdk/pipelines.adoc`**: Loading metadata, programmatic pipeline
construction (`PipelineMeta`, `RowGeneratorMeta`, `DummyMeta`), execution via
`IPipelineEngine` / `PipelineEngineFactory`, row injection via `RowProducer`,
and streaming row consumption with `RowAdapter`.
- **`sdk/workflows.adoc`**: Loading workflow metadata, programmatic
construction (`WorkflowMeta`, `ActionStart`, `ActionDummy`), action hops and
evaluation conditions, execution via `IWorkflowEngine`, parameters, and
`Result` handling.
- **`sdk/metadata.adoc`**: Metadata architecture (`@HopMetadata`,
`@HopMetadataProperty`), provider hierarchy (`JsonMetadataProvider`,
`MemoryMetadataProvider`, `MultiMetadataProvider`,
`SerializableMetadataProvider`), JSON persistence, and GUI integration with
`MetaSelectionLine<T>` and `@GuiWidgetElement(type = GuiElementType.METADATA)`.
- **`sdk/vfs.adoc`**: Virtual File System handling with `HopVfs`, strict
avoidance of `java.io.File`, resource management and stream closing best
practices to prevent socket/descriptor leaks, and supported URL schemes.
- **`sdk/logging.adoc`**: Logging subsystem API, hierarchical channel
structure (`LoggingRegistry`), execution lineage tracing, and in-memory log
buffer querying from `HopLogStore`.
- **`sdk/hop-sdk.adoc`**: Retained as a backward-compatible redirect
guide pointing to the new modular sections.
2. **Comprehensive Plugin Development Guide (15 Plugin Types)**:
- Created dedicated guide pages under
`docs/hop-dev-manual/modules/ROOT/pages/sdk/plugins/` covering annotations,
interfaces, lifecycle, dialogs/editors, and in-tree Apache Hop code references
for:
1. Transforms (`@Transform`)
2. Actions (`@Action`)
3. Metadata Elements (`@HopMetadata`)
4. Database Dialects (`@DatabaseMetaPlugin`)
5. GUI Plugins (`@GuiPlugin`, toolbars, menus, panels, dialog widgets)
6. Hop File Types (`@HopFileTypePlugin`)
7. Variable Resolvers (`@VariableResolverPlugin`)
8. Extension Points (`@ExtensionPoint`)
9. Hop Commands (`@HopCommand`)
10. Configuration Plugins (`@ConfigPlugin`)
11. Perspectives (`@HopPerspectivePlugin`)
12. VFS Providers (`@VfsPlugin`)
13. Value Types (`@ValueMetaPlugin`)
14. Hop Server Servlets (`@HopServerServlet`)
15. Execution Information Locations (`@ExecutionInfoLocationPlugin`)
3. **Navigation & Validation**:
- Updated `nav.adoc` and linked from `plugin-development.adoc`.
- Verified Apache License 2.0 headers on all newly created documentation
files.
- Verified all internal `xref:` cross-references.
- Verified that Spotless check passes cleanly.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]