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 <[email protected]>
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[];