= Built-in Type Converters
:index-group: Unrevised
:jbake-date: 2018-12-05
:jbake-type: page
:jbake-status: published

The following built-in types are supported for
@Resource injection in EJBs via elements in a `META-INF/ejb-jar.xml` or
via plain properties in a `META-INF/env-entries.properties` file.

EJB 3.0 required types:

* java.lang.Boolean
* java.lang.Byte
* java.lang.Character
* java.lang.Double
* java.lang.Float
* java.lang.Integer
* java.lang.Long
* java.lang.Short
* java.lang.String

OpenEJB 3.0 additional types:

* java.lang.Class
* java.lang.Enum (any subclass of)
* java.io.File
* java.math.BigDecimal
* java.math.BigInteger
* java.net.Inet4Address
* java.net.Inet6Address
* java.net.InetAddress
* java.net.URI
* java.net.URL
* java.util.ArrayList
* java.util.Date
* java.util.HashMap
* java.util.Hashtable
* java.util.IdentityHashMap
* java.util.LinkedHashMap
* java.util.LinkedHashSet
* java.util.LinkedList
* java.util.List
* java.util.Map
* java.util.Properties
* java.util.Set
* java.util.SortedMap
* java.util.TreeMap
* java.util.TreeSet
* java.util.Vector
* java.util.WeakHashMap
* java.util.logging.Logger
* java.util.regex.Pattern
* javax.management.ObjectName
* javax.naming.Context
* org.apache.commons.logging.Log
* org.apache.log4j.Logger

To use an OpenEJB additional type in xml, simply declare it as
java.lang.String and it will be converted on the fly to the field/setter
type used by the bean class. For example:

[source,java]
----
package org.superbiz.foo;

import java.util.Date;

@Stateless
public class MyBean {

    @Resource
    private Date myDate;
}
----

Works with an `ejb-jar.xml` as follows:

[source,xml]
----
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" version="3.0"
metadata-complete="false">
  <enterprise-beans>
    <session>
      <ejb-name>MyBean</ejb-name>
      <env-entry>
  <env-entry-name>org.superbiz.foo.MyBean/myDate</env-entry-name>
  <env-entry-value>2008-04-19</env-entry-value>
  <env-entry-type>java.lang.String</env-entry-type>
      </env-entry>
    </session>
  </enterprise-beans>
</ejb-jar>
----

Or with an env-entries.properties file as follows:

[source,properties]
----
org.superbiz.foo.MyBean/myDate = 2008-04-19
----
