11Componentes utilitários opcionais

Registrando um componente opcional

O VRaptor possui alguns componentes opcionais, que estão no pacote br.com.caelum.vraptor.util. Para registrá-los você pode adicionar seus pacotes no web.xml:

<context-param>
    <param-name>br.com.caelum.vraptor.packages</param-name>
    <param-value>
        br.com.caelum.vraptor.util.um.pacote,
        br.com.caelum.vraptor.util.outro.pacote
    </param-value>
</context-param>

ou você pode criar um custom provider:

Componentes opcionais disponíveis

Converters Localizados

Existem alguns converters para números que são localizados, ou seja, que consideram o Locale atual para converter os parâmetros. Você pode registrá-los adicionando o pacote br.com.caelum.vraptor.converter.l10n no seu web.xml:

<context-param>
    <param-name>br.com.caelum.vraptor.packages</param-name>
    <param-value>
        br.com.caelum.vraptor.util.outros.pacotes...,
        br.com.caelum.vraptor.converter.l10n
    </param-value>
</context-param>

Instanciador de Parâmetros: IOGI x OGNL

O VRaptor utiliza por padrão o IOGI para injetar os parâmetros nos objetos. Se você preverir é possível usar o OGNL, bastando remover o jar do IOGI e adicionar os jars do OGNL.

Integração com ExtJS

Existe uma View do VRaptor que consegue gerar alguns formatos de JSON que o ExtJS espera. Para isso use:

result.use(ExtJSJson.class).....serialize();

Registrando um plugin automaticamente

Para registrar um plugin automaticamente, basta adicionar o arquivo META-INF/br.com.caelum.vraptor.packages dentro do jar, contendo os pacotes do plugin separados por vírgulas. O registro dos pacotes é feito recursivamente.

Integração JPA e Hibernate

Há três projetos externos ao VRaptor para integração persistência. Para cada um deles, basta adicionar o jar no classpath que o suporte será ativado automaticamente sem a necessidade de registrar os componentes.

O projeto vraptor-jpa é disponibilizado sem nenhum provider. Então para usá-lo você precisa incluir o provider de sua preferência.

Para usar o Hibernate como provider:

  <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.0.1.Final</version>
    </dependency>

Para usar o Eclipselink como provider:

  <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>javax.persistence</artifactId>
        <version>2.0.0</version>
    </dependency>