Versão 8.1.0
A versão 8.1.0 possui todas as modificações incluídas até a versão 8.0.2. Abaixo seguem os destaques das demais funcionalidades não existentes na versão 8.0.2.
Novidades
- Framework de Big Data, com API disponível para uso pelas soluções;
- Suporte para o uso de linguagens groovy e javascript implementando classes Java nos serviços instalados em módulos. Mais detalhes podem ser encontrados no manual;
- Suporte para o uso de linguagens groovy e javascript como estilo de interface (como alternativa a XSL);
- Novos metodos EL adicionados para auxiliar com o escape de strings para XML e JavaScript
- Adição de funcionalidade para Edição de Imagem nos campos de seleção de arquivos, quando o arquivo selecionado se tratar de uma imagem.
- Serviço de Questionários;
- Editor de imagens, permitindo recorte e rotação, integrado no controle lum_fileUpload;
- Detecção de idiomas preferidos configurado no navegador do usuário. Configuração disponível na aba Idiomas em propriedades de canal;
- Possibilidade de armazenar fragmentos de HTML para posteriormente estarem disponíveis para serem inseridos pelo botão de Inserir HTML no Editor HTML.
Melhorias
Núcleo do Portal
- O mecanismo de busca agora é baseado no novo framework de Big Data. Este framework por padrão utiliza Elasticsearch e já oferece funcionalidades novas, como stemização, highlight entre outros.
- Configurações de validadores de arquivos (
lumis.portal.file.validation.*
) incluídos em property bag podem ser configurados também nas instâncias de serviço. Anteriormente era necessário configurar em canal ancestral da instância de serviço; - Melhoria na mudança de modo disparada pela tecla F2 para o processamento ocorrer de forma assíncrona;
- Incluindo possibilidade de utilizar
execute-database-file
como passo de execução no script de atualização de componente (component-upgrade-script.xml
); - Foram adicionadas as funções de EL
ecapeJavascript
eescapeXML
; - No HTML gerado para página, alguns elementos script de controle interno que eram incluídos no decorrer do corpo da página agora são incluídos no head, reduzindo eventual impacto no layout da página;
- No modo de edição em contexto, disponibilizando link para a administração de conteúdo correspondente também quando a administração não está montada e é disponibilizada apenas pelo serviço de Administração Automática;
- Facilidades para definição de estilo a ser utilizado por uma interface no servicedefinition.xml:
- Possibilidade de especificar o caminho do estilo de forma relativa à pasta que contém o arquivo servicedefinition.xml;
- Quando uma interface não explicita elemento
<styles>
, caso exista um arquivo com nome igual ao identificador da interface na pasta style dentro da pasta do servicedefinition.xml, ele é automaticamente utilizado como estilo padrão da interface.
Administração do Portal e Portal Studio
- Diversas melhorias de usabilidade no editor de estilo;
- Campo caminho de arquivo de layout, de propriedades de canal e página, sugere valores baseados nos arquivos disponíveis no www dos temas aplicados;
- Renderização client-side de interface dentro do Portal Studio passou a ser executada de forma assíncrona no navegador;
- Possibilidade de definir o nome da instância de serviço sendo adicionada diretamente no formulário de adição de instância de serviço;
- Nova operação de excluir Web Resources disponível no formulário de edição de propriedades de canal e página;
- Menu para troca de idioma corrente na barra superior;
- Otimização no processo de atualização de módulo.
Serviços Nativos
- Melhorias no serviço de Busca, acrescentando funcionalidades de highlight, sugestões, busca rápida. Um único conteúdo publicado para múltiplas instâncias de serviço ou em múltiplos idiomas não é mais exibido como múltiplos resultados da busca;
- Melhoria no serviço de Conteúdo HTML para, no modo de edição em contexto, disponibilizar link para edição do conteúdo sendo exibido;
- Melhoria no serviço de Conteúdo HTML para automaticamente cadastrar um conteúdo a partir do HTML no layout file quando a interface é instanciada;
- Melhoria no serviço de Administração Automática, para requerer permissão de Editar conteúdo ao invés de Visualizar instância de serviço, para facilitar montagem com ACL herdando nos cenários mais comuns;
- Melhoria no serviço de Administração Automática, permitindo o redimensionamento da janela de visualização de conteúdo aberta a partir de Minhas pendências;
- Melhoria no serviço de Integração com Redes Sociais Públicas para permitir publicar conteúdo em qualquer conta acessível pelo perfil do Facebook sendo utilizado (exemplo: fanpage);
- Melhoria no serviço de Álbum de Mídias, na adição de mídias, ter o título como campo de preenchimento obrigatório;
- Melhoria no serviço de Repositório de Mídias para, na interface de lista, utilizar uma transformação pequena da imagem caso exista.
Correções
Núcleo do Portal
- Correção no processamento de requisições por HTTPS que não executava renderizações client-side;
- Correção em erro durante a inicialização do portal em ambiente com cluster habilitado e módulo instalado;
- Correção no preenchimento de content-type ao responder com json uma chamada de process action feita por AJAX;
- Correção na execução de um
QuerySelect
quando possui um filtro com operador IN e o valor é umQueryValue
com valores adicionados emgetValueParameters
; - Correção no ajuste de valores de atributos
value
no HTML para processar apenas atributosvalue
de elementooption
; - Correção no ajuste de valores de atributos no HTML para não processar alguns atributos com '-', como por exemplo
data-action
; - Correção no
ILockManager
quandoresourceId
utilizado possui mais de 255 caracteres em ambiente com cluster habilitado; - Correção no comportamento de página padrão de login quando em seu cadastro o canal está preenchido;
- Correção para remover arquivos temporários que não eram excluídos de lumisdata/data/upload;
- Correção no uso de data source em ambiente com Tomcat 8.
Administração do Portal e Portal Studio
- Correção no editor de estilo para o javascript contido no HTML sendo pré-visualizado não seja bloqueado ao utilizar Chrome como navegador;
- Correção no editor de estilo ao adicionar um novo estilo quando a página possui tema pertencente a módulo não editável aplicado;
- Correção no editor de temas e editor de módulo para exibir mensagem de erro se o usuário tentar efetuar upload de zip com arquivo inválido, ao invés de falhar silenciosamente;
- Correção no Portal Studio, ao diagramar página, para a opção de excluir page holder do arquivo de layout não ser exibida quando não estiver disponível;
- Correção no Portal Studio, ao diagramar página, onde o menu de contexto das interfaces não eram disponibilizadas quando o modo de exibição selecionado era Visualização de Estrutura da Página;
- Correção no acompanhamento de instalação de pacote ou módulo, para informar ao usuário quando o controle do acompanhamento foi roubado por outro usuário;
- Correção no Gerenciador de Mensagens na operação de excluir destinatário;
- Correção no Gerenciador de Serviços, quando ocorria um erro ao cadastrar um novo serviço, o formulário de adição não era mantido corretamente;
- Correção no Assistente de Criação de Serviço de Conteúdo onde a marcação de campo como buscável não era levada em conta;
- Correção no preenchimento de campo tipo canal em propriedades de página e instância de serviço quando utilizado navegador Chrome;
- Correção na navegação entre modos do portal que em algumas situações não disponibilizava as opções de ir para modo de Edição em Contexto ou Posicionar Widgets;
- Correções estéticas pontuais.
DOUI / Content
- Correção na URL para execução de process action por AJAX disponibilizada pelo controle
lum_form
; - Correção no campo de source de metadado de conteúdo com informações de idioma que poderia causar erro durante uma chamada de process action em que o source fosse recarregado;
- Correção no json gerado para campos tipo
file
em relação às transformações existentes para o arquivo; - Correção no controle de dropdown gerado por padrão para editar campo com lookupRelationId, para os valores das opções serem obtidos do campo especificado no foreignFieldId da relação ao invés de ser o campo de chave primária do source destino;
- Correção no controle
lum_multiFileUpload
na geração do formulário quando xml de definição possuía fim de linha com carriage return.
Serviços Nativos
- Correção no serviço de CommentIt onde a tecla enter não enviava o comentário no Internet Explorer 8;
- Correção no serviço de CommentIt e serviço de LikeIt onde a chamada para script customizado não repassava os argumentos corretamente;
- Correção no serviço de Fórum na interface de Lista de Mensagens, onde citações tinham seu código HTML construídos de forma inválida;
- Correção no canal pré-construído do serviço de Comunidades, incluindo identificador do canal no nome da area tag para minimizar risco de conflito;
- Correção no serviço de Álbum de Mídias em falha visual de layout ao clicar no botão Adicionar Múltiplas Mídias;
- Correção no serviço de Páginas Personalizadas onde ao soltar um widget na página ele não ocupava toda a largura destinada a ele;
- Correção no serviço de Agenda de Eventos para o link visualizar como lista navegar para a página com a lista montada (se existente) ao invés de abrir a lista em lightbox;
- Correção no serviço de Fluxo de Atividades com Internet Explorer 8;
- Correção no serviço de Integração com Redes Sociais Públicas ao integrar com Twitter, que havia sido impactada por mudanças na API do Twitter;
- Correção na interface de administração do serviço de Repositório de Mídias, onde o link de baixar a mídia não funcionava em página com URL amigável.
Outros
- Correção no manual de configuração do servidor web Apache, onde o exemplo de configuração com caminho de contexto possuía uma instrução de Redirect errada;
- Correção no manual de configuração do Tomcat 8.
Observações
- Os Requisitos do Sistema foram atualizados;
- A funcionalidade de gerar log de visualização de páginas foi removida;
- O acesso ao modo de administração de conteúdo passa a ser restrito aos usuários que possuam permissão de editar conteúdo na instância do serviço de auto-administração;
- As seguintes bibliotecas foram atualizadas no WEB-INF/lib:
twitter4j-core-3.0.3.jar twitter4j-core-4.0.4.jar lucene-1.4.3.jar lucene-analyzers-common-4.10.4.jar
lucene-core-4.10.4.jar
lucene-expressions-4.10.4.jar
lucene-grouping-4.10.4.jar
lucene-highlighter-4.10.4.jar
lucene-join-4.10.4.jar
lucene-memory-4.10.4.jar
lucene-misc-4.10.4.jar
lucene-queries-4.10.4.jar
lucene-queryparser-4.10.4.jar
lucene-sandbox-4.10.4.jar
lucene-spatial-4.10.4.jar
lucene-suggest-4.10.4.jar
- As seguintes bibliotecas foram adicionadas ao WEB-INF/lib:
elasticsearch-1.6.0.jar groovy-all-2.4.3-indy.jar opencsv-3.3.jar - As seguintes bibliotecas foram excluídas do WEB-INF/lib:
xalan.jar serializer.jar - O framework de busca disponibilizado pelo portal foi substituído por um framework de big data. Foi feito um esforço para que a grande maioria das customizações continuem compatíveis com a nova versão. Caso sua solução não utilize diretamente a API de busca, não tenha alguma configuração diferenciada em searchconfig.xml e não tenha customizado a indexação de source, estas alterações serão transparentes para a solução. Caso contrário deve-se validar os usos correspondentes. Os impactos conhecidos são:
- O arquivo lumisdata/config/searchconfig.xml não é mais utilizado. Qualquer customização que tenha sido feita que requer configuração neste arquivo precisa ser revista para ser feito no novo framework.
- Após a atualização do portal, a configuração do framework de big data deve ser revista e todos os serviços devem ser reindexados para que a busca volte a encontrar resultados.
- Em versões anteriores, apenas eram indexados sources que possuíam algum campo buscável. A partir desta versão, por padrão sources que não possuam campos buscáveis também são indexados (mesmo que não sejam exibidos pelo serviço de busca). Sources que não podem ser indexados devem ter sua configuração de big data desabilitada incluindo
<bigData enabled="false"/>
dentro de<source>
. - No douidefinition.xml, o elemento
<search>
dentro de<source>
foi excluído do XSD. O atributo emsource/search/indexer/@sourceSearchContentFillerClassName
se especificado faz com que a indexação do source seja executado em modo de compatibilidade utilizando a API antiga, que gera uma estrutura de dados no big data parecida com a estrutura antiga porém menos completa que a nova. Este modo de compatibilidade permite as customizações mais comuns como inclusão de campo extra ou alteração do valor de um campo padrão, mas pode ser incompatível com certas ações como preenchimento de valores impróprios ou incompletos. Campos extras incluídos ficam sujeitos a detecção automática de tipo pelo novo framework e são sempre indexed, stored e tokenized. Se for gerado múltiplos SearchContent para um mesmo itemId, um deles será utilizado como base e os extras são utilizados apenas para obtenção de URL e instâncias de serviço extras a qual o dado está publicado. - O
lumis.search.Searcher
retornado porlumis.search.SearchFactory
servirá como um adaptador da API antiga para o framework de big data, para fins de compatibilidade com código feito em versão anterior do Lumis Portal. Quando retornado peloSearcher
, oSearchContent
disponível emlumis.search.SearchHit.getSearchContent()
pode não retornar em seusSearchContentField
valores corretos para as propriedadeslumis.search.SearchContentField.isIndexed()
,lumis.search.SearchContentField.isStored()
elumis.search.SearchContentField.isTokenized()
. - Métodos deprecated e não mais utilizados pelo portal:
lumis.doui.source.Source.getDefaultSourceSearchContentFillerClassName()
lumis.doui.source.TabularSource.getIndexerEngineId()
lumis.doui.source.TabularSource.getSearcherEngineId()
lumis.doui.source.TabularSource.getIndexerId()
lumis.doui.source.TabularSource.getSearcherId()
lumis.doui.source.TabularSource.getDefaultSourceSearchContentFillerClassName()
lumis.doui.source.TabularSource.getSourceSearchContentFillerClassName()
lumis.doui.source.TabularSource.getReindexerTabularDataProcessorClassName()
lumis.doui.table.BaseTableDataProcessActionHandler.isSearchEnabled()
lumis.doui.table.BaseTableDataProcessActionHandler.getIndexConfig()
- Tipos e métodos deprecated e utilizados apenas em sources indexando dados em modo legado por possuir um
sourceSearchContentFillerClassName
especificado ou quando código customizado utiliza a API antiga:lumis.doui.source.TabularSource.isSearchEnabled()
lumis.doui.source.TabularSource.getSearchableFields()
lumis.doui.source.TabularSource.searchableSourceFields
lumis.search.IAttributeSetReader
lumis.search.Processor
lumis.search.SearcherFactory
lumis.search.Searcher
lumis.search.SearchAttributes
lumis.search.SearchContent
lumis.search.SearchContentAttachment
lumis.search.SearchContentField
lumis.search.SearchResults
lumis.search.SearchHit
lumis.search.SearchQuery
lumis.search.SearchException
lumis.search.SearchStringResource
lumis.search.filter.SearchClause
lumis.search.filter.SearchFilterGroup
lumis.search.filter.ISearchQueryFilter
lumis.doui.search.DouiTabularSourceSearchContentFiller
lumis.doui.search.ISourceSearchContentFiller
lumis.doui.search.common.ISearchable
lumis.doui.search.common.ParametersSourceDataWrapper
lumis.content.search.ContentTabularSourceSearchContentFiller
- Tipos e métodos excluídos:
lumis.search.IndexerFactory
lumis.search.Indexer
lumis.search.Processor.getConfigNode(IAttributeSetReader)
lumis.search.Processor.getConfigNodes(IAttributeSetReader)
- Na versão 8.1 do Lumis Portal, não é possível utilizar o Elasticsearch com Websphere em decorrência de incompatibilidade entre as versões atuais destes produtos;
- O método
lumis.portal.manager.ManagerFactory.getXslCacheManager()
(deprecated desde a versão 6.0) foi removido; - A biblioteca xercesImpl.jar foi removida de lib/shared (diretório que possui instrução de instalação específica conforme o servidor de aplicação sendo utilizado);
- Em versões anteriores à 8.0, havia a recomendação de configurar a propriedade de sistema
javax.xml.transform.TransformerFactory
com valororg.apache.xalan.xsltc.trax.SmartTransformerFactoryImpl
. Na versão 8.0, esta configuração se tornou desnecessária. A partir da versão 8.1, esta classe não é mais distribuída e esta configuração pode causar erro. Portanto esta configuração deve ser removida, exceto em casos excepcionais onde o projeto fornece a implementação de um transformador e deseja utilizá-lo; - O serviço nativo de Selecionador de Localização agora requer, para fins de administração de idiomas globais, permissão de gerenciar o portal;
- Uma nova instalação do Lumis Portal não possui mais o idioma espanhol cadastrado. Continua sendo possível alterar o cadastro dos idiomas utilizando o serviço de Selecionador de Localização;
- Alterações na estrutura do HTML do serviço de Fórum gerado no bloco de citação:
- A classe
lum-cite
foi renomeada paralum-cite-body
- Adicionada uma div externa com a classe
lum-cite
- A classe
- O processamento automático de URLs presentes nas páginas tentava processar todos atributos
value
, agora tenta processar apenas osvalue
presentes em elementooption
; - O processamento automático de URLs presentes nas páginas em alguns atributos não mais ocorrerá quando seu nome é prefixado com '-', como por exemplo
data-action
; - Devido a melhorias na definição de estilos pelo servicedefinition.xml, agora, é possível descrever no
path
do estilo de uma interface, o caminho relativo ao serviço. Se não houver nenhum estilo definido no servicedefinition.xml, o LumisPortal irá procurar arquivos de estilo que se encontram dentro da pastastyle
interna ao serviço e que possuam o nome do arquivo igual ao identificador da interface, se encontrar, este será considerado como estilo padrão; - Alteração de comportamento na classe
lumis.portal.PortalPrintWriter
, que escrevia before write em local incorreto, quando o mesmo usava localização de body. Casolumis.portal.serviceinterface.IServiceInterfaceRenderResponse.getBeforeWriter()
esteja sendo utilizado com o posicionamento body, o resultado dos métodos (que antes eram void) deve ser escrito no stream de saída regular (lumis.portal.serviceinterface.IServiceInterfaceRenderResponse.getWriter()
).