Hierbei handelt es sich um eine Implementierung eines Archivers für EPICS-Steuerungssysteme, der darauf abzielt, Millionen von PVs zu archivieren. Auf hohem Niveau sind einige Funktionen vorhanden
Weitere Einzelheiten finden Sie in der Dokumentation oder in der aktuellen Branch-Dokumentation.
Die Archivierungs-Appliance verwendet das Gradle-Build-Tool. Sie können den Gradle-Wrapper-Befehl ./gradlew
verwenden, der Gradle für Sie herunterlädt. Oder Sie können eine Gradle-Version installieren, deren Version > die Version des Wrappers in den Gradle-Wrapper-Eigenschaften ist, und den gradle
-Befehl verwenden.
Zum Erstellen führen Sie einfach Folgendes aus:
gradle
Die resultierende Distribution finden Sie dann im Ordner build/distributions
. Um für eine standortspezifische angepasste Version zu erstellen, legen Sie die Umgebungsvariable ARCHAPPL_SITEID auf einen Ordnernamen in src/sitespecific
fest. Es gibt ein Beispiel für einen benutzerdefinierten Build in src/sitespecific/slacdev
.
Dieses Projekt verwendet spotless, um eine standardisierte Formatierung anzustreben. Neuer Code wird gegen „origin/master“ geprüft (bei der Ausführung in CI kann dieser von Ihrem lokalen Ursprungs-Remote-Code abweichen). Derzeit umfasst dies Java-Code und Webcode (HTML, CSS, Javascript).
Um neuen Code zu formatieren, führen Sie Folgendes aus:
gradle spotlessApply
Oder um zu überprüfen, ob die Formatierung korrekt ist, führen Sie Folgendes aus:
gradle spotlessCheck
Die Tests sind in verschiedene Tags unterteilt: „slow“, „integration“, „localEpics“, „flaky“, „singleFork“, „unit“.
So führen Sie Unit-Tests durch (diese sind für den Abschluss des Build-Prozesses erforderlich):
gradle test
Um einen einzelnen Test auszuführen, zum Beispiel „TestName“:
gradle test --tests " org.epics.archiverappliance.TestName "
Die restlichen Befehle unten können auch mit dem Argument --tests
verwendet werden, um einen einzelnen Test auszuführen.
So führen Sie Tests einschließlich „flockiger“ und „langsamer“ Tests aus:
gradle unitTests
Integrationstests erfordern eine Installation von Tomcat (die Archiver Appliance unterstützt nur bis Version 9). Anschließend muss die Umgebungsvariable TOMCAT_HOME
gesetzt werden, in der ein „conf“-Ordner vorhanden ist.
Zum Ausführen von Tests, die eine lokale Installation von EPICS erfordern.
gradle epicsTests
Es ist möglich, ein Docker-Image mit EPICS zu verwenden, um die Epics-Tests auszuführen:
docker compose -f docker/docker-compose.epicsTests.yml run epicsarchiver-test
Die anderen Integrationstests erzeugen viele Daten auf der Festplatte und es wird empfohlen, sie nicht alle auf einmal auszuführen. So führen Sie einen einzelnen Integrationstest aus:
gradle integrationTests --tests " org.epics.archiverappliance.retrieval.DataRetrievalServletTest "
Um die Anwendung wie in einem Integrationstest auszuführen, beispielsweise um eine neue Entwicklung manuell zu testen. Sie können den Befehl verwenden:
gradle testRun
Und greifen Sie dann auf die laufende Appliance0 und Appliance1 zu. Um die Anwendung herunterzufahren, unterbrechen Sie den Befehl (z. B. mit Strg-C), dann können Sie Folgendes ausführen:
gradle shutdownAllTomcats
Beachten Sie, dass dadurch alle laufenden Tomcats heruntergefahren werden, nicht nur alle, die mit gradle testRun
erstellt wurden. Es ist auch nützlich, diesen Befehl auszuführen, wenn Sie einen Integrationstest unterbrechen.
Für eine schnelle Bereitstellung einer einzelnen Appliance:
./quickstart.sh apache-tomcat-9. * .tar.gz
Weitere Informationen finden Sie in der Schnellstartdokumentation. Für kompliziertere Bereitstellungen siehe den Beispielordner.
Die Dokumentation für die Website wird mit Read the Docs erstellt. So erstellen Sie es und führen es lokal aus:
cd docs
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade --no-cache-dir pip setuptools
python -m pip install --upgrade --no-cache-dir sphinx readthedocs-sphinx-ext
python -m pip install --exists-action=w --no-cache-dir -r docs/requirements.txt
cd docs
sphinx-autobuild source build