Skip to content

Commit

Permalink
Merge pull request #440 from aml-org/publish-6.0.2
Browse files Browse the repository at this point in the history
publish 6.0.2
arielmirra authored Dec 13, 2021
2 parents e62f707 + 3a46751 commit d5b9153
Showing 11 changed files with 79 additions and 78 deletions.
Original file line number Diff line number Diff line change
@@ -32,6 +32,7 @@ import amf.core.client.scala.execution.ExecutionEnvironment
import amf.core.client.scala.model.domain.AnnotationGraphLoader
import amf.core.client.scala.resource.ResourceLoader
import amf.core.client.scala.transform.{TransformationPipeline, TransformationPipelineRunner}
import amf.core.client.scala.vocabulary.NamespaceAliases
import amf.core.internal.annotations.serializable.CoreSerializableAnnotations
import amf.core.internal.entities.CoreEntities
import amf.core.internal.metamodel.ModelDefaultBuilder
@@ -174,6 +175,10 @@ class AMLConfiguration private[amf] (override private[amf] val resolvers: AMFRes
copy(registry = registry.withExtensions(dialect))
}

private[amf] def withAliases(aliases: NamespaceAliases): AMLConfiguration = {
copy(registry = registry.withAliases(aliases))
}

/**
* Set [[BaseExecutionEnvironment]]
* @param executionEnv [[BaseExecutionEnvironment]] to set to configuration object
Original file line number Diff line number Diff line change
@@ -9,7 +9,7 @@ import amf.core.client.common.validation.ProfileName
import amf.core.client.scala.model.StrField
import amf.core.client.scala.model.document.{BaseUnit, DeclaresModel, EncodesModel}
import amf.core.client.scala.model.domain.DomainElement
import amf.core.internal.metamodel.{Obj, Type}
import amf.core.internal.metamodel.Type
import amf.core.internal.metamodel.document.DocumentModel.Encodes
import amf.core.internal.metamodel.document.ModuleModel.{Declares, References}
import amf.core.internal.parser.domain.{Annotations, Fields}
@@ -95,11 +95,18 @@ case class Dialect(fields: Fields, annotations: Annotations)
private[amf] def usesHeaderMatching: Boolean = !usesKeyPropertyMatching
private[amf] def extensionIndex: Map[String, Dialect] =
extensions().map(e => e.extensionName().value() -> this).toMap
private[amf] def extensionModels: Map[String, Type] =
extensions().map { semantic =>
val annotation = SemanticExtensionHelper.findAnnotationMapping(this, semantic)
annotation.nodePropertyMapping().value() -> annotation.toField().`type`
}.toMap
private[amf] def extensionModels: Map[String, Map[String, Type]] = {
extensions()
.map { semantic =>
val annotation = SemanticExtensionHelper.findAnnotationMapping(this, semantic)
annotation.domain().value() -> (annotation.nodePropertyMapping().value() -> annotation.toField().`type`)
}
.groupBy(x => x._1)
.mapValues(values =>
values.map { x =>
x._2
}.toMap)
}
}

object Dialect {
Original file line number Diff line number Diff line change
@@ -192,7 +192,7 @@ case class DialectDomainElement(override val fields: Fields, annotations: Annota
private[amf] def literalProperty(f: Field): Option[Any] = literalProperties(f).headOption
private[amf] def literalProperties(f: Field): Seq[Any] = graph.scalarByField(f)

private[amf] override def componentId: String = ""
private[amf] override def componentId: String = "element"

private def setObjInCollection(f: Field, node: Either[YNode, YMapEntry], newObj: DialectDomainElement) = {
val (annotations, _) = getAnnotationsOf(node)

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package amf.aml.internal.namespace

import amf.aml.client.scala.model.document.Dialect
import amf.core.client.scala.vocabulary.{Namespace, NamespaceAliases}
import amf.core.internal.annotations.{Aliases, ReferencedInfo}
import amf.core.internal.annotations.Aliases.Alias

object DialectNamespaceAliases {
def apply(dialect: Dialect): NamespaceAliases = {
val externalAliases: Seq[(String, Namespace)] = dialect.externals.map { external =>
external.alias.value() -> Namespace(external.base.value())
}

val annotAliases: Seq[(Alias, Namespace)] = dialect.annotations
.find(classOf[Aliases])
.map { aliasesAnnotation =>
aliasesAnnotation.aliases.toList.map {
case (alias, ReferencedInfo(_, url, _)) => alias -> Namespace(url)
}
}
.getOrElse(Nil)

NamespaceAliases((externalAliases ++ annotAliases).toMap)
}
}
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@ import amf.core.client.common.validation.ProfileName
import amf.core.client.scala.model.domain.AnnotationGraphLoader
import amf.core.client.scala.transform.TransformationPipeline
import amf.core.client.scala.validation.EffectiveValidationsCompute
import amf.core.client.scala.vocabulary.{Namespace, NamespaceAliases}
import amf.core.internal.metamodel.ModelDefaultBuilder
import amf.core.internal.plugins.AMFPlugin
import amf.core.internal.plugins.parse.DomainParsingFallback
@@ -28,8 +29,14 @@ private[amf] class AMLRegistry(plugins: PluginsRegistry,
transformationPipelines: Map[String, TransformationPipeline],
constraintsRules: Map[ProfileName, ValidationProfile],
effectiveValidations: Map[ProfileName, EffectiveValidations],
extensions: Map[String, Dialect])
extends AMFRegistry(plugins, entitiesRegistry, transformationPipelines, constraintsRules, effectiveValidations) {
extensions: Map[String, Dialect],
namespaceAliases: NamespaceAliases)
extends AMFRegistry(plugins,
entitiesRegistry,
transformationPipelines,
constraintsRules,
effectiveValidations,
namespaceAliases) {

override def withPlugin(amfPlugin: AMFPlugin[_]): AMLRegistry = copy(plugins = plugins.withPlugin(amfPlugin))

@@ -67,6 +74,9 @@ private[amf] class AMLRegistry(plugins: PluginsRegistry,
override def withAnnotations(annotations: Map[String, AnnotationGraphLoader]): AMLRegistry =
copy(entitiesRegistry = entitiesRegistry.withAnnotations(annotations))

override def withAliases(aliases: NamespaceAliases): AMLRegistry =
copy(namespaceAliases = namespaceAliases.merge(aliases))

def withExtensions(dialect: Dialect): AMLRegistry = {
copy(extensions = this.extensions ++ dialect.extensionIndex)
.copy(entitiesRegistry = this.entitiesRegistry.withExtensions(dialect.extensionModels))
@@ -84,21 +94,29 @@ private[amf] class AMLRegistry(plugins: PluginsRegistry,
transformationPipelines: Map[String, TransformationPipeline] = transformationPipelines,
constraintsRules: Map[ProfileName, ValidationProfile] = constraintsRules,
effectiveValidations: Map[ProfileName, EffectiveValidations] = effectiveValidations,
extensions: Map[String, Dialect] = extensions): AMLRegistry =
extensions: Map[String, Dialect] = extensions,
namespaceAliases: NamespaceAliases = namespaceAliases): AMLRegistry =
new AMLRegistry(plugins,
entitiesRegistry,
transformationPipelines,
constraintsRules,
effectiveValidations,
extensions)
extensions,
namespaceAliases)

}

object AMLRegistry {

/** Creates an empty AML Registry */
val empty =
new AMLRegistry(PluginsRegistry.empty, EntitiesRegistry.empty, Map.empty, Map.empty, Map.empty, Map.empty)
new AMLRegistry(PluginsRegistry.empty,
EntitiesRegistry.empty,
Map.empty,
Map.empty,
Map.empty,
Map.empty,
NamespaceAliases())

