This is an automated email from the ASF dual-hosted git repository.

zehnder pushed a commit to branch 
4287-migrate-angular-ui-from-constructor-injection-to-inject
in repository https://gitbox.apache.org/repos/asf/streampipes.git

commit d526b157145b0f0f107c8536488a7fb959b99563
Author: Philipp Zehnder <[email protected]>
AuthorDate: Tue Mar 24 10:01:00 2026 +0100

    migrate core UI utilities to inject()
---
 .../pipeline-element-template-config.component.ts           | 10 +++++-----
 .../static-alternatives/static-alternatives.component.ts    |  7 +++----
 .../add-to-collection/add-to-collection.component.ts        |  4 ++--
 .../static-color-picker/static-color-picker.component.ts    |  6 ++----
 .../static-file-input/static-file-input.component.ts        | 10 +++-------
 .../static-mapping-nary/static-mapping-nary.component.ts    |  6 ++----
 .../static-properties/static-property-util.service.ts       |  4 ++--
 .../static-runtime-resolvable-any-input.component.ts        |  6 ++++--
 .../static-runtime-resolvable-group.component.ts            |  5 ++++-
 .../runtime-resolvable.service.ts                           |  8 +++-----
 .../static-runtime-resolvable-oneof-input.component.ts      |  6 ++++--
 .../static-runtime-resolvable-tree-input.component.ts       | 13 ++++++++-----
 .../static-tree-input-browse-nodes.component.ts             |  9 +++++----
 .../static-secret-input/static-secret-input.component.ts    |  6 ++----
 ui/src/app/core-ui/topics/topics.component.ts               |  4 ++--
 15 files changed, 51 insertions(+), 53 deletions(-)

diff --git 
a/ui/src/app/core-ui/pipeline-element-template-config/pipeline-element-template-config.component.ts
 
