InvokerServlet no Tomcat 6

Fiz uma importante atualização do meu artigo Tutorial Tomcat – Instalação e Configuração Básica, um dos mais longevos e populares do meu site, introduzindo o atributo de contexto privilegiado para que a InvokerServlet possa ser utilizada no Tomcat 6.

Desde a revisão 25, eu comecei a atualizar o texto para cobrir o Tomcat 6. Mas só agora, na revisão 35, pude testar todos os aspectos nessa versão do Tomcat.

Descobri então que uma nova característica de segurança introduzida no Tomcat 6 necessitou alterações importantes na configuração do contexto, relativas ao uso da InvokerServlet.

InvokerServlet é uma servlet do Tomcat, definida no pacote org.apache.catalina.servlets, que serve para mapear e invocar genericamente qualquer servlet com base no nome da respectiva classe.

Utilizando Invoker Servlet, um mapeamento genérico como /servlet/* no web.xml permite que se possa executar através de um URL do tipo /servlet/NomeClasse uma servlet implementada pela classe NomeClasse.class.

Até o Tomcat 5.5, InvokerServlet podia ser declarada e mapeada no web.xml de qualquer aplicação web e era automaticamente localizada e ativada pelo classloader desta aplicação.

A partir do Tomcat 6, InvokerServlet passou a ser restrita ao classloader do Server (mecanismo do servidor Tomcat). Para carregar e utilizar esta servlet, um contexto de aplicação web deve ser definido como privilegiado, setando o atributo privileged="true" no elemento Context que o define.

Se esta configuração não for feita no Tomcat 6, ocorre o seguinte erro durante a tentativa de executar o mapeamento de InvokerServlet definido no web.xml do contexto da aplicação web, visível nos arquivos de log do Tomcat (em CATALINA_HOME/logs):

java.lang.SecurityException: Servlet of class org.apache.catalina.servlets.InvokerServlet is privileged and cannot be loaded by this web application

Cabe ressaltar que o mapeamento genérico de servlets baseado no nome da classe, como permite InvokerServlet, é considerado má prática. Em produção, o ideal é que se mapeie individualmente cada servlet utilizada em um contexto, no arquivo web.xml da aplicação web.

Contudo, o mapeamento genérico do InvokerServlet é um recurso muito útil em desenvolvimento para se testar rapidamente qualquer classe servlet implementada, sem a necessidade prévia de configurar um mapeamento específico para esta.

Na revisão 35, o texto todo do tutorial foi repassado durante sua validação completa para o Tomcat 6, o que acabou trazendo vários ajustes e melhorias no texto. Confira!

Para saber mais:

Firefox 4 Beta – novidades na interface

Instalei o Firefox 4 Beta 8. Internamente, a nova versão do navegador trará muitas evoluções no motor Gecko 2.0 de processamento de páginas web, inclusive com suporte a HTML 5, e o novo mecanismo de JavaScript JägerMonkeyque promete ser mais rápido. Contudo, avalio aqui minhas primeiras impressões sobre novidades na interface do navegador.

Positivo A tela inicial mostra uma interface mais limpa e simplificada, maximizando o espaço disponível para exibição das páginas, como já fazem navegadores como Internet Explorer 8 e Google Chrome.

[photopress:firefox40b8_inicio.png,full,centered]

Positivo A barra de menu padrão some, e em seu lugar surge um botão “Firefox” no canto superior esquerdo que dá acesso ao novo estilo de menu de opções.

[photopress:firefox40b8_novomenu_opcoes.png,full,centered]

Pode-se perceber que o novo botão de menu é fortemente inspirado, para não dizer copiado, do Opera. compare na ilustração a seguir:

[photopress:opera11.png,full,centered]

No detalhe a seguir, podemos perceber que os itens de menu que levam a submenus tem um comportamento dual: se você seleciona o texto do item de menu, é ativada a opção padrão daquele submenu; se selecionado o pequeno triângulo, abrem-se as opções do submenu.

[photopress:firefox40b8_novomenu_detalhe.png,full,centered]

Positivo Se você sentiu falta da barra de menu tradicional, há opção de exibi-la, bem como a barra de favoritos — abaixo da barra de navegação — e a nova barra de extensões — no extremo inferior da janela.

[photopress:firefox40b8_barras.png,full,centered]

Negativo Já a barra de estado (status) que ficava na posição dessa barra de extensões foi extinta. Os controles adicionados por extensões passam a ser exibidos na barra de extensões, enquanto informações como o endereço (URL) de destino, quando se pousa o mouse sobre um link na página, passa a ser exibido em sequência na própria barra de endereço, como se pode ver na figura a seguir.

Negativo Esta mudança me parece bastante controversa. A barra de estado na parte inferior da janela é uma convenção de interface amplamente utilizada e assimilada pelos usuários. Até então no Firefox, ela exibia links destino, informações do andamento ao carregar páginas, e ainda aproveitava o mesmo espaço para exibir controles adicionados por complementos. Acho ruim fracionar a exibição dessas informações em locais distintos e distantes, dificultando o foco de visão do usuário. Além disso, acho que o espaço para exibir a URL da página atual e de um link de destino, no mesmo campo de endereço, é muito pouco, principalmente quando os endereços são extensos.

[photopress:firefox40b8_hoverlink.png,full,centered]

Há também a opção da barra de abas abertas ser exibida abaixo das barras de navegação e favoritos, bastando desmarcar a opção “Abas em cima”.

[photopress:firefox40b8_abasembaixo.png,full,centered]

O botão de recarregar página (reload, F5) foi embutido à direita do campo de endereço, logo após o botão de adicionar/remover como favorito. Enquanto a página está carregando, este botão se torna a opção de interromper (stop, Esc).

[photopress:firefox40b8_reload.png,full,centered]

Com a ausência da barra de estado na parte inferior da janela, a exibição do botão X de Interromper, na barra de endereço, e o ícone animado e texto da aba da página são os únicos indicativos visuais de que a página está sendo carregada. Serão suficientemente claro e informativos para este fim?

[photopress:firefox40b8_stop.png,full,centered]

Positivo Se a barra de favoritos não está exibida, o botão de acesso rápido a todas as opções de favoritos (bookmarks) fica em um botão ao final da barra de endereço, à direita do botão de página inicial (home).

[photopress:firefox40b8_favoritos.png,full,centered]

Negativo O acesso rápido à lista de histórico, ao voltar (back) ou avançar (forward) páginas com os botões de setas no início (esquerda) da barra de endereço, se dá mantendo pressionado (por mais de um segundo) um destes botões, ou clicando com o botão direito do mouse.

Há esse mesmo comportamento no navegador Google Chrome, mas considero pouco intuitivo. Prefiro a interface antiga do Firefox 3.x, similar à do Internet Explorer, em estilo list box, tendo à direita dos botões de navegação uma pequena seta para baixo que abre a lista de histórico como menu suspenso.

[photopress:firefox40b8_historico.png,full,centered]

Se você deseja retornar a seta de menu drop-down à direita dos botões, há uma solução: instalar o complemento “Back/forward dropmarker add-on“.

Positivo Quando você preenche uma senha em um campo de formulário, o Firefox oferece para salvá-la no seu gerenciador de senhas através de uma nova forma de diálogo. Antes era uma nova barra que surgia acima da página. Agora, é com um balão que surge de um ícone à direita do campo de endereço.

[photopress:firefox40b8_senhas.png,full,centered]

Positivo E finalmente, acessível através de um novo botão no extremo direito da barra de abas, está o novo recurso de Grupo de abas.

[photopress:firefox40b8_agruparabas.png,full,centered]

É uma nova visualização de miniaturas de todas as abas abertas, organizadas em grupos. Diversos pulg-ins já adicionavam recurso similar em versões anteriores do Firefox. Esta é a proposta nativa do Firefox 4 para o usuário não se perder em meio a diversas abas abertas.

Nesta visualização inovadora, você pode criar grupos distintos de abas e navegar em apenas um grupo por vez, fechar uma aba (pela sua miniatura) ou um grupo inteiro de abas, ou selecionar uma miniatura para exibir a respectiva página.

[photopress:firefox40b8_grupoabas.png,full,centered]

Negativo Como o Firefox ainda está em beta, muitas de extensões (plug-ins) ainda não tem atualização compatível com a nova versão.

Positivo Por falar nisso, há uma nova interface também para os gerenciamento de Complementos, não mais exibida em uma janela de diálogo mas sim em uma aba.

[photopress:firefox40b8_complementos.png,full,centered]

Positivo A extensão Firefox Sync agora é parte integrante padrão do navegador, para sincronizar os favoritos, dados de formulário, senhas, histórico e abas abertas entre dispositivos e instalações do Firefox.

Positivo E pelo visto, um recurso introduzido desde o Firefox 3.6 mas que só agora constatei. Com a melhoria dos mecanismos internos de instalação de componentes, algumas extensões são ativadas imediatamente após sua instalação, sem a necessidade de reiniciar o Firefox.

[photopress:firefox4_complemento_no_restart.png,full,centered]

Por hora, estas são as novidades perceptíveis nos primeiros minutos de uso da nova versão beta.

E você, caro leitor, está testando também o Firefox 4? Adoraria ver suas opiniões nos comentários deste artigo…

WordPress 3.0.4 em português brasileiro

A equipe de tradução da Comunidade WordPress-BR concluiu e disponibilizou hoje a localização em português do Brasil para o WordPress 3.0.4.

WordPress é uma das mais populares, poderosas e eficazes plataformas de gerenciamento e publicação de conteúdo para sites do tipo blog (web log), como este aqui. Escrito em linguagem PHP orientada a objetos, o WordPress é software livre, amplamente utilizado e suportado pela comunidade, cheio de recursos e bastante extensível através de plug-ins de recursos e temas de personalização visual, livremente disponíveis em grande quantidade e variedade tanto no repositório oficial da WordPress.org quanto em outros sites.

A versão 3.0.4 é uma importante atualização de segurança, originalmente disponibilizada (em inglês) em 29 de dezembro de 2010. A atualização imediata é recomendada para todos os usuários do WordPress 3.0.x.

Enquanto isso, já está a caminho um novo ciclo de melhorias para a nova versão 3.1. O WordPress 3.1 Release Candidate 2 já está disponível para testes, trazendo ainda mais recursos e facilidades para esta plataforma.

Para saber mais:

CSS3 testado na prática

Quando escrevi o artigo CSS para tabelas e listas de seleção HTML em 2004, ainda não havia nenhum navegador com suporte a CSS3 onde eu pudesse testar efetivamente recursos citados dessa versão do padrão de estilos.

Agora, pude validar os recursos citados no Mozilla Firefox 3.6, no Google Chrome (8.0) e no Apple Safari (5.0), todos rodando em Windows.

O estilo para linhas de tabela alternadas do CSS3 — tr:nth-child(even) — continuam não funcionado no Internet Explorer mesmo na versão 8, mas funcionou no Firefox e no Chrome.

Inclusive pude perceber um “bug” no artigo, pois eu havia aplicado o estilo explícito “even” (um recurso alternativo que propus para compatibilidade com os navegadores sem suporte a CSS3) nas linhas ímpares, e não nas pares como deveria.

O artigo foi revisado depois de 6 anos, para corrigir o bug e refletir as versões mais recentes dos navegadores testados.

Impressoras PDF atualizadas

Atualizações de versão nas impressoras virtuais PDF, que permitem gerar arquivos PDF a partir do comando imprimir em qualquer aplicativo Windows, motivaram mais uma revisão (18) do artigo PDF Livre com (ou sem) o Ghostscript.

Depois de mais de um ano do FreePDF 4.02 lançado em 06/09/2009, no dia 20 de outubro último foi lançada a atualização 4.04, que traz apenas algumas correções de bug e melhor compatibilidade com versões mais novas do Windows.

O doPDF está na versão de atualização 7.1.351, lançada em 20 de novembro, que apenas corrige bugs.

PDFCreator lançou a versão 1.1.0 em 21 de novembro. O incremento na numeração de versão indica que é o primeiro release desde a versão 1.0 que traz novos recursos, e não apenas correção de bugs.

Enquanto a versão 1.0.2 havia sido obrigada a fazer o downgrade do Ghostscript embutido para 8.70, porque o Ghostscript 8.71 apresentou problemas em tornar o texto pesquisável, o PDFCreator 1.1.0 inclui o Ghostscript 9.0, que funciona bem e ainda tem suporte melhorado a fontes TrueType. O novo sistema de fontes corrige problemas de espaçamento em algumas fontes, inclusive o Arial-Degree-Bug que fazia com que o símbolo de grau ficasse sobreposto aos caracteres seguintes.

O PDFCreator 1.1.0 ainda adiciona criptografia AES de 128 bits.

Seu instalador foi melhorado, e torna a atualização mais fácil, permitindo remover uma versão anterior do PDFCreator já instalada.

O novo instalador também traz um diálogo específico para que o usuário escolha ou não instalar a barra de ferramentas promocional PDFForge Toolbar, que direciona tráfego para uma empresa patrocinadora do projeto em página de Erro de DNS. Nas versão 1.0.2, a instalação da ferramenta era selecionada por padrão e a opção de não instalar ficava “escondida” como um dos componentes da instalação personalizada, que a maioria dos usuários nem atenta ou modifica. Isso fez o projeto ser classificado em muitos sites e serviços de segurança como ofensivo à privacidade e contendo código malicioso, pois modifica configurações de acesso e redireciona tráfego para um serviço comercial sem o consentimento prévio do usuário.

[photopress:pdfforge_toolbar.png,full,centered]

Os administradores do projeto esperam que o novo diálogo torne claro para o usuário como evitar a instalação da barra comercial ou desativá-la. Também explicam que a veiculação dessa barra provê aporte financeiro que ajuda a pagar custos de manutenção do projeto e, além disso, oferece o recurso útil de criar um arquivo PDF com apenas um clique a partir de qualquer página web.

Mesmo com as melhorias e atualizações da nova versão, o tamanho do instalador reduziu em torno de 400 KB, passando dos 17 MB do PDFCreator versão 1.0.2 para 16,6 MB nesta 1.1.

IBM e Oracle colaboram no OpenJDK

Em 11 de outubro passado, Oracle e IBM anunciaram que as empresas vão colaborar para acelerar a inovação da tecnologia Java, apoiando desenvolvedores e usuários através da comunidade aberta OpenJDK.

A IBM junta esforços à Oracle no projeto OpenJDK, que desenvolve de forma aberta e colaborativa a implementação de referência da especificação Java Platform, Standard Edition (Java SE), da Linguagem Java, do Java Development Kit (JDK) e do Java Runtime Environment (JRE).

Oracle e IBM vão apoiar o Roadmap de desenvolvimento do OpenJDK para o JDK 7, recentemente divulgado.

Já o Java Community Process (JCP) continuará sendo o foro principal de trabalho para os padrões da tecnologia Java, do qual ambas empresas já participam ativamente. IBM endossou a proposta da Oracle para Java SE 7 e Java SE 8 no JCP, que já tinha bom apoio da comunidade Java em geral.

Sendo Oracle — que adquiriu Sun e BEA — e IBM as duas maiores empresas propulsoras da tecnologia Java e fornecedoras de vasto portfólio de produtos e soluções baseadas nesta tecnologia, essa colaboração ameniza os temores e incertezas da comunidade sobre o futuro do Java após a aquisição da Sun, criadora do Java, pela Oracle. Além disso, um maior alinhamento entre as duas gigantes quanto ao desenvolvimento do Java SE deve realmente acelerar a evolução da tecnologia e o avanço das inovações.

Para saber mais:

  • IBM to join OpenJDK (em inglês), no blog de Mark Reinhold, Arquiteto Chefe do Java Platform Group na Oracle.

Referências em Engenharia e Arquitetura de Software

Reestruturei bastante a página sobre Engenharia de Software em meu site de meta-referências, hoje.

Organizei uma série de tópicos em uma seção própria: Produto de Software – Qualidade, Métricas e Teste.

Nesta seção estão os seguintes temas:

  • ISO/IEC 25000 e 9126 – Qualidade do Produto de Software
  • IEEE Std 1061 – Padrão IEEE para Metodologia de Métricas de Qualidade de Software
  • Métricas de Software – Complexidade e Qualidade
  • Medição de Software – Tamanho Funcional
  • Teste e Qualidade de Software

Os outros temas gerais sobre Engenharia de Software, na mesma página (por enquanto, pois já penso em dividi-la devido ao grande tamanho e extensão), são:

  • Engenharia de Software
  • ISO/IEC 12207 – Processos do Ciclo de Vida de Software
  • Análise e Modelagem Orientada a Objetos
  • UML – Unified Modeling Language e SysML – OMG Systems Modeling Language
  • Engenharia Dirigida a Modelo (MDE) e Desenho Dirigido a Domínio (DDD)
  • Metodologias baseadas no Processo Unificado (UP)
  • Metodologias baseadas no Desenvolvimento Ágil

É um vasto universo de temas em uma única disciplina. E nem sei se fui suficientemente abrangente.

Outra parte igualmente vasta e que vem se estendendo a passos largos em meu site é a de Arquitetura de Software, sendo que estão em páginas à parte também os temas de Integração e Arquitetura Corporativa, e de Arquitetura da Informação, Interação, Usabilidade e Acessibilidade.

Aproveitando o assunto, gostaria de recomendar os artigos Tales from the IT Crypts – O analista Frankenstein, 2010-08-12, e O Desenvolvedor “Cozinheiro Italiano”, 2010-2009-05-25, do meu amigo e grande arquiteto e engenheiro de software Marco Aurélio Mendes.

Upgrade Office 2010 gratuito

A Microsoft estendeu ao pacote de produtividade Office a política de upgrade gratuito aplicada a novas versões do sistema operacional Windows.

Quem compra qualquer edição do Microsoft Office 2007 entre abril e 30 de setembro de 2010 tem direito a atualizar o pacote gratuitamente para o Office 2010, segundo informou a Microsoft Brasil.

O programa ‘Office 2010 Technology Guarantee’ garante a atualização para o Office 2010 por meio de download, sem custo. O upgrade já está disponível, uma vez que o novo produto foi lançado no mercado.

O download é feito no endereço www.office.com/techg
Endereço alternativo: Garantia de Evolução do Microsoft Office 2010.

Podem participar do programa tanto os consumidores que adquiriram o Office 2007 separadamente no varejo (caixa) quanto quem comprou um computador novo com o pacote de programas pré-instalado. A versão de testes não é válida para atualização.

Para garantir o upgrade gratuito do Office 2010 é necessário seguir os seguintes passos:

  1. Comprar e ativar o Office 2007 no período do programa;
  2. Abrir uma conta do Windows Live ID;
  3. Fazer o download da atualização do produto até 30 de setembro;
  4. Guardar a nota fiscal de compra do Office 2007.

A versão doméstica e escolar — Microsoft Office Home and Student –, com direito a instalação/uso por três usuários, inclui o Word, Excel, PowerPoint e OneNote. Custa, na versão 2007, a partir de R$ 135,91 (na Kabum), e a partir de R$ 154 (na Balão da Informática) para a versão 2010. Ou seja, você consegue hoje o Office original a menos de 50 reais por instalação não empresarial.

Fonte: Office 2007 terá upgrade gratuito para versão 2010. Por Daniela Braun, para a PC World, 14 de abril de 2010.

Para saber mais:

Fontes matemáticas

O projeto Scientific and Technical Information Exchange (STIX) font creation lançou em 28 de maio de 2010, após mais de dez anos de desenvolvimento, as Fontes STIX 1.0.

O conjunto inicial de 23 fontes em formato OpenType está livremente disponível para baixar em STIX Fonts – www.stixfonts.org (pacote ZIP 2,6MB), além da licença de uso e documentação.

A missão do projeto de fonte STIX é elaborar um conjunto abrangente de fontes que sirvam a comunidade científica e técnica no processo que vai da criação do manuscrito à publicação final, em formatos eletrônico e impresso. Com este propósito, as fontes STIX são disponibilizadas sob licença livre de royalties para todos, inclusive editores, desenvolvedores de software, cientistas, estudantes e o público em geral.

O STIX font creation project é uma iniciativa das STI Pub companies, que inclui os Institutos Americanos de Física e de Engenharia Elétrica e Eletrônica – IEEE, as Sociedades Americanas de Química – ACS, Matemática – AMS e de Física – APS, e a Editora Elsevier.

Estas fontes matemáticas se juntam às Fontes para os amantes do TeX que já abordei no blog para suprir um conjunto profissional de fontes para quem escreve textos acadêmicos, técnicos e científicos usando um processador de textos gráfico em sistema operacional que suporte OpenType, como Windows 2000 ou superior e Linux.

O navegador Mozilla Firefox utiliza estas fontes, quando instaladas, para renderizar símbolos e expressões matemáticos na sintaxe MathML, que define mais de 2000 entidades.

STIX Fonts release 1.0 devem funcionar corretamente com Internet Explorer 8 em standards mode.

De acordo com a documentação, mais recursos OpenType serão adicionados no segundo lançamento para permitir o uso da fonte em uma aplicação como Microsoft Office Word 2010. O terceiro release acrescentará suporte a LaTeX.

Livro de Arquitetura Java

Capa do livro
Seis consultores e instrutores Java da Caelum estão escrevendo o livro Arquitetura e Design de Software: Uma visão sobre a plataforma Java, fruto de mais de dois anos de experiência ministrando o treinamento de Arquitetura e Design Java, consultorias e projetos realizados pela empresa e discussões no GUJ.com.br.

No site do livro está disponível a estrutura de conteúdo proposta, com diversos trechos rascunho para baixar em PDF.

O livro tem prefácio de Phillip Calçado. O lançamento, pela editora Campus Elsevier, foi inicialmente previsto pelos autores para novembro de 2009 e depois primeiro semestre 2010, mas pelo atraso creio que eles devem estar sofrendo na pele a Regra de Pareto: os 20% finais do livro tomando 80% do tempo… vamos aguardar.