Skip to content
Commits on Source (9)
......@@ -5,3 +5,9 @@ iav-anastau-build:
script:
- ./gradlew build
iav-anastau-build-java12:
image:
openjdk:12
script:
- ./gradlew build
......@@ -5,6 +5,14 @@ Versionsverlauf
- derzeit keine Änderungen
## [Version 2.0.2] - 2019-06-16
- beim Start der SWE werden nur noch Netze verwaltet, in denen die Menge der
Staus durch die aktuelle AOE beschrieben werden kann
- ein Fehler bei Sichern der Stauobjekte in der Menge des VerkehrsmodellNetz
führt nicht mehr zum Abbruch des Sicherungsvorgangs
## [Version 2.0.1]
- Korrektur der Abhängigkeiten im build.
......@@ -99,7 +107,8 @@ Versionsverlauf
- erste Auslieferung
[Noch nicht veröffentlicht]: https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.ibv.anastau/compare/v2.0.1...HEAD
[Noch nicht veröffentlicht]: https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.ibv.anastau/compare/v2.0.2...HEAD
[Version 2.0.2]: https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.ibv.anastau/compare/v2.0.1...v2.0.2
[Version 2.0.1]: https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.ibv.anastau/compare/v2.0.0...v2.0.1
[Version 2.0.0]: https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.ibv.anastau/compare/v1.9.1...v2.0.0
[Version 1.9.1]: https://gitlab.nerz-ev.de/ERZ/SWE_de.bsvrz.ibv.anastau/compare/v1.9.0...v1.9.1
......@@ -2,8 +2,8 @@
// NERZ-SWE-Plugin
//--------------------------------------------------------------------
plugins {
id "de.bsvrz.gradle.nerzswe" version "0.14.0"
id "com.github.spotbugs" version "1.6.10"
id "de.bsvrz.gradle.nerzswe" version "0.16.0"
id "com.github.spotbugs" version "2.0.0"
}
//--------------------------------------------------------------------
......@@ -11,13 +11,13 @@ plugins {
//--------------------------------------------------------------------
group = 'de.bsvrz.ibv'
version = '2.0.1'
version = '2.0.2'
description = 'Segment 6 Intelligente Bewertungsverfahren, SWE 6.1 Stauverlaufsanalyse'
// Properties des NERZ-SWE-Plugins:
nerzswe {
sweStatus = 'FREI'
sweDatum = '2019-04-08'
sweDatum = '2019-06-16'
mainClassName = 'de.bsvrz.ibv.anastau.anastau.StauverlaufsAnalyse'
}
......
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.2-bin.zip
distributionUrl=https://services.gradle.org/distributions/gradle-5.4.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
......@@ -203,7 +203,10 @@ public final class StauverlaufsAnalyse extends TimerTask
for (final SystemObject objekt : connection.getDataModel()
.getType(VerkehrsModellTypen.VERKEHRSMODELLNETZ.getPid()).getElements()) {
StauverlaufsAnalyse.logger.config("Lade Netzobjekt: " + objekt);
netzObjekte.add((VerkehrModellNetz) ObjektFactory.getInstanz().getModellobjekt(objekt));
VerkehrModellNetz netz = (VerkehrModellNetz) ObjektFactory.getInstanz().getModellobjekt(objekt);
if (netz.isSchreibbar(connection.getLocalConfigurationAuthority())) {
netzObjekte.add(netz);
}
}
} else {
for (final String pid : netzPids) {
......@@ -213,14 +216,26 @@ public final class StauverlaufsAnalyse extends TimerTask
"Initialisiere alle Netze des Konfigurationsbereichs: " + pidObj.getNameOrPidOrId());
for (final SystemObject caObj : Konfigurationsbereich.getObjekte((ConfigurationArea) pidObj,
VerkehrsModellTypen.VERKEHRSMODELLNETZ.getPid())) {
netzObjekte.add((VerkehrModellNetz) ObjektFactory.getInstanz().getModellobjekt(caObj));
VerkehrModellNetz netz = (VerkehrModellNetz) ObjektFactory.getInstanz().getModellobjekt(caObj);
if (netz.isSchreibbar(connection.getLocalConfigurationAuthority())) {
netzObjekte.add(netz);
}
}
} else {
StauverlaufsAnalyse.logger.config("Initialisiere das Netz: " + pidObj.getNameOrPidOrId());
netzObjekte.add((VerkehrModellNetz) ObjektFactory.getInstanz().getModellobjekt(pidObj));
VerkehrModellNetz netz = (VerkehrModellNetz) ObjektFactory.getInstanz().getModellobjekt(pidObj);
if (netz.isSchreibbar(connection.getLocalConfigurationAuthority())) {
netzObjekte.add(netz);
}
}
}
}
if (netzObjekte.isEmpty()) {
StauverlaufsAnalyse.logger.error("Es sind keine gültigen Objekte vom Typ VerkehrsmodellNetz verfügbar!");
System.exit(-1);
}
final Class<?> sobClass = Class.forName(sobName);
final Class<?> prognoseClass = Class.forName(prognoseName);
......
......@@ -886,8 +886,7 @@ public class Stau implements IStau, ClientSenderInterface {
}
if (obj == null) {
throw new IllegalStateException(
"Für das zu sicherende Stauobjekt besteht kein Systemobjekt in der Datenverteilerkonfiguration");
return;
}
final Data data = applikation.getDav().createData(eigenschaftenDesc.getAttributeGroup());
......
......@@ -32,6 +32,8 @@ import java.util.List;
import javax.swing.event.EventListenerList;
import de.bsvrz.dav.daf.main.Data;
import de.bsvrz.dav.daf.main.config.ConfigurationAuthority;
import de.bsvrz.dav.daf.main.config.ConfigurationChangeException;
import de.bsvrz.dav.daf.main.config.ConfigurationObject;
import de.bsvrz.dav.daf.main.config.MutableSet;
......@@ -286,4 +288,27 @@ public class VerkehrModellNetz extends Netz implements MutableSetChangeListener
aktualisiereStaus(addedObjects, removedObjects);
}
}
public boolean isSchreibbar(ConfigurationAuthority aoe) {
if (stauMenge == null) {
LOGGER.warning(getPid() + " hat keine gültige Staumenge");
return false;
}
Data data = stauMenge.getConfigurationData(stauMenge.getDataModel().getAttributeGroup("atg.dynamischeMenge"));
if (data == null) {
LOGGER.warning("Die Konfigurationsdaten der Staumenge des Netzes '" + getPid()
+ "' konnten nicht abgerufen werden");
return false;
}
String mengenVerwalterPid = data.getTextValue("verwaltung").getText();
if (!aoe.getPid().equals(mengenVerwalterPid)) {
LOGGER.warning("Die Staumenge des Netzes '" + getPid() + "' kann von der AOE '" + aoe.getPid()
+ "' nicht beschrieben werden, Verwalter ist '" + mengenVerwalterPid + "'");
return false;
}
return true;
}
}