Skip to content

Commit 4bb48cd

Browse files
Merge pull request #347 from com-pas/develop
Release
2 parents c382daf + 7a7f543 commit 4bb48cd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+1370
-2959
lines changed

.github/workflows/automate_javadoc.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
git merge ${{ env.DEPENDABOT_BRANCH }}
6565
6666
- name: Push Git Branch
67-
uses: ad-m/github-push-action@v0.6.0
67+
uses: ad-m/github-push-action@v0.8.0
6868
with:
6969
github_token: ${{ secrets.GITHUB_TOKEN }}
7070
branch: ${{ env.DEPLOYMENT_BRANCH }}

docs/QUICK_START.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ Actually there are 4 packages available:
3030
- compas-sct
3131
- sct-commons
3232
- sct-app
33-
- sct-data
3433

3534

3635
#### 2. Usage

docs/compas-sct.md

Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,18 @@
55
## Introduction
66

77
The CoMPAS SCT (System Configuration Tool) is part of the CoMPAS (Configuration Module for Power System Automation)
8-
ecosystem which is an open source project aimed at providing a tool for configuring control system and
9-
profile management related to the 61850 standard. Its architecture allows an easy integration with the other
10-
components of CoMPAS, in addition to being modular and flexible with a high level of abstraction, it gives
8+
ecosystem which is an open source project aimed at providing a tool for configuring control system and
9+
profile management related to the 61850 standard. Its architecture allows an easy integration with the other
10+
components of CoMPAS, in addition to being modular and flexible with a high level of abstraction, it gives
1111
the freedom to implement the tool with the database of its choice.
1212

13-
The below package diagram shows different part of the tool architecture.
13+
The below package diagram shows different part of the tool architecture.
1414

1515
![Package Diagram](images/PackageDiagram-CompasSCT.png)
1616

1717
Hence, we can distinguish four major parts:
1818

