1 package org.simantics.scl.osgi.internal;
3 import gnu.trove.procedure.TObjectProcedure;
5 import org.simantics.scl.compiler.errors.Failable;
6 import org.simantics.scl.compiler.errors.Failure;
7 import org.simantics.scl.compiler.module.Module;
8 import org.simantics.scl.osgi.SCLOsgi;
9 import org.simantics.scl.runtime.SCLContext;
10 import org.simantics.scl.runtime.reporting.SCLReportingHandler;
12 public class ModuleUtils {
13 public static void validateModules() {
14 SCLOsgi.SOURCE_REPOSITORY.checkUpdates();
15 SCLContext context = SCLContext.getCurrent();
16 SCLReportingHandler printer = (SCLReportingHandler)context.get(SCLReportingHandler.REPORTING_HANDLER);
18 printer = SCLReportingHandler.DEFAULT;
19 final SCLReportingHandler printer_ = printer;
20 SCLOsgi.SOURCE_REPOSITORY.forAllModules(new TObjectProcedure<String>() {
22 public boolean execute(String moduleName) {
23 validateModule(printer_, moduleName);
29 private static void validateModule(SCLReportingHandler printer, String moduleName) {
30 Failable<Module> module = SCLOsgi.MODULE_REPOSITORY.getModule(moduleName);
31 if(module instanceof Failure) {
32 Failure failure = (Failure)module;
33 printer.print("--- " + moduleName + " ---------------------");
34 printer.print(failure.toString());