| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [View Raw Code] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
This is a Maven archetype for creating custom Hyperdrive components.
Download the artifact to your local maven repository
mvn dependency:get -Dartifact=za.co.absa.hyperdrive:component-archetype:4.2.0
Update the local archetype catalog
mvn archetype:crawl
Generate a skeleton project by executing the following command
mvn archetype:generate \
-DarchetypeGroupId=za.co.absa.hyperdrive \
-DarchetypeArtifactId=component-archetype_2.12 \
-DarchetypeVersion=4.2.0 \
-DgroupId=<groupId> \
-DartifactId=<artifactId> \
-Dversion=<artifact-version>
Hint: For Scala 2.11, use -DarchetypeArtifactId=component-archetype_2.11.
There are three types of Hyperdrive components: Reader, Transformer and Writer.
This archetype provides stubs for all types, which are located under <project-root>/src/main/scala/<groupId>/
For example, if you need to implement a custom transformer, you should modify the stubs in <project-root>/src/main/scala/{groupId}/transformer/mycomponent/MyStreamTransformerImpl
If you don't need to implement a component type, you should delete the corresponding stubs. E.g. if you don't need to implement the writer, delete the folder <project-root>/src/main/scala/{groupId}/writer
Components need to be registered using the Java Service Provider Interface (SPI). There are configuration file templates under <project-root>/src/resources/META-INF/services. If you don't need a component type, you should delete the corresponding configuration files.
A model test to verify the configuration is available under <project-root>/test/scala/ServiceProviderConfigurationTest.scala
% cd <target-directory>/<groupId> % mvn clean package
creates the jar-file in the target, which contains the hyperdrive components.
| Back | FazBrowse Home | New Git URL |