Chapter 10. Enterprise Integration
Prev | Part III. Kodo JDO Reference Guide | Next

## Chapter 10. Enterprise Integration

## 10.1. Overview of Enterprise Integration features in Kodo

Kodo can be integrated with your J2EE applications in a number of ways. The simplest is just to include the Kodo libraries in a J2EE EAR file and call Kodo directly from there. This will be problematic, however, if you want Kodo to share resources with other beans or if you have multiple beans deployed that need to use the same Kodo resource.

The second way to integrate Kodo is to configure and bind an instance of `com.solarmetric.kodo.impl.jdbc.ee.EEPersistenceManagerFactory` into JNDI. Although the mechanism by which you do this is up to you, the most common way is to create a startup class according to your application server's documentation that will create an instance of `EEPersistenceManagerFactory` and then bind it in JNDI. For example, in WebLogic you could write a startup class as follows::

Example 10.1. Binding a PersistenceManagerFactory into JNDI via a WebLogic startup class

    package samples.weblogic.kodo;

    import javax.naming.*;
    import weblogic.common.T3ServicesDef;
    import weblogic.common.T3StartupDef;
    import java.util.Hashtable;
    import com.solarmetric.kodo.impl.jdbc.ee.EEPersistenceManagerFactory;

    /**
     * This startup class created and binds an instance of a
     * Kodo EEPersistenceManagerFactory into JNDI.
     */
    public class StartKodo
        implements T3StartupDef
    {
        private static String myJNDIName = "my.jndi.name";
        private T3ServicesDef services;

        public void setServices (T3ServicesDef services)
        {
            this.services = services;
        }

        public String startup (String name, Hashtable args)
            throws Exception
        {
            String jndi = (String)args.get ("jndiname");
            if (jndi == null || jndi.length () == 0)
                jndi = myJNDIName;

            EEPersistenceManagerFactory factory =
                new EEPersistenceManagerFactory ();

            // you could perform additional configuration of the
            // EEPersistenceManagerFactory here. Otherwise, the values
            // from the Kodo properties or system.prefs will be used.

            InitialContext ic = new InitialContext ();
            ic.bind (jndi, factory);

            // return a message for logging
            return "Bound EEPersistenceManagerFactory to " + jndi;
        }
    }

Applications that utilize Kodo can then obtain a handle to the `PersistenceManagerFactory` as follows:

Example 10.2. Looking up the PersistenceManagerFactory in JNDI

    PersistenceManagerFactory factory = (PersistenceManagerFactory)
        new InitialContext ().lookup ("java:/MyKodoJNDIName");
    PersistenceManager pm = factory.getPersistenceManager ();

The third way to integrate Kodo in an application server is to utilize the Java Connector Architecture features of Kodo as described below.

Prev | Up | Next
9.6. Eclipse / WebSphere Studio Integration | Home | 10.2. Using Kodo JDO via the Java Connector Architecture