[
https://issues.apache.org/jira/browse/NIFI-1850?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15332237#comment-15332237
]
ASF GitHub Bot commented on NIFI-1850:
--------------------------------------
Github user YolandaMDavis commented on a diff in the pull request:
https://github.com/apache/nifi/pull/511#discussion_r67215337
--- Diff:
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java
---
@@ -452,8 +456,40 @@ private ComponentDetails
getComponentConfiguration(final ProcessorDTO processor)
.state(processor.getState())
.annotationData(processorConfig.getAnnotationData())
.properties(processorConfig.getProperties())
+ .descriptors(getComponentDescriptors(processorConfig))
.validateErrors(processor.getValidationErrors()).build();
}
+
+ private Map<String,ComponentDescriptor>
getComponentDescriptors(final ProcessorConfigDTO processorConfig){
+
+ final Map<String, ComponentDescriptor> descriptors = new
HashMap<>();
+
+ for(String key : processorConfig.getDescriptors().keySet()){
+
+ PropertyDescriptorDTO descriptor =
processorConfig.getDescriptors().get(key);
+ List<PropertyDescriptorDTO.AllowableValueDTO>
allowableValuesDTO = descriptor.getAllowableValues();
+ Map<String,String> allowableValues = new HashMap<>();
+
+ if(allowableValuesDTO != null) {
+ for (PropertyDescriptorDTO.AllowableValueDTO value :
allowableValuesDTO) {
+ allowableValues.put(value.getValue(),
value.getDisplayName());
+ }
+ }
+
+ ComponentDescriptor componentDescriptor = new
ComponentDescriptor.Builder()
+ .name(descriptor.getName())
+ .displayName(descriptor.getDisplayName())
+ .defaultValue(descriptor.getDefaultValue())
+ .allowableValues(allowableValues)
+ .build();
+
+
+ descriptors.put(key,componentDescriptor);
+ }
+
+ return descriptors;
--- End diff --
@olegz this Map is populated based on whether a component (or specifically
a processor in this case) has Property Descriptors; my thought is it's unlikely
we'd encounter one that didn't but I'd defer to @mcgilman for certainty. Even
if it did return an empty map, this method is used by the
ComponentDetails.Builder class which can handle populating component details
with the empty value.
Also this method is used when building and returning detailed information
of a processor's configuration to the caller (after a specific update or get
detail info call). If for some reason a processor was created that had no
properties the Map would simply the reflect that Processor class's
configuration. I believe its possible for property descriptors to be removed
by the caller (via updateComponents and later StandardProcessorDAO) with
subsequent calls to generate that Map reflecting the change; however I would
hesitate to say an validation error should be thrown at this level, especially
if a caller proactively removes a property. If there is a case where a caller
was expecting a property to exist and then, upon retrieving details, discover
that property is gone perhaps it would be better to throw some error at that
level as opposed to within the class above.
> JSON-to-JSON Schema Converter Editor
> ------------------------------------
>
> Key: NIFI-1850
> URL: https://issues.apache.org/jira/browse/NIFI-1850
> Project: Apache NiFi
> Issue Type: New Feature
> Components: Core UI
> Reporter: Yolanda M. Davis
> Assignee: Yolanda M. Davis
> Priority: Minor
> Fix For: 0.7.0
>
>
> With NIFI-361 implemented, users can embed a JOLT spec into the TransformJSON
> processor. However, building the spec is not intuitive enough without the
> ability to obtain real time feedback on spec syntax and preview output data.
> Would like to have a specification editor and transform preview view added
> to the processor configuration screen to allow users to immediately see the
> impact on the output JSON data.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)