Adiciona catálogo de plugins e script único de build/run.
plugins.registry.json e scripts/pitiupi.sh substituem lista fixa de módulos; screen cast em MenuCategory.Streaming; README e docs atualizados. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
1 parent
f02acaf131
commit
b10c196fc9
9 files changed
+496
-47
No files matched your search
@@ -2,6 +2,8 @@
|
||||
|
||||
```
|
||||
pitiupi/ # clone (este repositório)
|
||||
├── plugins.registry.json # catálogo de módulos (build/link via scripts/pitiupi.sh)
|
||||
├── scripts/pitiupi.sh
|
||||
├── pitiupi/ # núcleo P2P (executável)
|
||||
├── pitiupi.chat/ # plugin referência — chat
|
||||
├── pitiupi.screenCast/ # plugin referência — captura de tela
|
||||
@@ -27,7 +29,7 @@ Todos dependem do JAR do núcleo no classpath de compilação.
|
||||
|
||||
## O que o aluno cria
|
||||
|
||||
Novo diretório irmão, por exemplo `pitiupi.xadrez/`, copiando a estrutura de `pitiupi.chat` (Ant + `META-INF/services`).
|
||||
Novo diretório irmão, por exemplo `pitiupi.xadrez/`, copiando a estrutura de `pitiupi.chat` (Ant + `META-INF/services`). Registre o módulo em `plugins.registry.json` e use `MenuCategory` adequado no código.
|
||||
|
||||
Não é obrigatório commitar o plugin do aluno neste repositório base; o professor pode definir fork ou entrega em zip.
|
||||
|
||||
|
||||
@@ -49,16 +49,50 @@ Arquivo `src/META-INF/services/pitiupi.models.Plugin`:
|
||||
pacote.MeuPlugin
|
||||
```
|
||||
|
||||
## 5. Build e instalação
|
||||
## 5. Categoria no menu
|
||||
|
||||
Escolha onde o plugin aparece na barra **Plugin**:
|
||||
|
||||
| `MenuCategory` | Uso |
|
||||
| --- | --- |
|
||||
| `Social` | Chat, presença |
|
||||
| `Jogos` | Jogos entre peers |
|
||||
| `Streaming` | Screen cast, mídia |
|
||||
|
||||
Exemplo:
|
||||
|
||||
```java
|
||||
guiManager.createMenu(MenuCategory.Jogos, new MeuMenu(...));
|
||||
```
|
||||
|
||||
## 6. Registrar no catálogo
|
||||
|
||||
Adicione uma entrada em [`plugins.registry.json`](../../plugins.registry.json) na raiz do repo:
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "xadrez",
|
||||
"dir": "pitiupi.xadrez",
|
||||
"build": "ant",
|
||||
"jar": "dist/pitiupi.xadrez.jar",
|
||||
"menuCategory": "Jogos"
|
||||
}
|
||||
```
|
||||
|
||||
O `id` é o que você passa para `./scripts/pitiupi.sh run --plugins xadrez`.
|
||||
|
||||
## 7. Build e instalação
|
||||
|
||||
```bash
|
||||
cd pitiupi.meuPlugin && ant jar
|
||||
ln -sf ../../pitiupi.meuPlugin/dist/*.jar ../pitiupi/plugins/
|
||||
./scripts/pitiupi.sh build --plugins xadrez
|
||||
# ou, manualmente:
|
||||
cd pitiupi.xadrez && ant jar
|
||||
ln -sf ../../pitiupi.xadrez/dist/pitiupi.xadrez.jar ../pitiupi/plugins/xadrez.jar
|
||||
```
|
||||
|
||||
Reinicie o Pitiupi após trocar JARs.
|
||||
|
||||
## 6. Teste
|
||||
## 8. Teste
|
||||
|
||||
Duas instâncias, mesma rede, portas distintas se no mesmo host. Ver [00_quickstart.md](00_quickstart.md).
|
||||
|
||||
|
||||
@@ -7,8 +7,9 @@ Três exemplos no repositório para comparar estilos de integração. Todos deve
|
||||
| | pitiupi.chat | pitiupi.screenCast | pitiupi.mpChat |
|
||||
| --- | --- | --- | --- |
|
||||
| Build | Ant | Ant | Make |
|
||||
| id (`plugins.registry.json`) | `chat` | `screencast` | `mpchat` |
|
||||
| Classe | `ChatPlugin` | `ScreenCastPlugin` | `MultiProtocolChat` |
|
||||
| Categoria menu | `Social` | (menu custom via `GuiManager`) | `Social` (multicast + unicast) |
|
||||
| Categoria menu | `Social` | `Streaming` | `Social` (multicast + unicast) |
|
||||
| Mensagem | `ChatMessage` | `ScreenCastMessage` | `MpChatMessage` |
|
||||
| Transporte principal | UDP (via `ConnectionManager`) | UDP / payloads maiores | UDP público + **TCP privado** |
|
||||
| TCP avançado | Não | Depende da versão do módulo | `receivePrivateConnection`, `receiveBytes` |
|
||||
|
||||
@@ -9,7 +9,13 @@ Não há suíte JUnit integrada ao repositório. A validação principal é:
|
||||
|
||||
## Gate de build (recomendado)
|
||||
|
||||
Sequência:
|
||||
Na raiz do clone (todos os módulos do catálogo):
|
||||
|
||||
```bash
|
||||
./scripts/pitiupi.sh build --all
|
||||
```
|
||||
|
||||
Equivalente manual:
|
||||
|
||||
```bash
|
||||
cd pitiupi && ant jar
|
||||
@@ -18,7 +24,7 @@ cd ../pitiupi.screenCast && ant jar
|
||||
cd ../pitiupi.mpChat && make
|
||||
```
|
||||
|
||||
Falha se `java`, **`javac`**, Ant ou Make estiverem ausentes (instale `openjdk-*-jdk`, não só JRE).
|
||||
Falha se `java`, **`javac`**, Ant, Make ou `python3` estiverem ausentes (instale `openjdk-*-jdk`, não só JRE).
|
||||
|
||||
## Checklist manual (rede)
|
||||
|
||||
|
||||
Reference in new issue
Block a user