Search in sources :

Example 36 with Step

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);
        }
    }
}
Also used : Extension(io.syndesis.common.model.extension.Extension) Connector(io.syndesis.common.model.connection.Connector) Connection(io.syndesis.common.model.connection.Connection) Step(io.syndesis.common.model.integration.Step)

Example 37 with Step

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));
}
Also used : ListResult(io.syndesis.common.model.ListResult) Connector(io.syndesis.common.model.connection.Connector) Integration(io.syndesis.common.model.integration.Integration) Step(io.syndesis.common.model.integration.Step) Test(org.junit.Test)

Example 38 with Step

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();
}
Also used : Connector(io.syndesis.common.model.connection.Connector) ConnectorAction(io.syndesis.common.model.action.ConnectorAction) Step(io.syndesis.common.model.integration.Step)

Example 39 with Step

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;
    }
}
Also used : Extension(io.syndesis.common.model.extension.Extension) Step(io.syndesis.common.model.integration.Step) Collection(java.util.Collection) Connector(io.syndesis.common.model.connection.Connector) Extension(io.syndesis.common.model.extension.Extension) WithDependencies(io.syndesis.common.model.WithDependencies) Collectors(java.util.stream.Collectors) ArrayList(java.util.ArrayList) Dependency(io.syndesis.common.model.Dependency) List(java.util.List) Stream(java.util.stream.Stream) Connection(io.syndesis.common.model.connection.Connection) Optional(java.util.Optional) Integration(io.syndesis.common.model.integration.Integration) Collections(java.util.Collections) InputStream(java.io.InputStream) WithDependencies(io.syndesis.common.model.WithDependencies) Optional(java.util.Optional) ArrayList(java.util.ArrayList) Connection(io.syndesis.common.model.connection.Connection) ArrayList(java.util.ArrayList) List(java.util.List) Stream(java.util.stream.Stream) InputStream(java.io.InputStream) Dependency(io.syndesis.common.model.Dependency) Step(io.syndesis.common.model.integration.Step)

Example 40 with Step

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();
}
Also used : Connector(io.syndesis.common.model.connection.Connector) Connection(io.syndesis.common.model.connection.Connection) ConnectorAction(io.syndesis.common.model.action.ConnectorAction) Step(io.syndesis.common.model.integration.Step)

Aggregations

Step (io.syndesis.common.model.integration.Step)40 Connector (io.syndesis.common.model.connection.Connector)26 Connection (io.syndesis.common.model.connection.Connection)22 StepDefinition (io.syndesis.qe.bdd.entities.StepDefinition)17 ConnectorDescriptor (io.syndesis.common.model.action.ConnectorDescriptor)16 Integration (io.syndesis.common.model.integration.Integration)14 Action (io.syndesis.common.model.action.Action)13 ConnectorAction (io.syndesis.common.model.action.ConnectorAction)12 Given (cucumber.api.java.en.Given)10 AbstractStep (io.syndesis.qe.bdd.AbstractStep)9 List (java.util.List)6 StepKind (io.syndesis.common.model.integration.StepKind)5 DataMapperStepDefinition (io.syndesis.qe.bdd.entities.DataMapperStepDefinition)5 ArrayList (java.util.ArrayList)5 Collectors (java.util.stream.Collectors)5 And (cucumber.api.java.en.And)4 Extension (io.syndesis.common.model.extension.Extension)4 InputStream (java.io.InputStream)4 Then (cucumber.api.java.en.Then)3 IOException (java.io.IOException)3