private void addRecursively(LinkedList<ApplicationMetaDataProvider> results, Map<Class, ApplicationMetaDataProvider> providers, ApplicationMetaDataProvider provider) { results.addFirst(provider); for (Class type : provider.getMetaData().requires()) { if (providers.containsKey(type)) { addRecursively(results, providers, providers.get(type)); } } }
private void loadDeployer(List<Deployer> results, Deployer deployer, Map<Class, Deployer> typeByDeployer, Map<Class, ApplicationMetaDataProvider> typeByProvider, DeploymentContext dc) throws IOException { if (results.contains(deployer)) { return; } results.add(deployer); if (deployer.getMetaData()!=null) { for (Class required : deployer.getMetaData().requires()) { if (dc.getModuleMetaData(required)!=null) { continue; } if (typeByDeployer.containsKey(required)) { loadDeployer(results,typeByDeployer.get(required), typeByDeployer, typeByProvider, dc); } else { ApplicationMetaDataProvider provider = typeByProvider.get(required); if (provider==null) { logger.log(Level.SEVERE, KernelLoggerInfo.inconsistentLifecycleState, required); } else { LinkedList<ApplicationMetaDataProvider> providers = new LinkedList<ApplicationMetaDataProvider>(); addRecursively(providers, typeByProvider, provider); for (ApplicationMetaDataProvider p : providers) { dc.addModuleMetaData(p.load(dc)); } } } } } }
private void loadDeployer(List<Deployer> results, Deployer deployer, Map<Class, Deployer> typeByDeployer, Map<Class, ApplicationMetaDataProvider> typeByProvider, DeploymentContext dc) throws IOException { if (results.contains(deployer)) { return; } results.add(deployer); if (deployer.getMetaData()!=null) { for (Class required : deployer.getMetaData().requires()) { if (dc.getModuleMetaData(required)!=null) { continue; } if (typeByDeployer.containsKey(required)) { loadDeployer(results,typeByDeployer.get(required), typeByDeployer, typeByProvider, dc); } else { ApplicationMetaDataProvider provider = typeByProvider.get(required); if (provider==null) { logger.log(Level.SEVERE, KernelLoggerInfo.inconsistentLifecycleState, required); } else { LinkedList<ApplicationMetaDataProvider> providers = new LinkedList<ApplicationMetaDataProvider>(); addRecursively(providers, typeByProvider, provider); for (ApplicationMetaDataProvider p : providers) { dc.addModuleMetaData(p.load(dc)); } } } } } }
private void addRecursively(LinkedList<ApplicationMetaDataProvider> results, Map<Class, ApplicationMetaDataProvider> providers, ApplicationMetaDataProvider provider) { results.addFirst(provider); for (Class type : provider.getMetaData().requires()) { if (providers.containsKey(type)) { addRecursively(results, providers, providers.get(type)); } } }
if (provider.getMetaData()!=null) { for (Class provided : provider.getMetaData().provides()) { typeByProvider.put(provided, provider); if (provider.getMetaData()!=null) { for (Class dependency : provider.getMetaData().requires()) { if (!typeByProvider.containsKey(dependency)) {
if (provider.getMetaData()!=null) { for (Class provided : provider.getMetaData().provides()) { typeByProvider.put(provided, provider); if (provider.getMetaData()!=null) { for (Class dependency : provider.getMetaData().requires()) { if (!typeByProvider.containsKey(dependency)) {