package org.om.osgi.activator; import org.om.core.api.mapping.registry.MappingRegistry; import org.om.core.api.persistence.PersistenceAdapterFactory; import org.om.core.api.persistence.proxy.ProxyFactory; import org.om.core.api.session.factory.SessionFactory; import org.om.core.impl.mapping.extractor.EntityMappingExtractorImpl; import org.om.core.impl.mapping.registry.SimpleCachingOnDemandMappingRegistry; import org.om.core.impl.persistence.cglib.CglibProxyFactory; import org.om.core.impl.persistence.interceptor.factory.PersistenceInterceptorFactoryImpl; import org.om.core.impl.persistence.jcr.JcrPersistenceAdapterFactory; import org.om.osgi.session.factory.OsgiServiceFactorySessionFactory; import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceFactory; import org.osgi.framework.ServiceRegistration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Activator implements BundleActivator { private static final Logger LOGGER = LoggerFactory.getLogger(Activator.class); private ServiceRegistration sessionFactoryRegistration; public void start(BundleContext context) throws Exception { LOGGER.info("Object mapper bundle starting up... "); PersistenceAdapterFactory persistenceDelegateFactory = new JcrPersistenceAdapterFactory(); MappingRegistry mappingRegistry = new SimpleCachingOnDemandMappingRegistry(new EntityMappingExtractorImpl()); ProxyFactory proxyFactory = new CglibProxyFactory(new PersistenceInterceptorFactoryImpl()); ServiceFactory serviceFactory = new OsgiServiceFactorySessionFactory(persistenceDelegateFactory, mappingRegistry, proxyFactory); sessionFactoryRegistration = context.registerService(SessionFactory.class.getName(), serviceFactory, null); LOGGER.info("Registered session factory."); } public void stop(BundleContext context) throws Exception { sessionFactoryRegistration.unregister(); } }