Diferenças de comportamento do Java EE 7

Ao mover do Java EE 6 para o Java EE 7, pode haver algumas diferenças de comportamento em seu aplicativo devido a mudanças de implementação e esclarecimentos de especificação. No Liberty, não é necessário mover para o próximo nível do Java EE e é possível continuar a usar os recursos existentes do Java EE 6. No WebSphere Application Server tradicional V9.0, somente as tecnologias JAX-RS e JPA podem permanecer no nível Java EE 6 e deve-se configurá-las explicitamente no servidor. Todas as outras tecnologias devem ser migradas para o nível Java EE 7.

CDI 1.2

Nome da regra Descrição da regra Correção automatizada
O CDI reconhece archives de beans implícitos A especificação Contexts and Dependency Injection (CDI) 1.1 introduziu o modo de descoberta de bean implícito, resultando em mudanças de comportamento e desempenho a partir da implementação do Java Platform, Enterprise Edition (Java EE) 6 CDI 1.0 no WebSphere Application Server. Não
O CDI varre beans implícitos quando não há nenhum arquivo beans.xml A especificação Contexts and Dependency Injection (CDI) 1.1 introduziu o modo de descoberta de bean implícito, resultando em mudanças de comportamento e desempenho a partir da implementação do Java Platform, Enterprise Edition (Java EE) 6 CDI 1.0 no WebSphere Application Server. Não
Verificar uma mudança de comportamento no método InjectionPoint getAnnotated Na implementação de Contexts and Dependency Injection (CDI) 1.0, o método getAnnotated em uma classe que implementa a interface javax.enterprise.inject.spi.InjectionPoint pode retornar uma instância de javax.enterprise.inject.spi.Annotated. Na implementação do CDI 1.2, o método getAnnotated deve retornar uma instância de AnnotatedField ou de AnnotatedParameter, dependendo de o ponto de injeção ser um campo injetado ou um parâmetro em um construtor ou método. Não
Verificar um esquema válido no beans.xml Essa regra examina os arquivos beans.xml para verificar se o namespace fornecido no atributo xmlns corresponde ao local do esquema correspondente. java-ee-7.yml
org.openrewrite.java.migrate.BeansXmlNamespace 
Verificar se há um namespace válido em beans.xml Essa regra examina os arquivos beans.xml para verificar se um namespace válido é fornecido no atributo xmlns. Não
Verificar a ativação de interceptores, decoradores e alternativas em outros arquivos JAR Na implementação do CDI 1.2 Weld, os interceptadores, decoradores e alternativas ativados no arquivo beans.xml em um arquivo JAR são ativados somente para esse arquivo JAR. Não
Classes que usam ambas as anotações Specializes e Alternative não são injetadas em outros módulos Esta regra sinaliza classes que são anotadas com ambas as anotações @Specializes e @Alternative. Não
Não usar o esquema OpenWebBeans para o beans.xml O esquema OpenWebBeans para o arquivo beans.xml não é compatível com a implementação do Liberty CDI 1.2. java-ee-7.yml
org.openrewrite.xml.liberty.WebBeansXmlRule 
Campos de produtor em beans de sessão devem ser estáticos Na implementação do CDI 1.2 Weld, o aplicativo não é iniciado e lança uma exceção quando campos não estáticos com a anotação @Produces são declarados em classes de beans de sessão java-ee-7.yml
org.openrewrite.java.migrate.AddStaticVariableOnProducerSessionBean 
O arquivo openwebbeans.properties não é usado Essa regra sinaliza os arquivos de configuração META-INF/openwebbeans/openwebbeans.properties em seu aplicativo. O recurso Java EE 7 CDI 1.2 é baseado na implementação de referência Weld de CDI, que não usa esse arquivo de configuração. Não
Campos temporários em beans com escopo por sessão não podem ter failover com êxito Esta regra sinaliza campos com o modificador transient em classes que são anotadas com @SessionScoped. Não

