X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.scl.osgi%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fosgi%2Finternal%2FActivator.java;h=4642fb5a40d48922d1b46d8854cac9a6e69a5486;hb=6667a65141692bc359087d8f1c9c8561636f1c59;hp=ea113017a1458790a57567a7498b4d5339285689;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/Activator.java b/bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/Activator.java old mode 100755 new mode 100644 index ea113017a..4642fb5a4 --- a/bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/Activator.java +++ b/bundles/org.simantics.scl.osgi/src/org/simantics/scl/osgi/internal/Activator.java @@ -1,14 +1,27 @@ package org.simantics.scl.osgi.internal; import java.util.Hashtable; +import java.util.concurrent.ForkJoinPool; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; +import org.simantics.scl.compiler.errors.Failable; +import org.simantics.scl.compiler.module.Module; +import org.simantics.scl.compiler.module.repository.ModuleRepository; +import org.simantics.scl.compiler.module.repository.UpdateListener; import org.simantics.scl.compiler.source.repository.ModuleSourceRepository; +import org.simantics.scl.compiler.source.repository.ProceduralModuleSourceRepository; import org.simantics.scl.compiler.source.repository.SourceRepositories; +import org.simantics.scl.osgi.SCLOsgi; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Activator implements BundleActivator { + private static final Logger LOGGER = LoggerFactory.getLogger(Activator.class); + + public static final String PLUGIN_ID = "org.simantics.scl.osgi"; + private static BundleContext context; public static BundleContext getContext() { @@ -23,6 +36,21 @@ public class Activator implements BundleActivator { bundleContext.registerService(ModuleSourceRepository.class, SourceRepositories.BUILTIN_SOURCE_REPOSITORY, properties); + bundleContext.registerService(ModuleSourceRepository.class, + new ProceduralModuleSourceRepository() { + @Override + protected ModuleRepository getModuleRepository(UpdateListener listener) { + return SCLOsgi.MODULE_REPOSITORY; + } + }, + properties); + // Let's try to compile StandardLibrary asynchronously to speed up + // the compilation when we actually need it the first time + LOGGER.info("Warming up SCL-compiler with StandardLibrary"); + ForkJoinPool.commonPool().submit(() -> { + Failable module = SCLOsgi.MODULE_REPOSITORY.getModule("StandardLibrary"); + LOGGER.info("StandardLibrary compiled {}", module); + }); } public void stop(BundleContext bundleContext) throws Exception {