/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.plugin.spring;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import com.enonic.cms.core.plugin.context.PluginContext;
import com.enonic.cms.api.plugin.ext.Extension;
import com.enonic.cms.core.plugin.util.OsgiHelper;
public final class SpringActivator
implements BundleActivator
{
private XmlAppContext app;
public void start( final BundleContext context )
throws Exception
{
this.app = new XmlAppContext( context.getBundle() );
final PluginContext pluginContext = OsgiHelper.requireService( context, PluginContext.class );
this.app.addBeanFactoryPostProcessor( new ConfigProcessor( pluginContext ) );
this.app.addBeanFactoryPostProcessor( new BeansProcessor( pluginContext ) );
this.app.refresh();
for ( final Extension ext : this.app.getBeansOfType( Extension.class ).values() )
{
pluginContext.register( ext );
}
}
public void stop( final BundleContext context )
throws Exception
{
this.app.close();
}
}