EL 3.0

Nome da regra Descrição da regra Correção automatizada
Mudança de comportamento no método coerceToType com parâmetro nulo A linguagem de expressão 3.0 introduz uma alteração de comportamento quando um valor nulo é fornecido ao primeiro parâmetro de coerceToType(Object obj, Class<?> targetType). Não

JAX-RS 2.0

Nome da regra Descrição da regra Correção automatizada
As interfaces @Local JAX-RS devem ser implementadas Na implementação de Java Platform, Enterprise Edition (Java EE) 7 JAX-RS 2.0 do WebSphere Application Server, quando as interfaces JAX-RS são passadas como valores para a anotação @javax.ejb.Local, a classe que usa a anotação deve implementar as interfaces passadas. Não
Java API for RESTful Web Services (JAX-RS) e Contexts and Dependency Injection for Java (CDI) Essa regra identifica a presença de JAX-RS e CDI no aplicativo. WebSphere Application Server o V9.0 tradicional, em conformidade com o Java EE 7, vem com o JAX-RS 2.0 por padrão, mas permite a reversão para o JAX-RS 1.1, se necessário. Não
A configuração é necessária para usar SSL no JAX-RS 2.0 Para usar a função Secure Sockets Layer (SSL) do JAX-RS 2.0 em seu servidor Liberty, deve-se ativar o recurso ssl-1.0 ou o recurso appSecurity-2.0 e configurar a propriedade com.ibm.ws.jaxrs.client.ssl.config no código do cliente JAX-RS 2.0. Não
Os pacotes org.codehaus.jackson não estão disponíveis Os pacotes org.codehaus.jackson que são expostos como uma API de terceiros no JAX-RS 1.1 não são mais expostos na plataforma Java WebSphere Application Server. Não
Empacotar as APIs do Apache Wink com seu aplicativo pode requerer mudanças de aplicativo Quando as APIs do Apache Wink são empacotadas com o aplicativo, o aplicativo deve fornecer uma subclasse de javax.ws.rs.core.Application e pelo menos uma das implementações de método getClasses() e getSingletons() não deve retornar nulo. Não
As APIs do Apache Wink não estão disponíveis Os pacotes org.apache.wink não estão disponíveis aos aplicativos Java API for RESTful Web Services (JAX-RS) que usam a implementação de Java Platform, Enterprise Edition (Java EE) 7 JAX-RS 2.0 do WebSphere Application Server. Não
As APIs do Apache Wink Client não estão disponíveis Os pacotes org.apache.wink.client não estão disponíveis aos aplicativos JAX-RS que usam a implementação de Java Platform, Enterprise Edition (Java EE) 7 JAX-RS 2.0 do WebSphere Application Server. Não
A classe com.ibm.websphere.jaxrs.server.IBMRestFilter não é mais suportada As APIs com.ibm.websphere.jaxrs.server.IBMRestFilter não estão disponíveis na implementação de Java Platform, Enterprise Edition (Java EE) 7 JAX-RS 2.0 do WebSphere Application Server porque elas estão baseadas na implementação de JAX-RS 1.1 Wink. Não
A classe org.apache.wink.client.handlers.LtpaAuthSecurityHandler não é mais suportada As APIs org.apache.wink.client.handlers.LtpaAuthSecurityHandler não estão disponíveis aos aplicativos Java API for RESTful Web Services (JAX-RS) que usam a implementação de Java Platform, Enterprise Edition (Java EE) 7 JAX-RS 2.0 do WebSphere Application Server porque elas são baseadas na implementação de JAX-RS 1.1 Wink. Não
O pacote org.apache.wink.common.model.atom não está disponível O pacote org.apache.wink.common.model.atom não está disponível para aplicativos Java API for RESTful Web Services (JAX-RS) que usam a implementação de Java Platform, Enterprise Edition (Java EE) 7 JAX-RS 2.0 do WebSphere Application Server. Não
O pacote org.apache.wink.common.model.multipart não está disponível Na implementação de Java Platform, Enterprise Edition (Java EE) 7 JAX-RS 2.0 do WebSphere Application Server, o pacote org.apache.wink.common.model.multipart foi substituído pelo pacote com.ibm.websphere.jaxrs20.multipart da IBM. Não
Use os métodos isReadable e isWriteable para verificar o tipo de mídia Na implementação de Java Platform, Enterprise Edition (Java EE) 7 JAX-RS 2.0 do WebSphere Application Server, as interfaces MessageBodyReader e MessageBodyWriter com as anotações @Consumes e @Produces podem restringir os tipos de mídia que elas suportam. Não

