private void initializeDependencies(BeanContext beanContext) throws OpenEJBException { SystemInstance systemInstance = SystemInstance.get(); ContainerSystem containerSystem = systemInstance.getComponent(ContainerSystem.class); for (String dependencyId : beanContext.getDependsOn()) { BeanContext dependencyContext = containerSystem.getBeanContext(dependencyId); if (dependencyContext == null) { throw new OpenEJBException( "Deployment does not exist. Deployment(id='" + dependencyContext + "')"); } final Object containerData = dependencyContext.getContainerData(); // Bean may not be a singleton or may be a singleton // managed by a different container implementation if (containerData instanceof Data) { Data data = (Data) containerData; data.initialize(); } } }