Files
pitiupi/docs/documentation/14_arquitetura_e_manutencao.md
T
Gabriel Felipe Souza SantosandCursor eeb1936f6d Entrega v1 aula: shell com abas, PITIUPI_HOME e plugins de referência.
Consolida núcleo (presença, peer actions, MessageDispatcher), chat e screencast na galeria, documentação PT-BR e testes JUnit; remove mpChat do catálogo em favor do chat unificado.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-27 11:08:21 -03:00

1.9 KiB

Arquitetura e manutenção

Onde editar

Comportamento Pacote / classe
Login, porta, nome pitiupi.presentation.shell.LoginDialog
Shell principal (abas, galeria) pitiupi.presentation.shell.MainShellFrame, TabWorkspacePanel
Menu Ajuda pitiupi.presentation.shell.ShellMenuBar
Usuários online, peer actions pitiupi.presentation.shell.NetworkUsersPanel, PeerActionBroker
Facade rede para plugins pitiupi.control.ConnectionManager
Workspace na aba (SPI) pitiupi.api.plugin.PluginWorkspace, ShellPluginWorkspace
Menus legados (adapter) pitiupi.control.GuiManager — deprecado; preferir peer actions
UDP pitiupi.net.udp.SocketUDP
TCP servidor e mapa de conexões pitiupi.net.tcp.SocketTCP, TcpConnectionManager
Conexão TCP por peer pitiupi.net.tcp.TcpConnection
Handshake / fábrica TCP pitiupi.net.tcp.ConnectionFactory, HandshakeMessage
Heartbeat pitiupi.control.HeartbeatManager, HeartbeatMessage
Carregar JARs, despacho pitiupi.control.plugins.PluginManager
Contrato plugin pitiupi.models.Plugin, pitiupi.models.Messages.Message
Menus por categoria pitiupi.models.Menus.*

Dependências entre módulos

pitiupi (núcleo)
   ↑ classpath
plugins/chat | plugins/screencast

Plugins não devem ser dependência do núcleo.

Alterações arriscadas

  • Mudar grupo multicast ou formato de heartbeat → quebra interoperabilidade na sala.
  • Mudar framing TCP → todos os plugins que usam TCP precisam acompanhar.
  • Alterar nome do arquivo SPI (pitiupi.models.Plugin) → todos os JARs de plugin.

Registrar decisão em decision-register.md.

Documentação viva

Ao mudar protocolo ou API pública do núcleo, atualizar o número correspondente em documentation/README.md e, se aplicável, 11_plugins_referencia.md.