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]

Reply via email to