private void withCustomParameters(BiConsumer<ParameterModel, OAuthParameterModelProperty> delegate) { providerModel.getAllParameterModels().forEach(parameter -> parameter.getModelProperty(OAuthParameterModelProperty.class) .ifPresent(property -> delegate.accept(parameter, property))); }
@Override public List<ValueProviderModel> getConnectionModels(String providerName) throws ValueResolvingException { return withConnectionProviderInfo((connection, model) -> getValueProviderModels(model.getAllParameterModels())); }
/** * If the current {@link ExtensionModel} does have a {@link ConnectionProviderModel}, then it will check if the current XML does * contain a child of it under the connection name (see * {@link ModuleOperationMessageProcessorChainBuilder#MODULE_CONNECTION_GLOBAL_ELEMENT_NAME}. * * @param configRefComponentModel root element of the current XML config (global element of the parametrized operation) * @param configurationModel configuration model of the current element * @return a map of properties to be added in the macro expanded <operation/> */ private Map<String, String> extractConnectionProperties(ComponentModel configRefComponentModel, ConfigurationModel configurationModel) { Map<String, String> connectionValuesMap = new HashMap<>(); configurationModel.getConnectionProviderModel(MODULE_CONNECTION_GLOBAL_ELEMENT_NAME) .ifPresent( connectionProviderModel -> configRefComponentModel.getInnerComponents().stream() .filter(componentModel -> MODULE_CONNECTION_GLOBAL_ELEMENT_NAME .equals(componentModel.getIdentifier().getName())) .findFirst() .ifPresent(connectionComponentModel -> connectionValuesMap .putAll(extractParameters(connectionComponentModel, connectionProviderModel .getAllParameterModels())))); return connectionValuesMap; }
@Test public void contentParameterValidationIsSkipped() { ParameterModel offending = getParameter(SIMPLE_PARAM_NAME, String.class); when(offending.getRole()).thenReturn(CONTENT); when(connectionProviderModel.getAllParameterModels()) .thenReturn(asList(simpleConnectionProviderParam, topLevelConnectionProviderParam, offending)); validate(); }
@Test public void connectionProviderWithMultipleConfigReferenceParameter() { ParameterModel paramWithReferences = configuration.getConnectionProviders().get(0).getAllParameterModels().get(0); List<StereotypeModel> allowedStereotypes = paramWithReferences.getAllowedStereotypes(); assertThat(allowedStereotypes, hasSize(2)); assertStereotype(allowedStereotypes.get(0), HEISENBERG, "config", CONFIG); assertStereotype(allowedStereotypes.get(1), MARVEL_EXTENSION, CONFIG_NAME, CONFIG); }
private void assertDescriptionsSingleConfig(ExtensionModel extensionModel) { assertThat(extensionModel.getConfigurationModels(), hasSize(1)); assertThat(extensionModel.getOperationModels(), hasSize(1)); OperationModel withParameterGroup = extensionModel.getOperationModels().get(0); assertDescription(withParameterGroup, "Operation with parameter group"); List<ParameterModel> operationParams = withParameterGroup.getAllParameterModels(); assertDescription(operationParams.get(0), "value param description"); assertDescription(operationParams.get(1), "First Description"); assertDescription(operationParams.get(2), "Second Description"); ConfigurationModel config = extensionModel.getConfigurationModels().get(0); assertDescription(extensionModel, "Test Extension Description with single config"); assertDescription(config, DEFAULT_CONFIG_DESCRIPTION); assertDescription(config.getAllParameterModels().get(0), "Config parameter"); assertDescription(config.getAllParameterModels().get(1), "Config Parameter with an Optional value"); assertThat(config.getOperationModels(), hasSize(1)); assertDescription(config.getOperationModels().get(0), "Operation with description"); ConnectionProviderModel provider = config.getConnectionProviders().get(0); assertDescription(provider, "Provider description"); assertDescription(provider.getAllParameterModels().get(0), "Connection Param Description"); assertDescription(provider.getAllParameterModels().get(1), "First Description"); assertDescription(provider.getAllParameterModels().get(2), "Second Description"); }
mockModelProperties(connectionProviderModel); when(connectionProviderModel.getName()).thenReturn(CONNECTION_PROVIDER_NAME); when(connectionProviderModel.getAllParameterModels()) .thenReturn(asList(simpleConnectionProviderParam, topLevelConnectionProviderParam));
assertThat(connectionProviderModel.getAllParameterModels().size(), is(1)); final ParameterModel stereotypableIronManConfigInConnectionParameterModel = connectionProviderModel.getAllParameterModels().get(0); assertParameterWithStereotypes(stereotypableIronManConfigInConnectionParameterModel, "stereotypableIronManConfigInConnection", ironManStereotype);
when(extension1ConfigurationModel.getSourceModels()).thenReturn(ImmutableList.of()); when(extension1ConfigurationModel.getConnectionProviders()).thenReturn(asList(connectionProviderModel)); when(connectionProviderModel.getAllParameterModels()).thenReturn(emptyList());
private void withCustomParameters(BiConsumer<ParameterModel, OAuthParameterModelProperty> delegate) { providerModel.getAllParameterModels().forEach(parameter -> parameter.getModelProperty(OAuthParameterModelProperty.class) .ifPresent(property -> delegate.accept(parameter, property))); }
/** * Plains the complete list of configurations and connections for the parameterized {@link ExtensionModel} * @param extensionModel looks for all the the parameters of the configuration and connection. * @return a list of {@link ParameterModel} that will not repeat their {@link ParameterModel#getName()}s. */ private List<ParameterModel> getAllProperties(ExtensionModel extensionModel) { List<ParameterModel> result = new ArrayList<>(); extensionModel.getConfigurationModel(MODULE_CONFIG_GLOBAL_ELEMENT_NAME).ifPresent(configurationModel -> { result.addAll(configurationModel.getAllParameterModels()); configurationModel.getConnectionProviderModel(MODULE_CONNECTION_GLOBAL_ELEMENT_NAME) .ifPresent( connectionProviderModel -> result.addAll(connectionProviderModel.getAllParameterModels())); }); return result; }
@Override public List<ValueProviderModel> getConnectionModels(String providerName) throws ValueResolvingException { return withConnectionProviderInfo((connection, model) -> getValueProviderModels(model.getAllParameterModels())); }
/** * If the current {@link ExtensionModel} does have a {@link ConnectionProviderModel}, then it will check if the current XML does * contain a child of it under the connection name (see * {@link ModuleOperationMessageProcessorChainBuilder#MODULE_CONNECTION_GLOBAL_ELEMENT_NAME}. * * @param configRefComponentModel root element of the current XML config (global element of the parametrized operation) * @param configurationModel configuration model of the current element * @return a map of properties to be added in the macro expanded <operation/> */ private Map<String, String> extractConnectionProperties(ComponentModel configRefComponentModel, ConfigurationModel configurationModel) { Map<String, String> connectionValuesMap = new HashMap<>(); configurationModel.getConnectionProviderModel(MODULE_CONNECTION_GLOBAL_ELEMENT_NAME) .ifPresent( connectionProviderModel -> configRefComponentModel.getInnerComponents().stream() .filter(componentModel -> MODULE_CONNECTION_GLOBAL_ELEMENT_NAME .equals(componentModel.getIdentifier().getName())) .findFirst() .ifPresent(connectionComponentModel -> connectionValuesMap .putAll(extractParameters(connectionComponentModel, connectionProviderModel .getAllParameterModels())))); return connectionValuesMap; }
private void assertDescriptionsSingleConfig(ExtensionModel extensionModel) { assertThat(extensionModel.getConfigurationModels(), hasSize(1)); assertThat(extensionModel.getOperationModels(), hasSize(1)); OperationModel withParameterGroup = extensionModel.getOperationModels().get(0); assertDescription(withParameterGroup, "Operation with parameter group"); List<ParameterModel> operationParams = withParameterGroup.getAllParameterModels(); assertDescription(operationParams.get(0), "value param description"); assertDescription(operationParams.get(1), "First Description"); assertDescription(operationParams.get(2), "Second Description"); ConfigurationModel config = extensionModel.getConfigurationModels().get(0); assertDescription(extensionModel, "Test Extension Description with single config"); assertDescription(config, DEFAULT_CONFIG_DESCRIPTION); assertDescription(config.getAllParameterModels().get(0), "Config parameter"); assertDescription(config.getAllParameterModels().get(1), "Config Parameter with an Optional value"); assertThat(config.getOperationModels(), hasSize(1)); assertDescription(config.getOperationModels().get(0), "Operation with description"); ConnectionProviderModel provider = config.getConnectionProviders().get(0); assertDescription(provider, "Provider description"); assertDescription(provider.getAllParameterModels().get(0), "Connection Param Description"); assertDescription(provider.getAllParameterModels().get(1), "First Description"); assertDescription(provider.getAllParameterModels().get(2), "Second Description"); }