Skip to content

0.3.0 Beta 0

Choose a tag to compare

@lsafer-meemer lsafer-meemer released this 03 Feb 16:58
· 112 commits to master since this release

mmRPC 3.0.0-beta.0

  • Renamed module mmrpc-core to mmrpc-runtime
  • Reduced @SerialName usage by renaming fields instead
  • Removed Endpoint
  • Removed element info types and generation
  • Removed Element.isAnonymous

Runtime:

  • Removed Namespace and replaced with CanonicalName
  • Added CanonicalName utilities from Namespace
  • Changed validation rules for CanonicalName

  • Removed ElementObject

  • Removed TypeObject and all subclasses

  • Removed EndpointObject and all subclasses

  • Removed ConstObject

  • Removed FieldObject

  • Removed ProtocolObject

  • Added FaultObject.canonicalName

  • Added RoutineObject.canonicalName

  • Added RoutineObject.comm


  • Removed FaultObject.info

  • Removed RoutineObject.info

  • Removed ElementInfo and all subclasses

  • Removed infoOf(ElementObject)


  • Added value class Comm(val value: String)

  • Removed HttpMethod and HttpPath ~ no replacement

  • Removed Http, HttpSecurity ~ replace with Comm

  • Changed http method to be unconfigurable POST

  • Changed http path to be unconfigurable /<canonical_name>

  • Removed Iframe, IframeSecurity and IframePath ~ no replacement

  • Removed KafkaTopic ~ no replacement

  • Removed Kafka, KafkaSecurity ~ replace with Comm

  • Changed kafka topic to be unconfigurable <canonical_name>

  • Removed KafkaPublicationTopic ~ no replacement

  • Removed KafkaPublication and KafkaPublicationSecurity ~ replace with Comm

  • Changed kafka publication topic to be unconfigurable <canonical_name>

Client and Server:

  • Removed 'key' parameter from extension function KafkaProducer.emit

  • Removed extension function KafkaProducer.publish ~ use KafkaProducer.emit

  • Removed KafkaEvent.receiverJWTCatching()

  • Removed KafkaEvent.receiveJsonCatching()

  • Removed ApplicationCall.receiveQueryCatching()

  • Removed ApplicationCall.receiveJsonCatching()

  • Added routine parameter to all extension functions ApplicationCall.respond

  • Removed extension function ApplicationCall.respond(..., fault: FaultInfo, ...)

  • Added extension function ApplicationCall.respond(..., fault: CanonicalName, ...)

Code Generation:

  • Removed Endpoint object generation

  • Removed Const object generation

  • Removed Field object generation

  • Added (opt-in) Const value property generation

  • Added (opt-in) Field name property generation

  • Enum entries are now PascalCase instead of SCREAMING_SNAKE_CASE

  • Removed feature flag GEN_FIELD_OBJECTS

  • Removed feature flag GEN_ENDPOINT_OBJECTS

  • Added feature flag GEN_FIELD_NAME_PROPERTIES

  • Added feature flag GEN_CONST_VALUE_PROPERTIES

Gradle Plugin:

  • Renamed task generateMMRPCKotlinSources to generateMmrpcKotlinSources
  • Removed kotlin.generateFieldObjects()
  • Removed kotlin.generateEndpointObjects()
  • Added kotlin.generateFieldNameProperties()
  • Added kotlin.generateConstValueProperties()

Definition DSL

  • Removed builtin.hydration

  • Removed builtin.token

  • Removed Routine.key

  • Removed Routine.endpoints

  • Added Routine.comm

  • Changed ElementDefinitionBuilder.namespace is now of type CanonicalName?
    instead of NamespaceDomainProperty

  • ElementDefinitionBuilder.name is now lateinit
    instead of being abstract with default value

Definition

  • Removed EndpointDefinition with subclasses and builders

  • Changed ElementDefinition.canonicalName to be abstract

  • Changed ElementDefinition.name to be computed

  • Changed ElementDefinition.namespace to be computed

  • Removed ElementDefinition.asNamespace

  • Removed ElementDefinition.isAnonymous

  • Removed *Definition.ANONYMOUS_NAME

  • Removed *Definition.EMPTY

  • Simplified property names of subclasses of ElementDefinition

  • Removed all Compact*EndpointDefinition

  • Changed ElementDefinition.canonicalName to be abstract

  • Changed ElementDefinition.name to be computed

  • Changed ElementDefinition.namespace to be computed

  • Removed ElementDefinition.isAnonymous

  • Simplified property names of subclasses of CompactElementDefinition