TDL Open Source issueshttps://labs.etsi.org/rep/groups/top/-/issues2024-03-26T14:52:27Zhttps://labs.etsi.org/rep/top/ide/-/issues/69Type casting2024-03-26T14:52:27ZMartti Käärikmartti.kaarik@elvior.comType castingIdentified need for type casting to work more easily with sub/extended types
Currently also with workarounds constraints are violated, constraints may be loosened but it makes more sense to provide explicit casting, e.g. "as TYPE" for as...Identified need for type casting to work more easily with sub/extended types
Currently also with workarounds constraints are violated, constraints may be loosened but it makes more sense to provide explicit casting, e.g. "as TYPE" for assignments and ideally also inline for accessing members of extended types, see the example below: currently requires assignment to a temporary variable of the correct type, but the type constraint is still validated as the temporary variable is of a sub / extended type (see complete example in teams.
```
TEST_SYSTEM::mWTBody = TEST_SYSTEM::response.body
assert(size(TEST_SYSTEM::mWTBody.networks.networks) > 0)
```
Also the constraints may need to be adapted, or at least the resolveDataType implementation.BPhilip MakedonskiPhilip Makedonskihttps://labs.etsi.org/rep/top/top-extras/-/issues/1Reduce size of final package2024-01-24T16:04:52ZPhilip MakedonskiReduce size of final packageWith the use of archives to publish stable and beta channels simultaneously and the maximum upload size for pages of 100MB, it implies that the maximum release size is <25MB as both stable and beta need to be published and also again as ...With the use of archives to publish stable and beta channels simultaneously and the maximum upload size for pages of 100MB, it implies that the maximum release size is <25MB as both stable and beta need to be published and also again as an archive. The limit is already exceeded with the addition of the yang tools wrapper. An alternative solution is needed where the redundancy of the archives can be avoided, pushing the maximum release size to <50MB.A | MTS#91Philip MakedonskiPhilip Makedonskihttps://labs.etsi.org/rep/top/ide/-/issues/68Translating messages with unnamed GateReferences fails2024-01-24T16:08:59ZPhilip MakedonskiTranslating messages with unnamed GateReferences failsFor example:
```
Package Data {
Import all from Standard
Configuration tc {
ct sut as SUT,
ct tester as Tester,
connect sut=sut::g to tester=tester::g
}
Message Gate gt accepts String
Component ct {
...For example:
```
Package Data {
Import all from Standard
Configuration tc {
ct sut as SUT,
ct tester as Tester,
connect sut=sut::g to tester=tester::g
}
Message Gate gt accepts String
Component ct {
gate gt g
}
Test Description td uses tc {
tester sends "test" {String} to sut
}
}
```
Works fine when the GateReferences are explicitly named, but it does not when they are implicitly named:
```
Package Data {
Import all from Standard
Configuration tc {
ct sut as SUT,
ct tester as Tester,
connect sut::g to tester::g
}
Message Gate gt accepts String
Component ct {
gate gt g
}
Test Description td uses tc {
tester::g sends "test" {String} to sut::g
}
}
```https://labs.etsi.org/rep/top/ide/-/issues/67Imports cause translation to textual to fail2024-01-10T11:34:16ZPhilip MakedonskiImports cause translation to textual to failThe presence of imports causes translation to textual (e.g. from XMI to textual or from brace- to indentation-based syntax) to fail, e.g.:
```
Package Data {
Import all from Standard
}
```
Results in:
```
Translation: No EObjectDes...The presence of imports causes translation to textual (e.g. from XMI to textual or from brace- to indentation-based syntax) to fail, e.g.:
```
Package Data {
Import all from Standard
}
```
Results in:
```
Translation: No EObjectDescription could be found in Scope ElementImport.importedPackage for Package'Standard'
Semantic Object: Package'Data'.import[0]->ElementImport
URI: platform:/resource/mwt-plugtests/src/tdl/Data.tdltx.tdltx
EStructuralFeature: tdl::ElementImport.importedPackage
```https://labs.etsi.org/rep/top/ide/-/issues/66Simplify EnumDataType and Instance specification2024-01-12T11:47:32ZPhilip MakedonskiSimplify EnumDataType and Instance specificationCurrently EnumDataType instances need to be specified with explicit DataTypes, e.g.:
```
Enumerated e1 {
e1 v1,
e1 v2
}
```
where v1 and v2 are the instances of the EnumDataType. This can be tedious. It should be possible t...Currently EnumDataType instances need to be specified with explicit DataTypes, e.g.:
```
Enumerated e1 {
e1 v1,
e1 v2
}
```
where v1 and v2 are the instances of the EnumDataType. This can be tedious. It should be possible to infer the data types for the instances from the containing EnumDataType so that it is also possible to only list the instances, e.g.:
```
Enumerated e1 {
v1,
v2
}
```A | MTS#91Philip MakedonskiPhilip Makedonskihttps://labs.etsi.org/rep/top/ide/-/issues/65Issues with OCL Constraints2024-01-24T16:10:35ZPhilip MakedonskiIssues with OCL ConstraintsMultiple issues with OCL constraints:
- [x] Fix and test implementation
- [x] Update specification
- [ ] Split into separate issues?
In detail:
- DataInstanceOrArgumentsOrItemsInDataElementUse - if a reference to structured or collectio...Multiple issues with OCL constraints:
- [x] Fix and test implementation
- [x] Update specification
- [ ] Split into separate issues?
In detail:
- DataInstanceOrArgumentsOrItemsInDataElementUse - if a reference to structured or collection data instance is used as the data element, it should not be necessary to provide arguments or items.
```
and not (self.dataElement.oclIsKindOf(StructuredDataType) and self.argument->isEmpty())
and not (self.dataElement.oclIsKindOf(CollectionDataType) and self.item->isEmpty())
```
Shall be instead:
```
and (self.dataElement.oclIsKindOf(StructuredDataInstance) or not (self.resolveDataType().oclIsKindOf(StructuredDataType) and self.argument->isEmpty()))
and (self.dataElement.oclIsKindOf(CollectionDataInstance) or not (self.resolveDataType().oclIsKindOf(CollectionDataType) and self.item->isEmpty()))
```
- GuardType: allow for data types extending boolean (use conforms to instead)
```
self.guard ->forAll(g | g.expression.resolveDataType().name = 'Boolean')
```
Shall be instead
```
self.guard ->forAll(g | g.expression.resolveDataType().conformsTo('Boolean'))
```
- BoundedGuard: Incorrect constraint (there is only one block, its guard shall be empty instead)
```
self.block->forAll(b | b.guard.oclIsUndefined())
```
Shall be instead
```
self.block.guard->isEmpty()
```
- ConditionalFirstGuard: Incorrect constraint (minimum number of guard expressions)
```
self.block->size() > 1 or self.block->first().guard->size() > 1
```
Shall be instead
```
self.block->size() > 1 or self.block->first().guard->size() > 0
```Philip MakedonskiPhilip Makedonskihttps://labs.etsi.org/rep/top/ide/-/issues/64Syntax issue with predefined functions and variable uses2023-12-22T09:29:47ZPhilip MakedonskiSyntax issue with predefined functions and variable usesThere seems to be a problem with the editor when processing predefined function calls that take variable uses as the first argument, necessitating the use of a space between the opening parenthesis and the identifier of the component ins...There seems to be a problem with the editor when processing predefined function calls that take variable uses as the first argument, necessitating the use of a space between the opening parenthesis and the identifier of the component instance, e.g.
```
assert ( pm::response.body or MW_8345)
```
is fine but
```
assert (pm::response.body or MW_8345)
```
is not.https://labs.etsi.org/rep/top/ide/-/issues/63Spacing issues in Word export2023-12-22T13:12:47ZPhilip MakedonskiSpacing issues in Word exportTables in exported documents look odd when there are spaces used for formatting in the source specification, e.g. for the test purpose/objective description, especially in TestPurposeDesriptionsTables in exported documents look odd when there are spaces used for formatting in the source specification, e.g. for the test purpose/objective description, especially in TestPurposeDesriptionsPhilip MakedonskiPhilip Makedonskihttps://labs.etsi.org/rep/top/ide/-/issues/62Comments in front of ReceiveMessage alternative syntax for Message cause issu...2023-12-22T13:12:47ZPhilip MakedonskiComments in front of ReceiveMessage alternative syntax for Message cause issues with resolution of the GateReferencesFor example:
```
//basic response definition
pm::mpi receives OK() from X::mpi
```
gives an error but putting the comment below the receive does not.For example:
```
//basic response definition
pm::mpi receives OK() from X::mpi
```
gives an error but putting the comment below the receive does not.Philip MakedonskiPhilip Makedonskihttps://labs.etsi.org/rep/top/ide/-/issues/61Create TDL examples based on mWT SDN Plugtests Postman collections2023-12-12T15:30:19ZMartti Käärikmartti.kaarik@elvior.comCreate TDL examples based on mWT SDN Plugtests Postman collectionsZ | 2023Finn KristoffersenMartti Käärikmartti.kaarik@elvior.comPhilip MakedonskiFinn Kristoffersenhttps://labs.etsi.org/rep/top/ide/-/issues/60Filter comments in exported word files for structured test objectives / test ...2023-12-07T17:33:35ZPhilip MakedonskiFilter comments in exported word files for structured test objectives / test purpose descriptionsFrom Boštjan Pintar:
One question related to TDL-TO and conversion to the word tables:
In case we are using comments like // or /* */ and when tables are generated those comments are staying in the word format.
Sometimes it is good to ha...From Boštjan Pintar:
One question related to TDL-TO and conversion to the word tables:
In case we are using comments like // or /* */ and when tables are generated those comments are staying in the word format.
Sometimes it is good to have some comments/NOTES for later on for TTCN-3 development but for sure such comments should not be visible in the tables.
Example:
![image002](/uploads/20dfc82fc5428a9962e782fabb9e4876/image002.png)
Is there a way to use some other symbol for comment so that comment text is not transferred into the word table later on?
Otherwise it would be great to remove comments when transferring them into the tables.Z | 2023Philip MakedonskiPhilip Makedonskihttps://labs.etsi.org/rep/top/ide/-/issues/59Clarify ParameterBinding effects wrt unassigned members2023-12-05T15:28:42ZMartti Käärikmartti.kaarik@elvior.comClarify ParameterBinding effects wrt unassigned membersA | MTS#91https://labs.etsi.org/rep/top/ide/-/issues/58Implement distribution and versioning for TOP code libraries (Runtime, HTTP a...2023-12-05T13:56:50ZMartti Käärikmartti.kaarik@elvior.comImplement distribution and versioning for TOP code libraries (Runtime, HTTP adapter etc.)A.2Philip MakedonskiPhilip Makedonskihttps://labs.etsi.org/rep/top/ide/-/issues/57Implement procedure for distributing and versioning TDL library models2023-12-22T13:12:47ZMartti Käärikmartti.kaarik@elvior.comImplement procedure for distributing and versioning TDL library modelsName Tdl model to "TDL"Name Tdl model to "TDL"A | MTS#91https://labs.etsi.org/rep/top/ide/-/issues/56Parameter reduction on the left side of parameter binding2024-01-12T11:47:31ZMartti Käärikmartti.kaarik@elvior.comParameter reduction on the left side of parameter bindingRationale: simplified syntax and flexible usability of inline modifications.
Verbose and overwrites predefined parameters:
```
client sends GetBill(
parameters = (
query =(
billId = "2327"
)
)
) to server
```
S...Rationale: simplified syntax and flexible usability of inline modifications.
Verbose and overwrites predefined parameters:
```
client sends GetBill(
parameters = (
query =(
billId = "2327"
)
)
) to server
```
Simpler and flexible:
```
client sends GetBill(
parameters.query.billId = "2327"
) to server
```BPhilip MakedonskiPhilip Makedonskihttps://labs.etsi.org/rep/top/ide/-/issues/55Add version annotation to TDL2023-12-05T13:52:12ZMartti Käärikmartti.kaarik@elvior.comAdd version annotation to TDLBhttps://labs.etsi.org/rep/top/ide/-/issues/54Create Eclipse example for OpenAPI testing project2023-12-05T13:50:21ZMartti Käärikmartti.kaarik@elvior.comCreate Eclipse example for OpenAPI testing projectZ | 2023Martti Käärikmartti.kaarik@elvior.comMartti Käärikmartti.kaarik@elvior.comhttps://labs.etsi.org/rep/top/ide/-/issues/53Part 9 - early draft2023-12-05T13:48:38ZMartti Käärikmartti.kaarik@elvior.comPart 9 - early draftA | MTS#91Martti Käärikmartti.kaarik@elvior.comMartti Käärikmartti.kaarik@elvior.comhttps://labs.etsi.org/rep/top/ide/-/issues/52Multiple annotations on same element cannot be serialized to .tdltx2024-01-09T14:08:32ZMartti Käärikmartti.kaarik@elvior.comMultiple annotations on same element cannot be serialized to .tdltxOpen the attached file using "Sample Reflective Ecore model Editor". Remove one annotation, save, add back (Undo), save again. Observe the error below.
[Annotations_bug_example.tdltx](/uploads/02c9476cca939299e122a4c694cc5ea4/Annotation...Open the attached file using "Sample Reflective Ecore model Editor". Remove one annotation, save, add back (Undo), save again. Observe the error below.
[Annotations_bug_example.tdltx](/uploads/02c9476cca939299e122a4c694cc5ea4/Annotations_bug_example.tdltx)
`java.lang.RuntimeException: Could not serialize DataResourceMapping:
Element.annotation violates the upper bound: It holds 2 values, but only 1 are allowed.
Semantic Object: Package'TwoAnnotations'.packagedElement[2]->DataResourceMapping'HttpAdapter'
URI: platform:/resource/TDL%20OpenAPI%20execution/Annotations%20bug%20example.tdltx
Context: PackageableElement returns DataResourceMapping
at org.eclipse.xtext.serializer.diagnostic.ISerializationDiagnostic$ExceptionThrowingAcceptor.accept(ISerializationDiagnostic.java:132)
at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:514)
at org.etsi.mts.tdl.serializer.TDLtxSemanticSequencer.sequence_AnnotationCommentFragment_DataResourceMapping(TDLtxSemanticSequencer.java:1881)
at org.etsi.mts.tdl.serializer.TDLtxSemanticSequencer.sequence(TDLtxSemanticSequencer.java:713)
at org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer.createSequence(AbstractSemanticSequencer.java:68)
at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptEObjectRuleCall(SequenceFeeder.java:327)
at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.acceptRuleCall(SequenceFeeder.java:354)
at org.eclipse.xtext.serializer.acceptor.SequenceFeeder.accept(SequenceFeeder.java:265)
at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.accept(BacktrackingSemanticSequencer.java:445)
at org.eclipse.xtext.serializer.sequencer.BacktrackingSemanticSequencer.createSequence(BacktrackingSemanticSequencer.java:512)
at org.etsi.mts.tdl.serializer.TDLtxSemanticSequencer.sequence_AnnotationCommentFragment_Package(TDLtxSemanticSequencer.java:3051)
at org.etsi.mts.tdl.serializer.TDLtxSemanticSequencer.sequence(TDLtxSemanticSequencer.java:863)
at org.eclipse.xtext.serializer.sequencer.AbstractSemanticSequencer.createSequence(AbstractSemanticSequencer.java:68)
at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:122)
at org.eclipse.xtext.serializer.impl.Serializer.serializeToRegions(Serializer.java:144)
at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:150)
at org.eclipse.xtext.serializer.impl.Serializer.serialize(Serializer.java:202)
at org.eclipse.xtext.resource.XtextResource.doSave(XtextResource.java:399)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1475)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.saveOnlyIfChangedWithMemoryBuffer(ResourceImpl.java:1189)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1030)
at org.eclipse.emf.ecore.presentation.EcoreEditor$16.execute(EcoreEditor.java:1769)
at org.eclipse.ui.actions.WorkspaceModifyOperation.lambda$0(WorkspaceModifyOperation.java:110)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2453)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2478)
at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:131)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)`Z | 2023Philip MakedonskiPhilip Makedonskihttps://labs.etsi.org/rep/top/ide/-/issues/32Remove EVL validation and use OCL2023-12-05T12:29:49ZMartti Käärikmartti.kaarik@elvior.comRemove EVL validation and use OCLC | MTS#92Philip MakedonskiPhilip Makedonski