Skip to content

Commit

Permalink
SHIBUI-703 Adding definition for Local Dynamic Provider
Browse files Browse the repository at this point in the history
  • Loading branch information
rmathis committed Nov 5, 2018
1 parent 47d65b3 commit 75ba2d1
Show file tree
Hide file tree
Showing 4 changed files with 312 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import { BaseMetadataProvider } from './base-metadata-provider';

export interface LocalDynamicMetadataProvider extends BaseMetadataProvider {
id: string;
sourceDirectory: string;
reloadableMetadataResolverAttributes: any;
}
7 changes: 5 additions & 2 deletions ui/src/app/metadata/provider/model/index.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
import { FileBackedHttpMetadataProviderWizard } from './file-backed-http.provider.form';
import { FileBackedHttpMetadataProviderEditor } from './file-backed-http.provider.form';
import { LocalDynamicMetadataProviderWizard, LocalDynamicMetadataProviderEditor } from './local-dynamic.provider.form';

export const MetadataProviderWizardTypes = [
FileBackedHttpMetadataProviderWizard
FileBackedHttpMetadataProviderWizard,
LocalDynamicMetadataProviderWizard
];

export const MetadataProviderEditorTypes = [
FileBackedHttpMetadataProviderEditor
FileBackedHttpMetadataProviderEditor,
LocalDynamicMetadataProviderEditor
];

export * from './file-backed-http.provider.form';
Expand Down
112 changes: 112 additions & 0 deletions ui/src/app/metadata/provider/model/local-dynamic.provider.form.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
import { Wizard } from '../../../wizard/model';
import { LocalDynamicMetadataProvider } from '../../domain/model/providers/local-dynamic-metadata-provider';
import { BaseMetadataProviderEditor } from './base.provider.form';

export const LocalDynamicMetadataProviderWizard: Wizard<LocalDynamicMetadataProvider> = {
...BaseMetadataProviderEditor,
label: 'LocalDynamicMetadataProvider',
type: 'LocalDynamicMetadataResolver',
getValidators(namesList: string[] = [], xmlIdList: string[] = []): any {
const validators = BaseMetadataProviderEditor.getValidators(namesList);
validators['/xmlId'] = (value, property, form) => {
const err = xmlIdList.indexOf(value) > -1 ? {
code: 'INVALID_ID',
path: `#${property.path}`,
message: 'message.id-unique',
params: [value]
} : null;
return err;
};
return validators;
},
steps: [
{
id: 'common',
label: 'label.common-attributes',
index: 2,
initialValues: [],
schema: 'assets/schema/provider/local-dynamic.schema.json',
fields: [
'xmlId',
'sourceDirectory'
],
fieldsets: [
{
type: 'group-lg',
class: ['col-12'],
fields: [
'xmlid',
'sourceDirectory'
]
}
]
},
{
id: 'reloading',
label: 'label.reloading-attributes',
index: 3,
initialValues: [],
schema: 'assets/schema/provider/local-dynamic.schema.json',
fields: [
'reloadableMetadataResolverAttributes'
],
fieldsets: [
{
type: 'group-lg',
class: ['col-12'],
fields: [
'reloadableMetadataResolverAttributes'
]
}
]
},
{
id: 'summary',
label: 'label.finished',
index: 4,
initialValues: [],
schema: 'assets/schema/provider/file-system.schema.json',
fields: [
'enabled'
],
fieldsets: [
{
type: 'group-lg',
class: ['col-12'],
fields: [
'enabled'
]
}
]
}
]
};


