/****************************************************************************** * Copyright (c) 2006, 2010 VMware Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * and Apache License v2.0 which accompanies this distribution. * The Eclipse Public License is available at * http://www.eclipse.org/legal/epl-v10.html and the Apache License v2.0 * is available at http://www.opensource.org/licenses/apache2.0.php. * You may elect to redistribute this code under either of these licenses. * * Contributors: * VMware Inc. *****************************************************************************/ package org.eclipse.gemini.blueprint.service.exporter; import java.util.Map; /** * An OsgiServicePropertiesResolver is responsible for providing the properties that a bean exposed as a service will be * published with. * * @author Adrian Colyer * @author Costin Leau * * @see org.eclipse.gemini.blueprint.service.exporter.support.OsgiServiceFactoryBean */ public interface OsgiServicePropertiesResolver { /** * Compatibility (with Spring DM) Predefined property indicating the bean name of an exported Spring managed object. */ String SPRING_DM_BEAN_NAME_PROPERTY_KEY = "org.springframework.osgi.bean.name"; /** * Predefined property indicating the bean name of an exported Spring managed object. */ String BEAN_NAME_PROPERTY_KEY = "org.eclipse.gemini.blueprint.bean.name"; /** * OSGi 4.2 Blueprint specification predefined property indicating the name of the component exported as a service. * Equivalent to Spring DM {@link #BEAN_NAME_PROPERTY_KEY}. */ String BLUEPRINT_COMP_NAME = "osgi.service.blueprint.compname"; /** * Returns a map containing the service properties associated with the given Spring managed bean identified by its * name. The name can be null (for example if nested beans are exported). * * @param beanName Spring managed bean name * @return map containing the service properties */ Map getServiceProperties(String beanName); }