private void resolveTypedComponentIdentifier(ExtensionModelHelper extensionModelHelper) { executeOnEveryComponentTree(componentModel -> { Optional<TypedComponentIdentifier> typedComponentIdentifier = of(TypedComponentIdentifier.builder().identifier(componentModel.getIdentifier()) .type(resolveComponentType(componentModel, extensionModelHelper)) .build()); componentModel.setComponentType(typedComponentIdentifier.map(typedIdentifier -> typedIdentifier.getType()) .orElse(TypedComponentIdentifier.ComponentType.UNKNOWN)); }); }
Component providerComponent = (Component) provider; TypedComponentIdentifier typedComponentIdentifier = TypedComponentIdentifier.builder() .type(UNKNOWN).identifier(componentIdentifier).build(); DefaultComponentLocation.DefaultLocationPart locationPart = new DefaultComponentLocation.DefaultLocationPart(componentIdentifier.getName(),
private static DefaultComponentLocation buildLocation(final String componentIdentifier) { final TypedComponentIdentifier part = builder().identifier(buildFromStringRepresentation(componentIdentifier)).type(OPERATION).build(); return new DefaultComponentLocation(of("flowName"), singletonList(new DefaultLocationPart("0", of(part), empty(), empty(), empty()))); }
Optional<TypedComponentIdentifier> typedComponentIdentifier = of(builder().identifier(componentModel.getIdentifier()).type(componentModel.getComponentType().orElse(UNKNOWN)) .build()); componentLocation = parentComponentLocation.appendRoutePart() .appendLocationPart(findNonProcessorPath(componentModel), of(TypedComponentIdentifier.builder().type(SCOPE) .identifier(ROUTE_COMPONENT_IDENTIFIER).build()), componentModel.getConfigFileName(), componentModel.getLineNumber()); } else if (isProcessor(componentModel)) { .identifier(ROUTE_COMPONENT_IDENTIFIER).build()), empty(), empty()); .appendLocationPart(BATCH_AGGREGATOR_COMPONENT_IDENTIFIER.getName(), of(TypedComponentIdentifier.builder().type(UNKNOWN) .identifier(BATCH_AGGREGATOR_COMPONENT_IDENTIFIER).build()), componentModel.getConfigFileName(), componentModel.getLineNumber());
Component providerComponent = (Component) provider; TypedComponentIdentifier typedComponentIdentifier = TypedComponentIdentifier.builder() .type(UNKNOWN).identifier(componentIdentifier).build(); DefaultComponentLocation.DefaultLocationPart locationPart = new DefaultComponentLocation.DefaultLocationPart(componentIdentifier.getName(),
/** * Creates a virtual {@link ComponentLocation} for a single element, using the core namespace and using UNKNOWN as type. Only * meant for situations where a real location cannot be obtained. * * @param component the name of the element * @return a location for it */ public static DefaultComponentLocation fromSingleComponent(String component) { DefaultLocationPart part = new DefaultLocationPart(component, of(TypedComponentIdentifier.builder() .type(UNKNOWN) .identifier(ComponentIdentifier .buildFromStringRepresentation(component)) .build()), empty(), empty()); return new DefaultComponentLocation(of(component), asList(part)); }
@Test public void fireNotificationUsingLocation() { final LocationPart flowPart = mock(LocationPart.class); when(flowPart.getPartPath()).thenReturn("flowName"); final ComponentLocation location = mock(ComponentLocation.class); when(location.getParts()).thenReturn(Collections.singletonList(flowPart)); when(location.getComponentIdentifier()).thenReturn(TypedComponentIdentifier.builder() .type(SOURCE) .identifier(buildFromStringRepresentation("http:listener")) .build()); when(messageSource.getLocation()).thenReturn(location); final FlowConstruct flowConstruct = mock(FlowConstruct.class, withSettings().extraInterfaces(Component.class)); when(flowConstruct.getMuleContext()).thenReturn(muleContext); final int action = 100; helper.fireNotification(messageSource, event, location, action); assertConnectorMessageNotification(eventNotificationHandler, messageSource, location, action); }
@Test @Description("Verify that a location produces connector and source data.") public void componentData() throws Exception { TypedComponentIdentifier typedComponentIdentifier = TypedComponentIdentifier.builder() .type(SOURCE) .identifier(buildFromStringRepresentation("http:listener")) .build(); ComponentLocation location = mock(ComponentLocation.class); when(location.getComponentIdentifier()).thenReturn(typedComponentIdentifier); when(location.getParts()).thenReturn(asList(new DefaultLocationPart("flow", empty(), empty(), empty()))); BaseEventContext context = contextWithComponentLocation.apply(location); assertThat(context.getOriginatingLocation().getComponentIdentifier().getIdentifier().getNamespace(), is("http")); assertThat(context.getOriginatingLocation().getComponentIdentifier().getIdentifier().getName(), is("listener")); }
private static DefaultComponentLocation buildLocation(final String componentIdentifier) { final TypedComponentIdentifier part = builder().identifier(buildFromStringRepresentation(componentIdentifier)).type(OPERATION).build(); return new DefaultComponentLocation(of("flowName"), singletonList(new DefaultLocationPart("0", of(part), empty(), empty()))); }
private Optional<TypedComponentIdentifier> getModuleOperationTypeComponentIdentifier(ComponentModel componentModel) { final ComponentIdentifier originalIdentifier = (ComponentIdentifier) componentModel.getCustomAttributes().get(ORIGINAL_IDENTIFIER); final String namespace = originalIdentifier.getNamespace(); final String operationName = originalIdentifier.getName(); final ComponentIdentifier operationIdentifier = ComponentIdentifier.builder().namespace(namespace).name(operationName).build(); return of(builder().identifier(operationIdentifier).type(OPERATION).build()); }
private void resolveTypedComponentIdentifier(ExtensionModelHelper extensionModelHelper) { executeOnEveryComponentTree(componentModel -> { Optional<TypedComponentIdentifier> typedComponentIdentifier = of(TypedComponentIdentifier.builder().identifier(componentModel.getIdentifier()) .type(resolveComponentType(componentModel, extensionModelHelper)) .build()); componentModel.setComponentType(typedComponentIdentifier.map(typedIdentifier -> typedIdentifier.getType()) .orElse(TypedComponentIdentifier.ComponentType.UNKNOWN)); }); }
Optional<TypedComponentIdentifier> typedComponentIdentifier = of(builder().identifier(componentModel.getIdentifier()).type(componentModel.getComponentType().orElse(UNKNOWN)) .build()); componentLocation = parentComponentLocation.appendRoutePart() .appendLocationPart(findRoutePath(componentModel), of(TypedComponentIdentifier.builder().type(SCOPE) .identifier(ROUTE_COMPONENT_IDENTIFIER).build()), componentModel.getConfigFileName(), componentModel.getLineNumber(), componentModel.getStartColumn()); } else if (isProcessor(componentModel)) { .appendLocationPart(BATCH_AGGREGATOR_COMPONENT_IDENTIFIER.getName(), of(TypedComponentIdentifier.builder().type(UNKNOWN) .identifier(BATCH_AGGREGATOR_COMPONENT_IDENTIFIER).build()), componentModel.getConfigFileName(), componentModel.getLineNumber(),
@Test public void fireNotificationUsingLocation() { final LocationPart flowPart = mock(LocationPart.class); when(flowPart.getPartPath()).thenReturn("flowName"); final ComponentLocation location = mock(ComponentLocation.class); when(location.getParts()).thenReturn(Collections.singletonList(flowPart)); when(location.getComponentIdentifier()).thenReturn(TypedComponentIdentifier.builder() .type(SOURCE) .identifier(buildFromStringRepresentation("http:listener")) .build()); when(messageSource.getLocation()).thenReturn(location); final FlowConstruct flowConstruct = mock(FlowConstruct.class, withSettings().extraInterfaces(Component.class)); when(flowConstruct.getMuleContext()).thenReturn(muleContext); final int action = 100; helper.fireNotification(messageSource, event, location, action); assertConnectorMessageNotification(eventNotificationHandler, messageSource, location, action); }
@Test @Description("Verify that a location produces connector and source data.") public void componentData() throws Exception { TypedComponentIdentifier typedComponentIdentifier = TypedComponentIdentifier.builder() .type(SOURCE) .identifier(buildFromStringRepresentation("http:listener")) .build(); ComponentLocation location = mock(ComponentLocation.class); when(location.getComponentIdentifier()).thenReturn(typedComponentIdentifier); when(location.getParts()).thenReturn(asList(new DefaultLocationPart("flow", empty(), empty(), empty(), empty()))); BaseEventContext context = contextWithComponentLocation.apply(location); assertThat(context.getOriginatingLocation().getComponentIdentifier().getIdentifier().getNamespace(), is("http")); assertThat(context.getOriginatingLocation().getComponentIdentifier().getIdentifier().getName(), is("listener")); }
private Optional<TypedComponentIdentifier> getModuleOperationTypeComponentIdentifier(ComponentModel componentModel) { final ComponentIdentifier originalIdentifier = (ComponentIdentifier) componentModel.getCustomAttributes().get(ORIGINAL_IDENTIFIER); final String namespace = originalIdentifier.getNamespace(); final String operationName = originalIdentifier.getName(); final ComponentIdentifier operationIdentifier = ComponentIdentifier.builder().namespace(namespace).name(operationName).build(); return of(builder().identifier(operationIdentifier).type(OPERATION).build()); }