b/ui/src/app/core-ui/pipeline-element-template-config/pipeline-element-template-config.component.ts
index 604e17816d..f8a2e888e1 100644
--- 
a/ui/src/app/core-ui/pipeline-element-template-config/pipeline-element-template-config.component.ts
+++ 
b/ui/src/app/core-ui/pipeline-element-template-config/pipeline-element-template-config.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component, Input, OnInit } from '@angular/core';
+import { Component, Input, OnInit, inject } from '@angular/core';
 import {
     PipelineElementTemplate,
     PipelineElementTemplateService,
@@ -63,6 +63,10 @@ import { PipelineElementTemplatePipe } from 
'./pipeline-element-template.pipe';
     ],
 })
 export class PipelineElementTemplateConfigComponent implements OnInit {
+    private pipelineElementTemplateService = inject(
+        PipelineElementTemplateService,
+    );
+
     @Input()
     template: PipelineElementTemplate;
 
@@ -77,10 +81,6 @@ export class PipelineElementTemplateConfigComponent 
implements OnInit {
 
     existingTemplates: PipelineElementTemplate[] = [];
 
-    constructor(
-        private pipelineElementTemplateService: PipelineElementTemplateService,
-    ) {}
-
     ngOnInit(): void {
         this.loadTemplates();
         this.template.basePipelineElementAppId = this.appId;
diff --git 
a/ui/src/app/core-ui/static-properties/static-alternatives/static-alternatives.component.ts
 
b/ui/src/app/core-ui/static-properties/static-alternatives/static-alternatives.component.ts
index f241917146..c2544d36d8 100644
--- 
a/ui/src/app/core-ui/static-properties/static-alternatives/static-alternatives.component.ts
+++ 
b/ui/src/app/core-ui/static-properties/static-alternatives/static-alternatives.component.ts
@@ -22,6 +22,7 @@ import {
     Input,
     OnInit,
     TemplateRef,
+    inject,
 } from '@angular/core';
 import { AbstractStaticPropertyRenderer } from 
'../base/abstract-static-property';
 import {
@@ -63,6 +64,8 @@ export class StaticAlternativesComponent
     extends AbstractStaticPropertyRenderer<StaticPropertyAlternatives>
     implements OnInit
 {
+    private changeDetectorRef = inject(ChangeDetectorRef);
+
     @Input()
     deploymentConfiguration: ExtensionDeploymentConfiguration;
 
@@ -76,10 +79,6 @@ export class StaticAlternativesComponent
 
     completedAlternativeConfigurations: ConfigurationInfo[] = [];
 
-    constructor(private changeDetectorRef: ChangeDetectorRef) {
-        super();
-    }
-
     ngOnInit() {
         this.staticProperty.alternatives.forEach(al => {
             if (al.staticProperty) {
diff --git 
a/ui/src/app/core-ui/static-properties/static-collection/add-to-collection/add-to-collection.component.ts
 
b/ui/src/app/core-ui/static-properties/static-collection/add-to-collection/add-to-collection.component.ts
index 36762ab9aa..f6c1437980 100644
--- 
a/ui/src/app/core-ui/static-properties/static-collection/add-to-collection/add-to-collection.component.ts
+++ 
b/ui/src/app/core-ui/static-properties/static-collection/add-to-collection/add-to-collection.component.ts
@@ -57,6 +57,8 @@ import { MatProgressBar } from 
'@angular/material/progress-bar';
     ],
 })
 export class AddToCollectionComponent {
+    private staticPropertyUtil = inject(StaticPropertyUtilService);
+
     translateService = inject(TranslateService);
 
     @Input()
@@ -75,8 +77,6 @@ export class AddToCollectionComponent {
     public hasError = false;
     public errorMessage = this.translateService.instant('This is a test');
 
-    constructor(private staticPropertyUtil: StaticPropertyUtilService) {}
-
     add() {
         const clone = this.staticPropertyUtil.clone(
             this.staticPropertyTemplate,
diff --git 
a/ui/src/app/core-ui/static-properties/static-color-picker/static-color-picker.component.ts
 
b/ui/src/app/core-ui/static-properties/static-color-picker/static-color-picker.component.ts
index 3b46e52881..c9f2a6f66d 100644
--- 
a/ui/src/app/core-ui/static-properties/static-color-picker/static-color-picker.component.ts
+++ 
b/ui/src/app/core-ui/static-properties/static-color-picker/static-color-picker.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, inject } from '@angular/core';
 import { StaticPropertyUtilService } from '../static-property-util.service';
 import {
     FormsModule,
@@ -47,9 +47,7 @@ export class StaticColorPickerComponent
     extends AbstractValidatedStaticPropertyRenderer<ColorPickerStaticProperty>
     implements OnInit
 {
-    constructor(public staticPropertyUtil: StaticPropertyUtilService) {
-        super();
-    }
+    staticPropertyUtil = inject(StaticPropertyUtilService);
 
     presetColors: any[] = [
         '#39B54A',
diff --git 
a/ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.ts
 
b/ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.ts
index 86f8754f69..d0bc38dd0b 100644
--- 
a/ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.ts
+++ 
b/ui/src/app/core-ui/static-properties/static-file-input/static-file-input.component.ts
@@ -80,6 +80,9 @@ export class StaticFileInputComponent
     extends AbstractValidatedStaticPropertyRenderer<FileStaticProperty>
     implements OnInit
 {
+    private filesService = inject(FilesService);
+    dialog = inject(MatDialog);
+
     public chooseExistingFileControl = new UntypedFormControl();
 
     translateService = inject(TranslateService);
@@ -100,13 +103,6 @@ export class StaticFileInputComponent
 
     filesLoaded = false;
 
-    constructor(
-        private filesService: FilesService,
-        public dialog: MatDialog,
-    ) {
-        super();
-    }
-
     ngOnInit() {
         this.fetchFileMetadata(this.staticProperty.locationPath);
         this.addValidator(
diff --git 
a/ui/src/app/core-ui/static-properties/static-mapping-nary/static-mapping-nary.component.ts
 
b/ui/src/app/core-ui/static-properties/static-mapping-nary/static-mapping-nary.component.ts
index ed075ce8c5..22c797296d 100644
--- 
a/ui/src/app/core-ui/static-properties/static-mapping-nary/static-mapping-nary.component.ts
+++ 
b/ui/src/app/core-ui/static-properties/static-mapping-nary/static-mapping-nary.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, inject } from '@angular/core';
 import { StaticMappingComponent } from '../static-mapping/static-mapping';
 import { MappingPropertyNary } from '@streampipes/platform-services';
 import { DisplayRecommendedPipe } from '../filter/display-recommended.pipe';
@@ -49,9 +49,7 @@ export class StaticMappingNaryComponent
     extends StaticMappingComponent<MappingPropertyNary>
     implements OnInit
 {
-    constructor(private displayRecommendedPipe: DisplayRecommendedPipe) {
-        super();
-    }
+    private displayRecommendedPipe = inject(DisplayRecommendedPipe);
 
     ngOnInit() {
         this.extractPossibleSelections();
diff --git 
a/ui/src/app/core-ui/static-properties/static-property-util.service.ts 
b/ui/src/app/core-ui/static-properties/static-property-util.service.ts
index 314d20d915..67fcd60271 100644
--- a/ui/src/app/core-ui/static-properties/static-property-util.service.ts
+++ b/ui/src/app/core-ui/static-properties/static-property-util.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Injectable } from '@angular/core';
+import { Injectable, inject } from '@angular/core';
 import {
     AnyStaticProperty,
     CodeInputStaticProperty,
@@ -41,7 +41,7 @@ import { ConfigurationInfo } from 
'../../connect/model/ConfigurationInfo';
 
 @Injectable({ providedIn: 'root' })
 export class StaticPropertyUtilService {
-    constructor(private idGeneratorService: IdGeneratorService) {}
+    private idGeneratorService = inject(IdGeneratorService);
 
     public initializeCompletedConfigurations(
         configs: StaticProperty[],
diff --git 
a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.ts
 
b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.ts
index c8399181c7..8d90951e48 100644
--- 
a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.ts
+++ 
b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, inject } from '@angular/core';
 import {
     Option,
     RuntimeResolvableAnyStaticProperty,
@@ -60,7 +60,9 @@ export class StaticRuntimeResolvableAnyInputComponent
 {
     selectedOptions: Option[] = [];
 
-    constructor(runtimeResolvableService: RuntimeResolvableService) {
+    constructor() {
+        const runtimeResolvableService = inject(RuntimeResolvableService);
+
         super(runtimeResolvableService);
     }
 
diff --git 
a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-group/static-runtime-resolvable-group.component.ts
 
b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-group/static-runtime-resolvable-group.component.ts
index cfeae0f814..9329325022 100644
--- 
a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-group/static-runtime-resolvable-group.component.ts
+++ 
b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-group/static-runtime-resolvable-group.component.ts
@@ -24,6 +24,7 @@ import {
     OnInit,
     Output,
     TemplateRef,
+    inject,
 } from '@angular/core';
 import { RuntimeResolvableService } from 
'../static-runtime-resolvable-input/runtime-resolvable.service';
 import { BaseRuntimeResolvableInput } from 
'../static-runtime-resolvable-input/base-runtime-resolvable-input';
@@ -59,7 +60,9 @@ export class StaticRuntimeResolvableGroupComponent
     @Input({ required: true })
     renderStaticProperty!: TemplateRef<GroupRenderCtx>;
 
-    constructor(runtimeResolvableService: RuntimeResolvableService) {
+    constructor() {
+        const runtimeResolvableService = inject(RuntimeResolvableService);
+
         super(runtimeResolvableService);
     }
 
diff --git 
a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/runtime-resolvable.service.ts
 
b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/runtime-resolvable.service.ts
index b94c731f6d..a9bdfff11f 100644
--- 
a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/runtime-resolvable.service.ts
+++ 
b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-input/runtime-resolvable.service.ts
@@ -24,14 +24,12 @@ import {
 } from '@streampipes/platform-services';
 import { map } from 'rxjs/operators';
 import { HttpClient } from '@angular/common/http';
-import { Injectable } from '@angular/core';
+import { Injectable, inject } from '@angular/core';
 
 @Injectable({ providedIn: 'root' })
 export class RuntimeResolvableService {
-    constructor(
-        private http: HttpClient,
-        private platformServicesCommons: PlatformServicesCommons,
-    ) {}
+    private http = inject(HttpClient);
+    private platformServicesCommons = inject(PlatformServicesCommons);
 
     fetchRemoteOptionsForAdapter(
         resolvableOptionsParameterRequest: RuntimeOptionsRequest,
diff --git 
a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.ts
 
b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.ts
index a63c25fac9..223880abc9 100644
--- 
a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.ts
+++ 
b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component, OnChanges, OnInit } from '@angular/core';
+import { Component, OnChanges, OnInit, inject } from '@angular/core';
 import {
     Option,
     RuntimeResolvableOneOfStaticProperty,
@@ -56,7 +56,9 @@ export class StaticRuntimeResolvableOneOfInputComponent
     extends 
BaseRuntimeResolvableSelectionInput<RuntimeResolvableOneOfStaticProperty>
     implements OnInit, OnChanges
 {
-    constructor(runtimeResolvableService: RuntimeResolvableService) {
+    constructor() {
+        const runtimeResolvableService = inject(RuntimeResolvableService);
+
         super(runtimeResolvableService);
     }
 
diff --git 
a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-tree-input/static-runtime-resolvable-tree-input.component.ts
 
b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-tree-input/static-runtime-resolvable-tree-input.component.ts
index ae9c6e8096..8c7694d7ce 100644
--- 
a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-tree-input/static-runtime-resolvable-tree-input.component.ts
+++ 
b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-tree-input/static-runtime-resolvable-tree-input.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component, OnInit, ViewChild } from '@angular/core';
+import { Component, OnInit, ViewChild, inject } from '@angular/core';
 import { BaseRuntimeResolvableInput } from 
'../static-runtime-resolvable-input/base-runtime-resolvable-input';
 import {
     RuntimeResolvableTreeInputStaticProperty,
@@ -64,6 +64,10 @@ export class StaticRuntimeResolvableTreeInputComponent
     extends 
BaseRuntimeResolvableInput<RuntimeResolvableTreeInputStaticProperty>
     implements OnInit
 {
+    private staticTreeInputServiceService = inject(
+        StaticTreeInputServiceService,
+    );
+
     nodeDetails: TreeInputNode;
 
     editorMode: 'tree' | 'text' = 'tree';
@@ -77,10 +81,9 @@ export class StaticRuntimeResolvableTreeInputComponent
     @ViewChild('staticTreeInputBrowseNodesComponent')
     private staticTreeInputBrowseNodesComponent: 
StaticTreeInputBrowseNodesComponent;
 
-    constructor(
-        runtimeResolvableService: RuntimeResolvableService,
-        private staticTreeInputServiceService: StaticTreeInputServiceService,
-    ) {
+    constructor() {
+        const runtimeResolvableService = inject(RuntimeResolvableService);
+
         super(runtimeResolvableService);
     }
 
diff --git 
a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-tree-input/static-tree-input-browse-nodes/static-tree-input-browse-nodes.component.ts
 
b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-tree-input/static-tree-input-browse-nodes/static-tree-input-browse-nodes.component.ts
index 206d93df2f..90e13ebbfd 100644
--- 
a/ui/src/app/core-ui/static-properties/static-runtime-resolvable-tree-input/static-tree-input-browse-nodes/static-tree-input-browse-nodes.component.ts
+++ 
b/ui/src/app/core-ui/static-properties/static-runtime-resolvable-tree-input/static-tree-input-browse-nodes/static-tree-input-browse-nodes.component.ts
@@ -22,6 +22,7 @@ import {
     OnInit,
     Output,
     ViewChild,
+    inject,
 } from '@angular/core';
 import {
     RuntimeResolvableTreeInputStaticProperty,
@@ -75,6 +76,10 @@ import { TranslatePipe } from '@ngx-translate/core';
     ],
 })
 export class StaticTreeInputBrowseNodesComponent implements OnInit {
+    private staticTreeInputServiceService = inject(
+        StaticTreeInputServiceService,
+    );
+
     @Input()
     staticProperty: RuntimeResolvableTreeInputStaticProperty;
 
@@ -100,10 +105,6 @@ export class StaticTreeInputBrowseNodesComponent 
implements OnInit {
 
     hasChild = (_: number, node: TreeInputNode) => !node.dataNode;
 
-    constructor(
-        private staticTreeInputServiceService: StaticTreeInputServiceService,
-    ) {}
-
     ngOnInit(): void {
         this.dataSource = new MatTreeNestedDataSource<TreeInputNode>();
         this.dataSource.data = [];
diff --git 
a/ui/src/app/core-ui/static-properties/static-secret-input/static-secret-input.component.ts
 
b/ui/src/app/core-ui/static-properties/static-secret-input/static-secret-input.component.ts
index 68d442ba98..9b745e8dc2 100644
--- 
a/ui/src/app/core-ui/static-properties/static-secret-input/static-secret-input.component.ts
+++ 
b/ui/src/app/core-ui/static-properties/static-secret-input/static-secret-input.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, inject } from '@angular/core';
 import {
     FormsModule,
     ReactiveFormsModule,
@@ -48,9 +48,7 @@ export class StaticSecretInputComponent
     extends AbstractValidatedStaticPropertyRenderer<SecretStaticProperty>
     implements OnInit
 {
-    constructor(public staticPropertyUtil: StaticPropertyUtilService) {
-        super();
-    }
+    staticPropertyUtil = inject(StaticPropertyUtilService);
 
     ngOnInit() {
         this.addValidator(this.staticProperty.value, this.collectValidators());
diff --git a/ui/src/app/core-ui/topics/topics.component.ts 
b/ui/src/app/core-ui/topics/topics.component.ts
index 90f077a21b..c2bc931f90 100644
--- a/ui/src/app/core-ui/topics/topics.component.ts
+++ b/ui/src/app/core-ui/topics/topics.component.ts
@@ -79,6 +79,8 @@ import { MatDivider } from '@angular/material/divider';
     ],
 })
 export class TopicsComponent implements OnInit {
+    private dialogRef = inject<DialogRef<TopicsComponent>>(DialogRef);
+
     translateService = inject(TranslateService);
     selectedTabIndex = 0;
 
@@ -93,8 +95,6 @@ export class TopicsComponent implements OnInit {
     pipelineElement: PipelineElementUnion;
     isDataStream: boolean;
 
-    constructor(private dialogRef: DialogRef<TopicsComponent>) {}
-
     ngOnInit() {
         if (
             this.pipelineElement instanceof SpDataStream ||

Reply via email to