PluginManager: mudanças entre as edições

De BIS Wiki
Ir para navegação Ir para pesquisar
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 BISCore 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.
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 BISCore carrega todos os plugins do sistema e os inicializa junto com o servidor de aplicações. Durante esse carregamento o BISCore obtém do plugin suas "necessidade". Dependência com outros plugins, menus, métodos de inicialização, chaves de segurança usada pelo plugin, etc.
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 ==
= Procedimento de Carregamento dos Plugins =


Ao carregar os plugins, o BISCore executa o procedimento na seguinte ordem:
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 incompatíve<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 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 BISCore 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 BISCore 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>.
* 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 ==
= 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

  1. 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.
  2. 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.