Open the menu

    Classloader do portal

    O classloader do portal organiza e disponibiliza os recursos dos módulos instalados no portal. Esse classloader é disponibilizado pelo método getClassLoader(), da interface lumis.portal.deployment.IDeploymentManager. Essa interface é acessível pelo método lumis.portal.manager.ManagerFactory.getDeploymentManager().

    A forma que um módulo adotará na organização do classloader, depende de seu escopo.

    Escopos de módulos

    O escopo de um módulo é definido em seu arquivo de definição.
    Esse escopo pode ser:

    global
    Quando o escopo do módulo é global, ele é dito um módulo global. Os módulos globais formam um único classloader, chamado classloader global. As classes do classloader global, isto é, todas as classes de todos os módulos globais, têm visibilidade entre si e têm visibilidade das classes providas pelo classloader da aplicação web do portal.
    isolated (padrão, caso não se defina)
    Quando o escopo do módulo é isolated, ele é dito um módulo isolado. Classes de módulos isolados distintos não têm visibilidade entre si. Uma classe de um módulo isolado têm visibilidade das outras classes desse mesmo módulo, das classes do classloader global (todas as classes de todos os módulos globais) e das classes providas pelo classloader da aplicação web do portal.

    O classloader do portal tem a seguinte estrutura:

    LumisXP classloader
    LumisXP classloader

    Cada módulo pode incluir bibliotecas .jar, caso necessite, em sua pasta META-INF/lib. Essas bibliotecas devem ser arquivos normais e com nome terminado em .jar (minúsculo).

    Abaixo, encontra-se um exemplo de visibilidade entre classes:

    Visibilidade entre classes
    Visibilidade entre classes

    Legenda:
    Setas roxas
    Visibilidade da classe com.empresa.projeto.Classe1
    Setas cinzas
    Visibilidade da classe com.empresa.projeto.Classe2
    Setas verdes
    Visibilidade da classe com.empresa.projeto.Classe3
    Setas azuis
    Visibilidade da classe com.empresa.projeto.Classe4
    Setas laranjas
    Visibilidade da classe com.empresa.projeto.Classe5