JMS Client 2.0

Nome da regra Descrição da regra Correção automatizada
Verificar uma mudança de comportamento na prioridade da mensagem e no atributo NoLocal JAXB e XML Binding anteriores a 4.0 fornecem a classe Validator descontinuada. Esta classe está indisponível no XML Binding 4.0 pois a validação sob demanda não é mais suportada. Não
Verificar uma mudança de comportamento nos métodos setClientID e createDurableSubscriber Essa regra sinaliza os métodos javax.jms.Session.createDurableSubscriber, javax.jms.TopicSession.createDurableSubscriber e javax.jms.Connection.setClientID porque eles lançam exceções diferentes no cliente JMS 2.0. Não

Servlet 3.1

Nome da regra Descrição da regra Correção automatizada
Verificar uma mudança de comportamento no processamento do elemento absolute-ordering No Servlet 3.0, se o atributo metadata-complete for definido como "true", todos os arquivos de fragmentos da Web serão usados independentemente de serem referenciados no elemento <absolute-ordering> no arquivo web.xml. No Servlet 3.1, os fragmentos da Web que não estão listados no elemento <absolute-ordering> são excluídos do processamento. Não
Verificar uma mudança de comportamento nos servlets assíncronos No Servlet 3.0, se uma sequência de consultas for incluída com uma solicitação, essa sequência será disponibilizada para o recurso despachado. No Servlet 3.1, se uma sequência de consultas for fornecida para o recurso de despacho, essa sequência de consultas será disponibilizada para o recurso despachado, em vez da sequência de consultas da solicitação original. Não
Verificar uma mudança de comportamento no método getServerInfo Essa regra sinaliza referências ao método javax.servlet.ServletContext.getServerInfo() porque a implementação do recurso do Servlet 3.1 retorna um valor diferente daquele que é retornado pela implementação do recurso do Servlet 3.0. Não
Verificar uma mudança de comportamento no método sendRedirect Essa regra sinaliza referências ao método javax.servlet.http.HttpServletResponse.sendRedirect(String) porque o comportamento padrão para URLs relativas na implementação do recurso do Servlet 3.1 é diferente na implementação do Servlet 3.0. Não
Verificar uma mudança de comportamento na interface ServletContextListener As classes que implementam a interface javax.servlet.ServletContextListener devem ser anotadas com a anotação javax.servlet.annotation.WebListener ou ser definidas como listener-class no arquivo web.xml ou web-fragment.xml. Não
Verificar uma mudança de comportamento no método setComment Essa regra sinaliza referências ao método javax.servlet.SessionCookieConfig.setComment() porque a implementação do recurso do Servlet 3.1 lança uma IllegalStateException após o contexto de servlet ser inicializado, enquanto o Servlet 3.0 não faz isso. Não
Verificar uma mudança de comportamento em relação a elementos duplicados nos descritores da web No Servlet 3.0, um aplicativo pode ser implantado mesmo que os descritores da Web contenham elementos <ordering> ou <absolute-ordering> duplicados. No Servlet 3.1, um aplicativo com esses elementos duplicados não pode ser implementado. Não
Verificar uma mudança de comportamento com a mesclagem de destino da injeção de referência de recurso O comportamento da mesclagem de destino de injeção de referência de recurso na implementação do recurso do Servlet 3.1 é diferente na implementação do Servlet 3.0. O comportamento do aplicativo existente pode mudar por causa dos destinos de injeção recém-ativados definidos no arquivo web-fragment.xml que foram anteriormente excluídos do arquivo web.xml. Não
Verificar uma mudança de comportamento com o mapeamento padrão de URL No Servlet 3.0, um aplicativo será iniciado com êxito, ainda que o mesmo padrão de URL esteja mapeado para vários servlets. No Servlet 3.1, o aplicativo não é iniciado e lança uma exceção. Não
Verifique se há novos métodos incluídos no javax.servlet.ServletOutputStream e no javax.servlet.ServletInputStream O servlet 3.1 apresenta novos métodos em javax.servlet.ServletOutputStream e javax.servlet.ServletInputStream. Esses métodos não foram incluídos no Servlet 3.0 e devem ser implementados ao migrar para o Servlet 3.1. Não

