You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ze...@apache.org on 2020/03/06 16:32:45 UTC
[incubator-streampipes] branch STREAMPIPES-79 updated: Serialize
DataLakeMeasures as JSON-LD
This is an automated email from the ASF dual-hosted git repository.
zehnder pushed a commit to branch STREAMPIPES-79
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git
The following commit(s) were added to refs/heads/STREAMPIPES-79 by this push:
new b21d5cb Serialize DataLakeMeasures as JSON-LD
b21d5cb is described below
commit b21d5cba64af4c5e936d5ace56952597b88fd64c
Author: Philipp Zehnder <ze...@fzi.de>
AuthorDate: Fri Mar 6 17:32:05 2020 +0100
Serialize DataLakeMeasures as JSON-LD
---
.../streampipes/model/datalake/DataLakeMeasure.java | 7 +++++++
.../rest/impl/datalake/DataLakeResourceV3.java | 2 +-
.../datalake/{InfoResult.ts => DataLakeMeasure.ts} | 17 ++++++++++++-----
.../app/core-services/datalake/datalake-rest.service.ts | 4 ++--
.../old-explorer-widget/old-explorer.component.ts | 10 +++++-----
.../data-explorer-add-visualization-dialog.component.ts | 6 +++---
.../app/data-explorer-v2/services/data-lake.service.ts | 2 +-
.../services/data-view-data-explorer.service.ts | 8 +++++---
ui/src/app/data-explorer/data-explorer.component.ts | 10 +++++-----
.../data-explorer/explorer-widget/explorer.component.ts | 10 +++++-----
.../app/platform-services/tsonld-serializer.service.ts | 2 ++
11 files changed, 48 insertions(+), 30 deletions(-)
diff --git a/streampipes-model/src/main/java/org/apache/streampipes/model/datalake/DataLakeMeasure.java b/streampipes-model/src/main/java/org/apache/streampipes/model/datalake/DataLakeMeasure.java
index 098617e..42b7af2 100644
--- a/streampipes-model/src/main/java/org/apache/streampipes/model/datalake/DataLakeMeasure.java
+++ b/streampipes-model/src/main/java/org/apache/streampipes/model/datalake/DataLakeMeasure.java
@@ -42,6 +42,13 @@ public class DataLakeMeasure extends UnnamedStreamPipesEntity {
private EventSchema eventSchema;
public DataLakeMeasure() {
+ super();
+ }
+
+ public DataLakeMeasure(DataLakeMeasure other) {
+ super(other);
+ this.measureName = other.getMeasureName();
+ this.eventSchema = new EventSchema(other.getEventSchema());
}
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResourceV3.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResourceV3.java
index a018523..7766806 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResourceV3.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResourceV3.java
@@ -89,7 +89,7 @@ public class DataLakeResourceV3 extends AbstractRestInterface {
public Response getAllInfos() {
List<DataLakeMeasure> result = this.dataLakeManagement.getInfos();
- return ok(result);
+ return ok(asContainer(result));
}
@Deprecated
diff --git a/ui/src/app/core-model/datalake/InfoResult.ts b/ui/src/app/core-model/datalake/DataLakeMeasure.ts
similarity index 70%
rename from ui/src/app/core-model/datalake/InfoResult.ts
rename to ui/src/app/core-model/datalake/DataLakeMeasure.ts
index 24aa468..73e649b 100644
--- a/ui/src/app/core-model/datalake/InfoResult.ts
+++ b/ui/src/app/core-model/datalake/DataLakeMeasure.ts
@@ -17,11 +17,18 @@
*/
import { EventSchema } from '../../connect/schema-editor/model/EventSchema';
+import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
+import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-export class InfoResult {
- public measureName: string;
- public eventSchema: EventSchema;
+@RdfsClass('sp:DataLakeMeasure')
+export class DataLakeMeasure {
- constructor () {
- }
+ @RdfProperty('sp:hasMeasurementName')
+ public measureName: string;
+
+ @RdfProperty('sp:hasEventSchema')
+ public eventSchema: EventSchema;
+
+ constructor () {
+ }
}
diff --git a/ui/src/app/core-services/datalake/datalake-rest.service.ts b/ui/src/app/core-services/datalake/datalake-rest.service.ts
index 36c40fc..ac5e105 100644
--- a/ui/src/app/core-services/datalake/datalake-rest.service.ts
+++ b/ui/src/app/core-services/datalake/datalake-rest.service.ts
@@ -20,7 +20,7 @@ import { HttpClient, HttpRequest } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { DataResult } from '../../core-model/datalake/DataResult';
import { GroupedDataResult } from '../../core-model/datalake/GroupedDataResult';
-import { InfoResult } from '../../core-model/datalake/InfoResult';
+import { DataLakeMeasure } from '../../core-model/datalake/DataLakeMeasure';
import { PageResult } from '../../core-model/datalake/PageResult';
import { AuthStatusService } from '../../services/auth-status.service';
import { Observable } from "rxjs/Observable";
@@ -42,7 +42,7 @@ export class DatalakeRestService {
getAllInfos() {
- return this.http.get<InfoResult[]>(this.dataLakeUrlV3 + '/info');
+ return this.http.get<DataLakeMeasure[]>(this.dataLakeUrlV3 + '/info');
}
getDataPage(index, itemsPerPage, page) {
diff --git a/ui/src/app/data-explorer-v2/components/widgets/old-explorer-widget/old-explorer.component.ts b/ui/src/app/data-explorer-v2/components/widgets/old-explorer-widget/old-explorer.component.ts
index 513282c..199fd56 100644
--- a/ui/src/app/data-explorer-v2/components/widgets/old-explorer-widget/old-explorer.component.ts
+++ b/ui/src/app/data-explorer-v2/components/widgets/old-explorer-widget/old-explorer.component.ts
@@ -25,7 +25,7 @@ import { Observable } from 'rxjs/Observable';
import { map, startWith } from 'rxjs/operators';
import { DataResult } from '../../../../core-model/datalake/DataResult';
import { GroupedDataResult } from '../../../../core-model/datalake/GroupedDataResult';
-import { InfoResult } from '../../../../core-model/datalake/InfoResult';
+import { DataLakeMeasure } from '../../../../core-model/datalake/DataLakeMeasure';
import { DatalakeRestService } from '../../../../core-services/datalake/datalake-rest.service';
import { DataDownloadDialog } from './datadownloadDialog/dataDownload.dialog';
@@ -38,12 +38,12 @@ export class OldExplorerComponent implements OnInit {
myControl = new FormControl();
- infoResult: InfoResult[];
- filteredIndexInfos: Observable<InfoResult[]>;
+ infoResult: DataLakeMeasure[];
+ filteredIndexInfos: Observable<DataLakeMeasure[]>;
page = 0;
// selectedIndex: string = '';
- selectedInfoResult: InfoResult = undefined;
+ selectedInfoResult: DataLakeMeasure = undefined;
// timeunit selection
selectedTimeUnit = '1 Hour';
@@ -387,7 +387,7 @@ export class OldExplorerComponent implements OnInit {
});
}
- _filter(value: string): InfoResult[] {
+ _filter(value: string): DataLakeMeasure[] {
const filterValue = value.toLowerCase();
return this.infoResult.filter(option => option.measureName.toLowerCase().includes(filterValue));
diff --git a/ui/src/app/data-explorer-v2/dialogs/add-widget/data-explorer-add-visualization-dialog.component.ts b/ui/src/app/data-explorer-v2/dialogs/add-widget/data-explorer-add-visualization-dialog.component.ts
index d5bc8ba..38908eb 100644
--- a/ui/src/app/data-explorer-v2/dialogs/add-widget/data-explorer-add-visualization-dialog.component.ts
+++ b/ui/src/app/data-explorer-v2/dialogs/add-widget/data-explorer-add-visualization-dialog.component.ts
@@ -20,7 +20,7 @@ import { Component, Inject, OnInit } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { EventSchema } from '../../../connect/schema-editor/model/EventSchema';
import { DataExplorerWidgetModel } from '../../../core-model/datalake/DataExplorerWidgetModel';
-import { InfoResult } from '../../../core-model/datalake/InfoResult';
+import { DataLakeMeasure } from '../../../core-model/datalake/DataLakeMeasure';
import { ElementIconText } from '../../../services/get-element-icon-text.service';
import { IDataViewDashboard } from '../../models/dataview-dashboard.model';
import { DataExplorerWidgetRegistry } from '../../registry/data-explorer-widget-registry';
@@ -51,10 +51,10 @@ export class DataExplorerAddVisualizationDialogComponent implements OnInit {
description: 'Select widget'
}];
- visualizableData: InfoResult[] = [];
+ visualizableData: DataLakeMeasure[] = [];
availableWidgets: string[];
- selectedDataSet: InfoResult;
+ selectedDataSet: DataLakeMeasure;
selectedWidget: string;
dashboard: IDataViewDashboard;
diff --git a/ui/src/app/data-explorer-v2/services/data-lake.service.ts b/ui/src/app/data-explorer-v2/services/data-lake.service.ts
index ff6116c..912396a 100644
--- a/ui/src/app/data-explorer-v2/services/data-lake.service.ts
+++ b/ui/src/app/data-explorer-v2/services/data-lake.service.ts
@@ -16,7 +16,7 @@
*
*/
-import { Injectable } from "@angular/core";
+import { Injectable } from '@angular/core';
@Injectable()
export class DataLakeService {
diff --git a/ui/src/app/data-explorer-v2/services/data-view-data-explorer.service.ts b/ui/src/app/data-explorer-v2/services/data-view-data-explorer.service.ts
index 065a300..6ae3680 100644
--- a/ui/src/app/data-explorer-v2/services/data-view-data-explorer.service.ts
+++ b/ui/src/app/data-explorer-v2/services/data-view-data-explorer.service.ts
@@ -22,7 +22,7 @@ import { from, Observable } from 'rxjs';
import 'rxjs-compat/add/observable/of';
import { map } from 'rxjs/operators';
import { DataExplorerWidgetModel } from '../../core-model/datalake/DataExplorerWidgetModel';
-import { InfoResult } from '../../core-model/datalake/InfoResult';
+import { DataLakeMeasure } from '../../core-model/datalake/DataLakeMeasure';
import { DatalakeRestService } from '../../core-services/datalake/datalake-rest.service';
import { SharedDatalakeRestService } from '../../core-services/shared/shared-dashboard.service';
import { TsonLdSerializerService } from '../../platform-services/tsonld-serializer.service';
@@ -42,8 +42,10 @@ export class DataViewDataExplorerService {
private sharedDatalakeRestService: SharedDatalakeRestService) {
}
- getVisualizableData(): Observable<InfoResult[]> {
- return this.dataLakeRestService.getAllInfos();
+ getVisualizableData(): Observable<DataLakeMeasure[]> {
+ return this.dataLakeRestService.getAllInfos().map(data => {
+ return this.tsonLdSerializerService.fromJsonLdContainer(data, 'sp:DataLakeMeasure');
+ });
}
getDataViews(): Observable<IDataViewDashboard[]> {
diff --git a/ui/src/app/data-explorer/data-explorer.component.ts b/ui/src/app/data-explorer/data-explorer.component.ts
index 92792d4..d530eb5 100644
--- a/ui/src/app/data-explorer/data-explorer.component.ts
+++ b/ui/src/app/data-explorer/data-explorer.component.ts
@@ -21,7 +21,7 @@ import { FormControl } from '@angular/forms';
import { MatSnackBar } from '@angular/material/snack-bar';
import { Observable } from 'rxjs/Observable';
import { map, startWith } from 'rxjs/operators';
-import { InfoResult } from '../core-model/datalake/InfoResult';
+import { DataLakeMeasure } from '../core-model/datalake/DataLakeMeasure';
import { DatalakeRestService } from '../core-services/datalake/datalake-rest.service';
@Component({
@@ -32,11 +32,11 @@ import { DatalakeRestService } from '../core-services/datalake/datalake-rest.ser
export class DataExplorerComponent implements OnInit {
myControl = new FormControl();
- infoResult: InfoResult[];
- filteredIndexInfos: Observable<InfoResult[]>;
+ infoResult: DataLakeMeasure[];
+ filteredIndexInfos: Observable<DataLakeMeasure[]>;
page = 0;
- selectedInfoResult: InfoResult = undefined;
+ selectedInfoResult: DataLakeMeasure = undefined;
downloadFormat = 'csv';
isDownloading = false;
@@ -61,7 +61,7 @@ export class DataExplorerComponent implements OnInit {
this.selectedInfoResult = this._filter(index)[0];
}
- _filter(value: string): InfoResult[] {
+ _filter(value: string): DataLakeMeasure[] {
const filterValue = value.toLowerCase();
return this.infoResult.filter(option => option.measureName.toLowerCase().includes(filterValue));
diff --git a/ui/src/app/data-explorer/explorer-widget/explorer.component.ts b/ui/src/app/data-explorer/explorer-widget/explorer.component.ts
index 741d8eb..f1e0a4b 100644
--- a/ui/src/app/data-explorer/explorer-widget/explorer.component.ts
+++ b/ui/src/app/data-explorer/explorer-widget/explorer.component.ts
@@ -25,7 +25,7 @@ import { Observable } from 'rxjs/Observable';
import { map, startWith } from 'rxjs/operators';
import { DataResult } from '../../core-model/datalake/DataResult';
import { GroupedDataResult } from '../../core-model/datalake/GroupedDataResult';
-import { InfoResult } from '../../core-model/datalake/InfoResult';
+import { DataLakeMeasure } from '../../core-model/datalake/DataLakeMeasure';
import { DatalakeRestService } from '../../core-services/datalake/datalake-rest.service';
import { DataDownloadDialog } from './datadownloadDialog/dataDownload.dialog';
@@ -37,12 +37,12 @@ import { DataDownloadDialog } from './datadownloadDialog/dataDownload.dialog';
export class ExplorerComponent implements OnInit {
myControl = new FormControl();
- infoResult: InfoResult[];
- filteredIndexInfos: Observable<InfoResult[]>;
+ infoResult: DataLakeMeasure[];
+ filteredIndexInfos: Observable<DataLakeMeasure[]>;
page = 0;
// selectedIndex: string = '';
- selectedInfoResult: InfoResult = undefined;
+ selectedInfoResult: DataLakeMeasure = undefined;
// timeunit selection
selectedTimeUnit = '1 Hour';
@@ -379,7 +379,7 @@ export class ExplorerComponent implements OnInit {
});
}
- _filter(value: string): InfoResult[] {
+ _filter(value: string): DataLakeMeasure[] {
const filterValue = value.toLowerCase();
return this.infoResult.filter(option => option.measureName.toLowerCase().includes(filterValue));
diff --git a/ui/src/app/platform-services/tsonld-serializer.service.ts b/ui/src/app/platform-services/tsonld-serializer.service.ts
index b60bce7..f60dc66 100644
--- a/ui/src/app/platform-services/tsonld-serializer.service.ts
+++ b/ui/src/app/platform-services/tsonld-serializer.service.ts
@@ -97,6 +97,7 @@ import {DashboardWidgetSettings} from "../core-model/dashboard/DashboardWidgetSe
import {ColorPickerStaticProperty} from "../connect/model/ColorPickerStaticProperty";
import {MappingPropertyNary} from "../connect/model/MappingPropertyNary";
import { DataExplorerWidgetModel } from "../core-model/datalake/DataExplorerWidgetModel";
+import { DataLakeMeasure } from "../core-model/datalake/DataLakeMeasure";
@Injectable()
@@ -192,6 +193,7 @@ export class TsonLdSerializerService {
tsonld.addClassMapping(ColorPickerStaticProperty);
tsonld.addClassMapping(DataExplorerWidgetModel);
+ tsonld.addClassMapping(DataLakeMeasure);
tsonld.addContext('sp', 'https://streampipes.org/vocabulary/v1/');