@@ -171,7 +171,7 @@ List<String> validateStep(Step step, String workflowId ) {
171171
172172 if (step .getParameters () != null ) {
173173 for (Parameter parameter : step .getParameters ()) {
174- errors .addAll (validateParameter (parameter , workflowId ));
174+ errors .addAll (validateParameter (parameter , workflowId , null ));
175175
176176 if (step .getWorkflowId () != null ) {
177177 // when the step in context specifies a workflowId the parameter IN must be defined
@@ -208,9 +208,18 @@ List<String> validateStep(Step step, String workflowId ) {
208208 return errors ;
209209 }
210210
211- List <String > validateParameter (Parameter parameter , String workflowId ) {
211+ List <String > validateParameter (Parameter parameter , String workflowId , String componentName ) {
212212 List <String > SUPPORTED_VALUES = Arrays .asList ("path" , "query" , "header" , "cookie" , "body" , "workflow" );
213213
214+ String source ;
215+
216+ if (workflowId != null ) {
217+ source = "Workflow[" + workflowId + "]" ;
218+ } else {
219+ source = "Component[" + componentName + "]" ;
220+
221+ }
222+
214223 List <String > errors = new ArrayList <>();
215224
216225 if (parameter .get$ref () != null ) {
@@ -221,27 +230,27 @@ List<String> validateParameter(Parameter parameter, String workflowId ) {
221230 String name = parameter .getName ();
222231
223232 if (name == null ) {
224- errors .add ("'Workflow[" + workflowId + "]' parameter has no name" );
233+ errors .add (source + " parameter has no name" );
225234 }
226235 if (parameter .getIn () != null ) {
227236 if (!SUPPORTED_VALUES .contains (parameter .getIn ())) {
228237 if (name != null ) {
229- errors .add ("Parameter ' " + name + "' type (" + parameter .getIn () + ") is invalid" );
238+ errors .add (source + "parameter " + name + " type (" + parameter .getIn () + ") is invalid" );
230239 } else {
231- errors .add ("'Workflow[" + workflowId + "]' parameter type (" + parameter .getIn () + ") is invalid" );
240+ errors .add (source + " parameter type (" + parameter .getIn () + ") is invalid" );
232241 }
233242 }
234243 }
235244 if (parameter .getValue () == null ) {
236245 if (name != null ) {
237- errors .add ("Parameter ' " + name + "' has no value" );
246+ errors .add (source + " parameter " + name + " has no value" );
238247 } else {
239- errors .add ("'Workflow[" + workflowId + "]' parameter has no value" );
248+ errors .add (source + " parameter has no value" );
240249 }
241250 }
242251 if (parameter .getTarget () != null ) {
243252 if (!isValidJsonPointer (parameter .getTarget ())) {
244- errors .add ("Parameter ' " + name + "' target is not a valid Json Pointer" );
253+ errors .add (source + " parameter " + name + " target is not a valid Json Pointer" );
245254 }
246255 }
247256 }
@@ -365,9 +374,9 @@ List<String> validateComponents(Components components) {
365374 }
366375 }
367376
368- for ( Parameter parameter : components .getParameters ().values ()) {
369- errors .addAll (validateParameter (parameter , "Components" ));
370- }
377+ components .getParameters ().entrySet (). stream ()
378+ . forEach ( entry -> errors .addAll (validateParameter (entry . getValue (), null , entry . getKey ()) ));
379+
371380 }
372381 if (components .getInputs () != null ) {
373382 for (String key : components .getInputs ().keySet ()) {
0 commit comments