package org.dayatang.ioc.tapestry.factory;
import org.dayatang.domain.InstanceFactory;
import org.dayatang.domain.InstanceProvider;
public class TapestryIocUtils {
private static final ThreadLocal<TapestryInstanceProvider> providerHolder = new ThreadLocal<TapestryInstanceProvider>();
private TapestryIocUtils() {
super();
}
public static void initInstanceProvider(Class<?>... iocModules) {
InstanceFactory.setInstanceProvider(getInstanceProvider(iocModules));
}
private static InstanceProvider getInstanceProvider(Class<?>... iocModules) {
TapestryInstanceProvider result = providerHolder.get();
if (result != null) {
return result;
}
synchronized (TapestryIocUtils.class) {
result = new TapestryInstanceProvider(iocModules);
providerHolder.set(result);
return result;
}
}
}