]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/ModuleUtils.java
SCL-compiler should activate installed bundles
[simantics/platform.git] / bundles / org.simantics.scl.osgi / src / org / simantics / scl / osgi / internal / ModuleUtils.java
1 package org.simantics.scl.osgi.internal;
2
3 import gnu.trove.procedure.TObjectProcedure;
4
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;
11
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);
17         if(printer == null)
18             printer = SCLReportingHandler.DEFAULT;
19         final SCLReportingHandler printer_ = printer;
20         SCLOsgi.SOURCE_REPOSITORY.forAllModules(new TObjectProcedure<String>() {
21             @Override
22             public boolean execute(String moduleName) {
23                 validateModule(printer_, moduleName);
24                 return true;
25             }
26         });
27     }
28     
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());
35         }
36     }
37 }