def apply(registry: AMFRegistry): AMLRegistry =
new AMLRegistry(
@@ -107,6 +125,7 @@ object AMLRegistry {
registry.getTransformationPipelines,
registry.getConstraintsRules,
registry.getEffectiveValidations,
Map.empty
Map.empty,
registry.getNamespaceAliases
)
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package amf.aml.internal.transform.pipelines

import amf.core.internal.transform.stages.{CleanReferencesStage, DeclarationsRemovalStage}
import amf.core.internal.transform.stages.{CleanReferencesStage, DeclarationsRemovalStage, SourceInformationStage}
import amf.aml.internal.transform.steps.{DialectInstanceReferencesResolutionStage, SemanticExtensionFlatteningStage}
import amf.core.client.scala.transform.{TransformationPipeline, TransformationStep}

@@ -11,7 +11,8 @@ class DialectInstanceTransformationPipeline private (override val name: String)
new DialectInstanceReferencesResolutionStage(),
new CleanReferencesStage(),
new DeclarationsRemovalStage(),
SemanticExtensionFlatteningStage
SemanticExtensionFlatteningStage,
SourceInformationStage
)

}
Original file line number Diff line number Diff line change
@@ -3,11 +3,12 @@ package amf.aml.internal.transform.pipelines
import amf.core.client.scala.errorhandling.AMFErrorHandler
import amf.aml.internal.transform.steps.{DialectNodeExtensionStage, DialectReferencesResolutionStage}
import amf.core.client.scala.transform.{TransformationPipeline, TransformationStep}
import amf.core.internal.transform.stages.SourceInformationStage

