private Map<Field, String> getCallbackValues() { return providerModel.getModelProperty(OAuthCallbackValuesModelProperty.class) .map(OAuthCallbackValuesModelProperty::getCallbackValues) .orElseGet(Collections::emptyMap); }
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(); } } }
private AuthorizationCodeGrantType getGrantType() { return providerModel.getModelProperty(OAuthModelProperty.class) .map(p -> (AuthorizationCodeGrantType) p.getGrantTypes().get(0)).get(); }
/** * @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()))); }
/** * Resolves the correspondent {@link ConnectionProviderModel} for a given {@link ConnectionProvider} instance. * * @param connectionProvider connection provider class * @param allConnectionProviders list of available {@link ConnectionProviderModel} * @return an {@link Optional} value of the {@link ConnectionProviderModel} */ public static Optional<ConnectionProviderModel> getConnectionProviderModel( Class<? extends ConnectionProvider> connectionProvider, List<ConnectionProviderModel> allConnectionProviders) { for (ConnectionProviderModel providerModel : allConnectionProviders) { Optional<ImplementingTypeModelProperty> modelProperty = providerModel.getModelProperty(ImplementingTypeModelProperty.class); if (modelProperty.isPresent()) { ImplementingTypeModelProperty property = modelProperty.get(); if (property.getType().equals(connectionProvider)) { return of(providerModel); } } } return empty(); }
@Override protected void onConnectionProvider(ConnectionProviderModel model) { model.getModelProperty(ImplementingTypeModelProperty.class) .map(ImplementingTypeModelProperty::getType) .filter(type -> type.getAnnotation(AuthorizationCode.class) != null) .ifPresent(type -> { List<Field> stateFields = getFields(type).stream() .filter(f -> f.getType().equals(AuthorizationCodeState.class)) .collect(toList()); if (stateFields.size() != 1) { throw new IllegalConnectionProviderModelDefinitionException( format("Connection Provider of class '%s' uses OAuth2 authorization code grant type and thus should contain " + "one (and only one) field of type %s. %d were found", type, AuthorizationCodeState.class.getName(), stateFields.size())); } }); } }.walk(model);
@Override protected void onConnectionProvider(ConnectionProviderModel model) { if (model.getModelProperty(OAuthModelProperty.class).isPresent()) { connectionProvider.set(model); stop(); } } }.walk(extensionModel);
@Override public ConnectionProviderResolver doGetObject() { Callable<ResolverSet> callable = () -> getParametersResolver().getParametersAsHashedResolverSet(providerModel, muleContext); ResolverSet resolverSet = withContextClassLoader(getClassLoader(extensionModel), callable); ConnectionProviderObjectBuilder builder; if (extensionModel.getModelProperty(SoapExtensionModelProperty.class).isPresent()) { builder = new SoapConnectionProviderObjectBuilder(providerModel, resolverSet, poolingProfile, reconnectionConfig, extensionModel, expressionManager, muleContext); } else if (providerModel.getModelProperty(OAuthModelProperty.class).isPresent()) { builder = new OAuthConnectionProviderObjectBuilder(providerModel, resolverSet, poolingProfile, reconnectionConfig, oauthManager, extensionModel, expressionManager, muleContext); } else { builder = new DefaultConnectionProviderObjectBuilder(providerModel, resolverSet, poolingProfile, reconnectionConfig, extensionModel, expressionManager, muleContext); } return new ConnectionProviderResolver<>(builder, resolverSet, muleContext); }
when(connectionProviderModel.getAllParameterModels()).thenReturn(emptyList()); when(connectionProviderModel.getModelProperty(ConnectionProviderFactoryModelProperty.class)) .thenReturn(Optional.of(new ConnectionProviderFactoryModelProperty(mock(ConnectionProviderFactory.class, RETURNS_DEEP_STUBS.get()))));
private Map<Field, String> getCallbackValues() { return providerModel.getModelProperty(OAuthCallbackValuesModelProperty.class) .map(OAuthCallbackValuesModelProperty::getCallbackValues) .orElseGet(Collections::emptyMap); }
private AuthorizationCodeGrantType getGrantType() { return providerModel.getModelProperty(OAuthModelProperty.class) .map(p -> (AuthorizationCodeGrantType) p.getGrantTypes().get(0)) .get(); }
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 Optional.empty(); } } }
/** * Resolves the correspondent {@link ConnectionProviderModel} for a given {@link ConnectionProvider} instance. * * @param connectionProvider connection provider class * @param allConnectionProviders list of available {@link ConnectionProviderModel} * @return an {@link Optional} value of the {@link ConnectionProviderModel} */ public static Optional<ConnectionProviderModel> getConnectionProviderModel( Class<? extends ConnectionProvider> connectionProvider, List<ConnectionProviderModel> allConnectionProviders) { for (ConnectionProviderModel providerModel : allConnectionProviders) { Optional<ImplementingTypeModelProperty> modelProperty = providerModel.getModelProperty(ImplementingTypeModelProperty.class); if (modelProperty.isPresent()) { ImplementingTypeModelProperty property = modelProperty.get(); if (property.getType().equals(connectionProvider)) { return of(providerModel); } } } return empty(); }
@Override protected void onConnectionProvider(ConnectionProviderModel model) { model.getModelProperty(ImplementingTypeModelProperty.class) .map(ImplementingTypeModelProperty::getType) .filter(type -> type.getAnnotation(AuthorizationCode.class) != null) .ifPresent(type -> { List<Field> stateFields = getFields(type).stream() .filter(f -> f.getType().equals(AuthorizationCodeState.class)) .collect(toList()); if (stateFields.size() != 1) { throw new IllegalConnectionProviderModelDefinitionException( format("Connection Provider of class '%s' uses OAuth2 authorization code grant type and thus should contain " + "one (and only one) field of type %s. %d were found", type, AuthorizationCodeState.class.getName(), stateFields.size())); } }); } }.walk(model);
@Override protected void onConnectionProvider(ConnectionProviderModel model) { if (model.getModelProperty(OAuthModelProperty.class).isPresent()) { connectionProvider.set(model); stop(); } } }.walk(extensionModel);
@Override public ConnectionProviderResolver doGetObject() throws Exception { Callable<ResolverSet> callable = () -> getParametersResolver().getParametersAsHashedResolverSet(providerModel, muleContext); ResolverSet resolverSet = withContextClassLoader(getClassLoader(extensionModel), callable); ConnectionProviderObjectBuilder builder; if (extensionModel.getModelProperty(SoapExtensionModelProperty.class).isPresent()) { builder = new SoapConnectionProviderObjectBuilder(providerModel, resolverSet, poolingProfile, reconnectionConfig, extensionModel, muleContext); } else if (providerModel.getModelProperty(OAuthModelProperty.class).isPresent()) { builder = new OAuthConnectionProviderObjectBuilder(providerModel, resolverSet, poolingProfile, reconnectionConfig, oauthManager, extensionModel, muleContext); } else { builder = new DefaultConnectionProviderObjectBuilder(providerModel, resolverSet, poolingProfile, reconnectionConfig, extensionModel, muleContext); } return new ConnectionProviderResolver<>(builder, resolverSet, muleContext); }