export const LocalDynamicMetadataProviderEditor: Wizard<LocalDynamicMetadataProvider> = {
...LocalDynamicMetadataProviderWizard,
steps: [
{
id: 'common',
label: 'label.common-attributes',
index: 1,
initialValues: [],
schema: 'assets/schema/provider/local-dynamic.schema.json',
fields: [
'enabled',
'xmlId',
'sourceDirectory',
]
},
{
id: 'reloading',
label: 'label.reloading-attributes',
index: 2,
initialValues: [],
schema: 'assets/schema/provider/local-dynamic.schema.json',
fields: [
'reloadableMetadataResolverAttributes'
]
}
]
};
188 changes: 188 additions & 0 deletions ui/src/assets/schema/provider/local-dynamic.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
{
"type": "object",
"required": [
"name",
"@type",
"xmlId",
"metadataFile"
],
"properties": {
"name": {
"title": "label.metadata-provider-name",
"description": "tooltip.metadata-provider-name",
"type": "string",
"widget": {
"id": "string",
"help": "message.must-be-unique"
}
},
"@type": {
"title": "label.metadata-provider-type",
"description": "tooltip.metadata-provider-type",
"placeholder": "label.select-metadata-type",
"type": "string",
"readOnly": true,
"widget": {
"id": "select",
"disabled": true
},
"oneOf": [
{
"enum": [
"FileSystemMetadataResolver"
],
"description": "value.file-system-metadata-provider"
}
]
},
"xmlId": {
"title": "label.xml-id",
"description": "tooltip.xml-id",
"type": "string",
"default": "",
"minLength": 1
},
"sourceDirectory": {
"title": "label.source-directory",
"description": "tooltip.source-directory",
"type": "string",
"default": "",
"minLength": 1
},
"enabled": {
"title": "label.enable-provider-upon-saving",
"description": "tooltip.enable-provider-upon-saving",
"type": "boolean",
"default": false
},
"reloadableMetadataResolverAttributes": {
"type": "object",
"properties": {
"refreshDelayFactor": {
"title": "label.refresh-delay-factor",
"description": "tooltip.refresh-delay-factor",
"type": "number",
"widget": {
"id": "number",
"step": 0.01
},
"placeholder": "label.real-number",
"minimum": 0,
"maximum": 1,
"default": null
},
"minCacheDuration": {
"title": "label.min-cache-duration",
"description": "tooltip.min-cache-duration",
"type": "string",
"placeholder": "label.duration",
"widget": {
"id": "datalist",
"data": [
"PT0S",
"PT30S",
"PT1M",
"PT10M",
"PT30M",
"PT1H",
"PT4H",
"PT12H",
"PT24H"
]
},
"default": null,
"pattern": "^(R\\d*\\/)?P(?:\\d+(?:\\.\\d+)?Y)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?W)?(?:\\d+(?:\\.\\d+)?D)?(?:T(?:\\d+(?:\\.\\d+)?H)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?S)?)?$"
},
"maxCacheDuration": {
"title": "label.max-cache-duration",
"description": "tooltip.max-cache-duration",
"type": "string",
"placeholder": "label.duration",
"widget": {
"id": "datalist",
"data": [
"PT0S",
"PT30S",
"PT1M",
"PT10M",
"PT30M",
"PT1H",
"PT4H",
"PT12H",
"PT24H"
]
},
"default": null,
"pattern": "^(R\\d*\\/)?P(?:\\d+(?:\\.\\d+)?Y)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?W)?(?:\\d+(?:\\.\\d+)?D)?(?:T(?:\\d+(?:\\.\\d+)?H)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?S)?)?$"
},
"maxIdleEntityData": {
"title": "label.max-idle-entity-data",
"description": "tooltip.max-idle-entity-data",
"type": "string",
"placeholder": "label.duration",
"widget": {
"id": "datalist",
"data": [
"PT0S",
"PT30S",
"PT1M",
"PT10M",
"PT30M",
"PT1H",
"PT4H",
"PT12H",
"PT24H"
]
},
"default": null,
"pattern": "^(R\\d*\\/)?P(?:\\d+(?:\\.\\d+)?Y)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?W)?(?:\\d+(?:\\.\\d+)?D)?(?:T(?:\\d+(?:\\.\\d+)?H)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?S)?)?$"
},
"removeIdleEntityData": {
"title": "label.remove-idle-entity-data",
"description": "tooltip.remove-idle-entity-data",
"type": "boolean",
"widget": {
"id": "boolean-radio"
},
"oneOf": [
{
"enum": [
true
],
"description": "value.true"
},
{
"enum": [
false
],
"description": "value.false"
}
],
"default": true
},
"cleanupTaskInterval": {
"title": "label.cleanup-task-interval",
"description": "tooltip.cleanup-task-interval",
"type": "string",
"placeholder": "label.duration",
"widget": {
"id": "datalist",
"data": [
"PT0S",
"PT30S",
"PT1M",
"PT10M",
"PT30M",
"PT1H",
"PT4H",
"PT12H",
"PT24H"
]
},
"default": null,
"pattern": "^(R\\d*\\/)?P(?:\\d+(?:\\.\\d+)?Y)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?W)?(?:\\d+(?:\\.\\d+)?D)?(?:T(?:\\d+(?:\\.\\d+)?H)?(?:\\d+(?:\\.\\d+)?M)?(?:\\d+(?:\\.\\d+)?S)?)?$"
}
}
}
}
}

0 comments on commit 75ba2d1

Please sign in to comment.