PluginManager: mudanças entre as edições
Criou página com 'Uma aplicação com o uso do BISCore é baseada na construção de plugins que utilizam a base oferecida pelo BISCore e acrescentam as necessidades do usuário. Esses plugins...' |
Sem resumo de edição |
||
(2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
Uma aplicação com o uso do BISCore é baseada na construção de plugins que utilizam a base oferecida pelo | Uma aplicação com o uso do BISCore é baseada na construção de plugins que utilizam a base oferecida pelo BISFrameWork e acrescentam as necessidades do usuário. Esses plugins são desenvolvidos e empacotados separadamente do BISCore. Já seus pacotes são colocados juntos em um EAR único para realizar o deploy e montar a aplicação apenas com os plugins desejados. | ||
O | O BISFrameWork carrega todos os plugins do sistema e os inicializa junto com o servidor de aplicações. Durante esse carregamento o BISFrameWork lê do plugin suas "necessidade". Dependência com outros plugins, menus, métodos de inicialização, chaves de segurança usada pelo plugin, etc. | ||
Para conhecer as classes de um plugin e como começar a implementar um novo plugin leia mais em [[Criando um Plugin]]. | Para conhecer as classes de um plugin e como começar a implementar um novo plugin leia mais em [[Criando um Plugin]]. | ||
= Procedimento de Carregamento dos Plugins = | |||
Ao carregar os plugins, o | Ao carregar os plugins, o BISFrameWork executa o procedimento na seguinte ordem: | ||
Para cada plugin da fila: | Para cada plugin da fila: | ||
* Verifica as dependências do plugin, e se faltar alguma dependência ou a se a versão for | * Verifica as dependências do plugin, e se faltar alguma dependência ou a se a versão for incompatível<ref>'''Versões Compatíveis:''' Para entender melhor a questão sobre "versões compatíveis" e como são avaliadas, leia o tópico sobre [[Definindo Número de Versão]].</ref> o plugin não é carregado. Porém, permanece na fila até que suas dependências sejam completadas; | ||
* Verifica se o plugin exige licença de uso, se exigir, verifica se temos alguma licença válida. Se não houver nenhuma licença válida, o plugin não é carregado; | * Verifica se o plugin exige licença de uso, se exigir, verifica se temos alguma licença válida. Se não houver nenhuma licença válida, o plugin não é carregado; | ||
* Se não houve nenhuma falha de dependência nem de licença, o | * Se não houve nenhuma falha de dependência nem de licença, o BISFrameWork solicita para o plugin scripts de atualização para o banco de dados. Se o script falhar, o plugin não será carregado, e sua alterações do banco sofrerão <ref>'''Rollback no MySQL:''' Embora o BISFrameWork já esteja separando em sessões as atualizações do banco de dados, o MySQL, banco homologado pelo BIS atualmente, não suporta Rollback de statements que façam alterações na estrutura das tabelas. Assim, em caso de falha, o Rollback só é realizado até a última alteração de estrutura, não completamente.</ref>. | ||
Após o plugin ter sido carregado, o método initPlugin() é chamado para que o Plugin possa executar operações de inicialização. | Após o plugin ter sido carregado, o método initPlugin() é chamado para que o Plugin possa executar operações de inicialização. | ||
Linha 20: | Linha 20: | ||
= Notas = | |||
<references/> | <references/> |
Edição atual tal como às 19h37min de 7 de setembro de 2015
Uma aplicação com o uso do BISCore é baseada na construção de plugins que utilizam a base oferecida pelo BISFrameWork e acrescentam as necessidades do usuário. Esses plugins são desenvolvidos e empacotados separadamente do BISCore. Já seus pacotes são colocados juntos em um EAR único para realizar o deploy e montar a aplicação apenas com os plugins desejados.
O BISFrameWork carrega todos os plugins do sistema e os inicializa junto com o servidor de aplicações. Durante esse carregamento o BISFrameWork lê do plugin suas "necessidade". Dependência com outros plugins, menus, métodos de inicialização, chaves de segurança usada pelo plugin, etc.
Para conhecer as classes de um plugin e como começar a implementar um novo plugin leia mais em Criando um Plugin.
Procedimento de Carregamento dos Plugins
Ao carregar os plugins, o BISFrameWork executa o procedimento na seguinte ordem:
Para cada plugin da fila:
- Verifica as dependências do plugin, e se faltar alguma dependência ou a se a versão for incompatível[1] o plugin não é carregado. Porém, permanece na fila até que suas dependências sejam completadas;
- Verifica se o plugin exige licença de uso, se exigir, verifica se temos alguma licença válida. Se não houver nenhuma licença válida, o plugin não é carregado;
- Se não houve nenhuma falha de dependência nem de licença, o BISFrameWork solicita para o plugin scripts de atualização para o banco de dados. Se o script falhar, o plugin não será carregado, e sua alterações do banco sofrerão [2].
Após o plugin ter sido carregado, o método initPlugin() é chamado para que o Plugin possa executar operações de inicialização.
Para plugins ativos: Depois que o plugin estiver ativo no sistema ele passará a receber chamadas nos métodos pluginActivated() e pluginDeactivated() sempre que um plugin for ativado ou desativado no sistema, como uma forma de evento. Se um plugin estiver ativo e alguma de suas dependências for desativada, este plugin será desativado antes. De forma que respeite as dependências estabelecidas, e assim o método destroy() ainda possa usar as dependências antes de serem desativadas..
Notas
- ↑ Versões Compatíveis: Para entender melhor a questão sobre "versões compatíveis" e como são avaliadas, leia o tópico sobre Definindo Número de Versão.
- ↑ Rollback no MySQL: Embora o BISFrameWork já esteja separando em sessões as atualizações do banco de dados, o MySQL, banco homologado pelo BIS atualmente, não suporta Rollback de statements que façam alterações na estrutura das tabelas. Assim, em caso de falha, o Rollback só é realizado até a última alteração de estrutura, não completamente.