X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Fmodule%2Frepository%2FModuleRepository.java;h=23491235ce3289c46fd254009cde5963774374d6;hp=8a86c5ccce36ecef59326e7abcd32a558d7e27ea;hb=3a31aa451eae6bc9fa359ada9df47a354605f4b6;hpb=976bf85e9915e294d39d2673d7f8bb90f6a70144 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/repository/ModuleRepository.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/repository/ModuleRepository.java index 8a86c5ccc..23491235c 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/repository/ModuleRepository.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/module/repository/ModuleRepository.java @@ -37,6 +37,8 @@ import org.simantics.scl.compiler.top.ModuleInitializer; import org.simantics.scl.compiler.top.SCLCompilerConfiguration; import org.simantics.scl.compiler.top.ValueNotFound; import org.simantics.scl.compiler.types.Types; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import gnu.trove.map.hash.THashMap; import gnu.trove.map.hash.TObjectLongHashMap; @@ -49,6 +51,9 @@ import gnu.trove.set.hash.THashSet; * @author Hannu Niemistö */ public class ModuleRepository { + + private static final Logger LOGGER = LoggerFactory.getLogger(ModuleRepository.class); + private final ModuleRepository parentRepository; private final ModuleSourceRepository sourceRepository; private ConcurrentHashMap moduleCache = new ConcurrentHashMap(); @@ -120,9 +125,9 @@ public class ModuleRepository { if(moduleCache.get(moduleName) == this) { moduleCache.remove(moduleName); if(SCLCompilerConfiguration.TRACE_MODULE_UPDATE) { - System.out.println("Invalidate " + moduleName); + LOGGER.info("Invalidate " + moduleName); for(UpdateListener l : listenersCopy) - System.out.println(" " + l); + LOGGER.info(" " + l); } for(UpdateListener l : listenersCopy) if(!l.stopListening()) @@ -141,7 +146,7 @@ public class ModuleRepository { compilationResult = DoesNotExist.getInstance(); else { if(SCLCompilerConfiguration.TRACE_MODULE_UPDATE) - System.out.println("Compile " + source); + LOGGER.info("Compile " + source); beginModuleCompilation(moduleName); compilationResult = source.compileModule(ModuleRepository.this, this, advisor == null ? null : advisor.getOptions(moduleName)); finishModuleCompilation(moduleName); @@ -235,6 +240,10 @@ public class ModuleRepository { return getModule(moduleName, null); } + public void update(String moduleName) { + getModuleEntry(moduleName, null).notifyAboutUpdate(); + } + public Failable getRuntimeModule(String moduleName, UpdateListener listener) { return getModuleEntry(moduleName, listener).getRuntimeModule(); } @@ -505,7 +514,7 @@ public class ModuleRepository { if (moduleCache != null) for (ModuleEntry entry : moduleCache.values()) entry.dispose(); - moduleCache = null; + moduleCache = new ConcurrentHashMap(); } /**