private Optional<DslElementModel<ObjectType>> resolveBasedOnTypes(ComponentConfiguration configuration) { return currentExtension.getTypes().stream() .map(type -> resolveBasedOnType(type, configuration, new ArrayDeque<>())) .filter(Optional::isPresent) .map(Optional::get) .findFirst(); }
private void registerExportedTypesTopLevelParsers(ExtensionModel extensionModel, Builder definitionBuilder, ClassLoader extensionClassLoader, DslSyntaxResolver dslSyntaxResolver, ExtensionParsingContext parsingContext, ReflectionCache reflectionCache) { registerTopLevelParameters(extensionModel.getTypes().stream(), definitionBuilder, extensionClassLoader, dslSyntaxResolver, parsingContext, reflectionCache); }
private void collectManuallyExportedPackages() { extensionModel.getTypes().forEach(t -> getId(t).ifPresent(exportedClasses::add)); }
private List<XmlExtensionElementDocumentation> getTypesDocumentation(ExtensionModel extensionModel) { List<XmlExtensionElementDocumentation> types = new ArrayList<>(); extensionModel.getTypes().forEach(type -> ExtensionMetadataTypeUtils.getId(type) .ifPresent(id -> { XmlExtensionElementDocumentation element = new XmlExtensionElementDocumentation(); element.setName(id); element.setDescription(type.getAnnotation(DescriptionAnnotation.class) .map(DescriptionAnnotation::getValue).orElse("")); element.setParameters(type.getFields().stream() .map(f -> new XmlExtensionParameterDocumentation(getAlias(f), f.getAnnotation(DescriptionAnnotation.class) .map(DescriptionAnnotation::getValue).orElse(""))) .collect(toList())); types.add(element); })); return types; }
@Test public void assertTypes() throws Exception { assertTypes(extensionModel.getTypes(), true, "Type %s was not present", Ricin.class, KnockeableDoor.class, HeisenbergException.class, CarWash.class, Weapon.class, Weapon.WeaponAttributes.class, PersonalInfo.class, Methylamine.class); assertTypes(extensionModel.getTypes(), false, "Invalid type %s was exported", Object.class, Map.class); }
@Test public void exportedTypesWithStereotypes() { Optional<ObjectType> withStereoType = marvelExtension.getTypes().stream() .filter(type -> type.getAnnotation(StereotypeTypeAnnotation.class).isPresent()) .findFirst(); assertThat(withStereoType.isPresent(), is(true)); Optional<StereotypeTypeAnnotation> stereotype = withStereoType.get().getAnnotation(StereotypeTypeAnnotation.class); List<StereotypeModel> allowedStereotypes = stereotype.get().getAllowedStereotypes(); assertThat(allowedStereotypes, hasSize(1)); assertStereotype(allowedStereotypes.get(0), MARVEL_EXTENSION, DR_STRANGE_STEREOTYPE_NAME, null); }
@Test public void noInfrastructureTypes() throws Exception { extensionModel.getTypes() .forEach(type -> assertThat(type.getAnnotation(InfrastructureTypeAnnotation.class).isPresent(), is(false))); }
ownerExtension.getTypes().stream() .filter(type -> dsl.resolve(type).map(typeDsl -> typeDsl.getElementName().equals(configLine.getIdentifier())) .orElse(false))
@Test @Description("Checks that types that are declared in the extension but not used explicitly are added") public void addsUnusedDeclaredTypes() throws Exception { assertTypes(extensionModel.getTypes(), true, "Type %s was not present", Drug.class, Meta.class); } }
public static SchemaBuilder newSchema(ExtensionModel extensionModel, XmlDslModel xmlDslModel, DslResolvingContext dslContext) { SchemaBuilder builder = new SchemaBuilder(); builder.extensionModel = extensionModel; builder.schema = new Schema(); builder.schema.setTargetNamespace(xmlDslModel.getNamespace()); builder.schema.setElementFormDefault(FormChoice.QUALIFIED); builder.schema.setAttributeFormDefault(FormChoice.UNQUALIFIED); builder.withDslSyntaxResolver(extensionModel, dslContext) .importXmlNamespace() .importSpringFrameworkNamespace() .importMuleNamespace(); builder.initialiseDelegates(); builder.withImportedTypes(extensionModel.getImportedTypes()); builder.withTypeMapping(extensionModel); builder.withTypes(extensionModel.getTypes()); return builder; }
hasItem(newError(TRANSFORMATION).withParent(errorMuleAny).build())); assertThat(coreExtensionModel.getTypes(), hasSize(5));
private void registerExportedTypesTopLevelParsers(ExtensionModel extensionModel, Builder definitionBuilder, ClassLoader extensionClassLoader, DslSyntaxResolver dslSyntaxResolver, ExtensionParsingContext parsingContext, ReflectionCache reflectionCache) { registerTopLevelParameters(extensionModel.getTypes().stream(), definitionBuilder, extensionClassLoader, dslSyntaxResolver, parsingContext, reflectionCache); }
private Optional<DslElementModel<ObjectType>> resolveBasedOnTypes(ComponentConfiguration configuration) { return currentExtension.getTypes().stream() .map(type -> resolveBasedOnType(type, configuration, new ArrayDeque<>())) .filter(Optional::isPresent) .map(Optional::get) .findFirst(); }
private void collectManuallyExportedPackages() { extensionModel.getTypes().forEach(t -> getId(t).ifPresent(exportedClasses::add)); }
/** * Serializes an {@link ExtensionModel} into JSON * * @param extensionModel {@link ExtensionModel} to be serialized * @return {@link String} JSON representation of the {@link ExtensionModel} */ public String serialize(ExtensionModel extensionModel) { registeredTypes = extensionModel.getTypes(); importedTypes = extensionModel.getImportedTypes().stream() .map(ImportedTypeModel::getImportedType) .collect(Collectors.toSet()); return buildGson().toJson(extensionModel); }
private List<XmlExtensionElementDocumentation> getTypesDocumentation(ExtensionModel extensionModel) { List<XmlExtensionElementDocumentation> types = new ArrayList<>(); extensionModel.getTypes().forEach(type -> ExtensionMetadataTypeUtils.getId(type) .ifPresent(id -> { XmlExtensionElementDocumentation element = new XmlExtensionElementDocumentation(); element.setName(id); element.setDescription(type.getAnnotation(DescriptionAnnotation.class) .map(DescriptionAnnotation::getValue).orElse("")); element.setParameters(type.getFields().stream() .map(f -> new XmlExtensionParameterDocumentation(getAlias(f), f.getAnnotation(DescriptionAnnotation.class) .map(DescriptionAnnotation::getValue).orElse(""))) .collect(toList())); types.add(element); })); return types; }
ownerExtension.getTypes().stream() .filter(type -> dsl.resolve(type).map(typeDsl -> typeDsl.getElementName().equals(configLine.getIdentifier())) .orElse(false))
@Override public void write(JsonWriter out, ExtensionModel model) throws IOException { out.beginObject(); out.name(NAME).value(model.getName()); out.name(DESCRIPTION).value(model.getDescription()); out.name(VERSION).value(model.getVersion()); out.name(VENDOR).value(model.getVendor()); writeWithDelegate(model.getCategory(), CATEGORY, out, new TypeToken<Category>() {}); writeWithDelegate(model.getXmlDslModel(), XML_DSL, out, new TypeToken<XmlDslModel>() {}); writeWithDelegate(model.getResources(), RESOURCES, out, new TypeToken<Set<String>>() {}); writeWithDelegate(model.getSubTypes(), SUB_TYPES, out, new TypeToken<Set<SubTypesModel>>() {}); writeWithDelegate(model.getPrivilegedPackages(), PRIVILEGED_PACKAGES, out, new TypeToken<Set<String>>() {}); writeWithDelegate(model.getPrivilegedArtifacts(), PRIVILEGED_ARTIFACTS, out, new TypeToken<Set<String>>() {}); writeWithDelegate(model.getExternalLibraryModels(), EXTERNAL_LIBRARIES, out, new TypeToken<Set<ExternalLibraryModel>>() {}); writeImportedTypes(out, model.getImportedTypes()); writeWithDelegate(model.getDisplayModel().orElse(null), DISPLAY_MODEL, out, new TypeToken<DisplayModel>() {}); writeWithDelegate(model.getConfigurationModels(), CONFIGURATIONS, out, new TypeToken<List<ConfigurationModel>>() {}); writeWithDelegate(model.getOperationModels(), OPERATIONS, out, new TypeToken<List<OperationModel>>() {}); writeWithDelegate(model.getFunctionModels(), FUNCTIONS, out, new TypeToken<List<FunctionModel>>() {}); writeWithDelegate(model.getConstructModels(), CONSTRUCTS, out, new TypeToken<List<ConstructModel>>() {}); writeWithDelegate(model.getConnectionProviders(), CONNECTION_PROVIDERS, out, new TypeToken<List<ConnectionProviderModel>>() {}); writeWithDelegate(model.getSourceModels(), MESSAGE_SOURCES, out, new TypeToken<List<SourceModel>>() {}); notificationModelDelegate.writeNotifications(model.getNotificationModels(), out); errorModelDelegate.writeErrors(model.getErrorModels(), out); writeExtensionLevelModelProperties(out, model); writeTypes(TYPES, out, model.getTypes()); out.endObject(); }
public static SchemaBuilder newSchema(ExtensionModel extensionModel, XmlDslModel xmlDslModel, DslResolvingContext dslContext) { SchemaBuilder builder = new SchemaBuilder(); builder.extensionModel = extensionModel; builder.schema = new Schema(); builder.schema.setTargetNamespace(xmlDslModel.getNamespace()); builder.schema.setElementFormDefault(FormChoice.QUALIFIED); builder.schema.setAttributeFormDefault(FormChoice.UNQUALIFIED); builder.withDslSyntaxResolver(extensionModel, dslContext) .importXmlNamespace() .importSpringFrameworkNamespace() .importMuleNamespace(); builder.initialiseDelegates(); builder.withImportedTypes(extensionModel.getImportedTypes()); builder.withTypeMapping(extensionModel); builder.withTypes(extensionModel.getTypes()); return builder; }
hasItem(newError(TRANSFORMATION).withParent(errorMuleAny).build())); assertThat(coreExtensionModel.getTypes(), hasSize(5));