本文整理汇总了Java中org.osgi.service.blueprint.reflect.ComponentMetadata类的典型用法代码示例。如果您正苦于以下问题:Java ComponentMetadata类的具体用法?Java ComponentMetadata怎么用?Java ComponentMetadata使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ComponentMetadata类属于org.osgi.service.blueprint.reflect包,在下文中一共展示了ComponentMetadata类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: process
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
@Override
public void process(ComponentDefinitionRegistry cdr) {
BlueprintContainer container = getComponent(cdr, "blueprintContainer");
Bundle bundle = getComponent(cdr, "blueprintBundle");
cdr.registerComponentDefinition(createServiceRef(JPA_COORDINATOR, Coordinator.class));
Set<String> components = new HashSet<String>(cdr.getComponentDefinitionNames());
for (String component : components) {
ComponentMetadata compDef = cdr.getComponentDefinition(component);
if (compDef instanceof MutableBeanMetadata && !((MutableBeanMetadata)compDef).isProcessor()) {
// Normal bean def
handleComponent((MutableBeanMetadata)compDef, bundle, cdr, container);
} else if(compDef instanceof MutableServiceMetadata) {
// Bean inlined into service def
MutableServiceMetadata sMeta = (MutableServiceMetadata)compDef;
Target target = sMeta.getServiceComponent();
if (target instanceof MutableBeanMetadata) {
handleComponent((MutableBeanMetadata)target, bundle, cdr, container);
}
}
}
}
示例2: preCall
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
@Override
public Object preCall(ComponentMetadata cm, Method m, Object... parameters) throws Throwable {
if (coordinator == null || em == null) {
initServices();
}
try {
LOG.debug("PreCall for bean {}, method {}", cm.getId(), m.getName());
Coordination coordination = coordinator.begin("jpa", 0);
boolean weControlTx = isResourceLocal(em) && !em.getTransaction().isActive();
if (weControlTx) {
coordination.addParticipant(new ResourceLocalTransactionParticipant(em));
}
return coordination;
} catch (Exception e) {
LOG.warn("Exception from EmSupplier.preCall", e);
throw new RuntimeException(e); // NOSONAR
}
}
示例3: buildBeanDefinitionFor
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
BeanDefinition buildBeanDefinitionFor(ComponentMetadata metadata) {
// shortcut (to avoid re-rewrapping)
if (metadata instanceof SimpleComponentMetadata) {
return ((SimpleComponentMetadata) metadata).getBeanDefinition();
}
AbstractBeanDefinition definition = buildBeanDefinition(metadata);
// add common properties
definition.setAttribute(MetadataConstants.COMPONENT_METADATA_ATTRIBUTE, metadata);
definition.setAttribute(MetadataConstants.COMPONENT_NAME, metadata.getId());
// Set<String> dependencies = metadata.;
// definition.setDependsOn(dependencies.toArray(new String[dependencies.size()]));
throw new UnsupportedOperationException("move depends on for BeanMetadata");
// return definition;
}
示例4: buildBeanDefinition
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
private AbstractBeanDefinition buildBeanDefinition(ComponentMetadata metadata) {
if (metadata instanceof BeanMetadata) {
return buildLocalComponent((BeanMetadata) metadata);
}
if (metadata instanceof ServiceMetadata) {
return buildExporter((ServiceMetadata) metadata);
}
if (metadata instanceof ServiceReferenceMetadata) {
if (metadata instanceof ReferenceListMetadata) {
return buildReferenceCollection((ReferenceListMetadata) metadata);
}
if (metadata instanceof ReferenceMetadata) {
return buildReferenceProxy((ReferenceMetadata) metadata);
}
}
// unknown rich metadata type, unable to perform conversion
throw new IllegalArgumentException("Unknown metadata type" + metadata.getClass());
}
示例5: buildComponentMetadataFor
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
public static List<ComponentMetadata> buildComponentMetadataFor(ConfigurableListableBeanFactory factory) {
List<ComponentMetadata> metadata = new ArrayList<ComponentMetadata>();
String[] components = factory.getBeanDefinitionNames();
for (String beanName : components) {
BeanDefinition definition = factory.getBeanDefinition(beanName);
// filter generated definitions
if (!definition.hasAttribute(PROMOTED_REF)) {
// add metadata for top-level definitions
metadata.add(MetadataFactory.buildComponentMetadataFor(beanName, definition));
// look for nested ones
metadata.addAll(MetadataFactory.buildNestedComponentMetadataFor(definition));
}
}
return metadata;
}
示例6: testDefaultsOnNestedBeans
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
public void testDefaultsOnNestedBeans() throws Exception {
ComponentMetadata metadata = blueprintContainer.getComponentMetadata("nested");
assertEquals(ComponentMetadata.ACTIVATION_LAZY, metadata.getActivation());
assertNull("null scope expected", ((BeanMetadata)metadata).getScope());
BeanMetadata meta = (BeanMetadata) metadata;
List<BeanProperty> props = meta.getProperties();
assertEquals(2, props.size());
BeanProperty propA = props.get(0);
ReferenceMetadata nestedRef = (ReferenceMetadata) propA.getValue();
assertEquals(ReferenceMetadata.AVAILABILITY_MANDATORY, nestedRef.getAvailability());
assertEquals(300, nestedRef.getTimeout());
BeanProperty propB = props.get(1);
ReferenceListMetadata nestedList = (ReferenceListMetadata) propB.getValue();
assertEquals(ReferenceMetadata.AVAILABILITY_OPTIONAL, nestedList.getAvailability());
assertEquals(ReferenceListMetadata.USE_SERVICE_REFERENCE, nestedList.getMemberType());
}
示例7: testOverallMetadata
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
public void testOverallMetadata() throws Exception {
BeanDefinition def = new GenericBeanDefinition();
assertEquals(new SimpleComponentMetadata(null, def), new SimpleComponentMetadata("foo", def));
Collection<ComponentMetadata> metadata = blueprintContainer.getMetadata(ComponentMetadata.class);
for (ComponentMetadata componentMetadata : metadata) {
if (componentMetadata instanceof ServiceReferenceMetadata) {
System.out.println(componentMetadata.getId());
}
}
// 1+1+3+4+4+5+3+1=22
assertEquals(22, metadata.size());
System.out.println(blueprintContainer.getComponentIds());
}
示例8: decorate
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
@Override
public ComponentMetadata decorate(final Node node, final ComponentMetadata component, final ParserContext context) {
if (node instanceof Attr) {
if (nodeNameEquals(node, RESTART_DEPENDENTS_ON_UPDATES)) {
return decorateRestartDependentsOnUpdates((Attr) node, component, context);
} else if (nodeNameEquals(node, USE_DEFAULT_FOR_REFERENCE_TYPES)) {
return decorateUseDefaultForReferenceTypes((Attr) node, component, context);
} else if (nodeNameEquals(node, TYPE_ATTR)) {
if (component instanceof ServiceReferenceMetadata) {
return decorateServiceReferenceType((Attr) node, component, context);
} else if (component instanceof ServiceMetadata) {
return decorateServiceType((Attr)node, component, context);
}
throw new ComponentDefinitionException("Attribute " + node.getNodeName()
+ " can only be used on a <reference>, <reference-list> or <service> element");
}
throw new ComponentDefinitionException("Unsupported attribute: " + node.getNodeName());
} else {
throw new ComponentDefinitionException("Unsupported node type: " + node);
}
}
示例9: enableComponentProcessorProperty
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
private static ComponentMetadata enableComponentProcessorProperty(final Attr attr,
final ComponentMetadata component, final ParserContext context, final String propertyName) {
if (component != null) {
throw new ComponentDefinitionException("Attribute " + attr.getNodeName()
+ " can only be used on the root <blueprint> element");
}
LOG.debug("{}: {}", propertyName, attr.getValue());
if (!Boolean.parseBoolean(attr.getValue())) {
return component;
}
MutableBeanMetadata metadata = registerComponentProcessor(context);
metadata.addProperty(propertyName, createValue(context, "true"));
return component;
}
示例10: lookupPropertyPlaceholderIds
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
/**
* Lookup the ids of the Blueprint property placeholder services in the
* Blueprint container.
*
* @return the ids, will be an empty array if none found.
*/
public String[] lookupPropertyPlaceholderIds() {
List<String> ids = new ArrayList<String>();
for (Object componentId : container.getComponentIds()) {
String id = (String) componentId;
ComponentMetadata meta = container.getComponentMetadata(id);
if (meta instanceof ExtendedBeanMetadata) {
Class<?> clazz = ((ExtendedBeanMetadata) meta).getRuntimeClass();
if (clazz != null && AbstractPropertyPlaceholder.class.isAssignableFrom(clazz)) {
ids.add(id);
}
}
}
return ids.toArray(new String[ids.size()]);
}
示例11: lookupBlueprintCamelContext
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
/**
* Lookup all the {@link BlueprintCamelContext} in the {@link BlueprintContainer}.
*
* @param container the blueprint container, must be provided
* @return a set with the ids of the {@link BlueprintCamelContext}, never <tt>null</tt>, but can be empty set.
*/
public static Set<String> lookupBlueprintCamelContext(BlueprintContainer container) {
Set<String> ids = new LinkedHashSet<String>();
for (Object id : container.getComponentIds()) {
ComponentMetadata meta = container.getComponentMetadata(id.toString());
// must be extended meta, to see if its the blueprint camel context
if (meta instanceof ExtendedBeanMetadata) {
Class<?> clazz = ((ExtendedBeanMetadata) meta).getRuntimeClass();
if (clazz != null && BlueprintCamelContext.class.isAssignableFrom(clazz)) {
// okay we found a BlueprintCamelContext
ids.add(meta.getId());
}
}
}
return ids;
}
示例12: getServiceRef
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
private MutableRefMetadata getServiceRef(ComponentDefinitionRegistry cdr, String unitName, Class<?> iface) {
ComponentMetadata serviceRef = cdr.getComponentDefinition(getId(unitName, iface));
if (serviceRef == null) {
serviceRef = createJPAServiceRef(unitName, iface);
cdr.registerComponentDefinition(serviceRef);
}
MutableRefMetadata ref = pc.createMetadata(MutableRefMetadata.class);
ref.setComponentId(serviceRef.getId());
return ref;
}
示例13: createServiceRef
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
private ComponentMetadata createServiceRef(String id, Class<?> iface) {
final MutableReferenceMetadata refMeta = pc.createMetadata(MutableReferenceMetadata.class);
refMeta.setActivation(getDefaultActivation(pc));
refMeta.setAvailability(ReferenceMetadata.AVAILABILITY_MANDATORY);
refMeta.setRuntimeInterface(iface);
refMeta.setTimeout(Integer.parseInt(pc.getDefaultTimeout()));
List<String> emptyList = Collections.emptyList();
refMeta.setDependsOn(emptyList);
refMeta.setId(id);
return refMeta;
}
示例14: createJPAServiceRef
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
private ComponentMetadata createJPAServiceRef(String unitName, Class<?> iface) {
final MutableReferenceMetadata refMeta = pc.createMetadata(MutableReferenceMetadata.class);
refMeta.setActivation(getDefaultActivation(pc));
refMeta.setAvailability(ReferenceMetadata.AVAILABILITY_MANDATORY);
refMeta.setRuntimeInterface(iface);
refMeta.setFilter(String.format("(%s=%s)", JPA_UNIT_NAME, unitName));
refMeta.setTimeout(Integer.parseInt(pc.getDefaultTimeout()));
List<String> emptyList = Collections.emptyList();
refMeta.setDependsOn(emptyList);
refMeta.setId(getId(unitName, iface));
return refMeta;
}
示例15: postCallWithException
import org.osgi.service.blueprint.reflect.ComponentMetadata; //导入依赖的package包/类
@Override
public void postCallWithException(ComponentMetadata cm, Method m, Throwable ex, Object preCallToken) {
LOG.debug("PostCallWithException for bean {}, method {}", cm.getId(), m.getName(), ex);
if (preCallToken != null) {
((Coordination)preCallToken).fail(ex);
}
}