private void declareConfiguration(ExtensionDeclarer declarer, ExtensionElement extensionType, ComponentElement configType) { checkConfigurationIsNotAnOperation(extensionType, configType); ConfigurationDeclarer configurationDeclarer; Optional<Configuration> configurationAnnotation = configType.getAnnotation(Configuration.class); if (configurationAnnotation.isPresent()) { final Configuration configuration = configurationAnnotation.get(); String configName = isBlank(configuration.name()) ? DEFAULT_CONFIG_NAME : configuration.name(); configurationDeclarer = declarer.withConfig(configName); } else { configurationDeclarer = declarer.withConfig(DEFAULT_CONFIG_NAME).describedAs(DEFAULT_CONFIG_DESCRIPTION); } Class<?> extensionClass = extensionType.getDeclaringClass().orElse(Object.class); Class<?> configClass = configType.getDeclaringClass().orElse(Object.class); ClassLoader classLoader = extensionClass.getClassLoader() != null ? extensionClass.getClassLoader() : Thread.currentThread().getContextClassLoader(); TypeAwareConfigurationFactory typeAwareConfigurationFactory = new TypeAwareConfigurationFactory(configClass, classLoader); configurationDeclarer .withModelProperty(new ConfigurationFactoryModelProperty(typeAwareConfigurationFactory)) .withModelProperty(new ImplementingTypeModelProperty(configClass)); configurationDeclarer.withModelProperty(new ExtensionTypeDescriptorModelProperty(configType)); loader.parseExternalLibs(configType, configurationDeclarer); ParameterDeclarationContext context = new ParameterDeclarationContext(CONFIGURATION, configurationDeclarer.getDeclaration()); loader.getFieldParametersLoader().declare(configurationDeclarer, configType.getParameters(), context); getOperationLoaderDelegate().declareOperations(declarer, configurationDeclarer, configType); getSourceModelLoaderDelegate().declareMessageSources(declarer, configurationDeclarer, configType); getFunctionModelLoaderDelegate().declareFunctions(declarer, configurationDeclarer, configType); getConnectionProviderModelLoaderDelegate().declareConnectionProviders(configurationDeclarer, configType); }
configurationDeclarer.withConnectionProvider(MODULE_CONNECTION_GLOBAL_ELEMENT_NAME); connectionProviderDeclarer .withConnectionManagementType(ConnectionManagementType.NONE);
private ConfigurationDeclarer getConfigDeclarer(ExtensionDeclarer declarer, SoapExtensionTypeWrapper<?> extension, Set<ErrorModel> soapErrors) { //TODO - MULE-14311 - Make loader work in compile time Class<?> clazz = extension.getDeclaringClass().get(); TypeAwareConfigurationFactory configurationFactory = new TypeAwareConfigurationFactory(clazz, clazz.getClassLoader()); ConfigurationDeclarer configDeclarer = declarer.withConfig(DEFAULT_CONFIG_NAME) .describedAs(DEFAULT_CONFIG_DESCRIPTION) .withModelProperty(new ConfigurationFactoryModelProperty(configurationFactory)) .withModelProperty(new ImplementingTypeModelProperty(clazz)); operationDeclarer.declare(configDeclarer, typeLoader, soapErrors); return configDeclarer; }
.describedAs("Spring configuration that allows to define a set of spring XML files and create an application context with objects to be used in the mule artifact."); ParameterGroupDeclarer parameterGroupDeclarer = springConfig.onDefaultParameterGroup(); parameterGroupDeclarer.withRequiredParameter("files").withExpressionSupport(NOT_SUPPORTED) .withRole(BEHAVIOUR).ofType(typeLoader.load(String.class)); .describedAs("This is the security provider type that is used to configure spring-security related functionality."); securityManager.onDefaultParameterGroup().withRequiredParameter("providers").withExpressionSupport(NOT_SUPPORTED) .withRole(BEHAVIOUR).ofType(typeBuilder.arrayType().of(typeLoader.load(SecurityProvider.class)).build());
@Override public void accept(ExtensionDeclarer extensionDeclarer, ExtensionLoadingContext context) { ConfigurationDeclarer configurationDeclarer = extensionDeclarer.named(EXTENSION_NAME) .describedAs("Crafted Config Properties Extension") .onVersion("1.0.0") .withCategory(COMMUNITY) .fromVendor("Mulesoft") .withConfig("secure-configuration-properties"); ParameterGroupDeclarer defaultParameterGroup = configurationDeclarer.onDefaultParameterGroup(); defaultParameterGroup .withRequiredParameter("file").ofType(BaseTypeBuilder.create(JAVA).stringType().build()); ParameterGroupDeclarer parameterGroupDeclarer = configurationDeclarer.onParameterGroup("encrypt").withDslInlineRepresentation(true); parameterGroupDeclarer.withRequiredParameter("algorithm").ofType(BaseTypeBuilder.create(JAVA).stringType().build()); parameterGroupDeclarer.withRequiredParameter("mode").ofType(BaseTypeBuilder.create(JAVA).stringType().build()); } }
if ((!temporalTestConnectionGlobalElement.isPresent()) || (!temporalTestConnectionGlobalElement.get().equals(testConnectionGlobalElement.get()))) { configurationDeclarer.withModelProperty(new InvalidTestConnectionMarkerModelProperty(testConnectionGlobalElement.get() .getNameAttribute(), testConnectionGlobalElement.get().getIdentifier().toString()));
/** * Declares the invoke operation. * * @param configDeclarer the soap config declarer * @param loader a {@link ClassTypeLoader} to load some parameters types. * @param soapErrors the {@link ErrorModel}s that this operation can throw. */ void declare(ConfigurationDeclarer configDeclarer, ClassTypeLoader loader, Set<ErrorModel> soapErrors) { ReflectionCache reflectionCache = new ReflectionCache(); OperationDeclarer operation = configDeclarer.withOperation(OPERATION_NAME) .describedAs(OPERATION_DESCRIPTION) .requiresConnection(true) .blocking(true) .withModelProperty(new ComponentExecutorModelProperty(new SoapOperationExecutorFactory())) .withModelProperty(new ConnectivityModelProperty(ForwardingSoapClient.class)); soapErrors.forEach(operation::withErrorModel); declareMetadata(operation, loader); declareOutput(operation, loader); declareMetadataKeyParameters(operation, loader, reflectionCache); declareRequestParameters(operation, loader); }
@Override public void accept(ExtensionDeclarer extensionDeclarer, ExtensionLoadingContext context) { ConfigurationDeclarer configurationDeclarer = extensionDeclarer.named(EXTENSION_NAME) .describedAs("Crafted Config Properties Extension") .onVersion("1.0.0") .withCategory(COMMUNITY) .fromVendor("Mulesoft") .withConfig("secure-configuration-properties"); ParameterGroupDeclarer defaultParameterGroup = configurationDeclarer.onDefaultParameterGroup(); defaultParameterGroup .withRequiredParameter("file").ofType(BaseTypeBuilder.create(JAVA).stringType().build()); ParameterGroupDeclarer parameterGroupDeclarer = configurationDeclarer.onParameterGroup("encrypt").withDslInlineRepresentation(true); parameterGroupDeclarer.withRequiredParameter("algorithm").ofType(BaseTypeBuilder.create(JAVA).stringType().build()); parameterGroupDeclarer.withRequiredParameter("mode").ofType(BaseTypeBuilder.create(JAVA).stringType().build()); } }
private void declareConfiguration(ExtensionDeclarer declarer, ExtensionElement extensionType, ComponentElement configType) { checkConfigurationIsNotAnOperation(extensionType, configType); ConfigurationDeclarer configurationDeclarer; Optional<Configuration> configurationAnnotation = configType.getAnnotation(Configuration.class); if (configurationAnnotation.isPresent()) { final Configuration configuration = configurationAnnotation.get(); String configName = isBlank(configuration.name()) ? DEFAULT_CONFIG_NAME : configuration.name(); configurationDeclarer = declarer.withConfig(configName); } else { configurationDeclarer = declarer.withConfig(DEFAULT_CONFIG_NAME).describedAs(DEFAULT_CONFIG_DESCRIPTION); } Class<?> extensionClass = extensionType.getDeclaringClass().orElse(Object.class); Class<?> configClass = configType.getDeclaringClass().orElse(Object.class); ClassLoader classLoader = extensionClass.getClassLoader() != null ? extensionClass.getClassLoader() : Thread.currentThread().getContextClassLoader(); TypeAwareConfigurationFactory typeAwareConfigurationFactory = new TypeAwareConfigurationFactory(configClass, classLoader); configurationDeclarer .withModelProperty(new ConfigurationFactoryModelProperty(typeAwareConfigurationFactory)) .withModelProperty(new ImplementingTypeModelProperty(configClass)); configurationDeclarer.withModelProperty(new ExtensionTypeDescriptorModelProperty(configType)); loader.parseExternalLibs(configType, configurationDeclarer); ParameterDeclarationContext context = new ParameterDeclarationContext(CONFIGURATION, configurationDeclarer.getDeclaration()); loader.getFieldParametersLoader().declare(configurationDeclarer, configType.getParameters(), context); getOperationLoaderDelegate().declareOperations(declarer, configurationDeclarer, configType); getSourceModelLoaderDelegate().declareMessageSources(declarer, configurationDeclarer, configType); getFunctionModelLoaderDelegate().declareFunctions(declarer, configurationDeclarer, configType); getConnectionProviderModelLoaderDelegate().declareConnectionProviders(configurationDeclarer, configType); }
private ExtensionModel mockedExtension(final String name, final String config, final String connectionProvider, boolean supportsConnectivityTesting) { final ExtensionDeclarer extensionDeclarer = new ExtensionDeclarer(); extensionDeclarer.named(name) .onVersion("4.0.0") .fromVendor("MuleSoft testcase") .withCategory(Category.COMMUNITY) .withConfig(config) .withConnectionProvider(connectionProvider) .supportsConnectivityTesting(supportsConnectivityTesting) .withConnectionManagementType(ConnectionManagementType.NONE); return new ExtensionModelFactory() .create(new DefaultExtensionLoadingContext(extensionDeclarer, currentThread().getContextClassLoader(), new NullDslResolvingContext())); }
/** * Declares a new connection provider for a configuration given a {@link SoapServiceProviderWrapper} declaration. * * @param configDeclarer the configuration declarer that will own the provider * @param provider a {@link SoapServiceProviderWrapper} that describes the {@link SoapServiceProvider} Type. * @param hasCustomTransports if declares custom transport or not. */ public void declare(ConfigurationDeclarer configDeclarer, SoapServiceProviderWrapper provider, boolean hasCustomTransports) { String description = provider.getDescription(); // Declares the Service Provider as a Connection Provider. ConnectionProviderDeclarer providerDeclarer = configDeclarer.withConnectionProvider(provider.getAlias()) .describedAs(description) .withModelProperty(new ConnectionTypeModelProperty(ForwardingSoapClient.class)) //TODO - MULE-14311 - Make loader work in compile time .withModelProperty(new ImplementingTypeModelProperty(provider.getDeclaringClass().get())) .withConnectionManagementType(POOLING) .supportsConnectivityTesting(provider.supportsConnectivityTesting()); ParameterDeclarationContext context = new ParameterDeclarationContext("Service Provider", providerDeclarer.getDeclaration()); parametersLoader.declare(providerDeclarer, provider.getParameters(), context); if (hasCustomTransports) { providerDeclarer.onParameterGroup(TRANSPORT_GROUP) .withRequiredParameter(TRANSPORT_PARAM) .withDisplayModel(DisplayModel.builder().displayName(TRANSPORT_GROUP).build()) .ofType(typeLoader.load(MessageDispatcherProvider.class)) .withLayout(LayoutModel.builder().order(1).tabName(TRANSPORT).build()) .withExpressionSupport(NOT_SUPPORTED); } }