{"id":20471547,"url":"https://github.com/backbase/scdf-maven-plugin","last_synced_at":"2025-03-05T13:42:57.415Z","repository":{"id":48565044,"uuid":"281676835","full_name":"Backbase/scdf-maven-plugin","owner":"Backbase","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-08T12:21:07.000Z","size":139,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":8,"default_branch":"dev","last_synced_at":"2025-02-25T22:47:24.292Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Backbase.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-22T12:52:57.000Z","updated_at":"2023-09-05T12:55:36.000Z","dependencies_parsed_at":"2022-09-10T12:22:38.871Z","dependency_job_id":null,"html_url":"https://github.com/Backbase/scdf-maven-plugin","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backbase%2Fscdf-maven-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backbase%2Fscdf-maven-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backbase%2Fscdf-maven-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Backbase%2Fscdf-maven-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Backbase","download_url":"https://codeload.github.com/Backbase/scdf-maven-plugin/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242039278,"owners_count":20061923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T14:16:27.493Z","updated_at":"2025-03-05T13:42:57.390Z","avatar_url":"https://github.com/Backbase.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](logo.svg)\n\n## Stream Maven plugin\nThe Stream maven plugin provides an easy and quick way to register Stream apps in a running Stream instance.\n\nOnce configured in the project, register an app running:\n```bash\nmvn stream:register -Premote\n```\n\n## How to use in a project\n\nIn projects created with a Stream starter as parent (i.e. `stream-task-starter-parent`), the necessary dependencies, plugins and most of the configuration are already included. It's only necessary to configure config specifics for your project.\n\nStart by defining Stream and docker repo urls, and Stream username and password (in case auth is enabled)\n\n```xml\n     \u003cproperties\u003e\n        \u003cstream.dataflow.url\u003ehttp://localhost:8090\u003c/stream.dataflow.url\u003e\n        \u003cstream.dataflow.username\u003emyuser\u003c/stream.dataflow.username\u003e\n        \u003cstream.dataflow.password\u003emypass\u003c/stream.dataflow.password\u003e\n        \u003cdocker.repository.url\u003elocalhost:5000/\u003c/docker.repository.url\u003e\n    \u003c/properties\u003e\n```\n\nWhen building the docker image with Jib you are about to register, you need to activate the profile `include-metadata` (e.g. `mvn package jib:dockerBuild -Pinclude-metadata`), so it will hook the `spring-cloud-app-starter-metadata-maven-plugin` that will read the properties from classes annotated with `@ConfigurationProperties` and export them as an encoded json which will allow us to set them on launch time in the SC Dataflow UI.\nYou can override the default plugin configuration (and it is recommended) to include here which configuration classes should be filtered presented in the UI, by adding the `sourceTypes` and `names` as in the example below. If skipped, all the application properties (including Spring Boot's autoconfig) will be presented.\n\n```xml\n    \u003cbuild\u003e\n        \u003cplugins\u003e\n            \u003cplugin\u003e\n                \u003cgroupId\u003eorg.springframework.cloud\u003c/groupId\u003e\n                \u003cartifactId\u003espring-cloud-app-starter-metadata-maven-plugin\u003c/artifactId\u003e\n                \u003cconfiguration\u003e\n                    \u003cmetadataFilter\u003e\n                        \u003cnames\u003e\n                            \u003cfilter\u003ebootstrap\u003c/filter\u003e\n                        \u003c/names\u003e\n                        \u003csourceTypes\u003e\n                            \u003cfilter\u003ecom.rbs.coutts.bootstrap.entitlements.config.BootstrapConfigurationProperties\u003c/filter\u003e\n                        \u003c/sourceTypes\u003e\n                    \u003c/metadataFilter\u003e\n                \u003c/configuration\u003e\n            \u003c/plugin\u003e\n        \u003c/plugins\u003e\n    \u003c/build\u003e\n```\n\nApart from the encoded json, a metadata jar with these properties will be generated as well. In case you prefer to load the properties as jar from a maven artifactory instead of the embedded json, filter needs to be done by adding `src/main/resources/META-INF/spring-configuration-metadata-whitelist.properties` to the project.\n\nAfter adding the plugins, add a profile with the desired Stream configuration for the project:\n\n```xml\n    \u003cprofiles\u003e\n        \u003cprofile\u003e\n            \u003cid\u003eremote\u003c/id\u003e\n            \u003cbuild\u003e\n                \u003cpluginManagement\u003e\n                    \u003cplugins\u003e\n                        \u003cplugin\u003e\n                            \u003cgroupId\u003ecom.backbase.oss\u003c/groupId\u003e\n                            \u003cartifactId\u003escdf-maven-plugin\u003c/artifactId\u003e\n                            \u003cconfiguration\u003e\n                                \u003cdataflowUrl\u003e${stream.dataflow.url}\u003c/dataflowUrl\u003e\n                                \u003cdataflowUsername\u003e${stream.dataflow.username}\u003c/dataflowUsername\u003e\n                                \u003cdataflowPassword\u003e${stream.dataflow.password}\u003c/dataflowPassword\u003e\n                            \u003c/configuration\u003e\n                        \u003c/plugin\u003e\n                    \u003c/plugins\u003e\n                \u003c/pluginManagement\u003e\n            \u003c/build\u003e\n        \u003c/profile\u003e\n    \u003c/profiles\u003e\n```\n\nApart from the above config properties, these are/ can be set as well:\n\n| Name   |      Description      |  Default |\n|----------|:-------------:|------:|\n| `dataflowUrl` |  Stream (SCDF) url, where app will be registered | `http://localhost:9393` |\n| `dataflowUsername` |    optional   |    |\n| `dataflowPassword` | optional |     |\n| `name` |  App name. Inherited from starter parent | `${project.artifactId}` |\n| `force` |  Force registration and replace existing one (if exists). Inherited from starter parent | `true` |\n| `appUri` |  Format of URI. Inherited from starter parent | `docker:${jib-maven-plugin.image}:${jib-maven-plugin.tag}` |\n| `type` |  App type. Inherited from starter parent | One of `APP, SOURCE, PROCESSOR, SINK, TASK` |\n| `embeddedMetadata` |  Embed properties metadata in Docker image. Inherited from starter parent | `true` |\n| `mavenMetadata` |  Must be set if `embeddedMetadata` is `false`. Ignored otherwise. Inherited from starter parent | `maven://${project.groupId}:${project.artifactId}:jar:metadata:${project.version}` |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbackbase%2Fscdf-maven-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbackbase%2Fscdf-maven-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbackbase%2Fscdf-maven-plugin/lists"}