class DialectTransformationPipeline private (override val name: String) extends TransformationPipeline() {

override def steps: Seq[TransformationStep] =
Seq(new DialectReferencesResolutionStage(), new DialectNodeExtensionStage())
Seq(new DialectReferencesResolutionStage(), new DialectNodeExtensionStage(), SourceInformationStage)

}

Original file line number Diff line number Diff line change
@@ -4,7 +4,7 @@ import amf.aml.client.scala.AMLConfiguration
import amf.aml.client.scala.model.document.Dialect
import amf.aml.client.scala.model.domain.{NodeMapping, ObjectMapProperty}
import amf.aml.internal.metamodel.domain.DialectDomainElementModel
import amf.aml.internal.namespace.AMLDialectNamespaceAliasesPlugin
import amf.aml.internal.namespace.DialectNamespaceAliases
import amf.aml.internal.parse.plugin.AMLDialectInstanceParsingPlugin
import amf.aml.internal.render.emitters.instances.DefaultNodeMappableFinder
import amf.aml.internal.render.plugin.AMLDialectInstanceRenderingPlugin
@@ -43,6 +43,7 @@ private[amf] case class DialectRegister(d: Dialect, configuration: AMLConfigurat
.withValidationProfile(profile)
.withEntities(domainModels)
.withExtensions(dialect)
.withAliases(DialectNamespaceAliases(dialect))
updateSemanticExtensionsProfile(newConfig, profile)
}

@@ -59,8 +60,7 @@ private[amf] case class DialectRegister(d: Dialect, configuration: AMLConfigurat
}

private lazy val plugins: List[AMFPlugin[_]] = {
List(new AMLDialectInstanceParsingPlugin(dialect), new AMLDialectInstanceRenderingPlugin(dialect)) ++ AMLDialectNamespaceAliasesPlugin
.forDialect(dialect)
List(new AMLDialectInstanceParsingPlugin(dialect), new AMLDialectInstanceRenderingPlugin(dialect))
}

private[amf] def resolveDialect(cloned: Dialect) = {
Original file line number Diff line number Diff line change
@@ -15,12 +15,9 @@
<file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml/BaseUnitProcessingData> <http://a.ml/vocabularies/document#transformed> "false"^^<http://www.w3.org/2001/XMLSchema#boolean> .
<file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml/BaseUnitProcessingData> <http://a.ml/vocabularies/meta#definedBy> <file://amf-aml/shared/src/test/resources/vocabularies2/instances/dialect1.yaml> .
<file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml/BaseUnitProcessingData> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://a.ml/vocabularies/document#DialectInstanceProcessingData> .
<file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml/BaseUnitSourceInformation> <http://a.ml/vocabularies/document#rootLocation> "file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml" .
<file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml/BaseUnitSourceInformation> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://a.ml/vocabularies/document#BaseUnitSourceInformation> .
<file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml> <http://a.ml/vocabularies/document#encodes> <file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml#/encodes> .
<file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml> <http://a.ml/vocabularies/document#processingData> <file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml/BaseUnitProcessingData> .
<file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml> <http://a.ml/vocabularies/document#root> "true"^^<http://www.w3.org/2001/XMLSchema#boolean> .
<file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml> <http://a.ml/vocabularies/document#sourceInformation> <file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml/BaseUnitSourceInformation> .
<file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml> <http://a.ml/vocabularies/meta#definedBy> <file://amf-aml/shared/src/test/resources/vocabularies2/instances/dialect1.yaml> .
<file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://a.ml/vocabularies/document#Document> .
<file://amf-aml/shared/src/test/resources/vocabularies2/instances/example1.yaml> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://a.ml/vocabularies/document#Fragment> .
4 changes: 2 additions & 2 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ val ivyLocal = Resolver.file("ivy", file(Path.userHome.absolutePath + "/.ivy2/lo

name := "amf-aml"

ThisBuild / version := "6.0.1"
ThisBuild / version := "6.0.2"
ThisBuild / scalaVersion := "2.12.11"

publish := {}
@@ -35,7 +35,7 @@ lazy val workspaceDirectory: File =
case _ => Path.userHome / "mulesoft"
}

val amfCoreVersion = "5.0.1"
val amfCoreVersion = "5.0.2"

lazy val amfCoreJVMRef = ProjectRef(workspaceDirectory / "amf-core", "coreJVM")
lazy val amfCoreJSRef = ProjectRef(workspaceDirectory / "amf-core", "coreJS")

0 comments on commit d5b9153

Please sign in to comment.