import java.util.List;
import java.util.Set;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.argeo.slc.SlcException;
import org.springframework.beans.BeansException;
import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
+import org.springframework.core.Ordered;
+import org.springframework.core.PriorityOrdered;
import org.springframework.osgi.service.exporter.support.OsgiServiceFactoryBean;
@SuppressWarnings(value = { "unchecked" })
public class MultipleServiceExporterPostProcessor implements
- BeanFactoryPostProcessor {
+ BeanFactoryPostProcessor, PriorityOrdered {
+ private final static Log log = LogFactory
+ .getLog(MultipleServiceExporterPostProcessor.class);
+
private List<Class> interfaces = new ArrayList<Class>();
private Class osgiServiceFactoryClass = OsgiServiceFactoryBean.class;
mpv.addPropertyValue("targetBeanName", beanName);
RootBeanDefinition bd = new RootBeanDefinition(
osgiServiceFactoryClass, mpv);
+
+ String exporterBeanName = "osgiService." + beanName;
+ if (log.isTraceEnabled())
+ log.debug("Registering OSGi service exporter "
+ + exporterBeanName);
((BeanDefinitionRegistry) beanFactory).registerBeanDefinition(
- "osgiService." + beanName, bd);
+ exporterBeanName, bd);
}
}
this.osgiServiceFactoryClass = osgiServiceFactoryClass;
}
+ public int getOrder() {
+ return Ordered.LOWEST_PRECEDENCE;
+ }
+
}