Open the menu

    Versão 4.2.0.080723

    Novidades

    • Serviço Relatórios ;
      • Adição de novos jars referentes ao funcionamento do Serviço de Relatórios;
    • Acrescentado em lumisportalconfig.xml o elemento serverId para especificar uma identificação para o servidor. O valor desse atributo deve ser único entre servidores em um ambiente multiserver. Atualizar o lumisportalconfig.xml com essa configuração;
    • Serviço de Categorização de Conteúdos ;
    • Nova arquitetura de content;
    • Informação de interface sendo carregada: a configuração é realizada no elemento <loadingHtmlMessage> no lumisportalconfig.xml que permite atribuir informações de progresso nas chamadas das interfaces client-side. Por default, o usuário visualizará uma imagem, juntamente com a string "Carregando". A renderização das interfaces client-side passou a ser assíncrona, ou seja, o portal não espera que uma interface seja renderizada, para renderizar a outra. As renderizações são realizadas em paralelo. Atualizar o lumisportalconfig.xml com essa configuração;
    • Novo estilo para a interface Busca com Resultados: ListAcessible.xsl (Lista Acessível). Este estilo permite que a interface com comportamento client-side também seja acessível;

    Melhorias

    • Exportação/Importação: Regras de membros de grupos locais e lista de controle de acesso;
    • Serviço Fale Conosco agora possui categoria para as mensagens;
    • Criado o controle lum_conditionalRender que somente é renderizado, bem como os seus filhos, caso a condição definida em uma EL for satisfeita;
    • Implementado o template com mode="lum_renderDetailsValue" name="lum_renderDetailsValue" no doui controls. Para customizar a renderização de um campo da interface de detalhes, é possível criar o proprio template com mode="lum_renderDetailsValue" como exibido abaixo:

    • Cluster:
      • Criada interface IClusterMember para representar membro do cluster. Consultar a API lumis.portal.cluster;
    • Alteração do Header Html de páginas, com a possibilidade de adição de meta-tags description e keywords que facilitam a indexação pelos mecanimos de busca. Para a página de Detalhes é possível customizar título e os metadados em tempo de execução;
    • Suporte a annotations de lifecycle do JPA;
    • Conforme o padrão J2EE, foi adicionado no web.xml o elemento <distributable/>. Sem esse elemento, o HttpSession não se replicaria, quando a devida configuração de replicação é ativada no application server. Atualizar o web.xml com essa configuração;
    • lumishibernate.cfg.xml: acrescentar a seguinte propriedade, após o upgrade, de preferência em um bloco geral para servir a qualquer string de conexão:

      <property name="jdbc.batch_size">0</property>

      Esta propriedade é necessária para o correto funcionamento do banco, por exemplo, para evitar erros de adição de conteúdo com workflow no MySQL;

    • Inclusão do filtro WebDataFilter no arquivo web.xml que serve arquivos localizados em www/data, para ser utilizado quando webRootPath for externo ao servidor de aplicação;

    Alterações

    • Em decorrência de alterações na definição do schema do douidefinition, a raiz dos arquivos customizados devem ser atualizadas de:

      Para:

      Os arquivos douidefinition.xml com o trecho antigo continuam funcionando normalmente, mas ferramentas de edição de XML, que dão suporte à validação de schema ou auto complete, podem indicar erros ou não serem capazes de utilizar essas funcionalidades corretamente.

    • Os arquivos .lec do produto (prebuilt channels) foram alterados para conter a versão 4.2.0.0 e os antigos para 1.0.0.0. Para a importação, se a versão do arquivo .lec não for igual do .lec atual, será exibida uma mensagem de erro alertando sobre tal diferença de versão, e a importação será interrompida;
    • Lock:
      • lumis.portal.lock.ILockManager revisto e incompatível com a versão anterior;
      • servicedefinition não possui mais elementos <lock> e <lockType>;
    • DataBoundControl.setsSourceParameters() está deprecated;
    • Relatórios:
      • lumishibernate.cfg.xml: acrescentar a seguinte propriedade após o upgrade

        <property name="cache.use_query_cache">true</property>;

      • servlet ReportImageServlet e filtro MonitorContextFilter incluídos no web.xml. Após o upgrade ele deve ser atualizado com estas configurações;
    • Cache:
      • Métodos anteriormente deprecated em IPageCacheManager, foram removidos;
      • Os métodos IPageCacheManager.clearCacheByPageIds e IPageCacheManager.clearCacheByChannelIds sofreram alterações em suas assinaturas;
    • Contexto Transacional
      • No web.xml foi acrescentado o filtro TransactionCleanupFilter;
      • PortalTransactionFactory.getTransaction() está deprecated;
      • Nova feature de propagação de transação documentada em lumis.portal.transaction
    • Serviço de Fórum: alteração na estrutura de dados;
    • Serviços de Busca: A definição de controles da interface Busca com Resultados do serviço de Busca foi alterada para se utilizar o controle lum_button com o controle lum_buttonList;
    • Agora o portal considera a extensão determinada no lumisportalconfig.xml para páginas cacheadas. Se ela for acessada com qualquer outra extensão, será retornado erro 404 (página não encontrada);
    • Content
      • O parâmetro itemId sempre se refere à chave primária na tabela principal de dados do conteúdo. Não existe mais os conceitos de languageContentId ou versionContentId, cujos valores eram repassados no parâmetro itemId quando o source possuía multi-idioma ou versionamento. Para identificar um conteúdo de forma mais genérica, sem especificar qual idioma ou versão, há o contentId, que é passado pelo parâmetro PortalRequestParameters.PAGE_PARAMETER_ITEM_ID ("lumItemId");
      • URLs para detalhes de conteúdos alteradas. Agora, é utilizado o parâmetro lumItemId contendo o contentId ao invés de itemId contendo a chave primária, languageContentId ou versionContentId. Caso seja fornecido o parâmetro itemId e não lumItemId, o lumItemId que seria utilizado internamente, é calculado a partir do itemId, supondo que este corresponde à chave primária do dado. Caso request.getParameter("itemId") seja chamado em uma requisição com lumItemId e sem itemId, o itemId é calculado como sendo a chave primária do dado publicado, correspondente ao conteúdo especificado em lumItemId, para o usuário atual, considerando idioma e regras de publicação. Isto reduz incompatibilidades de URLs antigas para conteúdos sem multi-idioma ou versionamento.

        Esta inferência de lumItemId a partir de itemId é feita apenas para reduzir incompatibilidades. Seu uso pode causar ineficiência na detecção de cache de páginas htmls a serem expiradas (expirar mais páginas do que necessário) ou outros overheads. Neste cenário, o recomendado é ajustar para os links para utilizarem as URLs no novo padrão;

      • XML gerado pelo controle lum_language alterado;
      • Foi alterada a forma como os metadados de conteúdo são armazenados. Parte da api do pacote lumis.content.metadata foi removida, o restante está deprecated. A nova API está no pacote lumis.content.core. Portanto, qualquer customização que referencia diretamente os metadados de conteúdo, por exemplo, utilizando o valor de metaDataId como foreign key, precisa ser revista;
      • Atributo lumMetaDataId não mais adicionado pelos process action padrões de content. Em seu lugar, é adicionado o atributo lumContentVersionId e lumContentId;
      • metadatahyperlink.jsp substituído por contenthyperlink.jsp. Isso afeta por exemplo, os serviços de Newsletter e RSS;
      • Valores de controle incluídos nos índices da busca para conteúdos alterados;
      • Interface lumis.service.association.associatedContents: campos renomeados de associatedMetaDataId para associatedContentId e associatedMetaData para associatedContent;
      • IWorkflowManager: alguns métodos deprecated e autoArchivePublishedContent substituído por outro com assinatura diferente;
      • IWorkflowActionHandler: assinatura do método preProcessAction foi alterada;
      • Nesta versão não existe mais a possibilidade de um source tipo contentTable de não possuir isolação por instância de serviço. Para migrar os casos implementados para a nova versão do produto, existem as possibilidades descritas abaixo:
        • Migrar todos os conteúdos para a mesma instância de serviço:

          Esta solução consiste em migrar todos os conteúdos para uma única instância de serviço e sempre utilizar interfaces desta mesma instância de serviço. Quando não há necessidade de controle de acesso mais complexo, esta é um meio simples de manter a forma como o serviço funcionava anteriormente.

          1. Primeiro passo: ajustar a base de dados, para que os conteúdos desse serviço passem a pertencer a uma instância de serviço específica. Para isso obtenha o identificador da instância de serviço desejada, e do respectivo serviço. Pode ser obtida na aba 'Avançado' das propriedades de uma interface dessa instância de serviço, nos campos 'Instância de Serviço' e 'Serviço'. Executar os seguintes SQLs para atualizar a base de dados:

          2. Segundo passo: editar as páginas para utilizarem interfaces apenas da instância de serviço selecionada acima. É necessário ir em cada página com interface de outra instância de serviço, remover a interface e adicionar em seu lugar a interface da instância de serviço correta;
          3. Terceiro passo: pode-se remover as demais instâncias de serviço, que não serão mais utilizadas;
        • Utilizar o atributo publishAllAccessibleContents no source que não possuía isolação: Esta solução resolve o problema de nas interfaces de publicação exibir também conteúdos de outras interface. No entanto, este atributo não afeta as interfaces de administração. Se também for desejado que a interface de administração exiba todos os conteúdos, será necessário migrar os conteúdos para uma mesma instância de serviço, como explicado acima, mas será necessário efetuar o passo 2 apenas para as interfaces de administração, pois o atributo publishAllAccessibleContents fará com que as interfaces de publicação exiba os conteúdos da instância de serviço de administração. O passo 3 poderia ser feito apenas para instâncias de serviço não mais utilizadas.
      • Para ser possível publicar dados de múltiplas instâncias de serviços em uma interface, a configuração se os dados serão ou não filtrados pelas regras de publicação para instâncias de serviço deve ser definida em cada source no douidefinition. O source do tipo contentTable poderá ter o atributo publishAllAccessibleContents tipo boolean, com valor false. Quando true, a query gerada pelo content framework, além de exibir os conteúdos publicados para a instância de serviço da interface, também exibirá os conteúdos das instâncias de serviço que o usuário corrente tem permissão, através do controle de acesso "Visualizar Instância de Serviço". Este atributo afetará apenas interfaces de publicação. Interfaces de administração não serão afetadas por este atributo;
      • lum_AlbumPhotograph.albumId foi alterado para lum_AlbumPhotograph.albumContentId, que referencia o identificador do conteúdo do álbum. O upgrade efetua a conversão necessária, porém pode haver incompatibilidade se alguma customização referencia albumId;
      • O uso de itemId + serviceInstanceId + sourceId foi considerado como deprecated para especificar um conteúdo no IWorkflowManager. O método getAccessibleTransitions também está deprecated e possui substitutos. Para maiores detalhes, verificar o o javadoc do IWorkflowManager;
      • Upgrade:
        • Conteúdos com languageId com valor NULL (usado para representar o idioma "Todos"), terão o idioma (que agora não é permitido NULL) com valor "zz_ZZ" após o upgrade, e o defaultLocale também será "zz_ZZ" para estes conteúdos, para manter a funcionalidade que "Todos" causava.

          O idioma 'zz_ZZ' aparece em branco no front-end de edição, e deve ser alterado manualmente, respeitando as novas regras de conteúdos multi-idioma.

          Para os demais conteúdos defaultLocale será NULL;

        • Todas as instâncias de serviços que possuem algum source content devem ser reindexadas;
        • Esta versão efetua o versionamento de alguns metadados, o que não ocorria na versão anterior. Durante o upgrade, conteúdos com versionamento terão estes metadados versionados copiados da versão atual para as versões anteriores;
        • Todos os serviços content devem ter seus registros atualizados. O processo de upgrade já atualiza os registro dos serviços padrões do produto. Os demais precisam ser atualizados manualmente no gerenciador de serviços;
        • Recomenda-se limpar toda a lista de cache de página html, para evitar cache de urls não mais existentes.