@Override public Integration updateFlowExcerpts(Integration integration) { // Update excerpt for api provider endpoints only if (integration == null || !integration.getTags().contains("api-provider")) { return integration; } return new Integration.Builder() .createFrom(integration) .flows(integration.getFlows().stream() .map(this::flowWithExcerpts) .collect(Collectors.toList())) .build(); }
private void setVersion(IntegrationDeployment integrationDeployment) { Integration integration = integrationDeployment.getIntegrationId().map(i -> dataManager.fetch(Integration.class, i)).orElseThrow(()-> new IllegalStateException("Integration not found!")); dataManager.update(new Integration.Builder().createFrom(integration).version(integrationDeployment.getVersion()).build()); }
@Test public void shouldNotCountUsedExtensionsInDeletedIntegrations() { final ExtensionHandler handler = new ExtensionHandler(data, null, null, null, resource); when(data.fetchAll(Integration.class)) .thenReturn(ListResult.of(new Integration.Builder().createFrom(integration).isDeleted(true).build())); when(data.fetchAll(IntegrationDeployment.class)).thenReturn(ListResult.of(publishedDeployment)); when(resource.collectDependencies(integration)) .thenReturn(Collections.singleton(new Dependency.Builder().id("extension-1").type(Type.EXTENSION).build())); assertThat(handler.enhance(extension).getUses()).hasValue(0); }
ProjectGenerator generator = new ProjectGenerator(configuration, resourceManager, TestConstants.MAVEN_PROPERTIES); Integration integration = new Integration.Builder() .createFrom(resourceManager.newIntegration(s1, s2)) .putConfiguredProperty("integration", "property") .build();
.createFrom(sqlIntegration) .flows(Collections.singleton(new Flow.Builder().id(id + ":flow").addStep(modStep).build())) .build();
.createFrom(sqlIntegration) .flows(Collections.singleton(new Flow.Builder().steps(Collections.singletonList(modStep)).build())) .build();
.createFrom(integration) .flows(singleton(flowWithScheduler)) .build();
.createFrom(integration) .flows(singleton(flowWithScheduler)) .build();
.createFrom(integration) .flows(singleton(flowWithScheduler)) .build();
@Test public void shouldDeleteIntegrationsUpdatingDeploymentsAndDeletingOpensShiftResources() { final Integration integration = new Integration.Builder().id("to-delete").build(); when(dataManager.fetch(Integration.class, "to-delete")).thenReturn(integration); final Integration firstIntegration = new Integration.Builder().createFrom(integration).name("first to delete") .build(); final IntegrationDeployment deployment1 = new IntegrationDeployment.Builder().spec(firstIntegration).version(1) .targetState(IntegrationDeploymentState.Unpublished) .stepsDone(Collections.singletonMap("deploy", "something")).build(); final Integration secondIntegration = new Integration.Builder().createFrom(integration).name("second to delete") .build(); final IntegrationDeployment deployment2 = new IntegrationDeployment.Builder().spec(secondIntegration).version(2) .currentState(IntegrationDeploymentState.Published).targetState(IntegrationDeploymentState.Published) .stepsDone(Collections.singletonMap("deploy", "something")).build(); when(dataManager.fetchAllByPropertyValue(IntegrationDeployment.class, "integrationId", "to-delete")) .thenReturn(Stream.of(deployment1, deployment2)); final ArgumentCaptor<Integration> updated = ArgumentCaptor.forClass(Integration.class); doNothing().when(dataManager).update(updated.capture()); handler.delete("to-delete"); assertThat(updated.getValue()).isEqualToIgnoringGivenFields( new Integration.Builder().createFrom(integration).isDeleted(true).build(), "updatedAt"); verify(dataManager).update(new IntegrationDeployment.Builder().spec(firstIntegration).version(1) .currentState(IntegrationDeploymentState.Pending).targetState(IntegrationDeploymentState.Unpublished) .build().deleted()); verify(dataManager).update(new IntegrationDeployment.Builder().spec(secondIntegration).version(2) .currentState(IntegrationDeploymentState.Published).targetState(IntegrationDeploymentState.Unpublished) .build().deleted().deleted()); verify(openShiftService).delete("first to delete"); verify(openShiftService).delete("second to delete"); }
/** * Creates an immutable copy of a {@link Integration} value. * Uses accessors to get values to initialize the new immutable instance. * If an instance is already immutable, it is returned as is. * @param instance The instance to copy * @return A copied immutable Integration instance */ public static Integration copyOf(Integration instance) { if (instance instanceof ImmutableIntegration) { return (ImmutableIntegration) instance; } return new Integration.Builder() .createFrom(instance) .build(); }
default IntegrationDeployment deleted() { final Integration integration = new Integration.Builder().createFrom(getSpec()).isDeleted(true).build(); return builder().spec(integration).build(); }