OpenJPA para JPA EclipseLink

Nome da regra Descrição da regra Correção automatizada
Desativar o cache de segundo de nível da unidade de persistência O OpenJPA desativa o cache de segundo nível por padrão, enquanto o EclipseLink ativa-o por padrão. Use a correção rápida para modificar a configuração do cache de unidade de persistência para manter o mesmo comportamento de armazenamento em cache em EclipseLink. java-ee-7.yml
org.openrewrite.java.migrate.JpaCacheProperties 
Não usar provedores OpenJPA no arquivo persistence.xml Use o provedor JPA padrão em vez de um provedor específico do OpenJPA ao migrar de OpenJPA para EclipseLink. java-ee-7.yml
org.openrewrite.java.migrate.javaee7.OpenJPAPersistenceProvider 
Não use sequências do OpenJPA para propriedades ou dicas de consulta As sequências definidas por OpenJPA usadas para propriedades e dicas de consulta devem ser substituídas por um EclipseLink equivalente, onde disponível. Não
OpenJPA para EclipseLink informações e possíveis problemas Esta regra contém informações gerais sobre a migração para Java EE 7 ( OpenJPA ), bem como informações sobre problemas que o WebSphere Migration Toolkit for Application Binaries (scanner binário) não detecta. java-ee-7.yml
org.openrewrite.java.migrate.javax.openJPAToEclipseLink 
A propriedade de configuração openjpa.LockManager deve ser migrada A propriedade LockManager de OpenJPA, openjpa.LockManager, deve ser migrada usando uma API de bloqueio fornecido de especificação da JPA 2.1. Não
A propriedade de configuração openjpa.jdbc.Schema deve ser migrada para o arquivo de mapeamento A propriedade de esquema OpenJPA, openjpa.jdbc.Schema, deve ser migrada para a configuração de arquivo de mapeamento definida pela especificação. Não
A interface org.apache.openjpa.enhance.PersistenceCapable não está disponível A interface org.apache.openjpa.enhance.PersistenceCapable , que é inserida no momento da compilação, não está disponível para aplicativos JPA que usam a implementação WebSphere tradicional ou Liberty Java EE 7 JPA 2.1 Não
Os pacotes org.apache.openjpa não estão disponíveis As APIs JPA org.apache.openjpa não estão disponíveis na implementação WebSphere Java EE 7 JPA 2.1. Não
Os arquivos de mapeamento não são processados durante a migração do OpenJPA para o EclipseLink O conjunto de regras de Migração de OpenJPA para EclipseLink migra os problemas localizados em anotações da JPA, mas não migra os problemas nos arquivos de mapeamento de entidade. Não
As propriedades de configuração OpenJPA e WebSphere JPA devem ser migradas As propriedades de configuração da JPA 2.0 específicas dos fornecedores OpenJPA e WebSphere devem ser migradas. Use propriedades EclipseLink e padronizadas. Não