Getting Started
Welcome to the Hop project! The size of the codebase can perhaps appear to be a bit daunting at first so remember: Don’t Panic!
When it comes down to it the codebase is fairly simple in structure.
Let’s go over the main modules in the source code:
Core
Like the name suggests this module contains the essentials to bootstrap Hop. It has the following types of things on board:
-
Tools: hop-encrypt
-
The plugin registry which keeps track of all the plugins: PluginRegistry
-
Core data types: IValueMeta, ValueMetaString, …
-
Rows of data: IRowMeta, RowMeta
-
Logging: HopLogStore, ILogChannel,…
-
Generic relational database handling: Database, IDatabaseMeta, …
-
Internationalization a.k.a. i18n to translate stuff: BaseMessages
-
Password obfuscation and encryption: Encr
-
Other utility classes like: Const
-
Plugin types: LoggingPluginType, ValueMetaPluginType, DatabasePluginType, ExtensionPointPluginType, TwoWayPasswordEncoderPluginType
-
Bootstrap everything in core with : HopClientEnvironment.init()
Engine
This module contains the actual framework to handle pipelines and workflows.
-
Tools: hop-server, hop-run
-
Pipelines : IPipelineMeta, Pipeline, IPipelineEngine, …
-
Workflows : IWorkflowMeta, Workflow, …
-
Web server: HopServer, StartPipelineServlet, …
-
Auditing: AuditManager, AuditEvent, …
-
Other stuff worth mentioning: partitioning, lineage, …
-
Plugin types: RowDistributionPluginType, TransformPluginType, TransformDialogFragmentType, PartitionerPluginType, JobEntryPluginType,JobEntryDialogFragmentType, LogTablePluginType, LifecyclePluginType, HopLifecyclePluginType, HopServerPluginType, CompressionPluginType, AuthenticationProviderPluginType, AuthenticationConsumerPluginType, PipelineEnginePluginType
-
Bootstrap everything in engine with : HopEnvironment.init()
UI
This module obviously contains everything related to the Hop GUI
-
Tools: hop-gui, hop-translate
-
Hop GUI: HopGui, HopDataOrchestrationPerspective, HopPipelineFileType, …
-
Translator, a tool to help you translate Hop itself: Translator
-
The rest is mostly a collection of re-usable dialogs and widgets