@Override protected void onSource(SourceDeclaration declaration) { ClusterSupport annotation = getAnnotation(declaration, ClusterSupport.class).orElse(null); if (annotation != null) { SourceClusterSupport clusterSupport = annotation.value(); if (clusterSupport == NOT_SUPPORTED) { declaration.setRunsOnPrimaryNodeOnly(true); } else { declaration.setRunsOnPrimaryNodeOnly(false); addPrimaryNodeParameter(declaration, clusterSupport == DEFAULT_PRIMARY_NODE_ONLY); } } else { declaration.setRunsOnPrimaryNodeOnly(false); addPrimaryNodeParameter(declaration, false); } } }.walk(extensionLoadingContext.getExtensionDeclarer().getDeclaration());
private void assertEnrichment(boolean runsOnPrimaryNodeOnly, boolean parameterAdded, boolean defaultParameterValue) { enricher.enrich(extensionLoadingContext); verify(sourceDeclaration).setRunsOnPrimaryNodeOnly(runsOnPrimaryNodeOnly); if (parameterAdded) { ArgumentCaptor<ParameterDeclaration> captor = ArgumentCaptor.forClass(ParameterDeclaration.class); verify(parameterGroup).addParameter(captor.capture()); ParameterDeclaration parameter = captor.getValue(); assertThat(parameter.getName(), equalTo(PRIMARY_NODE_ONLY_PARAMETER_NAME)); assertThat(parameter.getDefaultValue(), is(defaultParameterValue)); } else { verify(parameterGroup, never()).addParameter(any()); } }
@Override protected void onSource(SourceDeclaration source) { extractType(source).ifPresent(type -> { if (type.isAssignableTo(PollingSource.class)) { source.setRunsOnPrimaryNodeOnly(true); ParameterDeclaration parameter = new ParameterDeclaration(SCHEDULING_STRATEGY_PARAMETER_NAME); parameter.setDescription(SCHEDULING_STRATEGY_PARAMETER_DESCRIPTION); parameter.setRequired(true); parameter.setType(loader.load(Scheduler.class), false); parameter.setExpressionSupport(NOT_SUPPORTED); parameter.addModelProperty(new InfrastructureParameterModelProperty(10)); parameter.addModelProperty(new QNameModelProperty(new QName(CORE_NAMESPACE, SCHEDULING_STRATEGY_ELEMENT_IDENTIFIER, CORE_PREFIX))); parameter.setDslConfiguration(ParameterDslConfiguration.builder() .allowsInlineDefinition(true) .allowsReferences(false) .allowTopLevelDefinition(false) .build()); thereArePollingSources.set(true); source.getParameterGroup(DEFAULT_GROUP_NAME).addParameter(parameter); } }); } }.walk(extensionDeclarer.getDeclaration());
@Override protected void onSource(SourceDeclaration declaration) { ClusterSupport annotation = getAnnotation(declaration, ClusterSupport.class).orElse(null); if (annotation != null) { SourceClusterSupport clusterSupport = annotation.value(); if (clusterSupport == NOT_SUPPORTED) { declaration.setRunsOnPrimaryNodeOnly(true); } else { declaration.setRunsOnPrimaryNodeOnly(false); addPrimaryNodeParameter(declaration, clusterSupport == DEFAULT_PRIMARY_NODE_ONLY); } } else { declaration.setRunsOnPrimaryNodeOnly(false); addPrimaryNodeParameter(declaration, false); } } }.walk(extensionLoadingContext.getExtensionDeclarer().getDeclaration());
@Override protected void onSource(SourceDeclaration source) { extractType(source).ifPresent(type -> { if (type.isAssignableTo(PollingSource.class)) { source.setRunsOnPrimaryNodeOnly(true); ParameterDeclaration parameter = new ParameterDeclaration(SCHEDULING_STRATEGY_PARAMETER_NAME); parameter.setDescription(SCHEDULING_STRATEGY_PARAMETER_DESCRIPTION); parameter.setRequired(true); parameter.setType(loader.load(Scheduler.class), false); parameter.setExpressionSupport(NOT_SUPPORTED); parameter.addModelProperty(new InfrastructureParameterModelProperty(10)); parameter.addModelProperty(new QNameModelProperty(new QName(CORE_NAMESPACE, SCHEDULING_STRATEGY_ELEMENT_IDENTIFIER, CORE_PREFIX))); parameter.setDslConfiguration(ParameterDslConfiguration.builder() .allowsInlineDefinition(true) .allowsReferences(false) .allowTopLevelDefinition(false) .build()); thereArePollingSources.set(true); source.getParameterGroup(DEFAULT_GROUP_NAME).addParameter(parameter); } }); } }.walk(extensionDeclarer.getDeclaration());