private void withCustomParameters(BiConsumer<ParameterModel, OAuthParameterModelProperty> delegate) { providerModel.getAllParameterModels().forEach(parameter -> parameter.getModelProperty(OAuthParameterModelProperty.class) .ifPresent(property -> delegate.accept(parameter, property))); }
private Map<Field, String> getCallbackValues() { return providerModel.getModelProperty(OAuthCallbackValuesModelProperty.class) .map(OAuthCallbackValuesModelProperty::getCallbackValues) .orElseGet(Collections::emptyMap); }
/** * Tests the given {@code connectionProviderModel} for a {@link ConnectionProviderFactoryModelProperty} and if present it * returns the enclosed {@link ConnectionProviderFactory}. If no such property is found, then a * {@link IllegalConnectionProviderModelDefinitionException} is thrown * * @param connectionProviderModel a {@link ConnectionProviderModel} * @return a {@link SourceFactory} * @throws IllegalConnectionProviderModelDefinitionException if the connection provider is not properly enriched */ public static ConnectionProviderFactory getConnectionProviderFactory(ConnectionProviderModel connectionProviderModel) { return fromModelProperty(connectionProviderModel, ConnectionProviderFactoryModelProperty.class, ConnectionProviderFactoryModelProperty::getConnectionProviderFactory, () -> new IllegalConnectionProviderModelDefinitionException( format("Connection Provider '%s' does not provide a %s", connectionProviderModel.getName(), ConnectionProviderFactory.class .getSimpleName()))); }
/** * @return a {@link SoapServiceProvider} implementation {@link Class} for a given {@link ConnectionProviderModel}. */ private static Class<SoapServiceProvider> getServiceProviderType(ConnectionProviderModel model) { return model.getModelProperty(ImplementingTypeModelProperty.class) .map(prop -> (Class<SoapServiceProvider>) prop.getType()) .orElseThrow(() -> new IllegalStateException(format("No %s was defined in connection provider [%s]", ImplementingTypeModelProperty.class.getSimpleName(), model.getName()))); }
when(extension1ConfigurationModel.getSourceModels()).thenReturn(ImmutableList.of()); when(extension1ConfigurationModel.getConnectionProviders()).thenReturn(asList(connectionProviderModel)); when(connectionProviderModel.getAllParameterModels()).thenReturn(emptyList()); when(connectionProviderModel.getModelProperty(ConnectionProviderFactoryModelProperty.class)) .thenReturn(Optional.of(new ConnectionProviderFactoryModelProperty(mock(ConnectionProviderFactory.class, RETURNS_DEEP_STUBS.get()))));
mockModelProperties(constructModel); mockModelProperties(connectionProviderModel); when(connectionProviderModel.getName()).thenReturn(CONNECTION_PROVIDER_NAME); when(connectionProviderModel.getAllParameterModels()) .thenReturn(asList(simpleConnectionProviderParam, topLevelConnectionProviderParam));
private void assertTestConnectionModuleOn(String modulePath) { ExtensionModel extensionModel = getExtensionModelFrom(modulePath); assertThat(extensionModel.getName(), is("module-test-connection")); assertThat(extensionModel.getConfigurationModels().size(), is(1)); ConfigurationModel configurationModel = extensionModel.getConfigurationModels().get(0); assertThat(configurationModel.getName(), is(CONFIG_NAME)); assertThat(configurationModel.getAllParameterModels().size(), is(4)); Optional<ConnectionProviderModel> connectionProviderModel = configurationModel.getConnectionProviderModel(MODULE_CONNECTION_GLOBAL_ELEMENT_NAME); assertThat(connectionProviderModel.isPresent(), is(true)); assertThat(connectionProviderModel.get().supportsConnectivityTesting(), is(true)); }
private ConnectionProvider<C> applyConnectionManagement(ConnectionProvider<C> provider) { final ConnectionManagementType connectionManagementType = providerModel.getConnectionManagementType(); if (connectionManagementType == POOLING) { provider = new PoolingConnectionProviderWrapper<>(provider, poolingProfile, reconnectionConfig); } else { provider = new ReconnectableConnectionProviderWrapper<>(provider, reconnectionConfig); } return provider; }
providerModel.getParameterGroupModels().forEach(group -> { if (!group.isShowInDsl()) { builder.addParameterToSequence(builder.registerParameters(providerType, group.getParameterModels()), sequence);
for (ConnectionProviderModel connectionProviderModel : configurationModel.getConnectionProviders()) { if (dslSyntaxResolver.resolve(connectionProviderModel).getElementName() .equals(childConnectionProviderName) && connectionProviderModel.supportsConnectivityTesting()) { testConnectionComponentModels.add(globalElementComponentModel);
private ConnectionProvider<C> applyConnectionManagement(ConnectionProvider<C> provider) { final ConnectionManagementType connectionManagementType = providerModel.getConnectionManagementType(); if (connectionManagementType == POOLING) { provider = new PoolingConnectionProviderWrapper<>(provider, poolingProfile, reconnectionConfig); } else { provider = new ReconnectableConnectionProviderWrapper<>(provider, reconnectionConfig); } return provider; }
providerModel.getParameterGroupModels().forEach(group -> { if (!group.isShowInDsl()) { builder.addParameterToSequence(builder.registerParameters(providerType, group.getParameterModels()), sequence);
@Override public List<ValueProviderModel> getConnectionModels(String providerName) throws ValueResolvingException { return withConnectionProviderInfo((connection, model) -> getValueProviderModels(model.getAllParameterModels())); }
private Optional<String> getTestConnectionGlobalElement(ConfigurationModel configurationModel) { final Optional<ConnectionProviderModel> connectionProviderModel = configurationModel.getConnectionProviderModel(MODULE_CONNECTION_GLOBAL_ELEMENT_NAME); if (connectionProviderModel.isPresent()) { final Optional<TestConnectionGlobalElementModelProperty> modelProperty = connectionProviderModel.get().getModelProperty(TestConnectionGlobalElementModelProperty.class); return modelProperty.map(TestConnectionGlobalElementModelProperty::getGlobalElementName); } else { return empty(); } } }
/** * Tests the given {@code connectionProviderModel} for a {@link ConnectionTypeModelProperty} and if present it returns the * enclosed connection type. If no such property is found, then a {@link IllegalConnectionProviderModelDefinitionException} is * thrown * * @param connectionProviderModel a {@link ConnectionProviderModel} * @return a connection {@link Class} * @throws IllegalConnectionProviderModelDefinitionException if the connection provider is not properly enriched */ public static Type getConnectionType(ConnectionProviderModel connectionProviderModel) { return fromModelProperty(connectionProviderModel, ConnectionTypeModelProperty.class, ConnectionTypeModelProperty::getConnectionTypeElement, () -> new IllegalConnectionProviderModelDefinitionException( format("Connection Provider '%s' does not specify a connection type", connectionProviderModel .getName()))); }
@Test public void untesteableConnetionProvider() throws Exception { ConnectionProviderModel connectionProviderModel = veganExtension.getConfigurationModel(APPLE) .map(c -> c.getConnectionProviders().get(0)) .get(); assertThat(connectionProviderModel.supportsConnectivityTesting(), is(false)); }
/** * 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 AuthorizationCodeGrantType getGrantType() { return providerModel.getModelProperty(OAuthModelProperty.class) .map(p -> (AuthorizationCodeGrantType) p.getGrantTypes().get(0)).get(); }
private List<ConnectionProviderModel> mockConnectionProviders(String... names) { return Stream.of(names).map(name -> { ConnectionProviderModel mock = mock(ConnectionProviderModel.class, Mockito.RETURNS_DEEP_STUBS); when(mock.getName()).thenReturn(name); return mock; }).collect(toList()); }
@Test public void testeableConnectionProvider() throws Exception { ConnectionProviderModel connectionProviderModel = veganExtension.getConfigurationModel(BANANA) .map(c -> c.getConnectionProviders().get(0)) .get(); assertThat(connectionProviderModel.supportsConnectivityTesting(), is(true)); }