public StepKind getStepKind() { return step.getStepKind(); }
@Override public boolean canHandle(Step step) { if (!ExpressionFilterStep.STEP_KIND.equals(step.getStepKind()) && !RuleFilterStep.STEP_KIND.equals(step.getStepKind())) { return false; } return step instanceof FilterStep; }
@Override public boolean canHandle(Step step) { return "mapper".equals(step.getStepKind()); }
@Override public boolean canHandle(Step step) { return "split".equals(step.getStepKind()); }
protected IntegrationStepHandler findHandler(Step step) { for (int i = 0; i < stepHandlerList.size(); i++) { IntegrationStepHandler handler = stepHandlerList.get(i); if (handler.canHandle(step)) { LOGGER.debug("Step kind: {}, handler: {}", step.getStepKind(), handler.getClass().getName()); return handler; } } throw new IllegalStateException("Unsupported step kind: " + step.getStepKind()); } }
@Override public boolean canHandle(Step step) { if (!"extension".equals(step.getStepKind())) { return false; } return step.getAction().filter(StepAction.class::isInstance).isPresent(); }
@Override public Collection<io.syndesis.integration.model.steps.Step> visit(StepVisitorContext stepContext) { try { Step step = stepContext.getStep(); Map<String, Object> stepMap = new HashMap<>(step.getConfiguredProperties()); stepMap.put("kind", step.getStepKind()); String json = OBJECT_MAPPER.writeValueAsString(stepMap); return Collections.singletonList( OBJECT_MAPPER.readValue(json, io.syndesis.integration.model.steps.Step.class) ); } catch (IOException e) { throw SyndesisServerException.launderThrowable(e); } } }
@Override public boolean canHandle(Step step) { if (!"endpoint".equals(step.getStepKind()) && !"connector".equals(step.getStepKind())) { return false; } if (step.getConnection().isPresent()) { return false; } if (!step.getAction().filter(ConnectorAction.class::isInstance).isPresent()) { return false; } ConnectorAction action = step.getAction().filter(ConnectorAction.class::isInstance).map(ConnectorAction.class::cast).get(); if (action.getDescriptor() == null) { return false; } return action.getDescriptor().getComponentScheme().isPresent(); }
@Override public boolean canHandle(Step step) { if (!"endpoint".equals(step.getStepKind()) && !"connector".equals(step.getStepKind())) { return false; } if (!step.getConnection().isPresent()) { return false; } if (!step.getConnection().get().getConnector().isPresent()) { return false; } if (!step.getAction().filter(ConnectorAction.class::isInstance).isPresent()) { return false; } return !Optionals.first( step.getAction().filter(ConnectorAction.class::isInstance).map(ConnectorAction.class::cast).get().getDescriptor().getComponentScheme(), step.getConnection().get().getConnector().get().getComponentScheme() ).isPresent(); }
@Override public boolean canHandle(Step step) { if (!"endpoint".equals(step.getStepKind()) && !"connector".equals(step.getStepKind())) { return false; } if (!step.getConnection().isPresent()) { return false; } if (!step.getConnection().get().getConnector().isPresent()) { return false; } if (!step.getAction().filter(ConnectorAction.class::isInstance).isPresent()) { return false; } return Optionals.first( step.getAction().filter(ConnectorAction.class::isInstance).map(ConnectorAction.class::cast).get().getDescriptor().getComponentScheme(), step.getConnection().get().getConnector().get().getComponentScheme() ).isPresent(); }
@Override public void configure() throws Exception { final IntegrationDeployment deployment = loadDeployment(); final List<? extends Step> steps = deployment.getSpec().getSteps(); ProcessorDefinition route = null; for (int i = 0; i< steps.size(); i++) { final Step step = steps.get(i); if (i == 0 && !"endpoint".equals(step.getStepKind())) { throw new IllegalStateException("No connector found as first step (found: " + step.getKind() + ")"); } final IntegrationStepHandler handler = findHandler(step); final Optional<ProcessorDefinition> definition = handler.handle(step, route, this); if (route == null && definition.isPresent()) { definition.filter(RouteDefinition.class::isInstance) .map(RouteDefinition.class::cast) .map(rd -> rd.getInputs().get(0)) .ifPresent(rd -> { step.getId().ifPresent(rd::id); }); route = definition.get(); deployment.getIntegrationId().ifPresent(route::setId); } else { route = definition.map(rd -> { step.getId().ifPresent(rd::id); return rd; }).orElse(route); } } }
.filter(step -> step.getStepKind().equals("endpoint")) .filter(step -> step.getAction().filter(ConnectorAction.class::isInstance).isPresent()) .filter(step -> step.getConnection().isPresent())
@Override public Collection<io.syndesis.integration.model.steps.Step> visit(StepVisitorContext stepContext) { Step step = stepContext.getStep(); StepVisitorContext currentContext = stepContext; if (step instanceof FilterStep && step.getStepKind().equals(getStepKind())) { Filter filter = createFilter((FilterStep) step); List<io.syndesis.integration.model.steps.Step> steps = new ArrayList<>(); while (stepContext.hasNext()) { currentContext = currentContext.next(); steps.addAll(visit(currentContext)); } filter.setSteps(steps); return Collections.singletonList(filter); } GeneratorContext generatorContext = stepContext.getGeneratorContext(); StepVisitorFactory<?> factory = generatorContext.getVisitorFactoryRegistry().get(stepContext.getStep().getStepKind()); StepVisitor visitor = factory.create(); return visitor.visit(currentContext); }
private void visitStep(StepVisitorContext stepContext) { StepVisitorFactory<?> factory = registry.get(stepContext.getStep().getStepKind()); StepVisitor visitor = factory.create(); Collection<io.syndesis.integration.model.steps.Step> steps = visitor.visit(stepContext); if (steps != null) { steps.forEach(stepContext.getGeneratorContext().getFlow()::addStep); } if (stepContext.hasNext()) { visitStep(stepContext.next()); } }
final Step target; if (ExpressionFilterStep.STEP_KIND.equals(source.getStepKind())) { target = new ExpressionFilterStep.Builder() .createFrom(source) .putMetadata(Step.METADATA_STEP_INDEX, Integer.toString(i)) .build(); } else if (RuleFilterStep.STEP_KIND.equals(source.getStepKind())) { target = new RuleFilterStep.Builder() .createFrom(source)