X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.reflection%2Fsrc%2Forg%2Fsimantics%2Fscl%2Freflection%2Finternal%2FActivator.java;fp=bundles%2Forg.simantics.scl.reflection%2Fsrc%2Forg%2Fsimantics%2Fscl%2Freflection%2Finternal%2FActivator.java;h=a14be489618d659c6bf394405bce1e2d8868ac04;hp=4e1d01816381d3ca486bae5b558f07f9af5cb7b2;hb=8f99af83cee60676d80cf2334177ab94f82b7959;hpb=66f1eacd905b77c6df3c3e9454ed16fbc4ac23d0 diff --git a/bundles/org.simantics.scl.reflection/src/org/simantics/scl/reflection/internal/Activator.java b/bundles/org.simantics.scl.reflection/src/org/simantics/scl/reflection/internal/Activator.java index 4e1d01816..a14be4896 100644 --- a/bundles/org.simantics.scl.reflection/src/org/simantics/scl/reflection/internal/Activator.java +++ b/bundles/org.simantics.scl.reflection/src/org/simantics/scl/reflection/internal/Activator.java @@ -1,11 +1,14 @@ package org.simantics.scl.reflection.internal; +import java.util.concurrent.ForkJoinPool; + import org.eclipse.core.runtime.ILog; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.osgi.framework.Bundle; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; +import org.simantics.scl.reflection.internal.registry.BindingRegistry; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -20,6 +23,21 @@ public class Activator implements BundleActivator { public void start(BundleContext context) throws Exception { this.context = context; instance = this; + + primeBindingRegistry(); + } + + private static void primeBindingRegistry() { + LOGGER.info("Priming BindingRegistry"); + ForkJoinPool.commonPool().submit(() -> { + try { + // this forces static initialzation of the registry in advance + BindingRegistry.primeBindingRegistry(); + } catch (Exception e) { + LOGGER.error("Could not prime binding registry", e); + } + LOGGER.info("Priming done"); + }); } @Override