private XmlDslModel getXmlLanguageModel(Xml xml, ExtensionDeclaration extensionDeclaration) { final Optional<String> extensionNamespace = xml != null ? ofNullable(xml.prefix()) : empty(); final Optional<String> extensionNamespaceLocation = xml != null ? ofNullable(xml.namespace()) : empty(); return createXmlLanguageModel(extensionNamespace, extensionNamespaceLocation, extensionDeclaration.getName(), extensionDeclaration.getVersion()); } }
private Set<ErrorModel> getSoapErrors(ExtensionDeclarer declarer) { ErrorsModelFactory factory = new ErrorsModelFactory(SoapErrors.class.getEnumConstants(), declarer.getDeclaration().getName()); return factory.getErrorModels(); } }
@Override public void enrich(ExtensionLoadingContext extensionLoadingContext) { ExtensionDeclarer declarer = extensionLoadingContext.getExtensionDeclarer(); ExtensionDeclaration extensionDeclaration = declarer.getDeclaration(); Optional<ExtensionTypeDescriptorModelProperty> implementingType = extensionDeclaration.getModelProperty(ExtensionTypeDescriptorModelProperty.class); if (!implementingType.isPresent()) { return; } Type type = implementingType.get().getType(); List<AnnotationValueFetcher<SubTypeMapping>> typeMappings = parseRepeatableAnnotation(type, SubTypeMapping.class, c -> ((SubTypesMapping) c).value()); if (!typeMappings.isEmpty()) { declareSubTypesMapping(declarer, typeMappings, extensionDeclaration.getName()); } }
format("There should be only one Import declaration for any given type in extension [%s]." + " Multiple imports of the same type are not allowed", extensionDeclaration.getName()));
private void assertExtensionProperties(ExtensionDeclaration extensionDeclaration, String expectedName) { assertThat(extensionDeclaration, is(notNullValue())); assertThat(extensionDeclaration.getName(), is(expectedName)); assertThat(extensionDeclaration.getVersion(), is(MULE_VERSION)); }
/** * {@inheritDoc} */ @Override public void enrich(ExtensionLoadingContext loadingContext) { String name = loadingContext.getExtensionDeclarer().getDeclaration().getName(); ClassLoader classLoader = loadingContext.getExtensionClassLoader(); try (InputStream resource = classLoader.getResourceAsStream("META-INF/" + serializer.getFileName(name))) { if (resource != null) { XmlExtensionDocumentation documenter = withContextClassLoader( ExtensionDescriptionsEnricher.class .getClassLoader(), () -> serializer .deserialize(IOUtils.toString(resource))); document(loadingContext.getExtensionDeclarer().getDeclaration(), documenter); } } catch (IOException e) { throw new RuntimeException("Cannot get descriptions persisted in the extensions-descriptions.xml file", e); } }
private void addBackPressureParameter(ExtensionDeclaration extensionDeclaration, SourceDeclaration sourceDeclaration, BackPressureStrategyModelProperty property) { ParameterDeclaration parameter = new ParameterDeclaration(BACK_PRESSURE_STRATEGY_PARAMETER_NAME); parameter.setDescription(BACK_PRESSURE_STRATEGY_PARAMETER_DESCRIPTION); parameter.setRequired(false); parameter.setDefaultValue(property.getDefaultMode()); parameter.setExpressionSupport(NOT_SUPPORTED); parameter.setLayoutModel(LayoutModel.builder().tabName(ADVANCED_TAB).build()); MetadataType type = BaseTypeBuilder.create(JAVA).stringType() .id(format("%s-%s-backPressureStrategy", extensionDeclaration.getName(), sourceDeclaration.getName())) .with(new EnumAnnotation<>(property.getSupportedModes().stream().map(BackPressureMode::name).toArray(String[]::new))) .build(); parameter.setType(type, false); sourceDeclaration.getParameterGroup(DEFAULT_GROUP_NAME).addParameter(parameter); }
@Test public void extension() { assertThat(extensionDeclaration.getName(), is(VEGAN)); assertThat(extensionDeclaration.getConfigurations(), hasSize(6)); assertOperation(APPLE, "eatApple"); assertOperation(BANANA, "eatBanana"); assertOperation(KIWI, "eatKiwi"); }
private XmlDslModel getXmlLanguageModel(Xml xml, ExtensionDeclaration extensionDeclaration) { final Optional<String> extensionNamespace = xml != null ? ofNullable(xml.prefix()) : empty(); final Optional<String> extensionNamespaceLocation = xml != null ? ofNullable(xml.namespace()) : empty(); return createXmlLanguageModel(extensionNamespace, extensionNamespaceLocation, extensionDeclaration.getName(), extensionDeclaration.getVersion()); } }
/** * {@inheritDoc} */ @Override public void enrich(ExtensionLoadingContext loadingContext) { String name = loadingContext.getExtensionDeclarer().getDeclaration().getName(); ClassLoader classLoader = loadingContext.getExtensionClassLoader(); URL resource = classLoader.getResource("META-INF/" + serializer.getFileName(name)); if (resource != null) { try { XmlExtensionDocumentation documenter = serializer.deserialize(IOUtils.toString(resource.openStream())); document(loadingContext.getExtensionDeclarer().getDeclaration(), documenter); } catch (IOException e) { throw new RuntimeException("Cannot get descriptions persisted in the extensions-descriptions.xml file", e); } } }
@Override public void enrich(ExtensionLoadingContext extensionLoadingContext) { ExtensionDeclarer declarer = extensionLoadingContext.getExtensionDeclarer(); ExtensionDeclaration extensionDeclaration = declarer.getDeclaration(); Optional<ExtensionTypeDescriptorModelProperty> implementingType = extensionDeclaration.getModelProperty(ExtensionTypeDescriptorModelProperty.class); if (!implementingType.isPresent()) { return; } Type type = implementingType.get().getType(); List<AnnotationValueFetcher<SubTypeMapping>> typeMappings = parseRepeatableAnnotation(type, SubTypeMapping.class, c -> ((SubTypesMapping) c).value()); if (!typeMappings.isEmpty()) { declareSubTypesMapping(declarer, typeMappings, extensionDeclaration.getName()); } }
format("There should be only one Import declaration for any given type in extension [%s]." + " Multiple imports of the same type are not allowed", extensionDeclaration.getName()));
private void addBackPressureParameter(ExtensionDeclaration extensionDeclaration, SourceDeclaration sourceDeclaration, BackPressureStrategyModelProperty property) { ParameterDeclaration parameter = new ParameterDeclaration(BACK_PRESSURE_STRATEGY_PARAMETER_NAME); parameter.setDescription(BACK_PRESSURE_STRATEGY_PARAMETER_DESCRIPTION); parameter.setRequired(false); parameter.setDefaultValue(property.getDefaultMode()); parameter.setExpressionSupport(NOT_SUPPORTED); parameter.setLayoutModel(LayoutModel.builder().tabName(ADVANCED_TAB).build()); MetadataType type = BaseTypeBuilder.create(JAVA).stringType() .id(format("%s-%s-backPressureStrategy", extensionDeclaration.getName(), sourceDeclaration.getName())) .with(new EnumAnnotation<>(property.getSupportedModes().stream().map(BackPressureMode::name).toArray(String[]::new))) .build(); parameter.setType(type, false); sourceDeclaration.getParameterGroup(DEFAULT_GROUP_NAME).addParameter(parameter); }