Versão 4.2.0.080723

Top  Previous  Next

Novidades

Serviço Relatórios ;
oAdiçã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:

...

<xsl:template match="*" mode="lum_renderDetailsValue">

<xsl:choose><BR><xsl:whentest="name()='photograph'">

<img src="{downloadInlineHref}" alt="{name}" />

</xsl:when>

<xsl:otherwise>

<xsl:call-template name="lum_renderDetailsValue" />

</xsl:otherwise>

</xsl:choose>

</xsl:template>

...

Cluster:
oCriada 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:

<?xml version="1.0" encoding="UTF-8"?>

<douiDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:noNamespaceSchemaLocation="http://www.lumis.com.br/lumisportal/xsd/douidefinition.xsd"

  xmlns:control="http://www.lumis.com.br/douicontrols">

(...)

</douiDefinition>

Para:

<?xml version="1.0" encoding="UTF-8"?>

<doui:douiDefinition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xmlns:doui="http://www.lumis.com.br/lumisportal/xsd/doui"

  xmlns:control="http://www.lumis.com.br/douicontrols">

(...)

</doui:douiDefinition>

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:
olumis.portal.lock.ILockManager revisto e incompatível com a versão anterior;
oservicedefinition não possui mais elementos <lock> e <lockType>;
DataBoundControl.setsSourceParameters() está deprecated;
Relatórios:
olumishibernate.cfg.xml: acrescentar a seguinte propriedade após o upgrade

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

o servlet ReportImageServlet e filtro MonitorContextFilter incluídos no web.xml. Após o upgrade  ele deve ser atualizado com estas configurações;
Cache:
oMétodos anteriormente deprecated em IPageCacheManager, foram removidos;
oOs métodos IPageCacheManager.clearCacheByPageIds e IPageCacheManager.clearCacheByChannelIds sofreram alterações em suas assinaturas;
Contexto Transacional
oNo web.xml foi acrescentado o filtro TransactionCleanupFilter;
oPortalTransactionFactory.getTransaction() está deprecated ;
oNova 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

 

oO 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");
oURLs 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;

oXML gerado pelo controle lum_language alterado;
oFoi 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;
oAtributo lumMetaDataId não mais adicionado pelos process action padrões de content. Em seu lugar, é adicionado o atributo lumContentVersionId e lumContentId;
ometadatahyperlink.jsp substituído por contenthyperlink.jsp. Isso afeta por exemplo, os serviços de Newsletter e RSS;
oValores de controle incluídos nos índices da busca para conteúdos alterados;
oInterface lumis.service.association.associatedContents: campos renomeados de associatedMetaDataId para associatedContentId e associatedMetaData para associatedContent;
oIWorkflowManager: alguns métodos deprecated e autoArchivePublishedContent substituído por outro com assinatura diferente;
oIWorkflowActionHandler: assinatura do método preProcessAction foi alterada;
oNesta 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.

 

a) 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:

 

update lum_Content set serviceInstanceId='<identificador_da_instância_de_serviço>'

where serviceInstanceId in

(select serviceInstanceId from lum_ServiceInstance

where serviceId='<identificador_do_serviço>');

update lum_ContentPubServiceInst set serviceInstanceId='<identificador_da_instância_de_serviço>'

where serviceInstanceId in

(select serviceInstanceId from lum_ServiceInstance

where serviceId='<identificador_do_serviço>');

update lum_File set serviceInstanceId='<identificador_da_instância_de_serviço>'

where serviceInstanceId in

(select serviceInstanceId from lum_ServiceInstance

where serviceId='<identificador_do_serviço>');

 

b) 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;

 

c) 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.

 

oPara 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;
olum_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;
oO 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 ;
oUpgrade:
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.

 


Lumis Portal 6.1.0.111014
Copyright © 2001-2007, Lumis. Todos os direitos reservados.