You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2020/09/10 21:11:03 UTC
[incubator-streampipes] branch rel/0.67.0 updated:
[STREAMPIPES-233] Make visualizations independent of pipeline element id
This is an automated email from the ASF dual-hosted git repository.
riemer pushed a commit to branch rel/0.67.0
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git
The following commit(s) were added to refs/heads/rel/0.67.0 by this push:
new c2a73b4 [STREAMPIPES-233] Make visualizations independent of pipeline element id
c2a73b4 is described below
commit c2a73b4efd911c7b6bc4a14c95d0b29232e77bef
Author: Dominik Riemer <ri...@fzi.de>
AuthorDate: Tue Sep 8 12:36:23 2020 +0200
[STREAMPIPES-233] Make visualizations independent of pipeline element id
---
.../model/dashboard/DashboardWidgetModel.java | 19 +++++++++++++++++++
.../rest/api/dashboard/IVisualizablePipeline.java | 2 ++
.../rest/impl/dashboard/VisualizablePipeline.java | 21 +++++++++++++++++++++
ui/src/app/core-model/gen/streampipes-model.ts | 18 ++++++++++++------
.../components/widget/dashboard-widget.component.ts | 3 ++-
.../add-visualization-dialog.component.ts | 2 ++
ui/src/app/dashboard/services/dashboard.service.ts | 8 ++++++++
7 files changed, 66 insertions(+), 7 deletions(-)
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardWidgetModel.java b/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardWidgetModel.java
index 498ee16..4877162 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardWidgetModel.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/dashboard/DashboardWidgetModel.java
@@ -50,6 +50,9 @@ public class DashboardWidgetModel extends DashboardEntity {
@RdfProperty(StreamPipes.HAS_TOPIC)
private String visualizablePipelineTopic;
+ private String visualizationName;
+ private String pipelineId;
+
public DashboardWidgetModel() {
super();
}
@@ -85,4 +88,20 @@ public class DashboardWidgetModel extends DashboardEntity {
public void setVisualizablePipelineTopic(String visualizablePipelineTopic) {
this.visualizablePipelineTopic = visualizablePipelineTopic;
}
+
+ public String getVisualizationName() {
+ return visualizationName;
+ }
+
+ public void setVisualizationName(String visualizationName) {
+ this.visualizationName = visualizationName;
+ }
+
+ public String getPipelineId() {
+ return pipelineId;
+ }
+
+ public void setPipelineId(String pipelineId) {
+ this.pipelineId = pipelineId;
+ }
}
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/api/dashboard/IVisualizablePipeline.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/api/dashboard/IVisualizablePipeline.java
index d3b3d6e..9a50583 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/api/dashboard/IVisualizablePipeline.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/api/dashboard/IVisualizablePipeline.java
@@ -27,4 +27,6 @@ public interface IVisualizablePipeline {
Response getVisualizablePipeline(String id);
Response getVisualizablePipelineByTopic(String topic);
+
+ Response getVisualizablePipelineByPipelineIdAndVisualizationName(String pipelineId, String visualizationName);
}
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/dashboard/VisualizablePipeline.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/dashboard/VisualizablePipeline.java
index ffb345b..a3d26a8 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/dashboard/VisualizablePipeline.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/dashboard/VisualizablePipeline.java
@@ -68,7 +68,28 @@ public class VisualizablePipeline extends AbstractRestInterface implements IVisu
return matchedPipeline.isPresent() ? ok(matchedPipeline.get()) : fail();
}
+ @GET
+ @JacksonSerialized
+ @Produces(MediaType.APPLICATION_JSON)
+ @Path("{pipelineId}/{visualizationName}")
+ @Override
+ public Response getVisualizablePipelineByPipelineIdAndVisualizationName(@PathParam("pipelineId") String pipelineId,
+ @PathParam("visualizationName") String visualizationName) {
+ List<org.apache.streampipes.model.dashboard.VisualizablePipeline> pipelines =
+ getVisualizablePipelineStorage().getAllVisualizablePipelines();
+
+ Optional<org.apache.streampipes.model.dashboard.VisualizablePipeline> matchedPipeline =
+ pipelines
+ .stream()
+ .filter(pipeline -> pipeline.getPipelineId().equals(pipelineId)
+ && pipeline.getVisualizationName().equals(visualizationName)).findFirst();
+
+ return matchedPipeline.isPresent() ? ok(matchedPipeline.get()) : fail();
+ }
+
private IVisualizablePipelineStorage getVisualizablePipelineStorage() {
return getNoSqlStorage().getVisualizablePipelineStorage();
}
+
+
}
diff --git a/ui/src/app/core-model/gen/streampipes-model.ts b/ui/src/app/core-model/gen/streampipes-model.ts
index 8ca8ccf..e7e2bbd 100644
--- a/ui/src/app/core-model/gen/streampipes-model.ts
+++ b/ui/src/app/core-model/gen/streampipes-model.ts
@@ -19,7 +19,7 @@
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
-// Generated using typescript-generator version 2.24.612 on 2020-08-20 14:07:30.
+// Generated using typescript-generator version 2.24.612 on 2020-09-08 12:28:17.
export class AbstractStreamPipesEntity {
"@class": "org.apache.streampipes.model.base.NamedStreamPipesEntity" | "org.apache.streampipes.model.connect.adapter.AdapterDescription" | "org.apache.streampipes.model.connect.adapter.AdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.GenericAdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.SpecificAdapterSetDescription" | "org.apache.streampipes.model.connect.adapter.AdapterStreamDescription" | "org.apache.streampipes.model.connect.adapter.G [...]
@@ -151,8 +151,8 @@ export class NamedStreamPipesEntity extends AbstractStreamPipesEntity {
instance.includedLocales = __getCopyArrayFn(__identity<string>())(data.includedLocales);
instance.applicationLinks = __getCopyArrayFn(ApplicationLink.fromData)(data.applicationLinks);
instance.connectedTo = __getCopyArrayFn(__identity<string>())(data.connectedTo);
- instance.dom = data.dom;
instance.uri = data.uri;
+ instance.dom = data.dom;
return instance;
}
}
@@ -187,9 +187,9 @@ export class AdapterDescription extends NamedStreamPipesEntity {
instance.config = __getCopyArrayFn(StaticProperty.fromDataUnion)(data.config);
instance.rules = __getCopyArrayFn(TransformationRuleDescription.fromDataUnion)(data.rules);
instance.category = __getCopyArrayFn(__identity<string>())(data.category);
+ instance.valueRules = __getCopyArrayFn(__identity<any>())(data.valueRules);
instance.streamRules = __getCopyArrayFn(__identity<any>())(data.streamRules);
instance.schemaRules = __getCopyArrayFn(__identity<any>())(data.schemaRules);
- instance.valueRules = __getCopyArrayFn(__identity<any>())(data.valueRules);
instance.couchDBId = data.couchDBId;
instance._rev = data._rev;
return instance;
@@ -803,8 +803,10 @@ export class DashboardModel {
export class DashboardWidgetModel extends DashboardEntity {
"@class": "org.apache.streampipes.model.dashboard.DashboardWidgetModel";
dashboardWidgetSettings: DashboardWidgetSettings;
+ pipelineId: string;
visualizablePipelineId: string;
visualizablePipelineTopic: string;
+ visualizationName: string;
widgetId: string;
static fromData(data: DashboardWidgetModel, target?: DashboardWidgetModel): DashboardWidgetModel {
@@ -817,6 +819,8 @@ export class DashboardWidgetModel extends DashboardEntity {
instance.dashboardWidgetSettings = DashboardWidgetSettings.fromData(data.dashboardWidgetSettings);
instance.visualizablePipelineId = data.visualizablePipelineId;
instance.visualizablePipelineTopic = data.visualizablePipelineTopic;
+ instance.visualizationName = data.visualizationName;
+ instance.pipelineId = data.pipelineId;
return instance;
}
}
@@ -1555,9 +1559,9 @@ export class GenericAdapterSetDescription extends AdapterSetDescription implemen
}
const instance = target || new GenericAdapterSetDescription();
super.fromData(data, instance);
+ instance.eventSchema = EventSchema.fromData(data.eventSchema);
instance.protocolDescription = ProtocolDescription.fromData(data.protocolDescription);
instance.formatDescription = FormatDescription.fromData(data.formatDescription);
- instance.eventSchema = EventSchema.fromData(data.eventSchema);
return instance;
}
}
@@ -1574,9 +1578,9 @@ export class GenericAdapterStreamDescription extends AdapterStreamDescription im
}
const instance = target || new GenericAdapterStreamDescription();
super.fromData(data, instance);
+ instance.eventSchema = EventSchema.fromData(data.eventSchema);
instance.protocolDescription = ProtocolDescription.fromData(data.protocolDescription);
instance.formatDescription = FormatDescription.fromData(data.formatDescription);
- instance.eventSchema = EventSchema.fromData(data.eventSchema);
return instance;
}
}
@@ -1651,6 +1655,7 @@ export class KafkaTransportProtocol extends TransportProtocol {
groupId: string;
kafkaPort: number;
lingerMs: number;
+ maxRequestSize: string;
messageMaxBytes: string;
offset: string;
zookeeperHost: string;
@@ -1667,6 +1672,7 @@ export class KafkaTransportProtocol extends TransportProtocol {
instance.kafkaPort = data.kafkaPort;
instance.lingerMs = data.lingerMs;
instance.messageMaxBytes = data.messageMaxBytes;
+ instance.maxRequestSize = data.maxRequestSize;
instance.acks = data.acks;
instance.batchSize = data.batchSize;
instance.offset = data.offset;
@@ -2453,8 +2459,8 @@ export class SpDataSet extends SpDataStream {
instance.supportedGrounding = EventGrounding.fromData(data.supportedGrounding);
instance.datasetInvocationId = data.datasetInvocationId;
instance.correspondingPipeline = data.correspondingPipeline;
- instance.actualTopicName = data.actualTopicName;
instance.brokerHostname = data.brokerHostname;
+ instance.actualTopicName = data.actualTopicName;
return instance;
}
}
diff --git a/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts b/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
index 63648cf..a9ca7eb 100644
--- a/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
+++ b/ui/src/app/dashboard/components/widget/dashboard-widget.component.ts
@@ -56,7 +56,8 @@ export class DashboardWidgetComponent implements OnInit {
ngOnInit(): void {
this.dashboardService.getWidget(this.widget.id).subscribe(response => {
this.configuredWidget = response;
- this.dashboardService.getVisualizablePipelineByTopic(this.configuredWidget.visualizablePipelineTopic).subscribe(pipeline => {
+ this.dashboardService.getVisualizablePipelineByPipelineIdAndVisualizationName(this.configuredWidget.pipelineId,
+ this.configuredWidget.visualizationName).subscribe(pipeline => {
this.widgetDataConfig = pipeline;
this.pipelineNotRunning = false;
this.widgetLoaded = true;
diff --git a/ui/src/app/dashboard/dialogs/add-widget/add-visualization-dialog.component.ts b/ui/src/app/dashboard/dialogs/add-widget/add-visualization-dialog.component.ts
index 31a064d..11b1cb4 100644
--- a/ui/src/app/dashboard/dialogs/add-widget/add-visualization-dialog.component.ts
+++ b/ui/src/app/dashboard/dialogs/add-widget/add-visualization-dialog.component.ts
@@ -193,6 +193,8 @@ export class AddVisualizationDialogComponent implements OnInit, AfterViewInit {
configuredWidget.dashboardWidgetSettings["@class"] = "org.apache.streampipes.model.dashboard.DashboardWidgetSettings";
configuredWidget.visualizablePipelineId = this.selectedPipeline._id;
configuredWidget.visualizablePipelineTopic = this.selectedPipeline.topic;
+ configuredWidget.visualizationName = this.selectedPipeline.visualizationName;
+ configuredWidget.pipelineId = this.selectedPipeline.pipelineId;
if (!this.editMode) {
this.dashboardService.saveWidget(configuredWidget).subscribe(response => {
this.dialogRef.close(response);
diff --git a/ui/src/app/dashboard/services/dashboard.service.ts b/ui/src/app/dashboard/services/dashboard.service.ts
index de3dae3..32681a5 100644
--- a/ui/src/app/dashboard/services/dashboard.service.ts
+++ b/ui/src/app/dashboard/services/dashboard.service.ts
@@ -68,6 +68,14 @@ export class DashboardService {
}));
}
+ getVisualizablePipelineByPipelineIdAndVisualizationName(pipelineId: string, visualizationName: string): Observable<VisualizablePipeline> {
+ return this.http
+ .get(this.visualizablePipelineUrl + "/" + pipelineId + "/" + visualizationName)
+ .pipe(map(data => {
+ return VisualizablePipeline.fromData(data as VisualizablePipeline);
+ }));
+ }
+
getDashboards(): Observable<Array<Dashboard>> {
return this.http.get(this.dashboardUrl).pipe(map(data => {
return data as Dashboard[];