You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by gn...@apache.org on 2009/04/28 09:57:01 UTC
svn commit: r769278 - in
/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint:
context/ namespace/ reflect/
Author: gnodet
Date: Tue Apr 28 07:57:00 2009
New Revision: 769278
URL: http://svn.apache.org/viewvc?rev=769278&view=rev
Log:
Fix a few minor issues
Modified:
geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/BlueprintContextImpl.java
geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/Instanciator.java
geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/Parser.java
geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/namespace/ComponentDefinitionRegistryImpl.java
geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/MetadataUtil.java
Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/BlueprintContextImpl.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/BlueprintContextImpl.java?rev=769278&r1=769277&r2=769278&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/BlueprintContextImpl.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/BlueprintContextImpl.java Tue Apr 28 07:57:00 2009
@@ -220,7 +220,7 @@
} catch (Exception e) {
state = State.Failed;
// TODO: clean up
- LOGGER.error("Unable to start blueprint context", e);
+ LOGGER.error("Unable to start blueprint context for bundle " + bundleContext.getBundle().getSymbolicName(), e);
sender.sendFailure(this, e);
}
}
Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/Instanciator.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/Instanciator.java?rev=769278&r1=769277&r2=769278&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/Instanciator.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/Instanciator.java Tue Apr 28 07:57:00 2009
@@ -199,7 +199,9 @@
private BlueprintObjectRecipe createBeanRecipe(BeanMetadata local) throws Exception {
BlueprintObjectRecipe recipe = new BlueprintObjectRecipe(blueprintContext, loadClass(local.getClassName()));
- recipe.setName(local.getId());
+ if (local.getId() != null) {
+ recipe.setName(local.getId());
+ }
recipe.setExplicitDependencies(local.getExplicitDependencies());
for (BeanProperty property : local.getProperties()) {
Object value = getValue(property.getValue(), null);
Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/Parser.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/Parser.java?rev=769278&r1=769277&r2=769278&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/Parser.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/context/Parser.java Tue Apr 28 07:57:00 2009
@@ -532,9 +532,11 @@
private ComponentMetadata parseService(Element element) {
ServiceMetadataImpl service = new ServiceMetadataImpl();
+ boolean hasInterfaceNameAttribute = false;
service.setId(getName(element));
if (element.hasAttribute(INTERFACE_ATTRIBUTE)) {
service.setInterfaceNames(Collections.singletonList(element.getAttribute(INTERFACE_ATTRIBUTE)));
+ hasInterfaceNameAttribute = true;
}
if (element.hasAttribute(REF_ATTRIBUTE)) {
service.setServiceComponent(new RefMetadataImpl(element.getAttribute(REF_ATTRIBUTE)));
@@ -568,7 +570,7 @@
Element e = (Element) node;
if (isBlueprintNamespace(e.getNamespaceURI())) {
if (nodeNameEquals(e, INTERFACES_ELEMENT)) {
- if (service.getInterfaceNames() != null) {
+ if (hasInterfaceNameAttribute) {
throw new ComponentDefinitionException("Only one of " + INTERFACE_ATTRIBUTE + " attribute or " + INTERFACES_ELEMENT + " element must be used");
}
service.setInterfaceNames(parseInterfaceNames(e));
@@ -581,6 +583,8 @@
throw new ComponentDefinitionException("Only one of " + REF_ATTRIBUTE + " attribute, " + BEAN_ELEMENT + " element or custom inner element can be set");
}
service.setServiceComponent((Target) parseBeanMetadata(e));
+ } else {
+ // TODO: can be ref, reference or a custom element
}
}
}
Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/namespace/ComponentDefinitionRegistryImpl.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/namespace/ComponentDefinitionRegistryImpl.java?rev=769278&r1=769277&r2=769278&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/namespace/ComponentDefinitionRegistryImpl.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/namespace/ComponentDefinitionRegistryImpl.java Tue Apr 28 07:57:00 2009
@@ -69,11 +69,15 @@
}
public void registerComponentDefinition(ComponentMetadata component) {
- String name = component.getId();
- if (components.containsKey(name)) {
- throw new ComponentNameAlreadyInUseException(name);
+ String id = component.getId();
+ if (id == null) {
+ // TODO: should we generate a unique name?
+ throw new IllegalArgumentException("Component must have a valid id");
}
- components.put(name, component);
+ if (components.containsKey(id)) {
+ throw new ComponentNameAlreadyInUseException(id);
+ }
+ components.put(id, component);
}
public void removeComponentDefinition(String name) {
Modified: geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/MetadataUtil.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/MetadataUtil.java?rev=769278&r1=769277&r2=769278&view=diff
==============================================================================
--- geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/MetadataUtil.java (original)
+++ geronimo/sandbox/blueprint/blueprint-core/src/main/java/org/apache/geronimo/blueprint/reflect/MetadataUtil.java Tue Apr 28 07:57:00 2009
@@ -30,6 +30,7 @@
import org.osgi.service.blueprint.reflect.ServiceMetadata;
import org.osgi.service.blueprint.reflect.Target;
import org.osgi.service.blueprint.reflect.ValueMetadata;
+import org.osgi.service.blueprint.reflect.CollectionMetadata;
/**
@@ -75,6 +76,9 @@
else if (source instanceof ReferenceMetadata) {
return new ReferenceMetadataImpl((ReferenceMetadata)source);
}
+ else if (source instanceof CollectionMetadata) {
+ return new CollectionMetadataImpl((CollectionMetadata)source);
+ }
throw new RuntimeException("Unknown Metadata type received: " + source.getClass().getName());
}
@@ -132,6 +136,8 @@
return type.cast(new ServiceMetadataImpl());
} else if (ReferenceMetadata.class.isAssignableFrom(type)) {
return type.cast(new ReferenceMetadataImpl());
+ } else if (CollectionMetadata.class.isAssignableFrom(type)) {
+ return type.cast(new CollectionMetadataImpl());
} else {
throw new IllegalArgumentException("Unsupport metadata type: " + (type != null ? type.getName() : null));
}