Confirme que:
- O SDK do Java está configurado no projeto (File > Project Structure -> Project > SDK)
- A integração do Maven está ativada. Caso não tenha um menu Maven na barra lateral direita, clique com o botão direito do rato na raiz do projeto, escolha "Add Framework Support", selecione Maven e clique em OK.
- Corra a fase
install
do Maven no módulo contrato. - Caso já tenha corrido a fase
install
, use o botão "Reload All Maven Projects" no menu Maven da barra lateral direita (botão com setas circulares mais à esquerda desse menu).
Quando mvn install
é corrido de um terminal, seja dentro ou fora do IntelliJ, pode ser necessário repetir o último
passo.
Este aspeto nem sempre é especificado em sistemas reais. Para facilitar testagem, foi construída esta ordem:
- INACTIVE_SERVER
- WRITING_NOT_SUPPORTED
- ENROLLMENTS_ALREADY_OPENED
- ENROLLMENTS_ALREADY_CLOSED
- STUDENT_ALREADY_ENROLLED
- NON_EXISTING_STUDENT
- FULL_CLASS
- OK
As situações com índice menor tomam sempre precedência sobre as restantes, caso ocorram.
Para permitir testagem automática, têm de seguir este formato
Seguindo o seguinte exemplo: um professor abre uma turma com 20 alunos, fecha a turma e reabre com 10.
- Caso estejam menos de 10 alunos inscritos a capacidade passa a 10 e abre.
- Caso estejam 10 alunos inscritos ou mais retorna FULL_CLASS ao professor.
Para a entrega final (P3), sim, todos os processos devem ter disponível a flag -debug.
Devem imprimir informação que permita perceber exatamente o que está a acontecer, sendo ao vosso critério aquilo que acham que devem imprimir. Notem que o -debug serve para termos uma visão mais específica de todo o processo.
Sim. Os comentários no código são uma boa prática que ajuda a perceber, não só o código em si, mas também a lógica por trás do mesmo. Visto que estão a programar em java, então javadocs seria uma boa opção.
Não vale a pena. As verificações de argumentos incidem sobre a lógica do negócio do projeto, mas esta é uma cadeira de Sistemas Distribuídos, pelo que vos queremos focados nos problemas de distribuição do vosso projeto. Usem os erros já definidos que se aproximem o mais próximo possível da situação, ou, na falta de melhor, devolvam um erro do gRPC em si (o mais adequado possível).
Deve retornar ENROLLMENTS_ALREADY_CLOSED.
Deve retornar ENROLLMENTS_ALREADY_OPENED.
Para já, não é obrigatório. Porém, para a entrega final (entrega 3), sim, a pasta demo e o guião devem constar na entrega.
Não, é apenas necessário escrever um relatório como descrito no enunciado. Não é necessário elaborar um guião de demonstraç
Até às 23:59h do dia definido para a entrega.
Deve retornar um erro de INACTIVE_SERVER a qualquer pedido vindo do aluno ou professor, inclusive pedidos de atualização (propagate). Apenas o administrador deve conseguir executar os pedidos normalmente.