Skip to content

Commit 31d6ed0

Browse files
Merge remote-tracking branch 'origin/toscaCodeGen' into ToscaProfile
2 parents 2f18880 + 02d6e19 commit 31d6ed0

File tree

3 files changed

+64
-31
lines changed

3 files changed

+64
-31
lines changed
-753 Bytes
Binary file not shown.

ToscaDesigner/Generated TOSCA files/MyrtusFace_Application.tosca

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,34 @@
11
tosca_definitions_version: tosca_simple_yaml_1_3
22

33

4+
imports:
5+
- file: MyrtusFaceDetectionService_0.tosca
6+
namespace_uri: example.eu.myrtus.nodetypes
7+
namespace_prefix: MYRTUS-
8+
- file: Myrtus_Proxy_0.tosca
9+
namespace_uri: example.eu.myrtus.nodetypes
10+
namespace_prefix: MYRTUS-
11+
- file: MyrtusCameraFeed_0.tosca
12+
namespace_uri: example.eu.myrtus.nodetypes
13+
namespace_prefix: MYRTUS-
14+
- file: Myrtus_Workstation_1.tosca
15+
namespace_uri: example.eu.myrtus.nodetypes
16+
namespace_prefix: MYRTUS-
417

518
topology_template:
619

720
node_templates:
821
Myrtus_Workstation_1:
922
type: example.eu.myrtus.nodetypes.Myrtus-Workstation
10-
23+
metadata:
24+
displayName: "Myrtus-Workstation"
1125

1226

1327

1428
MyrtusFaceDetectionService_0:
1529
type: example.eu.myrtus.nodetypes.MyrtusFaceDetectionService
16-
30+
metadata:
31+
displayName: "FaceDetection"
1732
properties:
1833
dockerImage: "thebigpotatoe/face-recognition-docker"
1934
requirements:
@@ -25,7 +40,8 @@ topology_template:
2540

2641
Myrtus_Proxy_0:
2742
type: example.eu.myrtus.nodetypes.MyrtusProxy
28-
43+
metadata:
44+
displayName: "Proxy"
2945
properties:
3046
dockerImage: "nginx:alpine"
3147
port: "443"
@@ -45,10 +61,23 @@ topology_template:
4561
relationship: con_HostedOn_2
4662
capability: host
4763

48-
64+
artifacts:
65+
fullchain.pem:
66+
type:
67+
deploy_path:
68+
file:
69+
key:
70+
type:
71+
deploy_path:
72+
file:
73+
nginx.conf:
74+
type:
75+
deploy_path:
76+
file:
4977
MyrtusCameraFeed_0:
5078
type: example.eu.myrtus.nodetypes.MyrtusCameraFeed
51-
79+
metadata:
80+
displayName: "CameraFeed"
5281
properties:
5382
dockerImage: "ci.hesi.energy:5000/myrtus/examples/myrtusface/camera_feed:web"
5483
requirements:
@@ -67,6 +96,6 @@ topology_template:
6796
con_HostedOn_0:
6897
type: hostedOn
6998
con_ConnectsTo_1:
70-
type: connectTo
99+
type: connectsTo
71100
con_ConnectsTo_0:
72-
type: connectTo
101+
type: connectsTo

