:index-group: Environment Entries
:jbake-type: page
:jbake-status: status=published
= Using EnvEntries

La anotación `@Resource` se puede usar para inyectar varias cosas,
incluyendo fuentes de datos, temas, colas, etc. La mayoría 
objetos suministrados por el contenedor.

Sin embargo, es posible proporcionar sus propios valores para inyectarlos mediante una etiqueta
`<env-entry>` en su descriptor de implementación `ejb-jar.xml` o` web.xml`.
Los tipos `<env-entry>` compatibles con Java EE 6 están limitados a los siguientes:

* java.lang.String
* java.lang.Integer
* java.lang.Short
* java.lang.Float
* java.lang.Double
* java.lang.Byte
* java.lang.Character
* java.lang.Boolean
* java.lang.Class
* java.lang.Enum (any enum)

Consulte también el ejemplo link:../custom-injection[Custom Injection] para una
funcionalidad de TomEE y OpenEJB que le permitirá usar más que solo los anteriores
tipos, así como declarar elementos `<env-entry>` con un archivo de propiedades.

== Usando @Resource para propiedades básicas

El uso de la anotación `@Resource` no se limita a los metodos establecedores (setters). Por
ejemplo, esta anotación podría haberse utilizado en el correspondiente _campo_ así:

[source,java]
----
@Resource
private int maxLineItems;
----

Un ejemplo más completo podría verse así:

[source,java]
----
package org.superbiz.injection.enventry;

import javax.annotation.Resource;
import javax.ejb.Singleton;
import java.util.Date;

@Singleton
public class Configuration {

    @Resource
    private String color;

    @Resource
    private Shape shape;

    @Resource
    private Class strategy;

    @Resource(name = "date")
    private long date;

    public String getColor() {
        return color;
    }

    public Shape getShape() {
        return shape;
    }

    public Class getStrategy() {
        return strategy;
    }

    public Date getDate() {
        return new Date(date);
    }
}
----

Aquí tenemos un bean `@Singleton` llamado `Configuration` que tiene la
siguientes propiedades (elementos `<env-entry>`)

* String color
* Shape shape
* Class strategy
* long date

=== Suministro de valores de @Resource para elementos en ejb-jar.xml

Los valores de nuestras propiedades de color, forma, estrategia y fecha
se suministran a través de elementos `<env-entry>` en el archivo `ejb-jar.xml` o
Archivo `web.xml` así:

[source,xml]
----
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.0" metadata-complete="false">
  <enterprise-beans>
    <session>
      <ejb-name>Configuration</ejb-name>
      <env-entry>
        <env-entry-name>org.superbiz.injection.enventry.Configuration/color</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>orange</env-entry-value>
      </env-entry>
      <env-entry>
        <env-entry-name>org.superbiz.injection.enventry.Configuration/shape</env-entry-name>
        <env-entry-type>org.superbiz.injection.enventry.Shape</env-entry-type>
        <env-entry-value>TRIANGLE</env-entry-value>
      </env-entry>
      <env-entry>
        <env-entry-name>org.superbiz.injection.enventry.Configuration/strategy</env-entry-name>
        <env-entry-type>java.lang.Class</env-entry-type>
        <env-entry-value>org.superbiz.injection.enventry.Widget</env-entry-value>
      </env-entry>
      <env-entry>
        <description>The name was explicitly set in the annotation so the classname prefix isn't required</description>
        <env-entry-name>date</env-entry-name>
        <env-entry-type>java.lang.Long</env-entry-type>
        <env-entry-value>123456789</env-entry-value>
      </env-entry>
    </session>
  </enterprise-beans>
</ejb-jar>
----

==== Usando el atributo @Resource `name` 

Tenga en cuenta que  `date` fue referenciada por `nombre` como:

[source,java]
----
@Resource(name = "date")
private long date;
----

Cuando se utiliza el `@Resource(name)`, no es necesario especificar el
nombre de clase del bean y puede hacerlo brevemente así:

[source,java]
----
  <env-entry>
    <description>The name was explicitly set in the annotation so the classname prefix is not required</description>
    <env-entry-name>date</env-entry-name>
    <env-entry-type>java.lang.Long</env-entry-type>
    <env-entry-value>123456789</env-entry-value>
  </env-entry>
----

Por el contrario, `color` no fue referenciado por `nombre`

[source,java]
----
@Resource
private String color;
----

Cuando algo no está referenciado por `nombre` en la anotación `@Resource`
se crea un nombre predeterminado. El formato es esencialmente este:

[source,java]
----
bean.getClass() + "/" + field.getName()
----

Entonces, el `nombre` predeterminado de la propiedad `color` anterior termina siendo
`org.superbiz.injection.enventry.Configuration/color`. Este es el nombre que
debemos usar cuando intentamos decalre un valor para él en xml.

