use of org.mule.runtime.api.util.Pair in project mule by mulesoft.
the class ReflectiveHttpConfigBasedRequester method request.
private Pair<InputStream, Map<String, String>> request(String method, String url, Map<String, String> headers, InputStream body) {
DefaultOperationParametersBuilder params = builder().configName(configName).addParameter("method", method).addParameter("url", url).addParameter("headers", new MultiMap<>(headers)).addParameter("targetValue", "#[payload]");
if (body != null) {
params.addParameter("body", new TypedValue<>(body, INPUT_STREAM));
}
try {
Result<Object, Object> result = client.executeAsync("HTTP", "request", params.build()).get();
Map<String, String> httpHeaders = getHttpHeaders(result);
InputStream content = getContent(result);
return new Pair<>(content, httpHeaders);
} catch (Exception e) {
throw new DispatchingException("Could not dispatch soap message using the [" + configName + "] HTTP configuration", e);
}
}
use of org.mule.runtime.api.util.Pair in project mule by mulesoft.
the class ServerNotificationManagerConfiguratorTestCase method compliantDisabledNotificationByEventClass.
@Test
public void compliantDisabledNotificationByEventClass() throws InitialisationException {
doReturn(singletonList((NotificationsProvider) () -> singletonMap("test:COMPLIANT", new Pair(CompliantNotification.class, CompliantNotificationListener.class)))).when(registry).lookupAllByType(NotificationsProvider.class);
final DisabledNotificationConfig disableNotificationConfig = new DisabledNotificationConfig();
disableNotificationConfig.setEventClass(CompliantNotification.class);
configurator.setDisabledNotifications(singletonList(disableNotificationConfig));
configurator.initialise();
verify(notificationManager).disableType(CompliantNotification.class);
}
use of org.mule.runtime.api.util.Pair in project mule by mulesoft.
the class ServerNotificationManagerConfiguratorTestCase method compliantDisabledNotificationByEventName.
@Test
public void compliantDisabledNotificationByEventName() throws InitialisationException {
doReturn(singletonList((NotificationsProvider) () -> singletonMap("test:COMPLIANT", new Pair(CompliantNotification.class, CompliantNotificationListener.class)))).when(registry).lookupAllByType(NotificationsProvider.class);
final DisabledNotificationConfig disableNotificationConfig = new DisabledNotificationConfig();
disableNotificationConfig.setEventName("test:COMPLIANT");
configurator.setDisabledNotifications(singletonList(disableNotificationConfig));
configurator.initialise();
verify(notificationManager).disableType(CompliantNotification.class);
}
use of org.mule.runtime.api.util.Pair in project mule by mulesoft.
the class MuleArtifactContext method recursivelyResolveConfigFiles.
private List<ConfigFile> recursivelyResolveConfigFiles(List<Pair<String, InputStream>> configFilesToResolve, List<ConfigFile> alreadyResolvedConfigFiles) {
DefaultConfigurationPropertiesResolver propertyResolver = new DefaultConfigurationPropertiesResolver(empty(), new EnvironmentPropertiesConfigurationProvider());
ImmutableList.Builder<ConfigFile> resolvedConfigFilesBuilder = ImmutableList.<ConfigFile>builder().addAll(alreadyResolvedConfigFiles);
configFilesToResolve.stream().filter(fileNameInputStreamPair -> !alreadyResolvedConfigFiles.stream().anyMatch(configFile -> configFile.getFilename().equals(fileNameInputStreamPair.getFirst()))).forEach(fileNameInputStreamPair -> {
Document document = xmlConfigurationDocumentLoader.loadDocument(muleContext.getExtensionManager() == null ? emptySet() : muleContext.getExtensionManager().getExtensions(), fileNameInputStreamPair.getFirst(), fileNameInputStreamPair.getSecond());
ConfigLine mainConfigLine = xmlApplicationParser.parse(document.getDocumentElement()).get();
ConfigFile configFile = new ConfigFile(fileNameInputStreamPair.getFirst(), asList(mainConfigLine));
resolvedConfigFilesBuilder.add(configFile);
try {
fileNameInputStreamPair.getSecond().close();
} catch (IOException e) {
throw new MuleRuntimeException(e);
}
});
ImmutableSet.Builder<String> importedFiles = ImmutableSet.builder();
for (ConfigFile configFile : resolvedConfigFilesBuilder.build()) {
List<ConfigLine> rootConfigLines = configFile.getConfigLines();
ConfigLine muleRootElementConfigLine = rootConfigLines.get(0);
importedFiles.addAll(muleRootElementConfigLine.getChildren().stream().filter(configLine -> configLine.getNamespace().equals(CORE_PREFIX) && configLine.getIdentifier().equals(IMPORT_ELEMENT)).map(configLine -> {
SimpleConfigAttribute fileConfigAttribute = configLine.getConfigAttributes().get("file");
if (fileConfigAttribute == null) {
throw new RuntimeConfigurationException(createStaticMessage(format("<import> does not have a file attribute defined. At file '%s', at line %s", configFile.getFilename(), configLine.getLineNumber())));
}
return fileConfigAttribute.getValue();
}).map(value -> (String) propertyResolver.resolveValue(value)).filter(fileName -> !alreadyResolvedConfigFiles.stream().anyMatch(solvedConfigFile -> solvedConfigFile.getFilename().equals(fileName))).collect(toList()));
}
Set<String> importedConfigurationFiles = importedFiles.build();
if (importedConfigurationFiles.isEmpty()) {
return resolvedConfigFilesBuilder.build();
}
List<Pair<String, InputStream>> newConfigFilesToResolved = importedConfigurationFiles.stream().map(importedFileName -> {
InputStream resourceAsStream = muleContext.getExecutionClassLoader().getResourceAsStream(importedFileName);
if (resourceAsStream == null) {
throw new RuntimeConfigurationException(createStaticMessage(format("Could not find imported resource '%s'", importedFileName)));
}
return (Pair<String, InputStream>) new Pair(importedFileName, resourceAsStream);
}).collect(toList());
return recursivelyResolveConfigFiles(newConfigFilesToResolved, resolvedConfigFilesBuilder.build());
}
use of org.mule.runtime.api.util.Pair in project mule by mulesoft.
the class MuleArtifactContext method resolveArtifactConfig.
private ArtifactConfig resolveArtifactConfig() throws IOException {
ArtifactConfig.Builder applicationConfigBuilder = new ArtifactConfig.Builder();
applicationConfigBuilder.setArtifactProperties(this.artifactProperties);
List<Pair<String, InputStream>> initialConfigFiles = new ArrayList<>();
for (ConfigResource artifactConfigResource : artifactConfigResources) {
initialConfigFiles.add(new Pair<>(artifactConfigResource.getResourceName(), artifactConfigResource.getInputStream()));
}
List<ConfigFile> configFiles = new ArrayList<>();
recursivelyResolveConfigFiles(initialConfigFiles, configFiles).forEach(applicationConfigBuilder::addConfigFile);
applicationConfigBuilder.setApplicationName(muleContext.getConfiguration().getId());
return applicationConfigBuilder.build();
}
Aggregations