50 lines
1.8 KiB
Markdown
50 lines
1.8 KiB
Markdown
# pitiupi
|
|
|
|
Este repositório tem 4 projetos Java que são independentes:
|
|
|
|
### Sistema:
|
|
- A ferramenta pitiupi (P2P)
|
|
|
|
### Plugins:
|
|
- Um plugin de Chat
|
|
- Um plugin de Chat multiprotocolo (TCP/UDP)
|
|
- Um plugin de ScreenCast
|
|
|
|
Cada um destes projetos deve ser compilado individualmente. Para isso, use a ferramenta ant no diretório do projeto.
|
|
Ex:
|
|
```
|
|
cd pitiupi.chat
|
|
ant jar
|
|
```
|
|
|
|
Feito isso, os arquivos jar dos plugins deverão ser copiados ou linkados na pasta plugin da ferramenta.
|
|
No caso de a mesma ser linkada, ao recompilar os plugins não é necessário copiar o mesmo novamente para a pasta de plugins da ferramenta.
|
|
Para criar links simbólicos no Linux, use o comando:
|
|
|
|
```
|
|
cd pitiupi/plugins
|
|
ln -s ../../pitiupi.chat/dist/*.jar .
|
|
ln -s ../../pitiupi.mpChat/dist/*.jar .
|
|
ln -s ../../pitiupi.screenCast/dist/*.jar .
|
|
```
|
|
Isso deve resolver!
|
|
|
|
## Como um plugin conversa com o pitiupi
|
|
|
|
Um plugin nunca recebe acesso direto às classes internas do núcleo (ConnectionManager, GuiManager). Em vez disso, recebe uma facade, a classe Pitiupi, que expõe só o que um plugin precisa: enviar mensagem (multicast, unicast ou tcp), abrir conexão tcp privada, ler nome de usuário e porta, criar menu.
|
|
|
|
```java
|
|
public abstract void createPlugin(Pitiupi pitiupi);
|
|
```
|
|
|
|
## Para criar um novo plugin
|
|
|
|
1. Implemente `pitiupi.models.Plugin`, incluindo `createPlugin(Pitiupi pitiupi)`
|
|
2. Registre a classe em `src/META-INF/services/pitiupi.models.Plugin`, com o nome completo da classe numa linha
|
|
3. Compile com `ant jar`
|
|
4. Linke o `.jar` em `pitiupi/plugins`
|
|
|
|
Use `pitiupi.chat` como referência — é o exemplo mais simples e completo.
|
|
|
|
Plugins que ainda não foram atualizados para a Pitiupi (como uma versão mais antiga do screenCast) não compilam contra o núcleo atual e precisam de migração antes de serem usados.
|