Migrate Junit4 to Junit5
[sdc/sdc-tosca.git] / README.md
1 # ONAP SDC-Tosca
2
3
4 ---
5 ---
6
7 # Introduction
8
9 ONAP SDC-Tosca is delivered as helper JAR that can be used by clients that work with SDC TOSCA CSAR files.
10 It parses the CSAR and returns the model object which represents the CSAR contents, through designated function calls with SDC flavour.
11 It uses the underlying generic JTOSCA parser.
12
13
14 # Compiling ONAP JTOSCA
15
16 ONAP SDC-Tosca can be compiled easily using maven command: `mvn clean install`
17 The result is JAR file under "target" folder
18
19 # Testing a CSAR locally
20 to run the parser locally you can use the MyTest Junit test to easily execute the parser on your own input.
21
22 1. to run it place your csar in **sdc-tosca\src\test\resources\csars**
23
24 2. Go to the test class located at **sdc-tosca\src\test\java\org\onap\sdc\impl\MyTest.java**
25
26 3. un comment the logic ther and update the csar name you plced in the step above:
27 ```java
28 SdcToscaParserFactory factory = SdcToscaParserFactory.getInstance();
29 ISdcCsarHelper = getCsarHelper("csars/<your csar name example my.csar>");
30
31 //example of functions
32 //get node type by name
33 List<NodeTemplate> serviceNodeTemplatesByType = fdntCsarHelper.getServiceNodeTemplatesByType("org.openecomp.nodes.ForwardingPath");
34 //get node type property
35 String target_range = fdntCsarHelper.getNodeTemplatePropertyLeafValue(serviceNodeTemplatesByType.get(0), "target_range");
36
37 ```
38
39 # Adding the SDC-Tosca to you project
40 the SDC tosca is avilalble as a maven depandency.
41 to use add the folowing depandency to your POM file:
42 ```
43 <dependency>
44   <groupId>org.onap.sdc.sdc-tosca</groupId>
45   <artifactId>sdc-tosca</artifactId>
46   <version>1.4.6</version>
47 </dependency>
48 ``` 
49
50
51 # Getting Help
52
53
54 ##### [Mailing list](mailto:onap-sdc@lists.onap.org)
55
56
57
58 ##### [JIRA](http://jira.onap.org)
59
60
61
62 ##### [WIKI](https://wiki.onap.org/display/DW/Service+Design+and+Creation+%28SDC%29+Portal)
63
64 ##### [TOSCA Prser AID]((https://wiki.onap.org/display/DW/Service+Design+and+Creation+%28SDC%29+Portal))
65
66
67
68  
69
70
71 # Release notes
72
73 ## 1.4.1
74
75 ### Features:
76 1. **disable max conformance level validation**: until this version the parser had the definition of the max and min conformance level of the CSAR version which it supports. 
77    the conformance level is generated by sdc and as a result the two had to be aligned, over wise the CSAR will fail on parsing.
78    from this version the max version will no longer be checked by the parser. 
79 2. **Operations support**: add support for parsing the Operations in the tosca models.  
80
81 ## 1.4.2
82
83 ### Features:
84 1. **enable types validation**  from this version all types in CSAR will be verified, all used types should be properly declared in "base" yml files e.g. node.yml , data.yml etc.
85
86 ## 1.4.3
87
88 ### Bug fix:
89 1. **validation fix**  Maximum nodeTypes we allowed in CSAR file was increased from 10 to 20.
90
91 ## 1.4.4
92
93 ### Features:
94 1. **list support for get input**  until know the get input was only supported in the following format get_input \[ <list > , index ] this way was the only option for using a list typed property and retrieving its value for a use in a property  , from this release you can use get input < list> to retrieve the whole list.
95
96       example:
97       ```
98       properties:
99         # the property type is list
100         related_networks:
101           #this is now supoorted you can retrive the whole list
102           get_input: port_vpg_private_0_port_related_networks
103         # the property type is string
104         network:
105           # this will retrive a value from the list
106           get_input:
107           - port_vpg_private_0_port_network
108           - index_value
109       ```
110
111 ## 1.4.5
112
113 ### Features:
114 1. **getPropertyLeafValueByPropertyNamePathAndNodeTemplatePath API** The new Tosca Parser API resolves property value by path in the model (including nested nodes with # delimiter) and property name.
115
116 ### Code change:
117 1. Classes FilterType.java, JToscaValidationIssueType.java, SdcTypes.java have been moved from **org.onap.sdc.tosca.parser.impl** package to **org.onap.sdc.tosca.parser.enums** package.
118
119 ## 1.4.6
120
121 ### Bug fix:
122 1. **remove use of a snapshot dependency** update jtosca dependency version from snapshot to release. 
123
124 ## 1.4.7
125
126 ### Bug fix:
127 1. **validation fix**  Null value caused to NullPointerException in validate function in DataEntity
128
129
130 ## 1.4.8
131
132 ### Features:
133 1. A new API is declared:
134
135 *List<IEntityDetails> getEntity(EntityQuery entityQuery, TopologyTemplateQuery topologyTemplateQuery, boolean isRecursive)*
136
137 It is designed to retrieve details of one or more entity templates from corresponding topology template according to provided query parameters
138
139 2. Mock-up version of **getEntity** API is implemented.
140
141 ### Note:
142 This version is intended for SDN-C team usage only.
143
144 ## 1.5.0
145
146 ### Changes:
147 1. Bug fix in Policy metadata object getter (Jtosca)
148 2. NPE fix in Policy getTargets method (sdc-tosca)
149 3. Adding more getters to IEntityDetails interface for getEntity API introduced in 1.4.8 version:
150
151  **getEntity** API retrieves details of one or more entity templates according to provided query parameters from corresponding topology template.
152  
153  **entityQuery** Object describing the searched entity parameters. Includes one of following parameters: entity type,
154  SDC (node template) type, tosca type as well as optional customizationUUID and UUID
155  If the parameter is null, the returned result will contain *all* entities that types are supported by SDC.
156  
157  **topologyTemplateQuery** parameters of the topology template containing the above entity.
158  Includes SDC type of the container and optional customizationUUID.
159  
160  **isRecursive** indicates if the search is recursive starting from the required topology template.
161  
162  Returns list of **IEntityDetails** objects containing information about the found entities.
163  If either no entities found or the provided query is incorrect, an empty list is returned.
164  
165                 List<IEntityDetails> getEntity(EntityQuery entityQuery, TopologyTemplateQuery topologyTemplateQuery, boolean isRecursive);
166
167