1 package io.github.magwas.inez.osgi;
2
3 import org.osgi.framework.BundleContext;
4 import org.osgi.framework.ServiceReference;
5 import org.springframework.beans.BeansException;
6 import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
7 import org.springframework.beans.factory.support.BeanDefinitionRegistry;
8 import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
9
10 import io.github.magwas.inez.parse.ParseTextService;
11 import io.github.magwas.runtime.ObjectCache;
12
13 public class MyBeanRegistrar implements BeanDefinitionRegistryPostProcessor {
14 @Override
15 public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry)
16 throws BeansException {
17 }
18
19 @Override
20 public void postProcessBeanFactory(
21 ConfigurableListableBeanFactory beanFactory) throws BeansException {
22 BundleContext bundleContext = SpringBootBundleActivator.bundleContext;
23 ServiceReference<ParseTextService> ref = bundleContext
24 .getServiceReference(ParseTextService.class);
25 ParseTextService parseText = bundleContext.getService(ref);
26 beanFactory.registerSingleton("parseTextService", parseText);
27 ObjectCache objectCache = new ObjectCache();
28 beanFactory.registerSingleton("objectCache", objectCache);
29 }
30 }