ToscaDesigner/src/main/java/fr/softeam/toscadesigner/export/AbstractToscaFileGenerator.java

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,29 @@
33
import java.io.IOException;
44
import java.io.StringWriter;
55
import java.util.HashSet;
6+
import java.util.List;
67
import java.util.Objects;
78
import java.util.Set;
9+
import java.util.stream.Collectors;
810
import java.util.stream.Stream;
11+
12+
import org.eclipse.swt.SWT;
13+
import org.eclipse.swt.widgets.Display;
14+
import org.eclipse.swt.widgets.FileDialog;
15+
import org.modelio.metamodel.uml.infrastructure.ModelElement;
16+
import org.modelio.metamodel.uml.infrastructure.ModelTree;
17+
import org.modelio.metamodel.uml.infrastructure.Stereotype;
18+
import org.modelio.metamodel.uml.statik.Association;
19+
import org.modelio.metamodel.uml.statik.Class;
20+
import org.modelio.vcore.smkernel.mapi.MObject;
21+
922
import com.github.jknack.handlebars.Handlebars;
1023
import com.github.jknack.handlebars.Options;
1124
import com.github.jknack.handlebars.Template;
1225
import com.github.jknack.handlebars.helper.ConditionalHelpers;
1326
import com.github.jknack.handlebars.io.ClassPathTemplateLoader;
1427
import com.modeliosoft.modelio.javadesigner.annotations.objid;
28+
1529
import fr.softeam.toscadesigner.api.tosca.standard.association.TRelationshipTemplate;
1630
import fr.softeam.toscadesigner.api.tosca.standard.class_.CapabilityStereotype;
1731
import fr.softeam.toscadesigner.api.tosca.standard.class_.TCapabilityDefinition;
@@ -21,15 +35,7 @@
2135
import fr.softeam.toscadesigner.api.tosca.standard.class_.TRelationshipType;
2236
import fr.softeam.toscadesigner.api.tosca.standard.class_.TRequirement;
2337
import fr.softeam.toscadesigner.api.tosca.standard.class_.TRequirementDefinition;
24-
import org.eclipse.swt.SWT;
25-
import org.eclipse.swt.widgets.Display;
26-
import org.eclipse.swt.widgets.FileDialog;
27-
import org.modelio.metamodel.uml.infrastructure.ModelElement;
28-
import org.modelio.metamodel.uml.infrastructure.ModelTree;
29-
import org.modelio.metamodel.uml.infrastructure.Stereotype;
30-
import org.modelio.metamodel.uml.statik.Association;
31-
import org.modelio.metamodel.uml.statik.Class;
32-
import org.modelio.vcore.smkernel.mapi.MObject;
38+
import fr.softeam.toscadesigner.impl.ToscaDesignerModule;
3339

3440
@objid ("e7453252-f578-4da1-815c-d2ce0e765130")
3541
public abstract class AbstractToscaFileGenerator {
@@ -167,21 +173,19 @@ private Handlebars setupHandlebars() {
167173
// }
168174
} else if (new TopologyTemplateChecker().isTypeOf(context)) {
169175
// 3. Check for non-tosca types in node templates
170-
171-
// To develop when TNodeTemplate will have the «type» property
172-
// List<ModelElement> nodeTemplates = context.getCompositionChildren().stream()
173-
// .filter(object -> {
174-
// Stereotype tNodeTemplateStereotype = ToscaDesignerModule.getInstance().getModuleContext().getModelingSession().getMetamodelExtensions()
175-
// .getStereotype("TNodeTemplate", object.getMClass());
176-
// return tNodeTemplateStereotype != null && ((ModelElement) object).isStereotyped(tNodeTemplateStereotype);
177-
// })
178-
// .map(ModelElement.class::cast)
179-
// .collect(Collectors.toList());
180-
// for (ModelElement nodeTemplate : nodeTemplates) {
181-
// if (nodeTemplate.getProperty(TNodeTemplate.STEREOTYPE_NAME, TNodeTemplate.TYPE_PROPERTY)) {
182-
// imports.add(/* import statement */);
183-
// }
184-
// }
176+
List<TNodeTemplate> nodeTemplates = context.getCompositionChildren().stream().filter(object -> {
177+
Stereotype tNodeTemplateStereotype = ToscaDesignerModule.getInstance().getModuleContext()
178+
.getModelingSession().getMetamodelExtensions()
179+
.getStereotype("TNodeTemplate", object.getMClass());
180+
return tNodeTemplateStereotype != null
181+
&& ((ModelElement) object).isStereotyped(tNodeTemplateStereotype);
182+
}).map(Class.class::cast).map(c -> TNodeTemplate.safeInstantiate(c)).collect(Collectors.toList());
183+
for (TNodeTemplate nodeTemplate : nodeTemplates) {
184+
185+
String targetNamespace = ((Class) context).getOwner().getName();
186+
imports.add(new Import(nodeTemplate.getElement().getName() + ".tosca", targetNamespace , "MYRTUS-"));
187+
188+
}
185189

186190
}
187191

0 commit comments

Comments
 (0)