use of io.syndesis.common.model.integration.Step in project syndesis by syndesisio.
the class IntegrationSupportHandler method addToExport.
private void addToExport(JsonDB export, Integration integration) {
addModelToExport(export, integration);
for (Step step : integration.getSteps()) {
Optional<Connection> c = step.getConnection();
if (c.isPresent()) {
Connection connection = c.get();
addModelToExport(export, connection);
Connector connector = integrationHandler.getDataManager().fetch(Connector.class, connection.getConnectorId());
if (connector != null) {
addModelToExport(export, connector);
}
}
Optional<Extension> e = step.getExtension();
if (e.isPresent()) {
Extension extension = e.get();
addModelToExport(export, extension);
}
}
}
use of io.syndesis.common.model.integration.Step in project syndesis by syndesisio.
the class ConnectorHandlerTest method shouldAugmentWithConnectorUsage.
@Test
public void shouldAugmentWithConnectorUsage() {
final Connector connector1 = newConnector("1");
final Connector connector2 = newConnector("2");
final Connector connector3 = newConnector("3");
final Step step1a = new Step.Builder().action(newActionBy(connector1)).build();
final Step step1b = new Step.Builder().action(newActionBy(connector1)).build();
final Step step2 = new Step.Builder().action(newActionBy(connector2)).build();
final Integration deployment1 = newIntegration(Arrays.asList(step1a, step1b));
final Integration deployment2 = newIntegration(Collections.singletonList(step2));
final Integration deployment3 = newIntegration(Collections.singletonList(step2));
when(dataManager.fetchAll(Integration.class)).thenReturn(new ListResult.Builder<Integration>().addItem(deployment1, deployment2, deployment3).build());
final List<Connector> augmented = handler.augmentedWithUsage(Arrays.asList(connector1, connector2, connector3));
assertThat(augmented).contains(usedConnector(connector1, 1), usedConnector(connector2, 2), usedConnector(connector3, 0));
}
use of io.syndesis.common.model.integration.Step in project syndesis by syndesisio.
the class ActiveMQConnectionTest method newActiveMQEndpointStep.
// **************************
// Helpers
// **************************
protected Step newActiveMQEndpointStep(String actionId, Consumer<Step.Builder> consumer) {
final Connector connector = getResourceManager().mandatoryLoadConnector("activemq");
final ConnectorAction action = getResourceManager().mandatoryLookupAction(connector, actionId);
final Step.Builder builder = new Step.Builder().stepKind(StepKind.endpoint).action(action).connection(new io.syndesis.common.model.connection.Connection.Builder().connector(connector).build());
consumer.accept(builder);
return builder.build();
}
use of io.syndesis.common.model.integration.Step in project syndesis by syndesisio.
the class IntegrationResourceManager method collectDependencies.
/**
* Collect dependencies.
*/
default Collection<Dependency> collectDependencies(Collection<? extends Step> steps, boolean resolveExtensionTags) {
final List<Dependency> dependencies = new ArrayList<>();
for (Step step : steps) {
step.getAction().filter(WithDependencies.class::isInstance).map(WithDependencies.class::cast).map(WithDependencies::getDependencies).ifPresent(dependencies::addAll);
List<Dependency> connectorDependencies = step.getConnection().flatMap(Connection::getConnector).map(WithDependencies::getDependencies).orElse(Collections.emptyList());
dependencies.addAll(connectorDependencies);
List<Dependency> lookedUpConnectorDependecies = step.getConnection().filter(c -> !c.getConnector().isPresent()).map(Connection::getConnectorId).flatMap(this::loadConnector).map(WithDependencies::getDependencies).orElse(Collections.emptyList());
dependencies.addAll(lookedUpConnectorDependecies);
// Connector extension
Stream.concat(connectorDependencies.stream(), lookedUpConnectorDependecies.stream()).filter(Dependency::isExtension).map(Dependency::getId).map(this::loadExtension).filter(Optional::isPresent).map(Optional::get).map(Extension::getDependencies).forEach(dependencies::addAll);
// Step extension
step.getExtension().map(WithDependencies::getDependencies).ifPresent(dependencies::addAll);
step.getExtension().map(Extension::getExtensionId).map(Dependency::extension).ifPresent(dependencies::add);
}
if (resolveExtensionTags) {
return dependencies.stream().flatMap(dep -> {
if (dep.isExtensionTag()) {
List<Extension> extensions = this.loadExtensionsByTag(dep.getId());
Stream<Dependency> extensionDependency = extensions.stream().map(ext -> Dependency.extension(ext.getExtensionId()));
Stream<Dependency> transitive = extensions.stream().map(Extension::getDependencies).flatMap(Collection::stream);
return Stream.concat(extensionDependency, transitive);
} else {
return Stream.of(dep);
}
}).collect(Collectors.toCollection(ArrayList::new));
} else {
return dependencies;
}
}
use of io.syndesis.common.model.integration.Step in project syndesis by syndesisio.
the class ConnectorTestSupport method newEndpointStep.
protected final Step newEndpointStep(String connectorId, String actionId, Consumer<Connection.Builder> connectionConsumer, Consumer<Step.Builder> stepConsumer) {
Connector connector = resourceManager.mandatoryLoadConnector(connectorId);
ConnectorAction action = resourceManager.mandatoryLookupAction(connector, actionId);
Connection.Builder connectionBuilder = new Connection.Builder().connector(connector);
connectionConsumer.accept(connectionBuilder);
Step.Builder stepBuilder = new Step.Builder().stepKind(StepKind.endpoint).action(action).connection(connectionBuilder.build());
stepConsumer.accept(stepBuilder);
return stepBuilder.build();
}
Aggregations