1919
* **[sct-commons](#SCT-COMMONS)** : a library that contents shared functionalities for the bound SCL object.
20-
* **[sct-data](#SCT-DATA)** : It holds data models and database connectivity services.
2120
* **[sct-app](#SCT-APPLICATION)** : *TODO*.
2221

2322
## SCT COMMONS
@@ -96,43 +95,6 @@ should always return `true`:
9695
[...]
9796
}
9897

99-
## SCT DATA
100-
Data models and connectivity to database are defined here. Data access layer is an abstract layer that defined connectivity
101-
interfaces. This layer manages a database with single table (SQL-Like database) or single collection (NoSQL-Like database).
102-
The concrete data access layers are implemented in specific packages. A data model can implement the following interface
103-
104-
```
105-
public interface IScd <ID> {
106-
ID getId();
107-
byte[] getRawXml();
108-
ID getHeaderId();
109-
String getHeaderRevision();
110-
String getHeaderVersion();
111-
String filename();
112-
}
113-
```
114-
115-
* ### SQL-Like Database
116-
An implementation of the sct-data connectivity interface with custom data models. This allows the application to work with sql-like database.
117-
The libraries ares use for SQL-Like databases, those that support XML type (PostgreSql, Oracle, etc)
118-
119-
* ### NoSQL-Like Database
120-
Like SQL-like part, this package contains the sct-data connector interfaces implementation for NoSQL-Like databases (BaseX, existDB, etc )
121-
that support XML processing.
122-
123-
This can also be a local repository connector (file system). For example, with meta-data headerID, headerVersion, headerRevision and filename
124-
one can implement the connector to have the below output (with the constraint of having a single file in /pathTo/headerId/headerVersion/headerRevision):
125-
126-
```
127-
myRepo
128-
├───<headerID>
129-
│ ├───<headerVersion1>
130-
│ │ └───<headerRevision1>
131-
│ │ | ├───<fileName1.scd>
132-
│ │ └───<headerRevision2>
133-
│ │ ├───<fileName2.scd>
134-
```
135-
13698
## SCT APPLICATION
13799
**TODO**
138100
> In progress

docs/drawio/compas-sct.drawio

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,49 @@
1-
<mxfile host="app.diagrams.net" modified="2022-01-11T09:05:14.268Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.57" etag="oE0U5b2gp_jQ03X_KlPB" version="15.9.4" type="device"><diagram id="3wWlgGhNNHLo4Hu9hpyk" name="Page-1">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</diagram></mxfile>
1+
<mxfile host="app.diagrams.net" modified="2023-10-23T14:48:46.540Z" agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0" etag="nheHiNsbFz10tTo7-bE4" version="21.8.2" type="device">
2+
<diagram id="3wWlgGhNNHLo4Hu9hpyk" name="Page-1">
3+
<mxGraphModel dx="1578" dy="920" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
4+
<root>
5+
<mxCell id="0" />
6+
<mxCell id="1" parent="0" />
7+
<mxCell id="mlE7LE_FIp_m5NRGwoGI-30" value="COMPAS" style="shape=umlFrame;whiteSpace=wrap;html=1;fillColor=#d0cee2;strokeColor=#56517e;swimlaneFillColor=#D4E1F5;" parent="1" vertex="1">
8+
<mxGeometry x="140" y="40" width="670" height="360" as="geometry" />
9+
</mxCell>
10+
<mxCell id="mlE7LE_FIp_m5NRGwoGI-31" value="COMPAS-SCT" style="shape=umlFrame;whiteSpace=wrap;html=1;width=120;height=30;fillColor=#fff2cc;strokeColor=#d6b656;swimlaneFillColor=#ffffff;" parent="1" vertex="1">
11+
<mxGeometry x="170" y="90" width="420" height="260" as="geometry" />
12+
</mxCell>
13+
<mxCell id="mlE7LE_FIp_m5NRGwoGI-32" value="COMPAS-CORE" style="shape=umlFrame;whiteSpace=wrap;html=1;width=130;height=20;swimlaneFillColor=#E1D5E7;fillColor=#99CCFF;" parent="1" vertex="1">
14+
<mxGeometry x="620" y="220" width="160" height="160" as="geometry" />
15+
</mxCell>
16+
<mxCell id="mlE7LE_FIp_m5NRGwoGI-33" value="sct-commons" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
17+
<mxGeometry x="360" y="260" width="90" height="50" as="geometry" />
18+
</mxCell>
19+
<mxCell id="mlE7LE_FIp_m5NRGwoGI-38" value="sct-app&lt;br&gt;(automation app)" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
20+
<mxGeometry x="320" y="135" width="120" height="50" as="geometry" />
21+
</mxCell>
22+
<mxCell id="mlE7LE_FIp_m5NRGwoGI-40" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0;entryDx=20;entryDy=0;entryPerimeter=0;" parent="1" source="mlE7LE_FIp_m5NRGwoGI-38" target="mlE7LE_FIp_m5NRGwoGI-33" edge="1">
23+
<mxGeometry width="160" relative="1" as="geometry">
24+
<mxPoint x="140" y="620" as="sourcePoint" />
25+
<mxPoint x="300" y="620" as="targetPoint" />
26+
</mxGeometry>
27+
</mxCell>
28+
<mxCell id="mlE7LE_FIp_m5NRGwoGI-44" value="&lt;font color=&quot;#24292e&quot; size=&quot;1&quot;&gt;&lt;span style=&quot;font-weight: 400 ; white-space: normal ; font-size: 12px&quot;&gt;scl2007b4&lt;/span&gt;&lt;/font&gt;" style="shape=folder;fontStyle=1;spacingTop=10;tabWidth=40;tabHeight=14;tabPosition=left;html=1;" parent="1" vertex="1">
29+
<mxGeometry x="680" y="270" width="70" height="50" as="geometry" />
30+
</mxCell>
31+
<mxCell id="mlE7LE_FIp_m5NRGwoGI-45" value="Use" style="endArrow=open;endSize=12;dashed=1;html=1;entryX=0;entryY=0;entryDx=0;entryDy=32;entryPerimeter=0;exitX=0;exitY=0;exitDx=90;exitDy=41;exitPerimeter=0;" parent="1" target="mlE7LE_FIp_m5NRGwoGI-44" edge="1" source="mlE7LE_FIp_m5NRGwoGI-33">
32+
<mxGeometry width="160" relative="1" as="geometry">
33+
<mxPoint x="560" y="303" as="sourcePoint" />
34+
<mxPoint x="300" y="610" as="targetPoint" />
35+
</mxGeometry>
36+
</mxCell>
37+
<mxCell id="mlE7LE_FIp_m5NRGwoGI-53" value="" style="endArrow=open;dashed=1;html=1;exitX=0;exitY=0;exitDx=120;exitDy=32;exitPerimeter=0;entryX=0.513;entryY=0;entryDx=0;entryDy=0;entryPerimeter=0;edgeStyle=orthogonalEdgeStyle;endFill=0;" parent="1" source="mlE7LE_FIp_m5NRGwoGI-38" target="mlE7LE_FIp_m5NRGwoGI-32" edge="1">
38+
<mxGeometry width="50" height="50" relative="1" as="geometry">
39+
<mxPoint x="140" y="660" as="sourcePoint" />
40+
<mxPoint x="700" y="182" as="targetPoint" />
41+
</mxGeometry>
42+
</mxCell>
43+
<mxCell id="mlE7LE_FIp_m5NRGwoGI-54" value="Use" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
44+
<mxGeometry x="610" y="165" width="40" height="20" as="geometry" />
45+
</mxCell>
46+
</root>
47+
</mxGraphModel>
48+
</diagram>
49+
</mxfile>
-12.2 KB
Loading

pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@
121121
<modules>
122122
<module>sct-commons</module>
123123
<module>sct-coverage</module>
124-
<module>sct-data</module>
125124
<module>sct-app</module>
126125
</modules>
127126

sct-app/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,6 @@
2727
<artifactId>sct-commons</artifactId>
2828
<version>${project.version}</version>
2929
</dependency>
30-
<dependency>
31-
<groupId>org.lfenergy.compas</groupId>
32-
<artifactId>sct-data</artifactId>
33-
<version>${project.version}</version>
34-
</dependency>
3530
<dependency>
3631
<groupId>org.lfenergy.compas</groupId>
3732
<artifactId>sct-commons</artifactId>

sct-app/src/main/java/org/lfenergy/compas/sct/app/SclAutomationService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import lombok.NonNull;
88
import lombok.RequiredArgsConstructor;
99
import org.lfenergy.compas.scl2007b4.model.SCL;
10+
import org.lfenergy.compas.sct.commons.api.ControlBlockEditor;
1011
import org.lfenergy.compas.sct.commons.api.SclEditor;
1112
import org.lfenergy.compas.sct.commons.api.SubstationEditor;
1213
import org.lfenergy.compas.sct.commons.dto.HeaderDTO;
@@ -30,6 +31,7 @@ public class SclAutomationService {
3031

3132
private final SclEditor sclEditor;
3233
private final SubstationEditor substationEditor;
34+
private final ControlBlockEditor controlBlockEditor;
3335

3436
/**
3537
* Possible Subnetwork and ConnectedAP names which should be used in generated SCD in order a have global coherence
@@ -56,7 +58,7 @@ public SCL createSCD(@NonNull SCL ssd, @NonNull HeaderDTO headerDTO, List<SCL> s
5658
}
5759
substationEditor.addSubstation(scd, ssd);
5860
sclEditor.importSTDElementsInSCD(scd, stds, SUB_NETWORK_TYPES);
59-
sclEditor.removeAllControlBlocksAndDatasetsAndExtRefSrcBindings(scd);
61+
controlBlockEditor.removeAllControlBlocksAndDatasetsAndExtRefSrcBindings(scd);
6062
return scd;
6163
}
6264
}

sct-app/src/test/java/org.lfenergy.compas.sct.app/SclAutomationServiceIntegrationTest.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
import org.junit.jupiter.api.Test;
99
import org.lfenergy.compas.scl2007b4.model.LN0;
1010
import org.lfenergy.compas.scl2007b4.model.SCL;
11-
import org.lfenergy.compas.sct.commons.SclEditorService;
11+
import org.lfenergy.compas.sct.commons.ControlBlockService;
12+
import org.lfenergy.compas.sct.commons.SclService;
1213
import org.lfenergy.compas.sct.commons.SubstationService;
14+
import org.lfenergy.compas.sct.commons.api.ControlBlockEditor;
1315
import org.lfenergy.compas.sct.commons.api.SclEditor;
1416
import org.lfenergy.compas.sct.commons.api.SubstationEditor;
1517
import org.lfenergy.compas.sct.commons.dto.HeaderDTO;
@@ -29,8 +31,9 @@
2931
class SclAutomationServiceIntegrationTest {
3032

3133
private SclAutomationService sclAutomationService ;
32-
private static final SclEditor sclEditor = new SclEditorService() ;
34+
private static final SclEditor sclEditor = new SclService() ;
3335
private static final SubstationEditor substationEditor = new SubstationService() ;
36+
private static final ControlBlockEditor controlBlockEditor = new ControlBlockService() ;
3437

3538
private HeaderDTO headerDTO;
3639

@@ -40,7 +43,7 @@ void setUp() {
4043
headerDTO.setId(UUID.randomUUID());
4144
headerDTO.setRevision("hRevision");
4245
headerDTO.setVersion("hVersion");
43-
sclAutomationService = new SclAutomationService(sclEditor, substationEditor);
46+
sclAutomationService = new SclAutomationService(sclEditor, substationEditor, controlBlockEditor);
4447
}
4548

4649
@Test

sct-app/src/test/java/org.lfenergy.compas.sct.app/SclAutomationServiceTest.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.junit.jupiter.api.extension.ExtendWith;
1111
import org.lfenergy.compas.scl2007b4.model.SCL;
1212
import org.lfenergy.compas.scl2007b4.model.THeader;
13+
import org.lfenergy.compas.sct.commons.api.ControlBlockEditor;
1314
import org.lfenergy.compas.sct.commons.api.SclEditor;
1415
import org.lfenergy.compas.sct.commons.api.SubstationEditor;
1516
import org.lfenergy.compas.sct.commons.dto.HeaderDTO;
@@ -39,6 +40,8 @@ class SclAutomationServiceTest {
3940
private SclEditor sclEditor;
4041
@Mock
4142
private SubstationEditor substationEditor;
43+
@Mock
44+
private ControlBlockEditor controlBlockEditor;
4245

4346
public static final short RELEASE = 4;
4447
public static final String REVISION = "B";
@@ -81,7 +84,7 @@ void createSCD_without_headerHistory_should_return_generatedSCD() throws Invocat
8184
verify(sclEditor, times(0)).addHistoryItem(any(SCL.class), anyString(), anyString(), anyString());
8285
verify(substationEditor, times(1)).addSubstation(any(SCL.class), any(SCL.class));
8386
verify(sclEditor, times(1)).importSTDElementsInSCD(any(SCL.class), anyList(), anyList());
84-
verify(sclEditor, times(1)).removeAllControlBlocksAndDatasetsAndExtRefSrcBindings(any(SCL.class));
87+
verify(controlBlockEditor, times(1)).removeAllControlBlocksAndDatasetsAndExtRefSrcBindings(any(SCL.class));
8588
}
8689

8790
@Test
@@ -110,7 +113,7 @@ void createSCD_with_headerHistory_should_return_generatedSCD() throws Invocation
110113
verify(sclEditor, times(1)).addHistoryItem(any(SCL.class), eq(historyItem.getWho()), eq(historyItem.getWhat()), eq(historyItem.getWhy()));
111114
verify(substationEditor, times(1)).addSubstation(any(SCL.class), any(SCL.class));
112115
verify(sclEditor, times(1)).importSTDElementsInSCD(any(SCL.class), anyList(), anyList());
113-
verify(sclEditor, times(1)).removeAllControlBlocksAndDatasetsAndExtRefSrcBindings(any(SCL.class));
116+
verify(controlBlockEditor, times(1)).removeAllControlBlocksAndDatasetsAndExtRefSrcBindings(any(SCL.class));
114117
}
115118

116119
@Test
@@ -172,7 +175,7 @@ void createSCD_when_sclEditor_importSTDElementsInSCD_Fail_should_throw_exception
172175
}
173176

174177
@Test
175-
void createSCD_when_sclEditor_removeAllControlBlocksAndDatasetsAndExtRefSrcBindings_Fail_should_throw_exception() throws InvocationTargetException, IllegalAccessException, InstantiationException, NoSuchMethodException {
178+
void createSCD_when_controlBlockEditor_removeAllControlBlocksAndDatasetsAndExtRefSrcBindings_Fail_should_throw_exception() throws InvocationTargetException, IllegalAccessException, InstantiationException, NoSuchMethodException {
176179
// Given
177180
SCL ssd = (SCL) BeanUtils.cloneBean(scl);
178181
SCL std = (SCL) BeanUtils.cloneBean(scl);
@@ -182,7 +185,7 @@ void createSCD_when_sclEditor_removeAllControlBlocksAndDatasetsAndExtRefSrcBindi
182185
doNothing().when(substationEditor).addSubstation(any(SCL.class), any(SCL.class));
183186
doNothing().when(sclEditor).importSTDElementsInSCD(any(SCL.class), anyList(), anyList());
184187
doThrow(new ScdException("removeAllControlBlocksAndDatasetsAndExtRefSrcBindings fail"))
185-
.when(sclEditor).removeAllControlBlocksAndDatasetsAndExtRefSrcBindings(any(SCL.class));
188+
.when(controlBlockEditor).removeAllControlBlocksAndDatasetsAndExtRefSrcBindings(any(SCL.class));
186189
// When Then
187190
assertThatThrownBy(() -> sclAutomationService.createSCD(ssd, headerDTO, List.of(std)))
188191
.isInstanceOf(ScdException.class)

0 commit comments

Comments
 (0)