[source,java]
----
  <env-entry>
    <env-entry-name>org.superbiz.injection.enventry.Configuration/color</env-entry-name>
    <env-entry-type>java.lang.String</env-entry-type>
    <env-entry-value>orange</env-entry-value>
  </env-entry>
----

==== @Resource y Enum (enumeraciones)

El campo `shape` es en realidad un tipo Java Enum personalizado

[source,java]
----
package org.superbiz.injection.enventry;

public enum Shape {

    CIRCLE,
    TRIANGLE,
    SQUARE
}
----

A partir de Java EE 6, los tipos java.lang.Enum están permitidos como elementos `<env-entry>`. 
La declaración de uno en xml se realiza utilizando el nombre de clase de la enumeración real
al igual que:

[source,java]
----
      <env-entry>
        <env-entry-name>org.superbiz.injection.enventry.Configuration/shape</env-entry-name>
        <env-entry-type>org.superbiz.injection.enventry.Shape</env-entry-type>
        <env-entry-value>TRIANGLE</env-entry-value>
      </env-entry>
----

¡No use `<env-entry-type> java.lang.Enum </env-entry-type>` o no funcionará!

=== ConfigurationTest

[source,java]
----
package org.superbiz.injection.enventry;

import junit.framework.TestCase;

import javax.ejb.embeddable.EJBContainer;
import javax.naming.Context;
import java.util.Date;

public class ConfigurationTest extends TestCase {


    public void test() throws Exception {
        final Context context = EJBContainer.createEJBContainer().getContext();

        final Configuration configuration = (Configuration) context.lookup("java:global/injection-of-env-entry/Configuration");

        assertEquals("orange", configuration.getColor());

        assertEquals(Shape.TRIANGLE, configuration.getShape());

        assertEquals(Widget.class, configuration.getStrategy());

        assertEquals(new Date(123456789), configuration.getDate());
    }
}
----

== Ejecución 

[source,console]
----
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.superbiz.injection.enventry.ConfigurationTest
Apache OpenEJB 4.0.0-beta-1    build: 20111002-04:06
http://tomee.apache.org/
INFO - openejb.home = /Users/dblevins/examples/injection-of-env-entry
INFO - openejb.base = /Users/dblevins/examples/injection-of-env-entry
INFO - Using 'javax.ejb.embeddable.EJBContainer=true'
INFO - Configuring Service(id=Default Security Service, type=SecurityService, provider-id=Default Security Service)
INFO - Configuring Service(id=Default Transaction Manager, type=TransactionManager, provider-id=Default Transaction Manager)
INFO - Found EjbModule in classpath: /Users/dblevins/examples/injection-of-env-entry/target/classes
INFO - Beginning load: /Users/dblevins/examples/injection-of-env-entry/target/classes
INFO - Configuring enterprise application: /Users/dblevins/examples/injection-of-env-entry
WARN - Method 'lookup' is not available for 'javax.annotation.Resource'. Probably using an older Runtime.
INFO - Configuring Service(id=Default Singleton Container, type=Container, provider-id=Default Singleton Container)
INFO - Auto-creating a container for bean Configuration: Container(type=SINGLETON, id=Default Singleton Container)
INFO - Configuring Service(id=Default Managed Container, type=Container, provider-id=Default Managed Container)
INFO - Auto-creating a container for bean org.superbiz.injection.enventry.ConfigurationTest: Container(type=MANAGED, id=Default Managed Container)
INFO - Enterprise application "/Users/dblevins/examples/injection-of-env-entry" loaded.
INFO - Assembling app: /Users/dblevins/examples/injection-of-env-entry
INFO - Jndi(name="java:global/injection-of-env-entry/Configuration!org.superbiz.injection.enventry.Configuration")
INFO - Jndi(name="java:global/injection-of-env-entry/Configuration")
INFO - Jndi(name="java:global/EjbModule1355224018/org.superbiz.injection.enventry.ConfigurationTest!org.superbiz.injection.enventry.ConfigurationTest")
INFO - Jndi(name="java:global/EjbModule1355224018/org.superbiz.injection.enventry.ConfigurationTest")
INFO - Created Ejb(deployment-id=org.superbiz.injection.enventry.ConfigurationTest, ejb-name=org.superbiz.injection.enventry.ConfigurationTest, container=Default Managed Container)
INFO - Created Ejb(deployment-id=Configuration, ejb-name=Configuration, container=Default Singleton Container)
INFO - Started Ejb(deployment-id=org.superbiz.injection.enventry.ConfigurationTest, ejb-name=org.superbiz.injection.enventry.ConfigurationTest, container=Default Managed Container)
INFO - Started Ejb(deployment-id=Configuration, ejb-name=Configuration, container=Default Singleton Container)
INFO - Deployed Application(path=/Users/dblevins/examples/injection-of-env-entry)
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.664 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
----
