All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.googlecode.mycontainer.ejb.InjectionUtil Maven / Gradle / Ivy

There is a newer version: 1.7.5
Show newest version
package com.googlecode.mycontainer.ejb;

import java.lang.reflect.Field;

import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.naming.Context;
import javax.naming.NamingException;

import com.googlecode.mycontainer.kernel.reflect.ReflectUtil;

public class InjectionUtil {

	public static void inject(Object instance, Context context) throws NamingException {
		injectEjbs(instance, context);
		injectResource(instance, context);
	}

	public static void injectEjbs(Object instance, Context context) throws NamingException {
		Field fields[] = instance.getClass().getDeclaredFields();

		for (Field field : fields) {
			if (field.isAnnotationPresent(EJB.class)) {
				EJB ejb = field.getAnnotation(EJB.class);

				Class type = field.getType();
				Object ejbInstance = LookupUtil.lookupEJB(ejb, type, context);
				ReflectUtil.setField(field, instance, ejbInstance);
			}
		}
	}

	public static void injectResource(Object instance, Context context) throws NamingException {
		Field fields[] = instance.getClass().getDeclaredFields();

		for (Field field : fields) {
			if (field.isAnnotationPresent(Resource.class)) {
				Resource resource = field.getAnnotation(Resource.class);
				Class type = field.getType();

				Object resourceInstance = LookupUtil.lookupResource(resource, type, context);
				ReflectUtil.setField(field, instance, resourceInstance);
			}
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy