0.3.0 Beta 0
mmRPC 3.0.0-beta.0
- Renamed module
mmrpc-coretommrpc-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
routineparameter 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
generateMMRPCKotlinSourcestogenerateMmrpcKotlinSources - 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 beingabstractwith 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