Esta é uma implementação de um arquivador para sistemas de controle EPICS que visa arquivar milhões de PVs. Em alto nível, alguns recursos são
Para obter mais detalhes, consulte a documentação ou a documentação atual da filial.
O dispositivo arquivador usa a ferramenta gradle build. Você pode usar o comando gradle wrapper ./gradlew
, que baixa o gradle para você. Ou você pode instalar uma versão gradle que tenha uma versão > a versão do wrapper nas propriedades do gradle wrapper e usar o comando gradle
.
Para construir basta executar:
gradle
A distribuição resultante pode então ser encontrada na pasta build/distributions
. Para construir uma versão personalizada específica do site, defina a variável de ambiente ARCHAPPL_SITEID como um nome de pasta em src/sitespecific
. Há um exemplo de construção personalizada em src/sitespecific/slacdev
.
Este projeto usa impecável para buscar uma formatação padronizada. O novo código é verificado em relação a "origem/mestre" (quando executado no CI, pode ser diferente do seu controle remoto de origem local). Atualmente, isso inclui código Java e código web (HTML, CSS, javascript).
Para formatar o novo código, execute:
gradle spotlessApply
Ou para verificar se a formatação está correta, execute:
gradle spotlessCheck
Os testes são organizados em diferentes tags: “slow”, “integration”, “localEpics”, “flaky”, “singleFork”, “unit”.
Para executar testes de unidade (eles são necessários para a conclusão do processo de construção):
gradle test
Para executar um único teste, por exemplo "TestName":
gradle test --tests " org.epics.archiverappliance.TestName "
O restante dos comandos abaixo também pode ser usado com o argumento --tests
para executar um único teste.
Para executar incluindo testes "instáveis" e "lentos":
gradle unitTests
Os testes de integração requerem a instalação do Tomcat (o Archiver Appliance suporta apenas até a versão 9). A variável de ambiente TOMCAT_HOME
onde existe uma pasta "conf" deve então ser definida.
Para executar testes que requerem uma instalação local do EPICS.
gradle epicsTests
É possível usar uma imagem docker contendo EPICS para executar os testes épicos:
docker compose -f docker/docker-compose.epicsTests.yml run epicsarchiver-test
Os outros testes de integração produzem muitos dados em disco e é aconselhável não executá-los todos de uma vez. Para executar um único teste de integração:
gradle integrationTests --tests " org.epics.archiverappliance.retrieval.DataRetrievalServletTest "
Para executar a aplicação como se estivesse em um teste de integração, por exemplo para testar manualmente um novo desenvolvimento. Você pode usar o comando:
gradle testRun
E então acesse o appliance0 e o appliance1 em execução. Para encerrar o aplicativo, interrompa o comando (usando Ctrl-c, por exemplo) e execute:
gradle shutdownAllTomcats
Observe que isso desligará todos os Tomcats em execução, não apenas aqueles criados com gradle testRun
. É útil executar este comando se você também interromper um teste de integração.
Para uma implantação rápida de um único dispositivo:
./quickstart.sh apache-tomcat-9. * .tar.gz
Para obter mais informações, consulte a documentação de início rápido. Para implantações mais complicadas, consulte a pasta de exemplos.
A documentação do site é construída usando Read the Docs. Para construí-lo e executá-lo localmente:
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